summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-09-07 11:26:10 +0300
committerPaul Buetow <paul@buetow.org>2025-09-07 11:26:10 +0300
commit8889949ad3851bfbf36ff5b73128286d67c88201 (patch)
tree0f515ae6ee3da898dea113799c09e943f3e3f8fb
parent7c0266e94378f6121719939c6d53915eb72eed3e (diff)
tiding up
-rw-r--r--.gitignore1
-rw-r--r--AGENTS.md2
-rw-r--r--Magefile.go62
-rw-r--r--PROJECTSTATUS.md17
-rw-r--r--README.md65
-rw-r--r--cmd/internal/hexai-action/main.go196
-rw-r--r--cmd/internal/hexai-action/main_test.go357
-rw-r--r--docs/configuration.md33
-rw-r--r--docs/coverage.html513
-rw-r--r--docs/coverage.out6525
-rw-r--r--docs/usage.md8
-rw-r--r--internal/appconfig/config_test.go31
-rw-r--r--internal/hexaiaction/tui_test.go21
13 files changed, 6724 insertions, 1107 deletions
diff --git a/.gitignore b/.gitignore
index 2677aac..9f8a3d9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,4 +8,5 @@
/docs/coverage/
/docs/*.out
/docs/*.html
+/llminputs
llm.out
diff --git a/AGENTS.md b/AGENTS.md
index f9486e9..3247667 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -10,7 +10,7 @@
- Avoid duplication of code when the functions are larger than 5 lines.
- If possible, construct individual methods so that they can be unit tested. But only if it doesn't add too much boilerplate to the code base.
-- Aim for at least 85% unit test coverage of all source code.
+- Aim for at least 85% unit test coverage of all source code. The command to check the coverage is "mage coverage"
- Ensure that all unit tests pass before commiting any changes.
- Always run the gofumpt code reformatter on all go files modified.
- There should be no source code file larger than 1000 lines. If so, split it up into multiple.
diff --git a/Magefile.go b/Magefile.go
index dedb72c..bd55ef6 100644
--- a/Magefile.go
+++ b/Magefile.go
@@ -17,16 +17,16 @@ import (
)
var (
- Default = Build // Default target: build all binaries.
- coverageThreshold float64 = 85
- coveragePrinted = make(chan struct{}, 1)
+ Default = Build // Default target: build all binaries.
+ coverageThreshold float64 = 85
+ coveragePrinted = make(chan struct{}, 1)
)
// Build builds the Hexai LSP and CLI binaries.
func Build() error {
- mg.Deps(BuildHexaiLSP, BuildHexaiCLI, BuildHexaiAction)
- printCoverage()
- return nil
+ mg.Deps(BuildHexaiLSP, BuildHexaiCLI, BuildHexaiAction)
+ printCoverage()
+ return nil
}
// BuildHexaiLSP builds the LSP server binary.
@@ -37,27 +37,27 @@ func BuildHexaiLSP() error {
// BuildHexaiCLI builds the CLI binary.
func BuildHexaiCLI() error {
- printCoverage()
- return sh.RunV("go", "build", "-o", "hexai", "cmd/hexai/main.go")
+ printCoverage()
+ return sh.RunV("go", "build", "-o", "hexai", "cmd/hexai/main.go")
}
// BuildHexaiAction builds the hexai-action TUI binary.
func BuildHexaiAction() error {
- printCoverage()
- return sh.RunV("go", "build", "-o", "hexai-action", "cmd/internal/hexai-action/main.go")
+ printCoverage()
+ return sh.RunV("go", "build", "-o", "hexai-action", "cmd/internal/hexai-action/main.go")
}
// Dev runs tests, vet, lint, then builds with race for both binaries.
func Dev() error {
- printCoverage()
- mg.Deps(Test, Vet, Lint)
- if err := sh.RunV("go", "build", "-race", "-o", "hexai-lsp", "cmd/hexai-lsp/main.go"); err != nil {
- return err
- }
- 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-action", "cmd/internal/hexai-action/main.go")
+ printCoverage()
+ mg.Deps(Test, Vet, Lint)
+ if err := sh.RunV("go", "build", "-race", "-o", "hexai-lsp", "cmd/hexai-lsp/main.go"); err != nil {
+ return err
+ }
+ 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-action", "cmd/internal/hexai-action/main.go")
}
// Run launches the LSP server via go run (useful during development).
@@ -77,8 +77,8 @@ func RunCLI() error {
// Install copies built binaries to GOPATH/bin (defaults to ~/go/bin when GOPATH is unset).
func Install() error {
- printCoverage()
- mg.Deps(Build)
+ printCoverage()
+ mg.Deps(Build)
gopath := os.Getenv("GOPATH")
if gopath == "" {
home, err := os.UserHomeDir()
@@ -91,20 +91,20 @@ func Install() error {
if err := os.MkdirAll(bin, 0o755); err != nil {
return err
}
- if err := sh.RunV("cp", "-v", "./hexai-lsp", bin+"/"); err != nil {
- return err
- }
- if err := sh.RunV("cp", "-v", "./hexai", bin+"/"); err != nil {
- return err
- }
- return sh.RunV("cp", "-v", "./hexai-action", bin+"/")
+ if err := sh.RunV("cp", "-v", "./hexai-lsp", bin+"/"); err != nil {
+ return err
+ }
+ if err := sh.RunV("cp", "-v", "./hexai", bin+"/"); err != nil {
+ return err
+ }
+ return sh.RunV("cp", "-v", "./hexai-action", bin+"/")
}
// RunAction runs the hexai-action TUI via go run (reads stdin).
func RunAction() error {
- printCoverage()
- mg.Deps(Dev)
- return sh.RunV("go", "run", "cmd/internal/hexai-action/main.go")
+ printCoverage()
+ mg.Deps(Dev)
+ return sh.RunV("go", "run", "cmd/internal/hexai-action/main.go")
}
// printCoverage prints a warning if an existing coverage profile shows total < coverateThreshold.
diff --git a/PROJECTSTATUS.md b/PROJECTSTATUS.md
index 5959f31..18b0278 100644
--- a/PROJECTSTATUS.md
+++ b/PROJECTSTATUS.md
@@ -18,11 +18,26 @@ Or maybe
C-p = ":sh hexai-action"
```
-
And then generate a menu with all the code actions hexai-lsp knows of and include hotkeys for each menu item! Also print out a notice that this is a work-around due to limitations in Helix's current LSP UI.
### More features
+* [ ] 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!
+
+> It looks like your message is:
+
+```
+- >foo bar baz?
+```
+
+Could you clarify what you mean or what you’re asking for?
+- If you’re asking about the syntax, `>foo bar baz` is not standard in most programming languages.
+- If you’re referencing a command-line or shell prompt, `foo bar baz` could be a command (`foo`) with arguments (`bar` and `baz`).
+- If you’re asking about a specific language or context, please provide more details so I can help you better!
+
+
* [/] implement a code action for selected code block the way via a unix pipe as faster access in helix
- pipe selected code to external command and replace selection with output
- the external command should open a menu to select an action (e.g. "format", "refactor", "explain", "test", etc.) and then apply it to the selected code
diff --git a/README.md b/README.md
index 7a4e214..be68bec 100644
--- a/README.md
+++ b/README.md
@@ -5,6 +5,7 @@
Hexai, the AI addition for your Helix Editor (https://helix-editor.com) .. Other editors should work but weren't tested.
It has got improved capabilities for Go code understanding (for example, create unit tests from function), but other programming language work as well.
+
## Features
* LSP Code auto-completion
@@ -29,6 +30,7 @@ Hexai uses Mage for developer tasks. Install Mage, then run targets like build,
- Dev build (+ tests, vet, lint): `mage dev`
- Run tests: `mage test`
- Run tests with coverage: `go test ./... -cover`
+- Full cross-package coverage and HTML report: `mage coverage` (writes `docs/coverage.html`)
- In restricted sandboxes/CI (no sockets), skip network-based tests:
- `HEXAI_TEST_SKIP_NET=1 go test ./... -cover`
- Install binaries to `GOPATH/bin`: `mage install`
@@ -41,64 +43,5 @@ Either use the Mage method as mentioned above, or install directly with:
- CLI: `go install codeberg.org/snonux/hexai/cmd/hexai@latest`
- LSP: `go install codeberg.org/snonux/hexai/cmd/hexai-lsp@latest`
-
-For `hexai-action`, use Mage or a local build:
-
-- Build locally: `go build -o hexai-action cmd/internal/hexai-action/main.go`
-- Or via Mage: `mage buildHexaiAction` (or `mage build`)
-- Install: `mage install` (copies `hexai-action` to `GOPATH/bin` together with other binaries)
-
-## Hexai Action (TUI)
-
-`hexai-action` is a small TUI to run Hexai code actions from stdin. It loads the same `config.toml` as `hexai` and `hexai-lsp` (XDG path: `~/.config/hexai/config.toml`), and respects the same environment overrides.
-
-- Pipe code (and optionally diagnostics) into the tool.
-- Select an action with arrow keys, vi keys (`j/k`, `g/G`), Enter, or hotkeys `[s] [r] [d] [c] [t]`.
-- The tool prints the transformed text to stdout.
-
-Input formats
-
-- Rewrite: include an inline instruction near the top of the selection using one of:
- - `;do something;`
- - `/* do something */`
- - `<!-- do something -->`
- - `// do something` (or `#`, `--`)
-
-- Diagnostics (optional block):
- - Begin with a header line `Diagnostics:` (case-insensitive), one diagnostic per line, blank line, then the code selection.
-
-Examples
-
-- Rewrite selection:
-
-```
-;replace fmt.Println with log.Println;
-package main
-
-import "fmt"
-
-func main() { fmt.Println("hi") }
-```
-
-- Diagnostics + selection:
-
-```
-Diagnostics:
-missing return at end of function
-use of undefined: foo
-
-func f() int {
- foo()
-}
-```
-
-Run:
-
-- `cat input.go | ./hexai-action`
-- or `./hexai-action < input.go`
-- or with files: `./hexai-action --infile input.go --outfile output.go`
-
-Flags
-
-- `--infile` Read input from the given file instead of stdin.
-- `--outfile` Write output to the given file instead of stdout (truncates/creates).
+- Action runner: `go install codeberg.org/snonux/hexai/cmd/hexai-action@latest`
+Install: `mage install` (copies `hexai-action` to `GOPATH/bin` together with other binaries)
diff --git a/cmd/internal/hexai-action/main.go b/cmd/internal/hexai-action/main.go
index 8bcc3cd..b8ba524 100644
--- a/cmd/internal/hexai-action/main.go
+++ b/cmd/internal/hexai-action/main.go
@@ -6,24 +6,62 @@ import (
"fmt"
"io"
"os"
+ "path/filepath"
+ "time"
"codeberg.org/snonux/hexai/internal/hexaiaction"
+ "codeberg.org/snonux/hexai/internal/tmux"
+ "golang.org/x/term"
)
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")
+ // Tmux/UI flags
+ forceTmux := flag.Bool("tmux", false, "Force running the UI in a tmux split-pane (auto if not set)")
+ noTmux := flag.Bool("no-tmux", false, "Disable tmux mode even if available")
+ 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()
- in, out, closeIn, closeOut, err := openIO(*infile, *outfile)
- if err != nil {
- fmt.Fprintln(os.Stderr, err)
- os.Exit(1)
+ // Child mode: run TUI and write atomically to -outfile
+ if *uiChild {
+ if err := runChild(*infile, *outfile); err != nil {
+ fmt.Fprintln(os.Stderr, err)
+ os.Exit(1)
+ }
+ return
+ }
+
+ // Parent mode: decide inline vs tmux
+ if shouldRunInTmux(*forceTmux, *noTmux) {
+ if err := runInTmuxParent(*tmuxTarget, *tmuxSplit, *tmuxPercent); err != nil {
+ fmt.Fprintln(os.Stderr, err)
+ os.Exit(1)
+ }
+ return
}
- defer closeIn()
- defer closeOut()
- if err := hexaiaction.Run(context.Background(), in, out, os.Stderr); err != nil {
+ // Inline path: only if we have a TTY for UI; otherwise echo input
+ if isTTY(os.Stdout.Fd()) && isTTY(os.Stdin.Fd()) {
+ in, out, closeIn, closeOut, err := openIO(*infile, *outfile)
+ if err != nil {
+ fmt.Fprintln(os.Stderr, err)
+ os.Exit(1)
+ }
+ defer closeIn()
+ defer closeOut()
+ if err := hexaiactionRun(context.Background(), in, out, os.Stderr); err != nil {
+ fmt.Fprintln(os.Stderr, err)
+ os.Exit(1)
+ }
+ return
+ }
+
+ // Fallback: no TTY and tmux not available; echo input to output
+ if err := echoThrough(*infile, *outfile); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
@@ -54,3 +92,147 @@ func openIO(infile, outfile string) (io.Reader, io.Writer, func(), func(), error
}
return in, out, closeIn, closeOut, nil
}
+
+// runChild runs the interactive flow and writes the final output atomically to outfile.
+var hexaiactionRun = hexaiaction.Run
+
+func runChild(infile, outfile string) error {
+ if outfile == "" {
+ // No atomic handoff needed; just run normally to stdout
+ in, out, closeIn, closeOut, err := openIO(infile, "")
+ if err != nil {
+ return err
+ }
+ defer closeIn()
+ defer closeOut()
+ return hexaiactionRun(context.Background(), in, out, os.Stderr)
+ }
+ tmp := outfile + ".tmp"
+ in, out, closeIn, closeOut, err := openIO(infile, tmp)
+ if err != nil {
+ return err
+ }
+ defer closeIn()
+ if err := hexaiactionRun(context.Background(), in, out, os.Stderr); err != nil {
+ // On error, try to echo input to tmp to avoid blocking
+ closeOut()
+ if copyErr := echoThrough(infile, tmp); copyErr != nil {
+ return fmt.Errorf("hexai-action child: %v; echo failed: %v", err, copyErr)
+ }
+ } else {
+ closeOut()
+ }
+ return os.Rename(tmp, outfile)
+}
+
+var isTTYFn = isTTY
+var tmuxAvailableFn = tmux.Available
+var splitRunFn = tmux.SplitRun
+var osExecutableFn = os.Executable
+
+func shouldRunInTmux(forceTmux, noTmux bool) bool {
+ if noTmux {
+ return false
+ }
+ if forceTmux {
+ return true
+ }
+ // Auto: prefer tmux when stdio are not TTYs (Helix :pipe scenario)
+ if !(isTTYFn(os.Stdin.Fd()) && isTTYFn(os.Stdout.Fd())) && tmuxAvailableFn() {
+ return true
+ }
+ return false
+}
+
+func isTTY(fd uintptr) bool { return term.IsTerminal(int(fd)) }
+
+func runInTmuxParent(target, split string, percent int) error {
+ // Prepare temp files
+ dir, err := os.MkdirTemp("", "hexai-action-")
+ if err != nil {
+ return err
+ }
+ defer func() { _ = os.RemoveAll(dir) }()
+ inPath := filepath.Join(dir, "input.txt")
+ outPath := filepath.Join(dir, "reply.txt")
+ // Read stdin and persist to inPath
+ if err := persistStdin(inPath); err != nil {
+ return err
+ }
+ // Build child argv
+ exe, err := osExecutableFn()
+ if err != nil {
+ return err
+ }
+ argv := []string{exe, "-ui-child", "-infile", inPath, "-outfile", outPath}
+ // Spawn tmux split
+ opts := tmux.SplitOpts{Target: target, Vertical: split != "h", Percent: percent}
+ if err := splitRunFn(opts, argv); err != nil {
+ return err
+ }
+ // Wait for outfile to appear
+ if err := waitForFile(outPath, 60*time.Second); err != nil {
+ return err
+ }
+ // Print to stdout
+ return catFileToStdout(outPath)
+}
+
+func persistStdin(path string) error {
+ f, err := os.Create(path)
+ if err != nil {
+ return err
+ }
+ defer func() { _ = f.Close() }()
+ if _, err := io.Copy(f, os.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-action: timeout waiting for reply file")
+ }
+ time.Sleep(200 * time.Millisecond)
+ }
+}
+
+func catFileToStdout(path string) error {
+ f, err := os.Open(path)
+ if err != nil {
+ return err
+ }
+ defer func() { _ = f.Close() }()
+ _, err = io.Copy(os.Stdout, f)
+ return err
+}
+
+func echoThrough(infile, outfile string) error {
+ // Read from infile or stdin and write to outfile or stdout
+ var in io.Reader = os.Stdin
+ var out io.Writer = os.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/cmd/internal/hexai-action/main_test.go b/cmd/internal/hexai-action/main_test.go
index 9603826..16bb2ed 100644
--- a/cmd/internal/hexai-action/main_test.go
+++ b/cmd/internal/hexai-action/main_test.go
@@ -1,44 +1,355 @@
package main
import (
+ "context"
+ "fmt"
"io"
"os"
"path/filepath"
+ "strings"
"testing"
+
+ "codeberg.org/snonux/hexai/internal/tmux"
)
-// TestOpenIO_InOutFiles verifies that openIO opens the specified files
-// and that writing via the returned writer persists to disk.
-func TestOpenIO_InOutFiles(t *testing.T) {
+func TestShouldRunInTmux_Preferences(t *testing.T) {
+ // no-tmux overrides
+ if shouldRunInTmux(false, true) {
+ t.Fatal("expected false when no-tmux is set")
+ }
+ // force tmux overrides
+ if !shouldRunInTmux(true, false) {
+ t.Fatal("expected true when -tmux is set")
+ }
+}
+
+func TestShouldRunInTmux_Auto(t *testing.T) {
+ oldIsTTY := isTTYFn
+ oldAvail := tmuxAvailableFn
+ t.Cleanup(func() { isTTYFn = oldIsTTY; tmuxAvailableFn = oldAvail })
+ // Simulate Helix :pipe (no TTY) and tmux available
+ isTTYFn = func(_ uintptr) bool { return false }
+ tmuxAvailableFn = func() bool { return true }
+ if !shouldRunInTmux(false, false) {
+ t.Fatal("expected true when not TTY and tmux available")
+ }
+ // Simulate TTY present: prefer inline
+ isTTYFn = func(_ uintptr) bool { return true }
+ if shouldRunInTmux(false, false) {
+ t.Fatal("expected false when TTY present")
+ }
+ // Simulate tmux not available
+ isTTYFn = func(_ uintptr) bool { return false }
+ tmuxAvailableFn = func() bool { return false }
+ if shouldRunInTmux(false, false) {
+ t.Fatal("expected false when tmux unavailable")
+ }
+}
+
+func TestPersistStdin_WritesFile(t *testing.T) {
+ dir := t.TempDir()
+ path := filepath.Join(dir, "in.txt")
+ // Point os.Stdin to a temp file with 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, err := os.Open(src)
+ if err != nil { t.Fatalf("open src: %v", err) }
+ old := os.Stdin
+ os.Stdin = f
+ t.Cleanup(func() { os.Stdin = old; _ = f.Close() })
+ if err := persistStdin(path); err != nil {
+ t.Fatalf("persistStdin error: %v", err)
+ }
+ b, err := os.ReadFile(path)
+ if err != nil { t.Fatalf("read out: %v", err) }
+ 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")
+ if err := os.WriteFile(in, []byte("hello"), 0o600); err != nil {
+ t.Fatalf("write in: %v", err)
+ }
+ if err := echoThrough(in, out); 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()
+ oldIn := os.Stdin
+ os.Stdin = rIn
+ defer func() { os.Stdin = oldIn; _ = rIn.Close() }()
+ // capture stdout
+ r, w, _ := os.Pipe()
+ oldOut := os.Stdout
+ os.Stdout = w
+ defer func() { os.Stdout = oldOut; _ = r.Close(); _ = w.Close() }()
+ if err := echoThrough("", ""); err != nil { t.Fatalf("echoThrough: %v", err) }
+ _ = w.Close()
+ data, _ := io.ReadAll(r)
+ if string(data) != "PIPE" {
+ t.Fatalf("stdout: %q", string(data))
+ }
+}
+
+func TestWaitForFile(t *testing.T) {
dir := t.TempDir()
- inPath := filepath.Join(dir, "in.txt")
- outPath := filepath.Join(dir, "out.txt")
+ p := filepath.Join(dir, "x")
+ go func() {
+ // create shortly after
+ f, _ := os.Create(p)
+ defer f.Close()
+ f.WriteString("ok")
+ }()
+ if err := waitForFile(p, 2_000_000_000); err != nil { // 2s
+ t.Fatalf("waitForFile: %v", err)
+ }
+}
- // Prepare input file
- want := "hello world"
- if err := os.WriteFile(inPath, []byte(want), 0o600); err != nil {
- t.Fatalf("write infile: %v", err)
+func TestCatFileToStdout(t *testing.T) {
+ dir := t.TempDir()
+ p := filepath.Join(dir, "f")
+ if err := os.WriteFile(p, []byte("abc"), 0o600); err != nil {
+ t.Fatalf("write: %v", err)
+ }
+ // capture stdout
+ old := os.Stdout
+ r, w, _ := os.Pipe()
+ os.Stdout = w
+ defer func() { os.Stdout = old; _ = r.Close(); _ = w.Close() }()
+ if err := catFileToStdout(p); err != nil {
+ t.Fatalf("catFileToStdout: %v", err)
+ }
+ _ = w.Close()
+ buf, _ := io.ReadAll(r)
+ if string(buf) != "abc" {
+ t.Fatalf("stdout = %q", string(buf))
}
+}
+
+func TestRunInTmuxParent_Stubbed(t *testing.T) {
+ dir := t.TempDir()
+ // set stdin content
+ src := filepath.Join(dir, "stdin.txt")
+ _ = os.WriteFile(src, []byte("input"), 0o600)
+ f, _ := os.Open(src)
+ oldStdin := os.Stdin
+ os.Stdin = f
+ defer func() { os.Stdin = oldStdin; _ = f.Close() }()
- in, out, cin, cout, err := openIO(inPath, outPath)
- if err != nil {
- t.Fatalf("openIO: %v", err)
+ // capture stdout
+ oldStdout := os.Stdout
+ r, w, _ := os.Pipe()
+ os.Stdout = w
+ defer func() { os.Stdout = oldStdout; _ = r.Close(); _ = w.Close() }()
+
+ // stub seams
+ oldExec := osExecutableFn
+ oldSplit := splitRunFn
+ oldRun := hexaiactionRun
+ osExecutableFn = func() (string, error) { return "/bin/hexai-action", nil }
+ splitRunFn = func(opts tmux.SplitOpts, argv []string) error {
+ // find -outfile path and write content to simulate child
+ 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
+ }
+ // Ensure child mode won't try to run the real TUI if invoked in tests.
+ hexaiactionRun = func(_ context.Context, _ io.Reader, w io.Writer, _ io.Writer) error {
+ _, _ = io.WriteString(w, "child-stub")
+ return nil
}
- defer cin()
- defer cout()
+ defer func() { osExecutableFn = oldExec; splitRunFn = oldSplit; hexaiactionRun = oldRun }()
- // Copy through to simulate main's behavior
- if _, err := io.Copy(out.(io.Writer), in); err != nil {
- t.Fatalf("copy: %v", err)
+ if err := runInTmuxParent("", "v", 33); err != nil {
+ t.Fatalf("runInTmuxParent: %v", err)
}
+ _ = w.Close()
+ got, _ := io.ReadAll(r)
+ if !strings.HasPrefix(string(got), "OUT:") {
+ t.Fatalf("unexpected stdout: %q", string(got))
+ }
+}
- // Verify outfile content
- got, err := os.ReadFile(outPath)
- if err != nil {
- t.Fatalf("read outfile: %v", err)
+func TestRunChild_StubbedOutfile(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 := hexaiactionRun
+ hexaiactionRun = func(_ context.Context, _ io.Reader, w io.Writer, _ io.Writer) error {
+ _, _ = io.WriteString(w, "RESULT")
+ return nil
}
- if string(got) != want {
- t.Fatalf("mismatch: got %q want %q", string(got), want)
+ defer func() { hexaiactionRun = old }()
+ if err := runChild(in, out); err != nil {
+ t.Fatalf("runChild: %v", err)
+ }
+ b, _ := os.ReadFile(out)
+ if string(b) != "RESULT" {
+ t.Fatalf("unexpected outfile: %q", string(b))
}
}
+func TestRunChild_StubbedStdout(t *testing.T) {
+ dir := t.TempDir()
+ in := filepath.Join(dir, "in.txt")
+ _ = os.WriteFile(in, []byte("sel"), 0o600)
+ // capture stdout
+ oldStdout := os.Stdout
+ r, w, _ := os.Pipe()
+ os.Stdout = w
+ defer func() { os.Stdout = oldStdout; _ = r.Close(); _ = w.Close() }()
+ old := hexaiactionRun
+ hexaiactionRun = func(_ context.Context, _ io.Reader, w io.Writer, _ io.Writer) error {
+ _, _ = io.WriteString(w, "STDOUT-RESULT")
+ return nil
+ }
+ defer func() { hexaiactionRun = old }()
+ if err := runChild(in, ""); err != nil {
+ t.Fatalf("runChild: %v", err)
+ }
+ _ = w.Close()
+ data, _ := io.ReadAll(r)
+ if string(data) != "STDOUT-RESULT" {
+ t.Fatalf("stdout: %q", string(data))
+ }
+}
+
+func TestRunChild_ErrorFallback(t *testing.T) {
+ dir := t.TempDir()
+ in := filepath.Join(dir, "in.txt")
+ out := filepath.Join(dir, "out.txt")
+ _ = os.WriteFile(in, []byte("INPUT"), 0o600)
+ old := hexaiactionRun
+ hexaiactionRun = func(_ context.Context, _ io.Reader, _ io.Writer, _ io.Writer) error {
+ return fmt.Errorf("boom")
+ }
+ defer func() { hexaiactionRun = old }()
+ if err := runChild(in, out); err != nil {
+ t.Fatalf("runChild: %v", err)
+ }
+ b, _ := os.ReadFile(out)
+ if string(b) != "INPUT" {
+ t.Fatalf("expected fallback echo, got %q", string(b))
+ }
+}
+
+func TestWaitForFile_Timeout(t *testing.T) {
+ dir := t.TempDir()
+ p := filepath.Join(dir, "nope")
+ if err := waitForFile(p, 10_000_000); err == nil { // 10ms
+ 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)) }
+}
+
+func TestRunInTmuxParent_ExecutableError(t *testing.T) {
+ old := osExecutableFn
+ osExecutableFn = func() (string, error) { return "", fmt.Errorf("no exe") }
+ defer func() { osExecutableFn = old }()
+ // set stdin content
+ r, w, _ := os.Pipe()
+ _, _ = w.Write([]byte("x"))
+ _ = w.Close()
+ oldIn := os.Stdin
+ os.Stdin = r
+ defer func() { os.Stdin = oldIn; _ = r.Close() }()
+ if err := runInTmuxParent("", "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-action", nil }
+ oldSplit := splitRunFn
+ splitRunFn = func(_ tmux.SplitOpts, _ []string) error { return fmt.Errorf("split failed") }
+ defer func() { osExecutableFn = oldExec; splitRunFn = oldSplit }()
+ // set stdin
+ r, w, _ := os.Pipe()
+ _, _ = w.Write([]byte("x"))
+ _ = w.Close()
+ oldIn := os.Stdin
+ os.Stdin = r
+ defer func() { os.Stdin = oldIn; _ = r.Close() }()
+ if err := runInTmuxParent("", "v", 33); err == nil {
+ t.Fatal("expected split error")
+ }
+}
+
+func TestEchoThrough_OutfileError(t *testing.T) {
+ dir := t.TempDir()
+ in := filepath.Join(dir, "i.txt")
+ _ = os.WriteFile(in, []byte("x"), 0o600)
+ // Outfile inside non-existent subdir -> Create should fail
+ out := filepath.Join(dir, "nope", "out.txt")
+ if err := echoThrough(in, out); err == nil {
+ t.Fatal("expected echoThrough outfile error")
+ }
+}
+
+func TestPersistStdin_Error(t *testing.T) {
+ // Parent directory missing -> Create should fail
+ dir := t.TempDir()
+ p := filepath.Join(dir, "missing", "x.txt")
+ // set stdin to something
+ r, w, _ := os.Pipe()
+ _, _ = w.Write([]byte("x"))
+ _ = w.Close()
+ old := os.Stdin
+ os.Stdin = r
+ defer func() { os.Stdin = old; _ = r.Close() }()
+ if err := persistStdin(p); err == nil {
+ t.Fatal("expected persistStdin error")
+ }
+}
+
+func TestCatFileToStdout_Error(t *testing.T) {
+ if err := catFileToStdout("/nonexistent/path/file.txt"); err == nil {
+ t.Fatal("expected error for missing file")
+ }
+}
+
+func TestOpenIO_Errors(t *testing.T) {
+ // Non-existent infile
+ if _, _, _, _, err := openIO("/definitely/missing/file.txt", ""); err == nil {
+ t.Fatal("expected infile error")
+ }
+ // Outfile in missing dir
+ dir := t.TempDir()
+ out := filepath.Join(dir, "nope", "x.txt")
+ if _, _, _, _, err := openIO("", out); err == nil {
+ t.Fatal("expected outfile error")
+ }
+}
diff --git a/docs/configuration.md b/docs/configuration.md
index 3fbb1dc..dc4adbd 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -30,23 +30,30 @@ API keys:
Selecting a provider
- Sectioned: set `[provider] name = "openai" | "copilot" | "ollama"`.
-- Flat: set `provider = "openai" | "copilot" | "ollama"`.
- If omitted, Hexai defaults to `openai`.
-Provider-specific options
-
-- See [config.toml.example](../config.toml.example) for the per-provider tables and defaults.
-
-Notes:
+Notes on Ollama:
- Ensure the model is available locally (e.g., `ollama pull qwen3-coder:30b-a3b-q4_K_M`).
- Alternatively, run Ollama in OpenAI‑compatible mode and use the OpenAI provider with
`openai_base_url` pointed at your local endpoint.
-LSP completion tuning
-
-- See the [completion] section in [config.toml.example](../config.toml.example).
-
-Temperature behavior
-
-- Defaults and recommended ranges are commented inline in [config.toml.example](../config.toml.example) under [general] and provider tables.
+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-action` and replace it with the output.
+ - Example: `C-a = ":pipe hexai-action"`
+- Default behavior:
+ - Inline TUI when run in a real terminal (TTY).
+ - When invoked via Helix `:pipe` and a tmux session is available, `hexai-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` force tmux-pane mode.
+ - `--no-tmux` disable tmux mode even if available.
+ - `--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/docs/coverage.html b/docs/coverage.html
index 6b80630..2003a0d 100644
--- a/docs/coverage.html
+++ b/docs/coverage.html
@@ -59,19 +59,19 @@
<option value="file1">codeberg.org/snonux/hexai/cmd/hexai/main.go (71.4%)</option>
- <option value="file2">codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go (0.0%)</option>
+ <option value="file2">codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go (69.3%)</option>
<option value="file3">codeberg.org/snonux/hexai/internal/appconfig/config.go (91.6%)</option>
<option value="file4">codeberg.org/snonux/hexai/internal/hexaiaction/parse.go (92.6%)</option>
- <option value="file5">codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go (81.1%)</option>
+ <option value="file5">codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go (91.9%)</option>
- <option value="file6">codeberg.org/snonux/hexai/internal/hexaiaction/run.go (33.3%)</option>
+ <option value="file6">codeberg.org/snonux/hexai/internal/hexaiaction/run.go (48.7%)</option>
- <option value="file7">codeberg.org/snonux/hexai/internal/hexaiaction/tui.go (47.3%)</option>
+ <option value="file7">codeberg.org/snonux/hexai/internal/hexaiaction/tui.go (65.5%)</option>
- <option value="file8">codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go (91.7%)</option>
+ <option value="file8">codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go (100.0%)</option>
<option value="file9">codeberg.org/snonux/hexai/internal/hexaicli/run.go (78.8%)</option>
@@ -119,6 +119,8 @@
<option value="file31">codeberg.org/snonux/hexai/internal/textutil/textutil.go (89.0%)</option>
+ <option value="file32">codeberg.org/snonux/hexai/internal/tmux/tmux.go (88.6%)</option>
+
</select>
</div>
<div id="legend">
@@ -198,18 +200,240 @@ func main() <span class="cov8" title="1">{
import (
"context"
+ "flag"
"fmt"
+ "io"
"os"
+ "path/filepath"
+ "time"
"codeberg.org/snonux/hexai/internal/hexaiaction"
+ "codeberg.org/snonux/hexai/internal/tmux"
+ "golang.org/x/term"
)
func main() <span class="cov0" title="0">{
- if err := hexaiaction.Run(context.Background(), os.Stdin, os.Stdout, os.Stderr); err != nil </span><span class="cov0" title="0">{
+ infile := flag.String("infile", "", "Read input from this file instead of stdin")
+ outfile := flag.String("outfile", "", "Write output to this file instead of stdout")
+ // Tmux/UI flags
+ forceTmux := flag.Bool("tmux", false, "Force running the UI in a tmux split-pane (auto if not set)")
+ noTmux := flag.Bool("no-tmux", false, "Disable tmux mode even if available")
+ 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()
+
+ // Child mode: run TUI and write atomically to -outfile
+ if *uiChild </span><span class="cov0" title="0">{
+ if err := runChild(*infile, *outfile); err != nil </span><span class="cov0" title="0">{
+ fmt.Fprintln(os.Stderr, err)
+ os.Exit(1)
+ }</span>
+ <span class="cov0" title="0">return</span>
+ }
+
+ // Parent mode: decide inline vs tmux
+ <span class="cov0" title="0">if shouldRunInTmux(*forceTmux, *noTmux) </span><span class="cov0" title="0">{
+ if err := runInTmuxParent(*tmuxTarget, *tmuxSplit, *tmuxPercent); err != nil </span><span class="cov0" title="0">{
+ fmt.Fprintln(os.Stderr, err)
+ os.Exit(1)
+ }</span>
+ <span class="cov0" title="0">return</span>
+ }
+
+ // Inline path: only if we have a TTY for UI; otherwise echo input
+ <span class="cov0" title="0">if isTTY(os.Stdout.Fd()) &amp;&amp; isTTY(os.Stdin.Fd()) </span><span class="cov0" title="0">{
+ in, out, closeIn, closeOut, err := openIO(*infile, *outfile)
+ if err != nil </span><span class="cov0" title="0">{
+ fmt.Fprintln(os.Stderr, err)
+ os.Exit(1)
+ }</span>
+ <span class="cov0" title="0">defer closeIn()
+ defer closeOut()
+ if err := hexaiactionRun(context.Background(), in, out, os.Stderr); err != nil </span><span class="cov0" title="0">{
+ fmt.Fprintln(os.Stderr, err)
+ os.Exit(1)
+ }</span>
+ <span class="cov0" title="0">return</span>
+ }
+
+ // Fallback: no TTY and tmux not available; echo input to output
+ <span class="cov0" title="0">if err := echoThrough(*infile, *outfile); err != nil </span><span class="cov0" title="0">{
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}</span>
}
+
+// openIO returns readers/writers for infile/outfile flags with deferred closers.
+func openIO(infile, outfile string) (io.Reader, io.Writer, func(), func(), error) <span class="cov10" title="6">{
+ in := io.Reader(os.Stdin)
+ out := io.Writer(os.Stdout)
+ closeIn := func() </span>{<span class="cov0" title="0">}</span>
+ <span class="cov10" title="6">closeOut := func() </span>{<span class="cov1" title="1">}</span>
+
+ <span class="cov10" title="6">if path := infile; path != "" </span><span class="cov9" title="5">{
+ f, err := os.Open(path)
+ if err != nil </span><span class="cov1" title="1">{
+ return nil, nil, func() </span>{<span class="cov0" title="0">}</span>, func() {<span class="cov0" title="0">}</span>, fmt.Errorf("hexai-action: cannot open infile: %w", err)
+ }
+ <span class="cov7" title="4">in = f
+ closeIn = func() </span><span class="cov7" title="4">{ _ = f.Close() }</span>
+ }
+ <span class="cov9" title="5">if path := outfile; path != "" </span><span class="cov7" title="4">{
+ f, err := os.Create(path)
+ if err != nil </span><span class="cov1" title="1">{
+ return nil, nil, func() </span>{<span class="cov0" title="0">}</span>, func() {<span class="cov0" title="0">}</span>, fmt.Errorf("hexai-action: cannot open outfile: %w", err)
+ }
+ <span class="cov6" title="3">out = f
+ closeOut = func() </span><span class="cov6" title="3">{ _ = f.Close() }</span>
+ }
+ <span class="cov7" title="4">return in, out, closeIn, closeOut, nil</span>
+}
+
+// runChild runs the interactive flow and writes the final output atomically to outfile.
+var hexaiactionRun = hexaiaction.Run
+
+func runChild(infile, outfile string) error <span class="cov6" title="3">{
+ if outfile == "" </span><span class="cov1" title="1">{
+ // No atomic handoff needed; just run normally to stdout
+ in, out, closeIn, closeOut, err := openIO(infile, "")
+ if err != nil </span><span class="cov0" title="0">{
+ return err
+ }</span>
+ <span class="cov1" title="1">defer closeIn()
+ defer closeOut()
+ return hexaiactionRun(context.Background(), in, out, os.Stderr)</span>
+ }
+ <span class="cov4" title="2">tmp := outfile + ".tmp"
+ in, out, closeIn, closeOut, err := openIO(infile, tmp)
+ if err != nil </span><span class="cov0" title="0">{
+ return err
+ }</span>
+ <span class="cov4" title="2">defer closeIn()
+ if err := hexaiactionRun(context.Background(), in, out, os.Stderr); err != nil </span><span class="cov1" title="1">{
+ // On error, try to echo input to tmp to avoid blocking
+ closeOut()
+ if copyErr := echoThrough(infile, tmp); copyErr != nil </span><span class="cov0" title="0">{
+ return fmt.Errorf("hexai-action child: %v; echo failed: %v", err, copyErr)
+ }</span>
+ } else<span class="cov1" title="1"> {
+ closeOut()
+ }</span>
+ <span class="cov4" title="2">return os.Rename(tmp, outfile)</span>
+}
+
+var isTTYFn = isTTY
+var tmuxAvailableFn = tmux.Available
+var splitRunFn = tmux.SplitRun
+var osExecutableFn = os.Executable
+
+func shouldRunInTmux(forceTmux, noTmux bool) bool <span class="cov9" title="5">{
+ if noTmux </span><span class="cov1" title="1">{
+ return false
+ }</span>
+ <span class="cov7" title="4">if forceTmux </span><span class="cov1" title="1">{
+ return true
+ }</span>
+ // Auto: prefer tmux when stdio are not TTYs (Helix :pipe scenario)
+ <span class="cov6" title="3">if !(isTTYFn(os.Stdin.Fd()) &amp;&amp; isTTYFn(os.Stdout.Fd())) &amp;&amp; tmuxAvailableFn() </span><span class="cov1" title="1">{
+ return true
+ }</span>
+ <span class="cov4" title="2">return false</span>
+}
+
+func isTTY(fd uintptr) bool <span class="cov0" title="0">{ return term.IsTerminal(int(fd)) }</span>
+
+func runInTmuxParent(target, split string, percent int) error <span class="cov6" title="3">{
+ // Prepare temp files
+ dir, err := os.MkdirTemp("", "hexai-action-")
+ if err != nil </span><span class="cov0" title="0">{
+ return err
+ }</span>
+ <span class="cov6" title="3">defer func() </span><span class="cov6" title="3">{ _ = os.RemoveAll(dir) }</span>()
+ <span class="cov6" title="3">inPath := filepath.Join(dir, "input.txt")
+ outPath := filepath.Join(dir, "reply.txt")
+ // Read stdin and persist to inPath
+ if err := persistStdin(inPath); err != nil </span><span class="cov0" title="0">{
+ return err
+ }</span>
+ // Build child argv
+ <span class="cov6" title="3">exe, err := osExecutableFn()
+ if err != nil </span><span class="cov1" title="1">{
+ return err
+ }</span>
+ <span class="cov4" title="2">argv := []string{exe, "-ui-child", "-infile", inPath, "-outfile", outPath}
+ // Spawn tmux split
+ opts := tmux.SplitOpts{Target: target, Vertical: split != "h", Percent: percent}
+ if err := splitRunFn(opts, argv); err != nil </span><span class="cov1" title="1">{
+ return err
+ }</span>
+ // Wait for outfile to appear
+ <span class="cov1" title="1">if err := waitForFile(outPath, 60*time.Second); err != nil </span><span class="cov0" title="0">{
+ return err
+ }</span>
+ // Print to stdout
+ <span class="cov1" title="1">return catFileToStdout(outPath)</span>
+}
+
+func persistStdin(path string) error <span class="cov9" title="5">{
+ f, err := os.Create(path)
+ if err != nil </span><span class="cov1" title="1">{
+ return err
+ }</span>
+ <span class="cov7" title="4">defer func() </span><span class="cov7" title="4">{ _ = f.Close() }</span>()
+ <span class="cov7" title="4">if _, err := io.Copy(f, os.Stdin); err != nil </span><span class="cov0" title="0">{
+ return err
+ }</span>
+ <span class="cov7" title="4">return f.Sync()</span>
+}
+
+func waitForFile(path string, timeout time.Duration) error <span class="cov6" title="3">{
+ deadline := time.Now().Add(timeout)
+ for </span><span class="cov9" title="5">{
+ if _, err := os.Stat(path); err == nil </span><span class="cov4" title="2">{
+ return nil
+ }</span>
+ <span class="cov6" title="3">if time.Now().After(deadline) </span><span class="cov1" title="1">{
+ return fmt.Errorf("hexai-action: timeout waiting for reply file")
+ }</span>
+ <span class="cov4" title="2">time.Sleep(200 * time.Millisecond)</span>
+ }
+}
+
+func catFileToStdout(path string) error <span class="cov6" title="3">{
+ f, err := os.Open(path)
+ if err != nil </span><span class="cov1" title="1">{
+ return err
+ }</span>
+ <span class="cov4" title="2">defer func() </span><span class="cov4" title="2">{ _ = f.Close() }</span>()
+ <span class="cov4" title="2">_, err = io.Copy(os.Stdout, f)
+ return err</span>
+}
+
+func echoThrough(infile, outfile string) error <span class="cov7" title="4">{
+ // Read from infile or stdin and write to outfile or stdout
+ var in io.Reader = os.Stdin
+ var out io.Writer = os.Stdout
+ if infile != "" </span><span class="cov6" title="3">{
+ f, err := os.Open(infile)
+ if err != nil </span><span class="cov0" title="0">{
+ return err
+ }</span>
+ <span class="cov6" title="3">defer func() </span><span class="cov6" title="3">{ _ = f.Close() }</span>()
+ <span class="cov6" title="3">in = f</span>
+ }
+ <span class="cov7" title="4">if outfile != "" </span><span class="cov6" title="3">{
+ f, err := os.Create(outfile)
+ if err != nil </span><span class="cov1" title="1">{
+ return err
+ }</span>
+ <span class="cov4" title="2">defer func() </span><span class="cov4" title="2">{ _ = f.Close() }</span>()
+ <span class="cov4" title="2">out = f</span>
+ }
+ <span class="cov6" title="3">_, err := io.Copy(out, in)
+ return err</span>
+}
</pre>
<pre class="file" id="file3" style="display: none">// Summary: Application configuration model and loader; reads ~/.config/hexai/config.toml and merges defaults.
@@ -300,7 +524,7 @@ type App struct {
}
// Constructor: defaults for App (kept first among functions)
-func newDefaultConfig() App <span class="cov5" title="13">{
+func newDefaultConfig() App <span class="cov5" title="14">{
// Coding-friendly default temperature across providers
// Users can override per provider in config.toml (including 0.0).
t := 0.2
@@ -351,17 +575,17 @@ func newDefaultConfig() App <span class="cov5" title="13">{
// Load reads configuration from a file and merges with defaults.
// It respects the XDG Base Directory Specification.
-func Load(logger *log.Logger) App <span class="cov5" title="12">{
+func Load(logger *log.Logger) App <span class="cov5" title="13">{
cfg := newDefaultConfig()
if logger == nil </span><span class="cov3" title="4">{
return cfg // Return defaults if no logger is provided (e.g. in tests)
}</span>
- <span class="cov4" title="8">configPath, err := getConfigPath()
+ <span class="cov4" title="9">configPath, err := getConfigPath()
if err != nil </span><span class="cov0" title="0">{
logger.Printf("%v", err)
// Even if config path cannot be resolved, still allow env overrides below.
- }</span> else<span class="cov4" title="8"> {
+ }</span> else<span class="cov4" title="9"> {
if fileCfg, err := loadFromFile(configPath, logger); err == nil &amp;&amp; fileCfg != nil </span><span class="cov3" title="4">{
cfg.mergeWith(fileCfg)
}</span>
@@ -370,10 +594,10 @@ func Load(logger *log.Logger) App <span class="cov5" title="12">{
}
// Environment overrides (take precedence over file)
- <span class="cov4" title="8">if envCfg := loadFromEnv(logger); envCfg != nil </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if envCfg := loadFromEnv(logger); envCfg != nil </span><span class="cov1" title="1">{
cfg.mergeWith(envCfg)
}</span>
- <span class="cov4" title="8">return cfg</span>
+ <span class="cov4" title="9">return cfg</span>
}
// Private helpers
@@ -644,13 +868,13 @@ func (fc *fileConfig) toApp() App <span class="cov3" title="4">{
<span class="cov3" title="4">return out</span>
}
-func loadFromFile(path string, logger *log.Logger) (*App, error) <span class="cov4" title="9">{
+func loadFromFile(path string, logger *log.Logger) (*App, error) <span class="cov4" title="10">{
b, err := os.ReadFile(path)
- if err != nil </span><span class="cov2" title="3">{
+ if err != nil </span><span class="cov3" title="4">{
if !os.IsNotExist(err) &amp;&amp; logger != nil </span><span class="cov0" title="0">{
logger.Printf("cannot open TOML config file %s: %v", path, err)
}</span>
- <span class="cov2" title="3">return nil, err</span>
+ <span class="cov3" title="4">return nil, err</span>
}
<span class="cov4" title="6">var tables fileConfig
@@ -868,33 +1092,33 @@ func (a *App) mergeProviderFields(other *App) <span class="cov5" title="14">{
}</span>
}
-func getConfigPath() (string, error) <span class="cov4" title="9">{
+func getConfigPath() (string, error) <span class="cov4" title="10">{
var configPath string
if xdgConfigHome := os.Getenv("XDG_CONFIG_HOME"); xdgConfigHome != "" </span><span class="cov4" title="7">{
configPath = filepath.Join(xdgConfigHome, "hexai", "config.toml")
- }</span> else<span class="cov2" title="2"> {
+ }</span> else<span class="cov2" title="3"> {
home, err := os.UserHomeDir()
if err != nil </span><span class="cov0" title="0">{
return "", fmt.Errorf("cannot find user home directory: %v", err)
}</span>
- <span class="cov2" title="2">configPath = filepath.Join(home, ".config", "hexai", "config.toml")</span>
+ <span class="cov2" title="3">configPath = filepath.Join(home, ".config", "hexai", "config.toml")</span>
}
- <span class="cov4" title="9">return configPath, nil</span>
+ <span class="cov4" title="10">return configPath, nil</span>
}
// --- Environment overrides ---
// loadFromEnv constructs an App containing only fields set via HEXAI_* env vars.
// These values should take precedence over file config when merged.
-func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="8">{
+func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="9">{
var out App
var any bool
// helpers
- getenv := func(k string) string </span><span class="cov10" title="192">{ return strings.TrimSpace(os.Getenv(k)) }</span>
- <span class="cov4" title="8">parseInt := func(k string) (int, bool) </span><span class="cov7" title="56">{
+ getenv := func(k string) string </span><span class="cov10" title="216">{ return strings.TrimSpace(os.Getenv(k)) }</span>
+ <span class="cov4" title="9">parseInt := func(k string) (int, bool) </span><span class="cov7" title="63">{
v := getenv(k)
- if v == "" </span><span class="cov7" title="49">{
+ if v == "" </span><span class="cov7" title="56">{
return 0, false
}</span>
<span class="cov4" title="7">n, err := strconv.Atoi(v)
@@ -906,9 +1130,9 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="8">{
}
<span class="cov4" title="7">return n, true</span>
}
- <span class="cov4" title="8">parseFloatPtr := func(k string) (*float64, bool) </span><span class="cov6" title="32">{
+ <span class="cov4" title="9">parseFloatPtr := func(k string) (*float64, bool) </span><span class="cov7" title="36">{
v := getenv(k)
- if v == "" </span><span class="cov6" title="28">{
+ if v == "" </span><span class="cov6" title="32">{
return nil, false
}</span>
<span class="cov3" title="4">f, err := strconv.ParseFloat(v, 64)
@@ -921,43 +1145,43 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="8">{
<span class="cov3" title="4">return &amp;f, true</span>
}
- <span class="cov4" title="8">if n, ok := parseInt("HEXAI_MAX_TOKENS"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if n, ok := parseInt("HEXAI_MAX_TOKENS"); ok </span><span class="cov1" title="1">{
out.MaxTokens = n
any = true
}</span>
- <span class="cov4" title="8">if s := getenv("HEXAI_CONTEXT_MODE"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if s := getenv("HEXAI_CONTEXT_MODE"); s != "" </span><span class="cov1" title="1">{
out.ContextMode = s
any = true
}</span>
- <span class="cov4" title="8">if n, ok := parseInt("HEXAI_CONTEXT_WINDOW_LINES"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if n, ok := parseInt("HEXAI_CONTEXT_WINDOW_LINES"); ok </span><span class="cov1" title="1">{
out.ContextWindowLines = n
any = true
}</span>
- <span class="cov4" title="8">if n, ok := parseInt("HEXAI_MAX_CONTEXT_TOKENS"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if n, ok := parseInt("HEXAI_MAX_CONTEXT_TOKENS"); ok </span><span class="cov1" title="1">{
out.MaxContextTokens = n
any = true
}</span>
- <span class="cov4" title="8">if n, ok := parseInt("HEXAI_LOG_PREVIEW_LIMIT"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if n, ok := parseInt("HEXAI_LOG_PREVIEW_LIMIT"); ok </span><span class="cov1" title="1">{
out.LogPreviewLimit = n
any = true
}</span>
- <span class="cov4" title="8">if n, ok := parseInt("HEXAI_MANUAL_INVOKE_MIN_PREFIX"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if n, ok := parseInt("HEXAI_MANUAL_INVOKE_MIN_PREFIX"); ok </span><span class="cov1" title="1">{
out.ManualInvokeMinPrefix = n
any = true
}</span>
- <span class="cov4" title="8">if n, ok := parseInt("HEXAI_COMPLETION_DEBOUNCE_MS"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if n, ok := parseInt("HEXAI_COMPLETION_DEBOUNCE_MS"); ok </span><span class="cov1" title="1">{
out.CompletionDebounceMs = n
any = true
}</span>
- <span class="cov4" title="8">if n, ok := parseInt("HEXAI_COMPLETION_THROTTLE_MS"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if n, ok := parseInt("HEXAI_COMPLETION_THROTTLE_MS"); ok </span><span class="cov1" title="1">{
out.CompletionThrottleMs = n
any = true
}</span>
- <span class="cov4" title="8">if f, ok := parseFloatPtr("HEXAI_CODING_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if f, ok := parseFloatPtr("HEXAI_CODING_TEMPERATURE"); ok </span><span class="cov1" title="1">{
out.CodingTemperature = f
any = true
}</span>
- <span class="cov4" title="8">if s := getenv("HEXAI_TRIGGER_CHARACTERS"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if s := getenv("HEXAI_TRIGGER_CHARACTERS"); s != "" </span><span class="cov1" title="1">{
parts := strings.Split(s, ",")
out.TriggerCharacters = nil
for _, p := range parts </span><span class="cov2" title="3">{
@@ -967,19 +1191,19 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="8">{
}
<span class="cov1" title="1">any = true</span>
}
- <span class="cov4" title="8">if s := getenv("HEXAI_INLINE_OPEN"); s != "" </span><span class="cov0" title="0">{
+ <span class="cov4" title="9">if s := getenv("HEXAI_INLINE_OPEN"); s != "" </span><span class="cov0" title="0">{
out.InlineOpen = s
any = true
}</span>
- <span class="cov4" title="8">if s := getenv("HEXAI_INLINE_CLOSE"); s != "" </span><span class="cov0" title="0">{
+ <span class="cov4" title="9">if s := getenv("HEXAI_INLINE_CLOSE"); s != "" </span><span class="cov0" title="0">{
out.InlineClose = s
any = true
}</span>
- <span class="cov4" title="8">if s := getenv("HEXAI_CHAT_SUFFIX"); s != "" </span><span class="cov0" title="0">{
+ <span class="cov4" title="9">if s := getenv("HEXAI_CHAT_SUFFIX"); s != "" </span><span class="cov0" title="0">{
out.ChatSuffix = s
any = true
}</span>
- <span class="cov4" title="8">if s := getenv("HEXAI_CHAT_PREFIXES"); s != "" </span><span class="cov0" title="0">{
+ <span class="cov4" title="9">if s := getenv("HEXAI_CHAT_PREFIXES"); s != "" </span><span class="cov0" title="0">{
parts := strings.Split(s, ",")
out.ChatPrefixes = nil
for _, p := range parts </span><span class="cov0" title="0">{
@@ -989,52 +1213,52 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="8">{
}
<span class="cov0" title="0">any = true</span>
}
- <span class="cov4" title="8">if s := getenv("HEXAI_PROVIDER"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if s := getenv("HEXAI_PROVIDER"); s != "" </span><span class="cov1" title="1">{
out.Provider = s
any = true
}</span>
// Provider-specific
- <span class="cov4" title="8">if s := getenv("HEXAI_OPENAI_BASE_URL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if s := getenv("HEXAI_OPENAI_BASE_URL"); s != "" </span><span class="cov1" title="1">{
out.OpenAIBaseURL = s
any = true
}</span>
- <span class="cov4" title="8">if s := getenv("HEXAI_OPENAI_MODEL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if s := getenv("HEXAI_OPENAI_MODEL"); s != "" </span><span class="cov1" title="1">{
out.OpenAIModel = s
any = true
}</span>
- <span class="cov4" title="8">if f, ok := parseFloatPtr("HEXAI_OPENAI_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if f, ok := parseFloatPtr("HEXAI_OPENAI_TEMPERATURE"); ok </span><span class="cov1" title="1">{
out.OpenAITemperature = f
any = true
}</span>
- <span class="cov4" title="8">if s := getenv("HEXAI_OLLAMA_BASE_URL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if s := getenv("HEXAI_OLLAMA_BASE_URL"); s != "" </span><span class="cov1" title="1">{
out.OllamaBaseURL = s
any = true
}</span>
- <span class="cov4" title="8">if s := getenv("HEXAI_OLLAMA_MODEL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if s := getenv("HEXAI_OLLAMA_MODEL"); s != "" </span><span class="cov1" title="1">{
out.OllamaModel = s
any = true
}</span>
- <span class="cov4" title="8">if f, ok := parseFloatPtr("HEXAI_OLLAMA_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if f, ok := parseFloatPtr("HEXAI_OLLAMA_TEMPERATURE"); ok </span><span class="cov1" title="1">{
out.OllamaTemperature = f
any = true
}</span>
- <span class="cov4" title="8">if s := getenv("HEXAI_COPILOT_BASE_URL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if s := getenv("HEXAI_COPILOT_BASE_URL"); s != "" </span><span class="cov1" title="1">{
out.CopilotBaseURL = s
any = true
}</span>
- <span class="cov4" title="8">if s := getenv("HEXAI_COPILOT_MODEL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if s := getenv("HEXAI_COPILOT_MODEL"); s != "" </span><span class="cov1" title="1">{
out.CopilotModel = s
any = true
}</span>
- <span class="cov4" title="8">if f, ok := parseFloatPtr("HEXAI_COPILOT_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="9">if f, ok := parseFloatPtr("HEXAI_COPILOT_TEMPERATURE"); ok </span><span class="cov1" title="1">{
out.CopilotTemperature = f
any = true
}</span>
- <span class="cov4" title="8">if !any </span><span class="cov4" title="7">{
+ <span class="cov4" title="9">if !any </span><span class="cov4" title="8">{
return nil
}</span>
<span class="cov1" title="1">return &amp;out</span>
@@ -1125,16 +1349,16 @@ import (
)
// Render performs simple {{var}} replacement like LSP.
-func Render(t string, vars map[string]string) string <span class="cov10" title="8">{ return textutil.RenderTemplate(t, vars) }</span>
+func Render(t string, vars map[string]string) string <span class="cov9" title="8">{ return textutil.RenderTemplate(t, vars) }</span>
// StripFences removes surrounding markdown code fences.
-func StripFences(s string) string <span class="cov10" title="8">{ return textutil.StripCodeFences(s) }</span>
+func StripFences(s string) string <span class="cov10" title="9">{ return textutil.StripCodeFences(s) }</span>
type chatDoer interface {
Chat(ctx context.Context, msgs []llm.Message, opts ...llm.RequestOption) (string, error)
}
-func runRewrite(ctx context.Context, cfg appconfig.App, client chatDoer, instruction, selection string) (string, error) <span class="cov4" title="2">{
+func runRewrite(ctx context.Context, cfg appconfig.App, client chatDoer, instruction, selection string) (string, error) <span class="cov3" title="2">{
sys := cfg.PromptCodeActionRewriteSystem
user := Render(cfg.PromptCodeActionRewriteUser, map[string]string{"instruction": instruction, "selection": selection})
return runOnceWithOpts(ctx, client, sys, user, reqOptsFrom(cfg))
@@ -1142,11 +1366,11 @@ func runRewrite(ctx context.Context, cfg appconfig.App, client chatDoer, instruc
func runDiagnostics(ctx context.Context, cfg appconfig.App, client chatDoer, diags []string, selection string) (string, error) <span class="cov1" title="1">{
var b strings.Builder
- for i, d := range diags </span><span class="cov4" title="2">{
+ for i, d := range diags </span><span class="cov3" title="2">{
if strings.TrimSpace(d) == "" </span><span class="cov0" title="0">{
continue</span>
}
- <span class="cov4" title="2">b.WriteString(strings.TrimSpace(d))
+ <span class="cov3" title="2">b.WriteString(strings.TrimSpace(d))
if i &lt; len(diags)-1 </span><span class="cov1" title="1">{
b.WriteString("\n")
}</span>
@@ -1156,47 +1380,47 @@ func runDiagnostics(ctx context.Context, cfg appconfig.App, client chatDoer, dia
return runOnceWithOpts(ctx, client, sys, user, reqOptsFrom(cfg))</span>
}
-func runDocument(ctx context.Context, cfg appconfig.App, client chatDoer, selection string) (string, error) <span class="cov4" title="2">{
+func runDocument(ctx context.Context, cfg appconfig.App, client chatDoer, selection string) (string, error) <span class="cov3" title="2">{
sys := cfg.PromptCodeActionDocumentSystem
user := Render(cfg.PromptCodeActionDocumentUser, map[string]string{"selection": selection})
return runOnceWithOpts(ctx, client, sys, user, reqOptsFrom(cfg))
}</span>
-func runGoTest(ctx context.Context, cfg appconfig.App, client chatDoer, funcCode string) (string, error) <span class="cov4" title="2">{
+func runGoTest(ctx context.Context, cfg appconfig.App, client chatDoer, funcCode string) (string, error) <span class="cov3" title="2">{
sys := cfg.PromptCodeActionGoTestSystem
user := Render(cfg.PromptCodeActionGoTestUser, map[string]string{"function": funcCode})
return runOnceWithOpts(ctx, client, sys, user, reqOptsFrom(cfg))
}</span>
-func runOnce(ctx context.Context, client chatDoer, sys, user string) (string, error) <span class="cov0" title="0">{
+func runOnce(ctx context.Context, client chatDoer, sys, user string) (string, error) <span class="cov1" title="1">{
msgs := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
txt, err := client.Chat(ctx, msgs)
if err != nil </span><span class="cov0" title="0">{
return "", err
}</span>
- <span class="cov0" title="0">return strings.TrimSpace(StripFences(txt)), nil</span>
+ <span class="cov1" title="1">return strings.TrimSpace(StripFences(txt)), nil</span>
}
-func runOnceWithOpts(ctx context.Context, client chatDoer, sys, user string, opts []llm.RequestOption) (string, error) <span class="cov9" title="7">{
+func runOnceWithOpts(ctx context.Context, client chatDoer, sys, user string, opts []llm.RequestOption) (string, error) <span class="cov8" title="7">{
msgs := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
txt, err := client.Chat(ctx, msgs, opts...)
if err != nil </span><span class="cov0" title="0">{
return "", err
}</span>
- <span class="cov9" title="7">return strings.TrimSpace(StripFences(txt)), nil</span>
+ <span class="cov8" title="7">return strings.TrimSpace(StripFences(txt)), nil</span>
}
// reqOptsFrom builds LLM request options similar to LSP behavior.
-func reqOptsFrom(cfg appconfig.App) []llm.RequestOption <span class="cov9" title="7">{
+func reqOptsFrom(cfg appconfig.App) []llm.RequestOption <span class="cov8" title="7">{
opts := []llm.RequestOption{llm.WithMaxTokens(cfg.MaxTokens)}
if cfg.CodingTemperature != nil </span><span class="cov5" title="3">{
opts = append(opts, llm.WithTemperature(*cfg.CodingTemperature))
}</span>
- <span class="cov9" title="7">return opts</span>
+ <span class="cov8" title="7">return opts</span>
}
// Timeout helpers to mirror LSP behavior.
-func timeout10s(parent context.Context) (context.Context, context.CancelFunc) <span class="cov4" title="2">{
+func timeout10s(parent context.Context) (context.Context, context.CancelFunc) <span class="cov3" title="2">{
return context.WithTimeout(parent, 10*time.Second)
}</span>
@@ -1220,11 +1444,11 @@ import (
)
// Run executes the hexai-action command flow.
-func Run(ctx context.Context, stdin io.Reader, stdout, stderr io.Writer) error <span class="cov0" title="0">{
+func Run(ctx context.Context, stdin io.Reader, stdout, stderr io.Writer) error <span class="cov1" title="1">{
logger := log.New(stderr, "hexai-action ", log.LstdFlags|log.Lmsgprefix)
cfg := appconfig.Load(logger)
client, err := llmutils.NewClientFromApp(cfg)
- if err != nil </span><span class="cov0" title="0">{
+ if err != nil </span><span class="cov1" title="1">{
fmt.Fprintf(stderr, logging.AnsiBase+"hexai-action: LLM disabled: %v"+logging.AnsiReset+"\n", err)
return err
}</span>
@@ -1298,9 +1522,9 @@ type item struct {
hotkey rune
}
-func (i item) Title() string <span class="cov0" title="0">{ return i.title }</span>
-func (i item) Description() string <span class="cov0" title="0">{ return i.desc }</span>
-func (i item) FilterValue() string <span class="cov1" title="1">{ return i.title }</span>
+func (i item) Title() string <span class="cov1" title="1">{ return i.title }</span>
+func (i item) Description() string <span class="cov1" title="1">{ return i.desc }</span>
+func (i item) FilterValue() string <span class="cov8" title="3">{ return i.title }</span>
type model struct {
list list.Model
@@ -1308,7 +1532,7 @@ type model struct {
done bool
}
-func newModel() model <span class="cov10" title="3">{
+func newModel() model <span class="cov10" title="4">{
items := []list.Item{
item{title: "Rewrite selection", desc: "", kind: ActionRewrite, hotkey: 'r'},
item{title: "Document code", desc: "", kind: ActionDocument, hotkey: 'c'},
@@ -1323,21 +1547,21 @@ func newModel() model <span class="cov10" title="3">{
return model{list: l}
}</span>
-func (m model) Init() tea.Cmd <span class="cov0" title="0">{ return nil }</span>
+func (m model) Init() tea.Cmd <span class="cov1" title="1">{ return nil }</span>
-func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) <span class="cov0" title="0">{
+func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) <span class="cov1" title="1">{
switch msg := msg.(type) </span>{
case tea.KeyMsg:<span class="cov0" title="0">
return handleKey(m, msg)</span>
- case tea.WindowSizeMsg:<span class="cov0" title="0">
+ case tea.WindowSizeMsg:<span class="cov1" title="1">
m.list.SetSize(msg.Width, msg.Height)</span>
}
- <span class="cov0" title="0">var cmd tea.Cmd
+ <span class="cov1" title="1">var cmd tea.Cmd
m.list, cmd = m.list.Update(msg)
return m, cmd</span>
}
-func handleKey(m model, msg tea.KeyMsg) (tea.Model, tea.Cmd) <span class="cov10" title="3">{
+func handleKey(m model, msg tea.KeyMsg) (tea.Model, tea.Cmd) <span class="cov8" title="3">{
raw := msg.String()
low := strings.ToLower(raw)
switch low </span>{
@@ -1377,11 +1601,11 @@ func handleKey(m model, msg tea.KeyMsg) (tea.Model, tea.Cmd) <span class="cov10"
<span class="cov1" title="1">return m, nil</span>
}
-func (m model) View() string <span class="cov0" title="0">{
+func (m model) View() string <span class="cov1" title="1">{
if m.done </span><span class="cov0" title="0">{
return ""
}</span>
- <span class="cov0" title="0">return m.list.View()</span>
+ <span class="cov1" title="1">return m.list.View()</span>
}
// RunTUI returns the chosen ActionKind.
@@ -1420,21 +1644,21 @@ var (
cursorStyle = lipgloss.NewStyle().Bold(true)
)
-func (oneLineDelegate) Height() int <span class="cov8" title="10">{ return 1 }</span>
-func (oneLineDelegate) Spacing() int <span class="cov10" title="16">{ return 0 }</span>
-func (oneLineDelegate) Update(tea.Msg, *list.Model) tea.Cmd <span class="cov0" title="0">{ return nil }</span>
-func (oneLineDelegate) Render(w io.Writer, m list.Model, index int, listItem list.Item) <span class="cov1" title="1">{
+func (oneLineDelegate) Height() int <span class="cov8" title="14">{ return 1 }</span>
+func (oneLineDelegate) Spacing() int <span class="cov10" title="24">{ return 0 }</span>
+func (oneLineDelegate) Update(tea.Msg, *list.Model) tea.Cmd <span class="cov1" title="1">{ return nil }</span>
+func (oneLineDelegate) Render(w io.Writer, m list.Model, index int, listItem list.Item) <span class="cov2" title="2">{
title := listItem.FilterValue()
hk := '?'
- if it, ok := listItem.(item); ok </span><span class="cov1" title="1">{
+ if it, ok := listItem.(item); ok </span><span class="cov2" title="2">{
hk = it.hotkey
}</span>
- <span class="cov1" title="1">hot := hotStyle.Render(fmt.Sprintf(" (%c)", hk))
+ <span class="cov2" title="2">hot := hotStyle.Render(fmt.Sprintf(" (%c)", hk))
cursor := " "
- if index == m.Index() </span><span class="cov1" title="1">{
+ if index == m.Index() </span><span class="cov2" title="2">{
cursor = cursorStyle.Render("&gt; ")
}</span>
- <span class="cov1" title="1">fmt.Fprintf(w, "%s%s%s", cursor, title, hot)</span>
+ <span class="cov2" title="2">fmt.Fprintf(w, "%s%s%s", cursor, title, hot)</span>
}
</pre>
@@ -2736,14 +2960,14 @@ type Config struct {
// NewFromConfig creates an LLM client using only the supplied configuration.
// The OpenAI API key is supplied separately and may be read from the environment
// by the caller; other environment-based configuration is not used.
-func NewFromConfig(cfg Config, openAIAPIKey, copilotAPIKey string) (Client, error) <span class="cov8" title="18">{
+func NewFromConfig(cfg Config, openAIAPIKey, copilotAPIKey string) (Client, error) <span class="cov8" title="19">{
p := strings.ToLower(strings.TrimSpace(cfg.Provider))
- if p == "" </span><span class="cov6" title="7">{
+ if p == "" </span><span class="cov6" title="8">{
p = "openai"
}</span>
- <span class="cov8" title="18">switch p </span>{
- case "openai":<span class="cov7" title="11">
- if strings.TrimSpace(openAIAPIKey) == "" </span><span class="cov4" title="4">{
+ <span class="cov8" title="19">switch p </span>{
+ case "openai":<span class="cov7" title="12">
+ if strings.TrimSpace(openAIAPIKey) == "" </span><span class="cov5" title="5">{
return nil, errors.New("missing OPENAI_API_KEY for provider openai")
}</span>
// Set coding-friendly default temperature if none provided
@@ -2792,7 +3016,7 @@ import (
)
// NewClientFromApp builds an llm.Client using app config and environment keys.
-func NewClientFromApp(cfg appconfig.App) (llm.Client, error) <span class="cov10" title="5">{
+func NewClientFromApp(cfg appconfig.App) (llm.Client, error) <span class="cov10" title="6">{
llmCfg := llm.Config{
Provider: cfg.Provider,
OpenAIBaseURL: cfg.OpenAIBaseURL,
@@ -2806,14 +3030,14 @@ func NewClientFromApp(cfg appconfig.App) (llm.Client, error) <span class="cov10"
CopilotTemperature: cfg.CopilotTemperature,
}
oaKey := os.Getenv("HEXAI_OPENAI_API_KEY")
- if strings.TrimSpace(oaKey) == "" </span><span class="cov8" title="4">{
+ if strings.TrimSpace(oaKey) == "" </span><span class="cov9" title="5">{
oaKey = os.Getenv("OPENAI_API_KEY")
}</span>
- <span class="cov10" title="5">cpKey := os.Getenv("HEXAI_COPILOT_API_KEY")
- if strings.TrimSpace(cpKey) == "" </span><span class="cov10" title="5">{
+ <span class="cov10" title="6">cpKey := os.Getenv("HEXAI_COPILOT_API_KEY")
+ if strings.TrimSpace(cpKey) == "" </span><span class="cov10" title="6">{
cpKey = os.Getenv("COPILOT_API_KEY")
}</span>
- <span class="cov10" title="5">return llm.NewFromConfig(llmCfg, oaKey, cpKey)</span>
+ <span class="cov10" title="6">return llm.NewFromConfig(llmCfg, oaKey, cpKey)</span>
}
</pre>
@@ -5752,26 +5976,26 @@ func RenderTemplate(t string, vars map[string]string) string <span class="cov8"
}
// StripCodeFences removes surrounding Markdown triple-backtick fences.
-func StripCodeFences(s string) string <span class="cov8" title="49">{
+func StripCodeFences(s string) string <span class="cov8" title="50">{
t := strings.TrimSpace(s)
if t == "" </span><span class="cov0" title="0">{
return t
}</span>
- <span class="cov8" title="49">lines := strings.Split(t, "\n")
+ <span class="cov8" title="50">lines := strings.Split(t, "\n")
start := 0
for start &lt; len(lines) &amp;&amp; strings.TrimSpace(lines[start]) == "" </span><span class="cov0" title="0">{
start++
}</span>
- <span class="cov8" title="49">end := len(lines) - 1
+ <span class="cov8" title="50">end := len(lines) - 1
for end &gt;= 0 &amp;&amp; strings.TrimSpace(lines[end]) == "" </span><span class="cov0" title="0">{
end--
}</span>
- <span class="cov8" title="49">if start &gt;= len(lines) || end &lt; 0 || start &gt; end </span><span class="cov0" title="0">{
+ <span class="cov8" title="50">if start &gt;= len(lines) || end &lt; 0 || start &gt; end </span><span class="cov0" title="0">{
return t
}</span>
- <span class="cov8" title="49">first := strings.TrimSpace(lines[start])
+ <span class="cov8" title="50">first := strings.TrimSpace(lines[start])
last := strings.TrimSpace(lines[end])
- if strings.HasPrefix(first, "```") &amp;&amp; last == "```" &amp;&amp; end &gt; start </span><span class="cov6" title="19">{
+ if strings.HasPrefix(first, "```") &amp;&amp; last == "```" &amp;&amp; end &gt; start </span><span class="cov6" title="20">{
inner := strings.Join(lines[start+1:end], "\n")
return inner
}</span>
@@ -5851,6 +6075,93 @@ func FindStrictInlineTag(line string) (text string, left, right int, ok bool) <s
</pre>
+ <pre class="file" id="file32" style="display: none">package tmux
+
+import (
+ "os"
+ "os/exec"
+ "strconv"
+ "strings"
+)
+
+// Available reports whether tmux is available and we appear to be in a tmux session.
+func Available() bool <span class="cov2" title="2">{ return HasBinary() &amp;&amp; InSession() }</span>
+
+// HasBinary reports whether the tmux binary is on PATH.
+var lookPath = exec.LookPath
+var command = exec.Command
+
+func HasBinary() bool <span class="cov4" title="4">{ _, 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>
+
+// SplitOpts controls how a new pane is created for running a command.
+type SplitOpts struct {
+ Target string // optional pane target, e.g. ":."
+ Vertical bool // true =&gt; split vertically (-v); false =&gt; horizontally (-h)
+ Percent int // 1..100; 0 means use tmux default
+}
+
+// SplitRun splits the current tmux window and runs argv in the new pane.
+// It returns once tmux has launched the child process.
+func SplitRun(opts SplitOpts, argv []string) error <span class="cov1" title="1">{
+ if len(argv) == 0 </span><span class="cov0" title="0">{
+ return nil
+ }</span>
+ <span class="cov1" title="1">args := []string{"split-window"}
+ if opts.Vertical </span><span class="cov1" title="1">{
+ args = append(args, "-v")
+ }</span> else<span class="cov0" title="0"> {
+ args = append(args, "-h")
+ }</span>
+ <span class="cov1" title="1">if opts.Percent &gt; 0 &amp;&amp; opts.Percent &lt;= 100 </span><span class="cov1" title="1">{
+ args = append(args, "-p", strconv.Itoa(opts.Percent))
+ }</span>
+ <span class="cov1" title="1">if strings.TrimSpace(opts.Target) != "" </span><span class="cov1" title="1">{
+ args = append(args, "-t", opts.Target)
+ }</span>
+ // tmux takes a single command string. Use a conservative shell join.
+ <span class="cov1" title="1">cmdStr := shellJoin(argv)
+ args = append(args, cmdStr)
+ c := command("tmux", args...)
+ return c.Run()</span>
+}
+
+// shellJoin quotes argv elements for safe use in a single shell command string.
+// It avoids interpretation by wrapping in single quotes and escaping embedded single quotes.
+func shellJoin(argv []string) string <span class="cov1" title="1">{
+ out := make([]string, 0, len(argv))
+ for _, a := range argv </span><span class="cov4" title="4">{
+ if a == "" </span><span class="cov0" title="0">{
+ out = append(out, "''")
+ continue</span>
+ }
+ <span class="cov4" title="4">if isSafeBare(a) </span><span class="cov2" title="2">{
+ out = append(out, a)
+ continue</span>
+ }
+ // single-quote wrapping with escaped single quotes
+ // ' =&gt; '\'' (close, escaped quote, reopen)
+ <span class="cov2" title="2">esc := strings.ReplaceAll(a, "'", "'\\''")
+ out = append(out, "'"+esc+"'")</span>
+ }
+ <span class="cov1" title="1">return strings.Join(out, " ")</span>
+}
+
+// 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">{
+ 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>
+ }
+ <span class="cov2" title="2">return false</span>
+ }
+ <span class="cov2" title="2">return true</span>
+}
+</pre>
+
</div>
</body>
<script>
diff --git a/docs/coverage.out b/docs/coverage.out
index 36d1f38..59e9205 100644
--- a/docs/coverage.out
+++ b/docs/coverage.out
@@ -1,6 +1,4 @@
mode: atomic
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 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
@@ -9,8 +7,104 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 1
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 1
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/internal/hexai-action/main.go:11.13,12.94 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:17.13,30.14 10 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:30.14,31.53 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:31.53,34.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:35.3,35.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.2,39.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.42,40.80 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:40.80,43.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:44.3,44.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.2,48.51 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.51,50.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:50.17,53.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:54.3,56.88 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:56.88,59.10 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:60.9,60.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.2,64.55 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.55,67.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:71.83,74.20 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:74.21,74.22 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.2,75.21 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.22,75.23 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.2,77.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.32,79.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:79.17,80.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.29,80.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.40,80.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:82.3,83.20 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:83.20,83.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.2,85.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.33,87.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:87.17,88.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.29,88.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.40,88.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:90.3,91.21 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:91.21,91.38 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:93.2,93.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:99.45,100.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:100.19,103.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:103.17,105.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:106.3,108.72 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:110.2,112.16 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:112.16,114.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:115.2,116.84 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:116.84,119.64 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:119.64,121.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:122.8,124.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:125.2,125.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:133.51,134.12 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:134.12,136.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.2,137.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.15,139.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.5,141.82 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.82,143.6 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:144.2,144.14 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:147.29,147.64 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:149.63,152.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:152.16,154.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.2,155.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.15,155.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:156.2,159.45 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:159.45,161.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:163.2,164.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:164.16,166.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:167.2,170.47 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:170.47,172.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.2,174.61 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.61,176.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:178.2,178.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:181.38,183.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:183.16,185.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.2,186.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.15,186.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.2,187.48 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.48,189.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:190.2,190.17 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:193.60,195.6 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:195.6,196.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:196.42,198.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.3,199.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.33,201.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:202.3,202.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:206.41,208.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:208.16,210.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.2,211.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.15,211.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:212.2,213.12 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:216.48,220.18 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:220.18,222.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:222.17,224.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.3,225.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.16,225.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:226.3,226.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.2,228.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.19,230.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:230.17,232.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.3,233.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.16,233.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:234.3,234.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:236.2,237.12 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
@@ -1617,280 +1711,401 @@ 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/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/internal/tmux/tmux.go:11.23,11.60 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:32.20,34.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.8,40.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:59.14,61.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 1
+codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 1
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.104,24.3 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 6
-codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 5
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:17.13,30.14 10 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:30.14,31.53 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:31.53,34.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:35.3,35.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.2,39.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.42,40.80 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:40.80,43.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:44.3,44.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.2,48.51 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.51,50.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:50.17,53.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:54.3,56.88 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:56.88,59.10 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:60.9,60.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.2,64.55 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.55,67.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:71.83,74.20 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:74.21,74.22 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.2,75.21 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.22,75.23 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.2,77.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.32,79.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:79.17,80.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.29,80.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.40,80.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:82.3,83.20 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:83.20,83.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.2,85.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.33,87.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:87.17,88.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.29,88.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.40,88.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:90.3,91.21 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:91.21,91.38 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:93.2,93.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:99.45,100.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:100.19,103.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:103.17,105.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:106.3,108.72 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:110.2,112.16 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:112.16,114.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:115.2,116.84 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:116.84,119.64 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:119.64,121.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:122.8,124.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:125.2,125.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:133.51,134.12 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:134.12,136.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.2,137.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.15,139.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.5,141.82 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.82,143.6 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:144.2,144.14 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:147.29,147.64 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:149.63,152.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:152.16,154.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.2,155.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.15,155.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:156.2,159.45 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:159.45,161.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:163.2,164.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:164.16,166.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:167.2,170.47 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:170.47,172.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.2,174.61 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.61,176.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:178.2,178.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:181.38,183.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:183.16,185.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.2,186.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.15,186.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.2,187.48 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.48,189.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:190.2,190.17 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:193.60,195.6 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:195.6,196.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:196.42,198.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.3,199.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.33,201.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:202.3,202.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:206.41,208.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:208.16,210.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.2,211.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.15,211.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:212.2,213.12 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:216.48,220.18 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:220.18,222.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:222.17,224.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.3,225.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.16,225.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:226.3,226.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.2,228.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.19,230.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:230.17,232.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.3,233.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.16,233.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:234.3,234.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:236.2,237.12 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,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:386.2,386.53 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 6
-codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 27
-codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 27
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 6
-codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 6
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 6
-codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 120
-codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 35
-codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 28
-codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 20
-codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 16
-codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/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 0
@@ -3233,280 +3448,401 @@ 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/cmd/hexai/main.go:14.13,17.18 3 1
-codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:32.20,34.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.8,40.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:59.14,61.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.104,24.3 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:17.13,30.14 10 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:30.14,31.53 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:31.53,34.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:35.3,35.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.2,39.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.42,40.80 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:40.80,43.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:44.3,44.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.2,48.51 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.51,50.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:50.17,53.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:54.3,56.88 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:56.88,59.10 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:60.9,60.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.2,64.55 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.55,67.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:71.83,74.20 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:74.21,74.22 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.2,75.21 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.22,75.23 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.2,77.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.32,79.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:79.17,80.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.29,80.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.40,80.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:82.3,83.20 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:83.20,83.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.2,85.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.33,87.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:87.17,88.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.29,88.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.40,88.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:90.3,91.21 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:91.21,91.38 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:93.2,93.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:99.45,100.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:100.19,103.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:103.17,105.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:106.3,108.72 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:110.2,112.16 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:112.16,114.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:115.2,116.84 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:116.84,119.64 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:119.64,121.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:122.8,124.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:125.2,125.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:133.51,134.12 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:134.12,136.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.2,137.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.15,139.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.5,141.82 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.82,143.6 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:144.2,144.14 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:147.29,147.64 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:149.63,152.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:152.16,154.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.2,155.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.15,155.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:156.2,159.45 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:159.45,161.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:163.2,164.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:164.16,166.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:167.2,170.47 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:170.47,172.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.2,174.61 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.61,176.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:178.2,178.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:181.38,183.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:183.16,185.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.2,186.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.15,186.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.2,187.48 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.48,189.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:190.2,190.17 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:193.60,195.6 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:195.6,196.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:196.42,198.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.3,199.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.33,201.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:202.3,202.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:206.41,208.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:208.16,210.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.2,211.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.15,211.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:212.2,213.12 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:216.48,220.18 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:220.18,222.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:222.17,224.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.3,225.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.16,225.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:226.3,226.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.2,228.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.19,230.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:230.17,232.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.3,233.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.16,233.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:234.3,234.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:236.2,237.12 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 6
+codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 5
codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,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:386.2,386.53 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 6
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 27
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 27
codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 3
codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 3
codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 6
+codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 6
codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 6
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 120
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 35
+codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 28
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 7
codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 20
+codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 16
+codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 5
codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 5
codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 5
codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 5
codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 1
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 0
@@ -4849,6 +5185,31 @@ codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:32.20,34.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.8,40.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:59.14,61.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -4857,18 +5218,114 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:17.13,30.14 10 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:30.14,31.53 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:31.53,34.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:35.3,35.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.2,39.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.42,40.80 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:40.80,43.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:44.3,44.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.2,48.51 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.51,50.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:50.17,53.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:54.3,56.88 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:56.88,59.10 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:60.9,60.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.2,64.55 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.55,67.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:71.83,74.20 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:74.21,74.22 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.2,75.21 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.22,75.23 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.2,77.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.32,79.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:79.17,80.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.29,80.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.40,80.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:82.3,83.20 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:83.20,83.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.2,85.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.33,87.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:87.17,88.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.29,88.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.40,88.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:90.3,91.21 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:91.21,91.38 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:93.2,93.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:99.45,100.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:100.19,103.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:103.17,105.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:106.3,108.72 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:110.2,112.16 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:112.16,114.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:115.2,116.84 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:116.84,119.64 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:119.64,121.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:122.8,124.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:125.2,125.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:133.51,134.12 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:134.12,136.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.2,137.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.15,139.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.5,141.82 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.82,143.6 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:144.2,144.14 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:147.29,147.64 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:149.63,152.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:152.16,154.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.2,155.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.15,155.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:156.2,159.45 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:159.45,161.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:163.2,164.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:164.16,166.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:167.2,170.47 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:170.47,172.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.2,174.61 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.61,176.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:178.2,178.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:181.38,183.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:183.16,185.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.2,186.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.15,186.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.2,187.48 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.48,189.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:190.2,190.17 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:193.60,195.6 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:195.6,196.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:196.42,198.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.3,199.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.33,201.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:202.3,202.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:206.41,208.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:208.16,210.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.2,211.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.15,211.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:212.2,213.12 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:216.48,220.18 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:220.18,222.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:222.17,224.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.3,225.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.16,225.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:226.3,226.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.2,228.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.19,230.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:230.17,232.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.3,233.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.16,233.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:234.3,234.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:236.2,237.12 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
@@ -4929,10 +5386,10 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
@@ -5042,86 +5499,86 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 24
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 7
codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 2
codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:22.16,24.3 1 0
@@ -5139,7 +5596,7 @@ codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:51.3,51.27 1 2
codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:53.2,55.60 3 1
codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:60.54,60.103 1 7
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:14.54,14.97 1 8
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 8
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 9
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 2
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:29.128,31.26 2 1
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:31.26,32.33 1 2
@@ -5149,9 +5606,9 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 1
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 1
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 2
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 2
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 1
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 1
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 7
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 7
@@ -5160,8 +5617,8 @@ codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 3
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 7
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 2
codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
-codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 1
codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
@@ -5180,15 +5637,15 @@ codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 1
codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 1
codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 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 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 3
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 4
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 1
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 1
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 3
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 1
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
@@ -5205,9 +5662,9 @@ codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 1
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 1
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 1
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 1
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 1
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
@@ -5215,14 +5672,14 @@ codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 10
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 16
-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 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 1
-codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 14
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 24
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 2
codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
@@ -5553,11 +6010,11 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 7
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
@@ -5571,11 +6028,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
@@ -6418,16 +6875,16 @@ codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 8
codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 11
codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 8
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 9
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 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 9
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 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 9
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 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 9
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 8
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 9
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 9
codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 7
codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 7
@@ -6465,6 +6922,31 @@ codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 2
codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 2
codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 5
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:32.20,34.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.8,40.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:59.14,61.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -6473,8 +6955,104 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:17.13,30.14 10 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:30.14,31.53 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:31.53,34.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:35.3,35.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.2,39.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.42,40.80 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:40.80,43.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:44.3,44.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.2,48.51 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.51,50.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:50.17,53.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:54.3,56.88 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:56.88,59.10 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:60.9,60.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.2,64.55 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.55,67.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:71.83,74.20 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:74.21,74.22 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.2,75.21 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.22,75.23 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.2,77.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.32,79.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:79.17,80.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.29,80.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.40,80.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:82.3,83.20 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:83.20,83.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.2,85.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.33,87.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:87.17,88.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.29,88.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.40,88.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:90.3,91.21 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:91.21,91.38 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:93.2,93.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:99.45,100.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:100.19,103.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:103.17,105.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:106.3,108.72 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:110.2,112.16 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:112.16,114.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:115.2,116.84 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:116.84,119.64 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:119.64,121.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:122.8,124.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:125.2,125.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:133.51,134.12 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:134.12,136.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.2,137.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.15,139.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.5,141.82 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.82,143.6 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:144.2,144.14 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:147.29,147.64 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:149.63,152.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:152.16,154.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.2,155.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.15,155.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:156.2,159.45 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:159.45,161.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:163.2,164.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:164.16,166.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:167.2,170.47 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:170.47,172.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.2,174.61 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.61,176.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:178.2,178.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:181.38,183.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:183.16,185.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.2,186.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.15,186.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.2,187.48 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.48,189.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:190.2,190.17 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:193.60,195.6 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:195.6,196.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:196.42,198.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.3,199.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.33,201.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:202.3,202.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:206.41,208.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:208.16,210.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.2,211.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.15,211.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:212.2,213.12 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:216.48,220.18 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:220.18,222.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:222.17,224.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.3,225.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.16,225.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:226.3,226.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.2,228.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.19,230.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:230.17,232.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.3,233.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.16,233.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:234.3,234.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:236.2,237.12 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
@@ -8081,6 +8659,31 @@ codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:32.20,34.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.8,40.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:59.14,61.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -8089,8 +8692,104 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:17.13,30.14 10 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:30.14,31.53 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:31.53,34.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:35.3,35.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.2,39.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.42,40.80 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:40.80,43.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:44.3,44.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.2,48.51 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.51,50.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:50.17,53.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:54.3,56.88 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:56.88,59.10 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:60.9,60.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.2,64.55 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.55,67.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:71.83,74.20 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:74.21,74.22 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.2,75.21 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.22,75.23 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.2,77.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.32,79.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:79.17,80.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.29,80.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.40,80.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:82.3,83.20 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:83.20,83.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.2,85.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.33,87.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:87.17,88.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.29,88.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.40,88.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:90.3,91.21 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:91.21,91.38 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:93.2,93.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:99.45,100.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:100.19,103.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:103.17,105.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:106.3,108.72 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:110.2,112.16 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:112.16,114.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:115.2,116.84 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:116.84,119.64 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:119.64,121.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:122.8,124.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:125.2,125.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:133.51,134.12 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:134.12,136.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.2,137.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.15,139.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.5,141.82 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.82,143.6 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:144.2,144.14 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:147.29,147.64 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:149.63,152.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:152.16,154.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.2,155.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.15,155.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:156.2,159.45 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:159.45,161.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:163.2,164.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:164.16,166.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:167.2,170.47 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:170.47,172.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.2,174.61 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.61,176.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:178.2,178.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:181.38,183.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:183.16,185.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.2,186.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.15,186.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.2,187.48 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.48,189.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:190.2,190.17 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:193.60,195.6 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:195.6,196.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:196.42,198.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.3,199.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.33,201.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:202.3,202.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:206.41,208.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:208.16,210.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.2,211.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.15,211.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:212.2,213.12 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:216.48,220.18 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:220.18,222.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:222.17,224.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.3,225.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.16,225.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:226.3,226.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.2,228.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.19,230.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:230.17,232.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.3,233.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.16,233.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:234.3,234.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:236.2,237.12 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 2
@@ -9697,11 +10396,31 @@ 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/testutil/fixtures.go:4.33,6.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:32.20,34.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.8,40.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:59.14,61.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -9710,8 +10429,104 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:17.13,30.14 10 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:30.14,31.53 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:31.53,34.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:35.3,35.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.2,39.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.42,40.80 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:40.80,43.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:44.3,44.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.2,48.51 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.51,50.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:50.17,53.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:54.3,56.88 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:56.88,59.10 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:60.9,60.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.2,64.55 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.55,67.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:71.83,74.20 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:74.21,74.22 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.2,75.21 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.22,75.23 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.2,77.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.32,79.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:79.17,80.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.29,80.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.40,80.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:82.3,83.20 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:83.20,83.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.2,85.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.33,87.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:87.17,88.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.29,88.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.40,88.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:90.3,91.21 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:91.21,91.38 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:93.2,93.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:99.45,100.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:100.19,103.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:103.17,105.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:106.3,108.72 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:110.2,112.16 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:112.16,114.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:115.2,116.84 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:116.84,119.64 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:119.64,121.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:122.8,124.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:125.2,125.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:133.51,134.12 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:134.12,136.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.2,137.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.15,139.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.5,141.82 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.82,143.6 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:144.2,144.14 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:147.29,147.64 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:149.63,152.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:152.16,154.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.2,155.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.15,155.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:156.2,159.45 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:159.45,161.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:163.2,164.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:164.16,166.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:167.2,170.47 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:170.47,172.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.2,174.61 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.61,176.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:178.2,178.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:181.38,183.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:183.16,185.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.2,186.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.15,186.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.2,187.48 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.48,189.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:190.2,190.17 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:193.60,195.6 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:195.6,196.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:196.42,198.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.3,199.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.33,201.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:202.3,202.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:206.41,208.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:208.16,210.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.2,211.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.15,211.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:212.2,213.12 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:216.48,220.18 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:220.18,222.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:222.17,224.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.3,225.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.16,225.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:226.3,226.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.2,228.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.19,230.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:230.17,232.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.3,233.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.16,233.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:234.3,234.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:236.2,237.12 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
@@ -11318,6 +12133,3510 @@ codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:32.20,34.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.8,40.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:59.14,61.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:22.104,24.3 1 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:17.13,30.14 10 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:30.14,31.53 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:31.53,34.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:35.3,35.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.2,39.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.42,40.80 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:40.80,43.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:44.3,44.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.2,48.51 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.51,50.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:50.17,53.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:54.3,56.88 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:56.88,59.10 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:60.9,60.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.2,64.55 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.55,67.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:71.83,74.20 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:74.21,74.22 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.2,75.21 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.22,75.23 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.2,77.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.32,79.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:79.17,80.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.29,80.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.40,80.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:82.3,83.20 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:83.20,83.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.2,85.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.33,87.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:87.17,88.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.29,88.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.40,88.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:90.3,91.21 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:91.21,91.38 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:93.2,93.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:99.45,100.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:100.19,103.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:103.17,105.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:106.3,108.72 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:110.2,112.16 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:112.16,114.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:115.2,116.84 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:116.84,119.64 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:119.64,121.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:122.8,124.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:125.2,125.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:133.51,134.12 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:134.12,136.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.2,137.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.15,139.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.5,141.82 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.82,143.6 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:144.2,144.14 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:147.29,147.64 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:149.63,152.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:152.16,154.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.2,155.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.15,155.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:156.2,159.45 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:159.45,161.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:163.2,164.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:164.16,166.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:167.2,170.47 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:170.47,172.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.2,174.61 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.61,176.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:178.2,178.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:181.38,183.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:183.16,185.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.2,186.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.15,186.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.2,187.48 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.48,189.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:190.2,190.17 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:193.60,195.6 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:195.6,196.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:196.42,198.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.3,199.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.33,201.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:202.3,202.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:206.41,208.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:208.16,210.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.2,211.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.15,211.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:212.2,213.12 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:216.48,220.18 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:220.18,222.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:222.17,224.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.3,225.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.16,225.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:226.3,226.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.2,228.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.19,230.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:230.17,232.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.3,233.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.16,233.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:234.3,234.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:236.2,237.12 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/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 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 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 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:67.55,71.10 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:72.22,73.28 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.20,75.26 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.16,79.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:79.44,79.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.17,37.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.2,40.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:40.74,43.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.2,44.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.124,51.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:51.16,54.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.2,57.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:57.74,60.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.2,61.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.64,67.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.82,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,72.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.40,74.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.23,76.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.21,78.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:79.10,80.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.48,91.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:91.40,93.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:94.2,97.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.77,104.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.40,105.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:105.58,107.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:109.2,112.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.125,119.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.40,121.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.56,124.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.18,126.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.3,127.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.8,130.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.17,132.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:32.3,33.22 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:35.2,37.70 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:42.159,49.37 6 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:49.37,51.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:52.2,52.12 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:57.49,59.30 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:59.30,61.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:64.72,65.19 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:65.19,67.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:68.2,82.36 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.2,87.36 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.36,89.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.67,93.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:93.8,96.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:99.57,100.20 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0
+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: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.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: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.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: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: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: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: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: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: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: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: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: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: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.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: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: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: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.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.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: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: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 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
+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: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: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.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: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: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: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: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: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 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
+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.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: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: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: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: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.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: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: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: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: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: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: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: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: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 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 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
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
+codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 2
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 1
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 2
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 2
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 2
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 2
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 0
+codeberg.org/snonux/hexai/internal/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 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
+codeberg.org/snonux/hexai/internal/lsp/context.go:21.16,22.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:23.26,24.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:24.14,26.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:27.3,27.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:28.21,29.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:30.10,32.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:36.65,38.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:38.35,41.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:42.2,45.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:45.15,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:48.2,49.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:49.13,51.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:52.2,53.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:56.53,58.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:58.14,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:62.2,62.59 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:67.64,68.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:68.20,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:71.2,72.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:72.27,74.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:76.2,77.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:77.21,79.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.2,80.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.53,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:83.2,83.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:15.48,19.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:21.45,25.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:27.33,31.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:33.52,37.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:40.37,43.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:45.96,47.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:47.35,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:50.2,51.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:51.13,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.2,54.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.25,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:57.2,58.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:58.16,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.2,61.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.26,63.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.2,64.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.28,66.85 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:66.85,68.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:71.2,71.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:78.71,80.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:80.35,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:83.2,84.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:84.13,86.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.2,87.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.25,89.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:91.2,92.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:92.28,93.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:93.44,95.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.3,98.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.40,99.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.2,102.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.20,104.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.2,106.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.35,109.17 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:109.17,110.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:110.15,112.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.4,114.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.29,116.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:119.2,119.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:122.46,123.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:123.28,124.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:124.29,126.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:128.2,128.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:131.31,133.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:133.18,135.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:136.2,136.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:139.33,141.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:141.49,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:144.2,144.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:10.38,11.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:11.41,14.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.2,15.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.22,17.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.34,31.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.105,34.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.5,36.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.5,57.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.47,58.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.57,63.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.5,65.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.49,66.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.58,71.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.5,73.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.47,75.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.5,76.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.46,78.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.5,79.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.47,81.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.5,82.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.24,84.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.5,87.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.33,88.69 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.69,90.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.5,93.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:117.72,120.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:194.24,196.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:197.2,199.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:199.24,201.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:202.2,204.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:204.24,207.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:208.2,209.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:209.32,211.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:212.2,213.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:213.14,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:217.2,231.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:234.64,238.9 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:238.9,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:242.2,243.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:246.56,249.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:249.24,251.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.2,252.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.44,255.33 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:255.33,260.4 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:261.3,261.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:264.2,265.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:268.51,272.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:272.37,273.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:273.15,275.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.2,278.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.14,280.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:281.2,281.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:288.74,290.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:290.22,295.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:295.49,297.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:297.9,300.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.3,303.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.115,305.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.3,307.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.27,309.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.3,311.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.27,312.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:312.34,313.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:313.38,314.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:314.35,316.7 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:318.5,318.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:321.4,321.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:326.2,327.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:327.36,329.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.2,331.114 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.114,333.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:334.2,335.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:335.35,336.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:336.14,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:340.2,340.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:343.137,348.24 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:348.24,350.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:351.2,361.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:436.74,445.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:17.48,19.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:19.55,20.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:20.23,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:23.3,23.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:25.2,26.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:26.57,27.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:27.23,29.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:30.3,30.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:32.2,35.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:35.53,37.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.2,38.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.57,40.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.2,41.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.54,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.2,44.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.51,46.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.2,47.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.22,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:52.85,53.85 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:53.85,64.3 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:65.2,65.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:68.89,70.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:70.21,72.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:73.2,82.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:85.70,86.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:86.45,88.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:89.2,97.58 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:97.58,99.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.2,100.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.17,108.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:114.9,116.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.21,120.43 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.43,121.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.24,123.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.10,125.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.3,133.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.72,134.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.66,138.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.9,141.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.18,149.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.17,159.92 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.92,167.4 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.2,169.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:172.55,174.56 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:174.56,175.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.23,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:178.3,178.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.2,180.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.49,183.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:184.2,184.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:190.85,191.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.22,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:194.2,195.53 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.53,197.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.2,198.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.31,200.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:201.2,202.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.36,203.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.34,205.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:207.2,207.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:211.37,213.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:213.32,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.2,216.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.32,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.2,224.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.29,226.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:227.2,227.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:230.34,231.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.22,233.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:234.2,234.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:237.37,238.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.22,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:241.2,241.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:246.76,248.80 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.80,250.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.2,252.71 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.71,254.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.2,257.41 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.41,259.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.2,267.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.24,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.34,277.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.2,286.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.76,293.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.21,298.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.36,303.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.39,308.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.26,320.22 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.22,323.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.3,326.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.102,328.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.3,336.40 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.40,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.3,341.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:341.19,343.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.3,345.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.15,351.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.39,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:382.16,384.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.41,392.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.45,405.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.46,408.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.46,411.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:415.2,415.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.13,422.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.23,425.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.3,433.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.38,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.17,439.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.24,476.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.16,489.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:498.39,500.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:503.34,505.63 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:505.63,507.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:513.2,513.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.16,519.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.32,523.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:15.48,18.55 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:18.55,25.19 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:25.19,27.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.3,28.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.25,32.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:32.10,35.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:38.2,39.73 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:44.67,45.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:45.22,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:48.2,52.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:52.48,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:54.8,57.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:58.2,58.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:63.99,66.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:68.98,71.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:73.160,78.52 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:78.52,81.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.2,82.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.51,84.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:86.2,91.86 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:91.86,96.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.2,97.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.58,100.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.2,102.83 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.83,105.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.2,108.126 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.126,110.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:113.2,116.29 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:116.29,118.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:119.2,121.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:121.32,123.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:125.2,126.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:126.29,128.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:129.2,132.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:132.16,136.3 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:137.2,141.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:141.19,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:144.2,145.75 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:149.38,150.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:150.16,152.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:153.2,156.42 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:156.42,158.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:158.8,161.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:162.2,162.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:166.91,168.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.24,170.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.2,171.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.40,172.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:172.35,174.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:175.3,176.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:176.37,177.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:177.18,180.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:183.2,183.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:187.119,191.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:191.24,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:194.2,195.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:195.13,197.68 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:197.68,199.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.2,201.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.19,203.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:205.2,206.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:206.12,208.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:208.28,210.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:212.3,212.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:214.2,216.50 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:216.50,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:219.2,219.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.193,225.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:225.9,227.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.2,237.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.2,250.30 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.30,252.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:253.2,254.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.40,256.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:256.20,258.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.21,260.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.4,261.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.54,263.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.21,265.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.4,267.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.40,271.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.8,273.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.23,275.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:276.2,276.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.55,283.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:283.12,285.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.2,286.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.6,290.20 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.20,292.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,294.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.17,296.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:297.3,299.10 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:300.21,302.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:303.18,303.18 0 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:311.60,313.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.19,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:316.2,317.6 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.6,321.23 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.14 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.14,357.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.2,358.68 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.68,360.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,363.52 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.52,365.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.37,367.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.3,368.73 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.2,370.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.2,381.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.19,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.2,384.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.19,386.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.2,387.56 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.56,388.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:388.57,390.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:392.2,392.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:21.45,23.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:23.55,26.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.47,31.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:31.55,32.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:32.32,34.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:35.3,37.44 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:41.46,43.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:43.55,46.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:52.76,54.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:54.14,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:58.2,59.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.14,61.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.2,62.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.26,64.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:65.2,66.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.13,68.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.2,69.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.30,71.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:73.2,74.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:74.28,77.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:78.2,83.43 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:83.43,86.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:87.2,87.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:95.50,96.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.24,98.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:99.2,100.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.35,102.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.2,103.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.30,106.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:106.14,107.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:107.39,109.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:111.4,111.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.3,113.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.12,114.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.3,117.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.25,118.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.3,121.37 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.37,122.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.3,125.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.12,126.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.3,130.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.38,131.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.19,133.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.3,136.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.17,137.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:140.3,141.63 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.63,143.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,144.80 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.80,145.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:148.3,151.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:151.19,152.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:154.3,156.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.38,166.18 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:166.18,169.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:170.4,171.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:171.17,173.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:174.4,174.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:177.3,177.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:183.110,185.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:185.14,187.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:189.2,200.54 8 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:205.96,207.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.14,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.2,213.31 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.31,214.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:214.53,216.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.3,217.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.12,218.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.3,220.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.61,221.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,224.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:224.14,226.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.36,229.13 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:231.4,231.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.3,233.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.53,235.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.3,236.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.12,237.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,242.6 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:244.2,245.26 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:245.26,246.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:246.35,248.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.3,249.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.35,251.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:253.2,254.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:258.45,260.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:260.17,262.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.2,264.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.50,266.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:266.40,267.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:267.18,269.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:273.2,274.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:275.21,276.48 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.10,278.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:283.68,290.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:293.46,300.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:303.61,318.2 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:322.59,323.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:323.12,326.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:10.55,13.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:14.2,14.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:15.28,16.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:16.28,20.58 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:20.58,22.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.4,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.17,25.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:27.3,28.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:29.10,32.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:11.48,13.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:13.24,15.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:16.2,27.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:34.46,36.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:38.31,41.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:21.55,23.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.32,25.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:26.2,26.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:30.41,35.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:37.41,42.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.32,47.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.23,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.2,51.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.24,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.2,57.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.15,59.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:60.2,63.211 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.51,68.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.62,77.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.118,80.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.14,83.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:83.16,86.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:86.35,88.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.4,89.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.36,91.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.4,94.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.59,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.2,103.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.51,107.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:107.23,109.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.2,110.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.13,112.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.100,114.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.3,116.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.32,123.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.44,127.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.50,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.2,130.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:133.40,135.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.20,136.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.40,138.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.3,140.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.2,142.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.12,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.2,145.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.52,149.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.38,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:152.2,153.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.27,154.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.34,155.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.3,157.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.36,158.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.3,160.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.2,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.64,172.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:172.22,175.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.12,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.3,180.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.74,182.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.3,186.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.12,188.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.3,190.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.48,192.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.18,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.2,202.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.41,212.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:212.31,214.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.2,215.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.29,217.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.2,218.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.31,220.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.32,222.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.83,231.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:231.102,233.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.36,235.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:235.136,237.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.4,240.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.34,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.2,246.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.65,247.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.53,249.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.37,251.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.137,253.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.5,256.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.35,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.2,262.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:266.80,267.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.22,269.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,272.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.40,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.34,276.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.31,277.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.3,280.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.16,281.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.3,283.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.32,285.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.2,287.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:290.36,292.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.39,295.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.43,300.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.13,302.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.2,304.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.11,306.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.2,308.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.14,310.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.2,312.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.56,318.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.89,320.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,321.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:325.52,326.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.32,328.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:328.28,330.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.3,331.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.34,333.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.3,334.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.42,336.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.3,337.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,342.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.27,344.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.2,345.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.36,347.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.2,351.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.49,353.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.24,355.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.2,359.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.25,361.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.2,362.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.33,364.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:365.2,366.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.67,372.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.35,374.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.2,376.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:376.31,378.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:379.2,379.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.69,383.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.32,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.2,386.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:389.45,391.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.22,395.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.12,397.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.3,400.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.32,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,404.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.46,406.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.3,410.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:410.12,412.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:413.3,414.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.49,416.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,418.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.2,420.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.67,426.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:426.28,428.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,429.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.12,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,436.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.43,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.3,440.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.34,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:444.3,445.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.48,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,449.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.25,451.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:246.52,248.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.3,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.17,24.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:26.3,27.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:27.22,28.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:30.3,32.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:33.25,35.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:35.18,37.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:38.4,38.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.2,41.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.24,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:44.2,45.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:45.50,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:48.2,48.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:51.38,53.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:53.16,56.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:57.2,58.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:58.57,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.2,62.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.45,65.3 2 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:4.33,6.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:32.20,34.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.8,40.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:59.14,61.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:22.104,24.3 1 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:17.13,30.14 10 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:30.14,31.53 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:31.53,34.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:35.3,35.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.2,39.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.42,40.80 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:40.80,43.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:44.3,44.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.2,48.51 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.51,50.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:50.17,53.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:54.3,56.88 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:56.88,59.10 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:60.9,60.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.2,64.55 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.55,67.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:71.83,74.20 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:74.21,74.22 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.2,75.21 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.22,75.23 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.2,77.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.32,79.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:79.17,80.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.29,80.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.40,80.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:82.3,83.20 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:83.20,83.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.2,85.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.33,87.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:87.17,88.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.29,88.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.40,88.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:90.3,91.21 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:91.21,91.38 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:93.2,93.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:99.45,100.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:100.19,103.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:103.17,105.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:106.3,108.72 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:110.2,112.16 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:112.16,114.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:115.2,116.84 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:116.84,119.64 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:119.64,121.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:122.8,124.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:125.2,125.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:133.51,134.12 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:134.12,136.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.2,137.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.15,139.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.5,141.82 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.82,143.6 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:144.2,144.14 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:147.29,147.64 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:149.63,152.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:152.16,154.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.2,155.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.15,155.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:156.2,159.45 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:159.45,161.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:163.2,164.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:164.16,166.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:167.2,170.47 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:170.47,172.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.2,174.61 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.61,176.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:178.2,178.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:181.38,183.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:183.16,185.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.2,186.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.15,186.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.2,187.48 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.48,189.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:190.2,190.17 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:193.60,195.6 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:195.6,196.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:196.42,198.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.3,199.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.33,201.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:202.3,202.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:206.41,208.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:208.16,210.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.2,211.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.15,211.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:212.2,213.12 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:216.48,220.18 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:220.18,222.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:222.17,224.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.3,225.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.16,225.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:226.3,226.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.2,228.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.19,230.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:230.17,232.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.3,233.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.16,233.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:234.3,234.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:236.2,237.12 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/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 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 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 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:67.55,71.10 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:72.22,73.28 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.20,75.26 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.16,79.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:79.44,79.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.17,37.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.2,40.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:40.74,43.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.2,44.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.124,51.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:51.16,54.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.2,57.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:57.74,60.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.2,61.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.64,67.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.82,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,72.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.40,74.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.23,76.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.21,78.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:79.10,80.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.48,91.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:91.40,93.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:94.2,97.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.77,104.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.40,105.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:105.58,107.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:109.2,112.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.125,119.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.40,121.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.56,124.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.18,126.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.3,127.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.8,130.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.17,132.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:32.3,33.22 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:35.2,37.70 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:42.159,49.37 6 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:49.37,51.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:52.2,52.12 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:57.49,59.30 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:59.30,61.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:64.72,65.19 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:65.19,67.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:68.2,82.36 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.2,87.36 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.36,89.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.67,93.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:93.8,96.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:99.57,100.20 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 9
+codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 9
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.36,74.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:75.2,82.3 1 9
+codeberg.org/snonux/hexai/internal/llm/copilot.go:85.109,86.39 1 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:86.39,88.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.2,90.45 1 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.45,92.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:93.2,94.27 2 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:94.27,96.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.2,97.19 1 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.19,99.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:100.2,102.29 3 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:102.29,104.3 1 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:105.2,109.16 4 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:109.16,112.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:114.2,117.16 4 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:117.16,120.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:121.2,122.57 2 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:122.57,124.3 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:125.2,126.16 2 4
+codeberg.org/snonux/hexai/internal/llm/copilot.go:126.16,128.3 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.2,129.27 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.27,132.3 2 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:133.2,135.21 3 2
+codeberg.org/snonux/hexai/internal/llm/copilot.go:139.46,139.66 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:140.46,140.71 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:143.102,146.29 3 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:146.29,148.3 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.2,149.24 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.24,151.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.8,151.31 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.31,154.3 2 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.2,155.21 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.21,157.3 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.2,158.21 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.21,160.3 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:161.2,161.12 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:164.130,166.16 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:166.16,168.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.2,169.28 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.28,171.3 1 88
+codeberg.org/snonux/hexai/internal/llm/copilot.go:172.2,172.29 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:175.70,176.53 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:176.53,178.3 1 4
+codeberg.org/snonux/hexai/internal/llm/copilot.go:179.2,181.74 3 2
+codeberg.org/snonux/hexai/internal/llm/copilot.go:181.74,184.3 2 2
+codeberg.org/snonux/hexai/internal/llm/copilot.go:185.2,186.69 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:189.91,191.64 2 4
+codeberg.org/snonux/hexai/internal/llm/copilot.go:191.64,194.3 2 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:195.2,195.17 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:204.66,206.82 1 16
+codeberg.org/snonux/hexai/internal/llm/copilot.go:206.82,208.3 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.2,209.39 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.39,211.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:212.2,213.16 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:213.16,215.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:216.2,220.16 5 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:220.16,222.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:223.2,224.53 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:224.53,226.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:227.2,228.64 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:228.64,230.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.2,231.40 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.40,233.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:235.2,236.18 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:236.18,238.3 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:239.2,241.12 3 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:246.42,248.20 2 9
+codeberg.org/snonux/hexai/internal/llm/copilot.go:248.20,250.3 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:251.2,252.16 2 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:252.16,253.59 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:253.59,254.48 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:254.48,256.5 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:258.3,258.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:260.2,264.22 3 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:264.22,266.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:267.2,267.34 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:270.42,270.100 3 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:274.57,290.2 3 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:292.58,308.2 3 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:310.28,313.19 3 88
+codeberg.org/snonux/hexai/internal/llm/copilot.go:313.19,315.3 1 1024
+codeberg.org/snonux/hexai/internal/llm/copilot.go:316.2,316.18 1 88
+codeberg.org/snonux/hexai/internal/llm/copilot.go:322.153,323.39 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:323.39,325.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.2,326.45 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.45,328.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.2,329.12 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.12,331.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:332.2,354.16 6 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:354.16,356.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:357.2,358.53 2 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:358.53,360.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:362.2,365.27 4 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:365.27,366.39 1 10
+codeberg.org/snonux/hexai/internal/llm/copilot.go:366.39,367.12 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:369.3,375.88 2 7
+codeberg.org/snonux/hexai/internal/llm/copilot.go:375.88,376.12 1 4
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.3,378.34 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.34,380.4 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 4
+codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 10
+codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 10
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 10
+codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 6
+codeberg.org/snonux/hexai/internal/llm/ollama.go:62.27,64.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.2,65.19 1 6
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.19,67.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:69.2,73.16 5 6
+codeberg.org/snonux/hexai/internal/llm/ollama.go:73.16,75.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:77.2,80.16 4 6
+codeberg.org/snonux/hexai/internal/llm/ollama.go:80.16,83.3 2 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:84.2,85.56 2 5
+codeberg.org/snonux/hexai/internal/llm/ollama.go:85.56,87.3 1 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:89.2,90.64 2 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:90.64,93.3 2 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.2,94.50 1 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.50,97.3 2 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:98.2,100.21 3 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:108.126,110.27 2 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:110.27,112.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.2,113.19 1 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.19,115.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:117.2,121.16 5 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:121.16,123.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:125.2,128.16 4 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:128.16,131.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:132.2,133.56 2 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:133.56,135.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:137.2,138.6 2 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:138.6,140.41 2 4
+codeberg.org/snonux/hexai/internal/llm/ollama.go:140.41,141.30 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:141.30,142.10 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:144.4,145.14 2 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.3,147.40 1 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.40,150.4 2 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.3,151.58 1 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.58,153.4 1 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.3,154.14 1 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.14,155.9 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:158.2,159.12 2 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:163.76,165.29 2 9
+codeberg.org/snonux/hexai/internal/llm/ollama.go:165.29,167.3 1 9
+codeberg.org/snonux/hexai/internal/llm/ollama.go:168.2,168.89 1 9
+codeberg.org/snonux/hexai/internal/llm/ollama.go:171.109,174.29 3 12
+codeberg.org/snonux/hexai/internal/llm/ollama.go:174.29,176.3 1 12
+codeberg.org/snonux/hexai/internal/llm/ollama.go:177.2,178.24 2 12
+codeberg.org/snonux/hexai/internal/llm/ollama.go:178.24,180.3 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.8,180.31 1 11
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.31,182.3 1 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.2,183.21 1 12
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.21,185.3 1 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.2,186.21 1 12
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.21,188.3 1 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.2,189.22 1 12
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.22,191.3 1 4
+codeberg.org/snonux/hexai/internal/llm/ollama.go:192.2,192.12 1 12
+codeberg.org/snonux/hexai/internal/llm/ollama.go:195.100,197.16 2 9
+codeberg.org/snonux/hexai/internal/llm/ollama.go:197.16,199.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:200.2,201.29 2 9
+codeberg.org/snonux/hexai/internal/llm/ollama.go:204.69,205.53 1 9
+codeberg.org/snonux/hexai/internal/llm/ollama.go:205.53,207.3 1 7
+codeberg.org/snonux/hexai/internal/llm/ollama.go:208.2,210.43 3 2
+codeberg.org/snonux/hexai/internal/llm/ollama.go:210.43,213.3 2 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:214.2,215.68 2 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:95.108,96.20 1 6
+codeberg.org/snonux/hexai/internal/llm/openai.go:96.20,98.3 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:99.2,100.27 2 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:100.27,102.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.2,103.19 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.19,105.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:106.2,110.16 5 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:110.16,113.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:114.2,119.16 4 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:119.16,122.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:123.2,124.56 2 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:124.56,126.3 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:127.2,128.16 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:128.16,130.3 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.2,131.27 1 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.27,134.3 2 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:135.2,137.21 3 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:141.45,141.64 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:146.126,147.20 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:147.20,149.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:150.2,151.27 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:151.27,153.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.2,154.19 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.19,156.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:157.2,161.16 5 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:161.16,164.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:165.2,170.16 4 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:170.16,173.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:174.2,175.56 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:175.56,177.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.2,179.64 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.64,181.3 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:182.2,183.12 2 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:187.56,187.104 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:190.76,192.29 2 9
+codeberg.org/snonux/hexai/internal/llm/openai.go:192.29,194.3 1 9
+codeberg.org/snonux/hexai/internal/llm/openai.go:195.2,195.89 1 9
+codeberg.org/snonux/hexai/internal/llm/openai.go:198.105,201.29 3 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:201.29,203.3 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.2,204.24 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.24,206.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.8,206.31 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.31,209.3 2 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.2,210.21 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.21,212.3 1 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.2,213.21 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.21,215.3 1 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:216.2,216.12 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:219.127,221.16 2 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:221.16,223.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:224.2,225.28 2 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:225.28,227.3 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:228.2,228.29 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:231.152,233.16 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:233.16,235.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:236.2,238.28 3 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:238.28,240.3 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:241.2,241.29 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:244.69,245.53 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:245.53,247.3 1 8
+codeberg.org/snonux/hexai/internal/llm/openai.go:248.2,250.55 3 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:250.55,253.3 2 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:254.2,255.68 2 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:258.85,260.64 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:260.64,263.3 2 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:264.2,264.17 1 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:267.90,273.21 5 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:273.21,275.41 2 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:275.41,276.12 1 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:278.3,279.45 2 8
+codeberg.org/snonux/hexai/internal/llm/openai.go:279.45,280.9 1 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:282.3,283.65 2 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:283.65,284.12 1 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.3,286.54 1 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.54,289.4 2 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.3,290.36 1 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.36,291.30 1 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:291.30,293.5 1 2
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.2,296.38 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.38,299.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:300.2,300.12 1 4
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.47,58.73 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.73,58.92 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.73,59.94 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 6
+codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 6
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 3
+codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 1
+codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 2
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 30
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 23
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 7
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 23
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 23
+codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 95
+codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 95
+codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 28
+codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:48.32,50.4 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 28
+codeberg.org/snonux/hexai/internal/lsp/context.go:16.96,18.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:19.17,20.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:21.16,22.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:23.26,24.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:24.14,26.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:27.3,27.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:28.21,29.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:30.10,32.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:36.65,38.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:38.35,41.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:42.2,45.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:45.15,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:48.2,49.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:49.13,51.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:52.2,53.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:56.53,58.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:58.14,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:62.2,62.59 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:67.64,68.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:68.20,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:71.2,72.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:72.27,74.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:76.2,77.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:77.21,79.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.2,80.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.53,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:83.2,83.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:15.48,19.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:21.45,25.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:27.33,31.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:33.52,37.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:40.37,43.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:45.96,47.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:47.35,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:50.2,51.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:51.13,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.2,54.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.25,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:57.2,58.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:58.16,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.2,61.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.26,63.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.2,64.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.28,66.85 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:66.85,68.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:71.2,71.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:78.71,80.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:80.35,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:83.2,84.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:84.13,86.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.2,87.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.25,89.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:91.2,92.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:92.28,93.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:93.44,95.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.3,98.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.40,99.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.2,102.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.20,104.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.2,106.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.35,109.17 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:109.17,110.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:110.15,112.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.4,114.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.29,116.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:119.2,119.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:122.46,123.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:123.28,124.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:124.29,126.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:128.2,128.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:131.31,133.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:133.18,135.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:136.2,136.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:139.33,141.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:141.49,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:144.2,144.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:10.38,11.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:11.41,14.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.2,15.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.22,17.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.34,31.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.105,34.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.5,36.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.5,57.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.47,58.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.57,63.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.5,65.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.49,66.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.58,71.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.5,73.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.47,75.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.5,76.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.46,78.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.5,79.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.47,81.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.5,82.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.24,84.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.5,87.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.33,88.69 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.69,90.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.5,93.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:117.72,120.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:194.24,196.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:197.2,199.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:199.24,201.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:202.2,204.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:204.24,207.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:208.2,209.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:209.32,211.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:212.2,213.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:213.14,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:217.2,231.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:234.64,238.9 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:238.9,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:242.2,243.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:246.56,249.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:249.24,251.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.2,252.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.44,255.33 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:255.33,260.4 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:261.3,261.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:264.2,265.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:268.51,272.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:272.37,273.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:273.15,275.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.2,278.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.14,280.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:281.2,281.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:288.74,290.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:290.22,295.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:295.49,297.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:297.9,300.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.3,303.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.115,305.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.3,307.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.27,309.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.3,311.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.27,312.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:312.34,313.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:313.38,314.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:314.35,316.7 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:318.5,318.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:321.4,321.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:326.2,327.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:327.36,329.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.2,331.114 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.114,333.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:334.2,335.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:335.35,336.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:336.14,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:340.2,340.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:343.137,348.24 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:348.24,350.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:351.2,361.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:436.74,445.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:17.48,19.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:19.55,20.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:20.23,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:23.3,23.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:25.2,26.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:26.57,27.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:27.23,29.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:30.3,30.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:32.2,35.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:35.53,37.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.2,38.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.57,40.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.2,41.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.54,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.2,44.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.51,46.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.2,47.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.22,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:52.85,53.85 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:53.85,64.3 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:65.2,65.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:68.89,70.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:70.21,72.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:73.2,82.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:85.70,86.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:86.45,88.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:89.2,97.58 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:97.58,99.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.2,100.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.17,108.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:114.9,116.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.21,120.43 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.43,121.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.24,123.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.10,125.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.3,133.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.72,134.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.66,138.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.9,141.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.18,149.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.17,159.92 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.92,167.4 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.2,169.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:172.55,174.56 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:174.56,175.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.23,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:178.3,178.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.2,180.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.49,183.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:184.2,184.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:190.85,191.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.22,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:194.2,195.53 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.53,197.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.2,198.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.31,200.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:201.2,202.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.36,203.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.34,205.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:207.2,207.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:211.37,213.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:213.32,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.2,216.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.32,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.2,224.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.29,226.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:227.2,227.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:230.34,231.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.22,233.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:234.2,234.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:237.37,238.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.22,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:241.2,241.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:246.76,248.80 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.80,250.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.2,252.71 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.71,254.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.2,257.41 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.41,259.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.2,267.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.24,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.34,277.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.2,286.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.76,293.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.21,298.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.36,303.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.39,308.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.26,320.22 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.22,323.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.3,326.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.102,328.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.3,336.40 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.40,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.3,341.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:341.19,343.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.3,345.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.15,351.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.39,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:382.16,384.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.41,392.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.45,405.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.46,408.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.46,411.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:415.2,415.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.13,422.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.23,425.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.3,433.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.38,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.17,439.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.24,476.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.16,489.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:498.39,500.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:503.34,505.63 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:505.63,507.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:513.2,513.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.16,519.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.32,523.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:15.48,18.55 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:18.55,25.19 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:25.19,27.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.3,28.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.25,32.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:32.10,35.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:38.2,39.73 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:44.67,45.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:45.22,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:48.2,52.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:52.48,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:54.8,57.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:58.2,58.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:63.99,66.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:68.98,71.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:73.160,78.52 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:78.52,81.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.2,82.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.51,84.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:86.2,91.86 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:91.86,96.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.2,97.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.58,100.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.2,102.83 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.83,105.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.2,108.126 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.126,110.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:113.2,116.29 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:116.29,118.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:119.2,121.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:121.32,123.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:125.2,126.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:126.29,128.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:129.2,132.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:132.16,136.3 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:137.2,141.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:141.19,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:144.2,145.75 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:149.38,150.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:150.16,152.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:153.2,156.42 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:156.42,158.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:158.8,161.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:162.2,162.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:166.91,168.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.24,170.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.2,171.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.40,172.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:172.35,174.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:175.3,176.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:176.37,177.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:177.18,180.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:183.2,183.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:187.119,191.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:191.24,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:194.2,195.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:195.13,197.68 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:197.68,199.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.2,201.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.19,203.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:205.2,206.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:206.12,208.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:208.28,210.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:212.3,212.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:214.2,216.50 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:216.50,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:219.2,219.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.193,225.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:225.9,227.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.2,237.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.2,250.30 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.30,252.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:253.2,254.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.40,256.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:256.20,258.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.21,260.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.4,261.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.54,263.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.21,265.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.4,267.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.40,271.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.8,273.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.23,275.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:276.2,276.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.55,283.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:283.12,285.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.2,286.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.6,290.20 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.20,292.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,294.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.17,296.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:297.3,299.10 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:300.21,302.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:303.18,303.18 0 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:311.60,313.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.19,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:316.2,317.6 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.6,321.23 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.14 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.14,357.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.2,358.68 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.68,360.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,363.52 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.52,365.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.37,367.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.3,368.73 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.2,370.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.2,381.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.19,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.2,384.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.19,386.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.2,387.56 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.56,388.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:388.57,390.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:392.2,392.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:21.45,23.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:23.55,26.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.47,31.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:31.55,32.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:32.32,34.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:35.3,37.44 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:41.46,43.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:43.55,46.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:52.76,54.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:54.14,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:58.2,59.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.14,61.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.2,62.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.26,64.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:65.2,66.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.13,68.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.2,69.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.30,71.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:73.2,74.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:74.28,77.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:78.2,83.43 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:83.43,86.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:87.2,87.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:95.50,96.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.24,98.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:99.2,100.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.35,102.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.2,103.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.30,106.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:106.14,107.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:107.39,109.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:111.4,111.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.3,113.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.12,114.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.3,117.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.25,118.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.3,121.37 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.37,122.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.3,125.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.12,126.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.3,130.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.38,131.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.19,133.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.3,136.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.17,137.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:140.3,141.63 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.63,143.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,144.80 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.80,145.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:148.3,151.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:151.19,152.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:154.3,156.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.38,166.18 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:166.18,169.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:170.4,171.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:171.17,173.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:174.4,174.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:177.3,177.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:183.110,185.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:185.14,187.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:189.2,200.54 8 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:205.96,207.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.14,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.2,213.31 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.31,214.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:214.53,216.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.3,217.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.12,218.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.3,220.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.61,221.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,224.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:224.14,226.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.36,229.13 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:231.4,231.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.3,233.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.53,235.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.3,236.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.12,237.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,242.6 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:244.2,245.26 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:245.26,246.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:246.35,248.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.3,249.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.35,251.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:253.2,254.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:258.45,260.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:260.17,262.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.2,264.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.50,266.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:266.40,267.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:267.18,269.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:273.2,274.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:275.21,276.48 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.10,278.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:283.68,290.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:293.46,300.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:303.61,318.2 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:322.59,323.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:323.12,326.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:10.55,13.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:14.2,14.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:15.28,16.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:16.28,20.58 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:20.58,22.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.4,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.17,25.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:27.3,28.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:29.10,32.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:11.48,13.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:13.24,15.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:16.2,27.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:34.46,36.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:38.31,41.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:21.55,23.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.32,25.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:26.2,26.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:30.41,35.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:37.41,42.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.32,47.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.23,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.2,51.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.24,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.2,57.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.15,59.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:60.2,63.211 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.51,68.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.62,77.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.118,80.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.14,83.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:83.16,86.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:86.35,88.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.4,89.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.36,91.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.4,94.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.59,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.2,103.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.51,107.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:107.23,109.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.2,110.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.13,112.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.100,114.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.3,116.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.32,123.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.44,127.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.50,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.2,130.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:133.40,135.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.20,136.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.40,138.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.3,140.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.2,142.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.12,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.2,145.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.52,149.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.38,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:152.2,153.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.27,154.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.34,155.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.3,157.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.36,158.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.3,160.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.2,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.64,172.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:172.22,175.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.12,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.3,180.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.74,182.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.3,186.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.12,188.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.3,190.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.48,192.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.18,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.2,202.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.41,212.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:212.31,214.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.2,215.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.29,217.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.2,218.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.31,220.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.32,222.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.83,231.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:231.102,233.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.36,235.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:235.136,237.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.4,240.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.34,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.2,246.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.65,247.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.53,249.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.37,251.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.137,253.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.5,256.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.35,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.2,262.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:266.80,267.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.22,269.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,272.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.40,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.34,276.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.31,277.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.3,280.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.16,281.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.3,283.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.32,285.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.2,287.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:290.36,292.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.39,295.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.43,300.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.13,302.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.2,304.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.11,306.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.2,308.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.14,310.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.2,312.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.56,318.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.89,320.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,321.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:325.52,326.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.32,328.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:328.28,330.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.3,331.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.34,333.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.3,334.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.42,336.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.3,337.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,342.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.27,344.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.2,345.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.36,347.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.2,351.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.49,353.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.24,355.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.2,359.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.25,361.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.2,362.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.33,364.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:365.2,366.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.67,372.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.35,374.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.2,376.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:376.31,378.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:379.2,379.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.69,383.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.32,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.2,386.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:389.45,391.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.22,395.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.12,397.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.3,400.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.32,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,404.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.46,406.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.3,410.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:410.12,412.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:413.3,414.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.49,416.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,418.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.2,420.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.67,426.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:426.28,428.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,429.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.12,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,436.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.43,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.3,440.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.34,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:444.3,445.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.48,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,449.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.25,451.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:246.52,248.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.3,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.17,24.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:26.3,27.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:27.22,28.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:30.3,32.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:33.25,35.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:35.18,37.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:38.4,38.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.2,41.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.24,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:44.2,45.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:45.50,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:48.2,48.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:51.38,53.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:53.16,56.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:57.2,58.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:58.57,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.2,62.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.45,65.3 2 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:4.33,6.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:32.20,34.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.8,40.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:59.14,61.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 0
+codeberg.org/snonux/hexai/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/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
@@ -11326,8 +15645,104 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:17.13,30.14 10 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:30.14,31.53 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:31.53,34.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:35.3,35.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.2,39.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.42,40.80 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:40.80,43.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:44.3,44.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.2,48.51 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.51,50.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:50.17,53.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:54.3,56.88 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:56.88,59.10 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:60.9,60.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.2,64.55 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.55,67.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:71.83,74.20 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:74.21,74.22 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.2,75.21 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.22,75.23 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.2,77.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.32,79.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:79.17,80.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.29,80.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.40,80.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:82.3,83.20 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:83.20,83.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.2,85.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.33,87.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:87.17,88.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.29,88.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.40,88.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:90.3,91.21 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:91.21,91.38 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:93.2,93.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:99.45,100.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:100.19,103.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:103.17,105.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:106.3,108.72 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:110.2,112.16 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:112.16,114.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:115.2,116.84 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:116.84,119.64 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:119.64,121.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:122.8,124.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:125.2,125.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:133.51,134.12 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:134.12,136.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.2,137.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.15,139.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.5,141.82 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.82,143.6 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:144.2,144.14 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:147.29,147.64 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:149.63,152.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:152.16,154.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.2,155.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.15,155.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:156.2,159.45 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:159.45,161.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:163.2,164.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:164.16,166.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:167.2,170.47 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:170.47,172.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.2,174.61 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.61,176.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:178.2,178.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:181.38,183.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:183.16,185.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.2,186.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.15,186.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.2,187.48 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.48,189.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:190.2,190.17 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:193.60,195.6 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:195.6,196.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:196.42,198.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.3,199.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.33,201.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:202.3,202.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:206.41,208.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:208.16,210.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.2,211.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.15,211.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:212.2,213.12 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:216.48,220.18 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:220.18,222.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:222.17,224.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.3,225.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.16,225.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:226.3,226.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.2,228.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.19,230.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:230.17,232.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.3,233.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.16,233.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:234.3,234.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:236.2,237.12 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
@@ -12934,6 +17349,31 @@ 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/tmux/tmux.go:11.23,11.60 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:32.20,34.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.8,40.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:59.14,61.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -12942,8 +17382,104 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:17.13,30.14 10 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:30.14,31.53 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:31.53,34.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:35.3,35.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.2,39.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.42,40.80 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:40.80,43.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:44.3,44.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.2,48.51 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.51,50.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:50.17,53.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:54.3,56.88 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:56.88,59.10 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:60.9,60.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.2,64.55 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.55,67.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:71.83,74.20 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:74.21,74.22 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.2,75.21 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.22,75.23 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.2,77.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.32,79.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:79.17,80.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.29,80.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.40,80.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:82.3,83.20 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:83.20,83.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.2,85.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.33,87.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:87.17,88.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.29,88.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.40,88.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:90.3,91.21 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:91.21,91.38 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:93.2,93.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:99.45,100.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:100.19,103.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:103.17,105.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:106.3,108.72 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:110.2,112.16 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:112.16,114.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:115.2,116.84 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:116.84,119.64 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:119.64,121.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:122.8,124.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:125.2,125.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:133.51,134.12 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:134.12,136.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.2,137.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.15,139.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.5,141.82 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.82,143.6 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:144.2,144.14 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:147.29,147.64 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:149.63,152.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:152.16,154.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.2,155.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.15,155.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:156.2,159.45 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:159.45,161.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:163.2,164.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:164.16,166.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:167.2,170.47 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:170.47,172.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.2,174.61 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.61,176.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:178.2,178.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:181.38,183.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:183.16,185.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.2,186.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.15,186.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.2,187.48 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.48,189.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:190.2,190.17 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:193.60,195.6 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:195.6,196.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:196.42,198.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.3,199.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.33,201.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:202.3,202.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:206.41,208.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:208.16,210.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.2,211.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.15,211.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:212.2,213.12 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:216.48,220.18 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:220.18,222.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:222.17,224.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.3,225.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.16,225.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:226.3,226.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.2,228.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.19,230.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:230.17,232.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.3,233.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.16,233.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:234.3,234.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:236.2,237.12 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
@@ -13475,11 +18011,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
@@ -13543,11 +18079,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
@@ -13638,17 +18174,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
@@ -13656,12 +18192,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
@@ -14550,6 +19086,31 @@ 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/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: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: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/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
@@ -14558,8 +19119,104 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:17.13,30.14 10 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:30.14,31.53 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:31.53,34.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:35.3,35.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.2,39.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.42,40.80 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:40.80,43.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:44.3,44.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.2,48.51 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.51,50.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:50.17,53.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:54.3,56.88 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:56.88,59.10 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:60.9,60.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.2,64.55 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.55,67.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:71.83,74.20 3 6
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:74.21,74.22 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.2,75.21 1 6
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.22,75.23 0 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.2,77.32 1 6
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.32,79.17 2 5
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:79.17,80.28 1 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.29,80.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.40,80.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:82.3,83.20 2 4
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:83.20,83.37 1 4
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.2,85.33 1 5
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.33,87.17 2 4
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:87.17,88.28 1 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.29,88.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.40,88.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:90.3,91.21 2 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:91.21,91.38 1 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:93.2,93.40 1 4
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:99.45,100.19 1 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:100.19,103.17 2 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:103.17,105.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:106.3,108.72 3 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:110.2,112.16 3 2
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:112.16,114.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:115.2,116.84 2 2
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:116.84,119.64 2 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:119.64,121.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:122.8,124.3 1 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:125.2,125.32 1 2
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:133.51,134.12 1 5
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:134.12,136.3 1 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.2,137.15 1 4
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.15,139.3 1 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.5,141.82 1 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.82,143.6 1 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:144.2,144.14 1 2
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:147.29,147.64 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:149.63,152.16 2 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:152.16,154.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.2,155.15 1 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.15,155.40 1 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:156.2,159.45 3 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:159.45,161.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:163.2,164.16 2 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:164.16,166.3 1 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:167.2,170.47 3 2
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:170.47,172.3 1 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.2,174.61 1 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.61,176.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:178.2,178.33 1 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:181.38,183.16 2 5
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:183.16,185.3 1 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.2,186.15 1 4
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.15,186.32 1 4
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.2,187.48 1 4
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.48,189.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:190.2,190.17 1 4
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:193.60,195.6 2 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:195.6,196.42 1 5
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:196.42,198.4 1 2
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.3,199.33 1 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.33,201.4 1 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:202.3,202.37 1 2
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:206.41,208.16 2 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:208.16,210.3 1 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.2,211.15 1 2
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.15,211.32 1 2
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:212.2,213.12 2 2
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:216.48,220.18 3 4
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:220.18,222.17 2 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:222.17,224.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.3,225.16 1 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.16,225.33 1 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:226.3,226.9 1 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.2,228.19 1 4
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.19,230.17 2 3
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:230.17,232.4 1 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.3,233.16 1 2
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.16,233.33 1 2
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:234.3,234.10 1 2
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:236.2,237.12 2 3
codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
@@ -14985,313 +19642,313 @@ codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 9
-codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 9
+codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:70.36,74.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:75.2,82.3 1 9
-codeberg.org/snonux/hexai/internal/llm/copilot.go:85.109,86.39 1 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:75.2,82.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:85.109,86.39 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:86.39,88.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:90.2,90.45 1 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.2,90.45 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:90.45,92.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:93.2,94.27 2 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:93.2,94.27 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:94.27,96.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:97.2,97.19 1 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.2,97.19 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:97.19,99.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:100.2,102.29 3 5
-codeberg.org/snonux/hexai/internal/llm/copilot.go:102.29,104.3 1 5
-codeberg.org/snonux/hexai/internal/llm/copilot.go:105.2,109.16 4 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:100.2,102.29 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:102.29,104.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:105.2,109.16 4 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:109.16,112.3 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:114.2,117.16 4 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:114.2,117.16 4 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:117.16,120.3 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:121.2,122.57 2 5
-codeberg.org/snonux/hexai/internal/llm/copilot.go:122.57,124.3 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:125.2,126.16 2 4
-codeberg.org/snonux/hexai/internal/llm/copilot.go:126.16,128.3 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:129.2,129.27 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:129.27,132.3 2 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:133.2,135.21 3 2
-codeberg.org/snonux/hexai/internal/llm/copilot.go:139.46,139.66 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:140.46,140.71 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:143.102,146.29 3 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:146.29,148.3 1 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:149.2,149.24 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:121.2,122.57 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:122.57,124.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:125.2,126.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:126.16,128.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.2,129.27 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.27,132.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:133.2,135.21 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:139.46,139.66 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:140.46,140.71 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:143.102,146.29 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:146.29,148.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.2,149.24 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:149.24,151.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:151.8,151.31 1 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:151.31,154.3 2 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:155.2,155.21 1 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:155.21,157.3 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:158.2,158.21 1 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:158.21,160.3 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:161.2,161.12 1 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:164.130,166.16 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.8,151.31 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.31,154.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.2,155.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.21,157.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.2,158.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.21,160.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:161.2,161.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:164.130,166.16 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:166.16,168.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:169.2,169.28 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:169.28,171.3 1 88
-codeberg.org/snonux/hexai/internal/llm/copilot.go:172.2,172.29 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:175.70,176.53 1 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:176.53,178.3 1 4
-codeberg.org/snonux/hexai/internal/llm/copilot.go:179.2,181.74 3 2
-codeberg.org/snonux/hexai/internal/llm/copilot.go:181.74,184.3 2 2
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.2,169.28 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.28,171.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:172.2,172.29 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:175.70,176.53 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:176.53,178.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:179.2,181.74 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:181.74,184.3 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:185.2,186.69 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:189.91,191.64 2 4
-codeberg.org/snonux/hexai/internal/llm/copilot.go:191.64,194.3 2 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:195.2,195.17 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:204.66,206.82 1 16
-codeberg.org/snonux/hexai/internal/llm/copilot.go:206.82,208.3 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:209.2,209.39 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:189.91,191.64 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:191.64,194.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:195.2,195.17 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:204.66,206.82 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:206.82,208.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.2,209.39 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:209.39,211.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:212.2,213.16 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:212.2,213.16 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:213.16,215.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:216.2,220.16 5 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:216.2,220.16 5 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:220.16,222.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:223.2,224.53 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:223.2,224.53 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:224.53,226.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:227.2,228.64 2 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:227.2,228.64 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:228.64,230.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:231.2,231.40 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.2,231.40 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:231.40,233.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:235.2,236.18 2 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:236.18,238.3 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:239.2,241.12 3 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:246.42,248.20 2 9
-codeberg.org/snonux/hexai/internal/llm/copilot.go:248.20,250.3 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:251.2,252.16 2 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:235.2,236.18 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:236.18,238.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:239.2,241.12 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:246.42,248.20 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:248.20,250.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:251.2,252.16 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:252.16,253.59 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:253.59,254.48 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:254.48,256.5 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:258.3,258.21 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:260.2,264.22 3 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:260.2,264.22 3 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:264.22,266.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:267.2,267.34 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:270.42,270.100 3 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:274.57,290.2 3 5
-codeberg.org/snonux/hexai/internal/llm/copilot.go:292.58,308.2 3 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:310.28,313.19 3 88
-codeberg.org/snonux/hexai/internal/llm/copilot.go:313.19,315.3 1 1024
-codeberg.org/snonux/hexai/internal/llm/copilot.go:316.2,316.18 1 88
-codeberg.org/snonux/hexai/internal/llm/copilot.go:322.153,323.39 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:267.2,267.34 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:270.42,270.100 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:274.57,290.2 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:292.58,308.2 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:310.28,313.19 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:313.19,315.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:316.2,316.18 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:322.153,323.39 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:323.39,325.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:326.2,326.45 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.2,326.45 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:326.45,328.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:329.2,329.12 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.2,329.12 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:329.12,331.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:332.2,354.16 6 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:332.2,354.16 6 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:354.16,356.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:357.2,358.53 2 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:357.2,358.53 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:358.53,360.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:362.2,365.27 4 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:365.27,366.39 1 10
-codeberg.org/snonux/hexai/internal/llm/copilot.go:366.39,367.12 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:369.3,375.88 2 7
-codeberg.org/snonux/hexai/internal/llm/copilot.go:375.88,376.12 1 4
-codeberg.org/snonux/hexai/internal/llm/copilot.go:378.3,378.34 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:378.34,380.4 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 4
-codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 3
-codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 10
+codeberg.org/snonux/hexai/internal/llm/copilot.go:362.2,365.27 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:365.27,366.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:366.39,367.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:369.3,375.88 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:375.88,376.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.3,378.34 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.34,380.4 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 10
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 10
-codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 6
+codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:62.27,64.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:65.2,65.19 1 6
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.2,65.19 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:65.19,67.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:69.2,73.16 5 6
+codeberg.org/snonux/hexai/internal/llm/ollama.go:69.2,73.16 5 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:73.16,75.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:77.2,80.16 4 6
-codeberg.org/snonux/hexai/internal/llm/ollama.go:80.16,83.3 2 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:84.2,85.56 2 5
-codeberg.org/snonux/hexai/internal/llm/ollama.go:85.56,87.3 1 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:89.2,90.64 2 3
-codeberg.org/snonux/hexai/internal/llm/ollama.go:90.64,93.3 2 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:94.2,94.50 1 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:94.50,97.3 2 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:98.2,100.21 3 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:108.126,110.27 2 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:77.2,80.16 4 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:80.16,83.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:84.2,85.56 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:85.56,87.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:89.2,90.64 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:90.64,93.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.2,94.50 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.50,97.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:98.2,100.21 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:108.126,110.27 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:110.27,112.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:113.2,113.19 1 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.2,113.19 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:113.19,115.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:117.2,121.16 5 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:117.2,121.16 5 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:121.16,123.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:125.2,128.16 4 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:125.2,128.16 4 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:128.16,131.3 2 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:132.2,133.56 2 3
+codeberg.org/snonux/hexai/internal/llm/ollama.go:132.2,133.56 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:133.56,135.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:137.2,138.6 2 3
-codeberg.org/snonux/hexai/internal/llm/ollama.go:138.6,140.41 2 4
-codeberg.org/snonux/hexai/internal/llm/ollama.go:140.41,141.30 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:137.2,138.6 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:138.6,140.41 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:140.41,141.30 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:141.30,142.10 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:144.4,145.14 2 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:147.3,147.40 1 3
-codeberg.org/snonux/hexai/internal/llm/ollama.go:147.40,150.4 2 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:151.3,151.58 1 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:151.58,153.4 1 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:154.3,154.14 1 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:154.14,155.9 1 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:158.2,159.12 2 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:163.76,165.29 2 9
-codeberg.org/snonux/hexai/internal/llm/ollama.go:165.29,167.3 1 9
-codeberg.org/snonux/hexai/internal/llm/ollama.go:168.2,168.89 1 9
-codeberg.org/snonux/hexai/internal/llm/ollama.go:171.109,174.29 3 12
-codeberg.org/snonux/hexai/internal/llm/ollama.go:174.29,176.3 1 12
-codeberg.org/snonux/hexai/internal/llm/ollama.go:177.2,178.24 2 12
-codeberg.org/snonux/hexai/internal/llm/ollama.go:178.24,180.3 1 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:180.8,180.31 1 11
-codeberg.org/snonux/hexai/internal/llm/ollama.go:180.31,182.3 1 3
-codeberg.org/snonux/hexai/internal/llm/ollama.go:183.2,183.21 1 12
-codeberg.org/snonux/hexai/internal/llm/ollama.go:183.21,185.3 1 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:186.2,186.21 1 12
-codeberg.org/snonux/hexai/internal/llm/ollama.go:186.21,188.3 1 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:189.2,189.22 1 12
-codeberg.org/snonux/hexai/internal/llm/ollama.go:189.22,191.3 1 4
-codeberg.org/snonux/hexai/internal/llm/ollama.go:192.2,192.12 1 12
-codeberg.org/snonux/hexai/internal/llm/ollama.go:195.100,197.16 2 9
+codeberg.org/snonux/hexai/internal/llm/ollama.go:144.4,145.14 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.3,147.40 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.40,150.4 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.3,151.58 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.58,153.4 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.3,154.14 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.14,155.9 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:158.2,159.12 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:163.76,165.29 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:165.29,167.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:168.2,168.89 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:171.109,174.29 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:174.29,176.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:177.2,178.24 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:178.24,180.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.8,180.31 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.31,182.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.2,183.21 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.21,185.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.2,186.21 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.21,188.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.2,189.22 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.22,191.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:192.2,192.12 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:195.100,197.16 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:197.16,199.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:200.2,201.29 2 9
-codeberg.org/snonux/hexai/internal/llm/ollama.go:204.69,205.53 1 9
-codeberg.org/snonux/hexai/internal/llm/ollama.go:205.53,207.3 1 7
-codeberg.org/snonux/hexai/internal/llm/ollama.go:208.2,210.43 3 2
-codeberg.org/snonux/hexai/internal/llm/ollama.go:210.43,213.3 2 1
-codeberg.org/snonux/hexai/internal/llm/ollama.go:214.2,215.68 2 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 11
+codeberg.org/snonux/hexai/internal/llm/ollama.go:200.2,201.29 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:204.69,205.53 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:205.53,207.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:208.2,210.43 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:210.43,213.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:214.2,215.68 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:95.108,96.20 1 6
-codeberg.org/snonux/hexai/internal/llm/openai.go:96.20,98.3 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:99.2,100.27 2 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:95.108,96.20 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:96.20,98.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:99.2,100.27 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:100.27,102.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:103.2,103.19 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.2,103.19 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:103.19,105.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:106.2,110.16 5 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:106.2,110.16 5 0
codeberg.org/snonux/hexai/internal/llm/openai.go:110.16,113.3 2 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:114.2,119.16 4 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:114.2,119.16 4 0
codeberg.org/snonux/hexai/internal/llm/openai.go:119.16,122.3 2 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:123.2,124.56 2 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:124.56,126.3 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:127.2,128.16 2 4
-codeberg.org/snonux/hexai/internal/llm/openai.go:128.16,130.3 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:131.2,131.27 1 3
-codeberg.org/snonux/hexai/internal/llm/openai.go:131.27,134.3 2 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:135.2,137.21 3 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:141.45,141.64 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:146.126,147.20 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:123.2,124.56 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:124.56,126.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:127.2,128.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:128.16,130.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.2,131.27 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.27,134.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:135.2,137.21 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:141.45,141.64 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:146.126,147.20 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:147.20,149.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:150.2,151.27 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:150.2,151.27 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:151.27,153.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:154.2,154.19 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.2,154.19 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:154.19,156.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:157.2,161.16 5 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:157.2,161.16 5 0
codeberg.org/snonux/hexai/internal/llm/openai.go:161.16,164.3 2 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:165.2,170.16 4 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:165.2,170.16 4 0
codeberg.org/snonux/hexai/internal/llm/openai.go:170.16,173.3 2 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:174.2,175.56 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:174.2,175.56 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:175.56,177.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:179.2,179.64 1 4
-codeberg.org/snonux/hexai/internal/llm/openai.go:179.64,181.3 1 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:182.2,183.12 2 3
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.2,179.64 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.64,181.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:182.2,183.12 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:187.56,187.104 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:190.76,192.29 2 9
-codeberg.org/snonux/hexai/internal/llm/openai.go:192.29,194.3 1 9
-codeberg.org/snonux/hexai/internal/llm/openai.go:195.2,195.89 1 9
-codeberg.org/snonux/hexai/internal/llm/openai.go:198.105,201.29 3 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:201.29,203.3 1 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:204.2,204.24 1 11
+codeberg.org/snonux/hexai/internal/llm/openai.go:190.76,192.29 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:192.29,194.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:195.2,195.89 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:198.105,201.29 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:201.29,203.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.2,204.24 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:204.24,206.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:206.8,206.31 1 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:206.31,209.3 2 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:210.2,210.21 1 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:210.21,212.3 1 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:213.2,213.21 1 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:213.21,215.3 1 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:216.2,216.12 1 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:219.127,221.16 2 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.8,206.31 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.31,209.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.2,210.21 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.21,212.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.2,213.21 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.21,215.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:216.2,216.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:219.127,221.16 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:221.16,223.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:224.2,225.28 2 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:225.28,227.3 1 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:228.2,228.29 1 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:231.152,233.16 2 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:224.2,225.28 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:225.28,227.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:228.2,228.29 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:231.152,233.16 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:233.16,235.3 1 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:236.2,238.28 3 4
-codeberg.org/snonux/hexai/internal/llm/openai.go:238.28,240.3 1 4
-codeberg.org/snonux/hexai/internal/llm/openai.go:241.2,241.29 1 4
-codeberg.org/snonux/hexai/internal/llm/openai.go:244.69,245.53 1 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:245.53,247.3 1 8
-codeberg.org/snonux/hexai/internal/llm/openai.go:248.2,250.55 3 3
-codeberg.org/snonux/hexai/internal/llm/openai.go:250.55,253.3 2 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:254.2,255.68 2 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:258.85,260.64 2 4
-codeberg.org/snonux/hexai/internal/llm/openai.go:260.64,263.3 2 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:264.2,264.17 1 3
-codeberg.org/snonux/hexai/internal/llm/openai.go:267.90,273.21 5 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:273.21,275.41 2 11
-codeberg.org/snonux/hexai/internal/llm/openai.go:275.41,276.12 1 3
-codeberg.org/snonux/hexai/internal/llm/openai.go:278.3,279.45 2 8
-codeberg.org/snonux/hexai/internal/llm/openai.go:279.45,280.9 1 3
-codeberg.org/snonux/hexai/internal/llm/openai.go:282.3,283.65 2 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:283.65,284.12 1 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:286.3,286.54 1 3
-codeberg.org/snonux/hexai/internal/llm/openai.go:286.54,289.4 2 1
-codeberg.org/snonux/hexai/internal/llm/openai.go:290.3,290.36 1 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:290.36,291.30 1 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:291.30,293.5 1 2
-codeberg.org/snonux/hexai/internal/llm/openai.go:296.2,296.38 1 4
+codeberg.org/snonux/hexai/internal/llm/openai.go:236.2,238.28 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:238.28,240.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:241.2,241.29 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:244.69,245.53 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:245.53,247.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:248.2,250.55 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:250.55,253.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:254.2,255.68 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:258.85,260.64 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:260.64,263.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:264.2,264.17 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:267.90,273.21 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:273.21,275.41 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:275.41,276.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:278.3,279.45 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:279.45,280.9 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:282.3,283.65 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:283.65,284.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.3,286.54 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.54,289.4 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.3,290.36 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.36,291.30 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:291.30,293.5 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.2,296.38 1 0
codeberg.org/snonux/hexai/internal/llm/openai.go:296.38,299.3 2 0
-codeberg.org/snonux/hexai/internal/llm/openai.go:300.2,300.12 1 4
-codeberg.org/snonux/hexai/internal/llm/provider.go:58.47,58.73 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:58.73,58.92 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:59.73,59.94 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 6
+codeberg.org/snonux/hexai/internal/llm/openai.go:300.2,300.12 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.47,58.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.73,58.92 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.73,59.94 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 6
-codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 2
-codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 3
-codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 2
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 2
-codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 2
-codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 1
-codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
+codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 30
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 23
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 7
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 23
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 23
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 95
-codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 95
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 0
codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 28
+codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:48.32,50.4 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 28
+codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 0
codeberg.org/snonux/hexai/internal/lsp/context.go:16.96,18.14 2 0
codeberg.org/snonux/hexai/internal/lsp/context.go:19.17,20.19 1 0
codeberg.org/snonux/hexai/internal/lsp/context.go:21.16,22.41 1 0
@@ -16166,6 +20823,31 @@ codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:32.20,34.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.8,40.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:59.14,61.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -16174,8 +20856,104 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
-codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:17.13,30.14 10 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:30.14,31.53 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:31.53,34.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:35.3,35.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.2,39.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:39.42,40.80 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:40.80,43.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:44.3,44.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.2,48.51 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:48.51,50.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:50.17,53.4 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:54.3,56.88 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:56.88,59.10 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:60.9,60.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.2,64.55 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:64.55,67.3 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:71.83,74.20 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:74.21,74.22 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.2,75.21 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:75.22,75.23 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.2,77.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:77.32,79.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:79.17,80.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.29,80.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:80.40,80.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:82.3,83.20 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:83.20,83.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.2,85.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:85.33,87.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:87.17,88.28 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.29,88.30 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:88.40,88.41 0 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:90.3,91.21 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:91.21,91.38 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:93.2,93.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:99.45,100.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:100.19,103.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:103.17,105.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:106.3,108.72 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:110.2,112.16 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:112.16,114.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:115.2,116.84 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:116.84,119.64 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:119.64,121.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:122.8,124.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:125.2,125.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:133.51,134.12 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:134.12,136.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.2,137.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:137.15,139.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.5,141.82 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:141.82,143.6 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:144.2,144.14 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:147.29,147.64 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:149.63,152.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:152.16,154.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.2,155.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:155.15,155.40 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:156.2,159.45 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:159.45,161.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:163.2,164.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:164.16,166.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:167.2,170.47 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:170.47,172.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.2,174.61 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:174.61,176.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:178.2,178.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:181.38,183.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:183.16,185.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.2,186.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:186.15,186.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.2,187.48 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:187.48,189.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:190.2,190.17 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:193.60,195.6 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:195.6,196.42 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:196.42,198.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.3,199.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:199.33,201.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:202.3,202.37 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:206.41,208.16 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:208.16,210.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.2,211.15 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:211.15,211.32 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:212.2,213.12 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:216.48,220.18 3 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:220.18,222.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:222.17,224.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.3,225.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:225.16,225.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:226.3,226.9 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.2,228.19 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:228.19,230.17 2 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:230.17,232.4 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.3,233.16 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:233.16,233.33 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:234.3,234.10 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:236.2,237.12 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
@@ -17782,3 +22560,28 @@ codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:17.23,17.72 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:20.23,20.76 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:31.52,32.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:32.20,34.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:35.2,36.19 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:36.19,38.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.8,40.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.2,41.45 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:41.45,43.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.2,44.42 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:44.42,46.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:48.2,51.19 4 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:56.38,58.25 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.25,59.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:59.14,61.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.3,63.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:63.20,65.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:69.3,70.33 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:72.2,72.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:76.32,77.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:77.30,79.141 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.141,80.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:82.3,82.15 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.2,84.13 1 0
diff --git a/docs/usage.md b/docs/usage.md
index a5c5dca..05d6c55 100644
--- a/docs/usage.md
+++ b/docs/usage.md
@@ -110,7 +110,13 @@ hexai 'install ripgrep on macOS and explain'
- Choose an action with arrow keys, `j/k`, `g/G`, Enter, or hotkeys `[s] [r] [c] [t]`.
- Output is written to stdout by default, or to a file via `--outfile`.
-Input formats are the same as described in the README (inline instruction markers for rewrite; optional `Diagnostics:` header block).
+Input formats
+
+- Rewrite: include an inline instruction near the top of the selection using one of:
+ - `;do something;`
+ - `/* do something */`
+ - `<!-- do something -->`
+ - `// do something` (or `#`, `--`)
Examples
diff --git a/internal/appconfig/config_test.go b/internal/appconfig/config_test.go
index d708542..5cb79a0 100644
--- a/internal/appconfig/config_test.go
+++ b/internal/appconfig/config_test.go
@@ -22,6 +22,20 @@ 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], "")
+ }
+ }
+ }
+}
+
func withEnv(t *testing.T, k, v string) {
t.Helper()
old := os.Getenv(k)
@@ -40,9 +54,10 @@ func TestLoad_Defaults_NoLogger(t *testing.T) {
}
func TestLoad_Defaults_WithLogger_NoFile_NoEnv(t *testing.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)
@@ -192,8 +207,9 @@ func TestLoadFromFile_InvalidTOML(t *testing.T) {
}
func TestLoad_FileTables_Sectioned(t *testing.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]
@@ -274,8 +290,9 @@ temperature = 0.0
}
func TestLoad_FileTables_Prompts_AllSections(t *testing.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/hexaiaction/tui_test.go b/internal/hexaiaction/tui_test.go
index 0f7d091..6f1debc 100644
--- a/internal/hexaiaction/tui_test.go
+++ b/internal/hexaiaction/tui_test.go
@@ -34,3 +34,24 @@ func TestHandleKey_JumpEndWithG(t *testing.T) {
}
}
+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)
+ }
+}
+
+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")
+ }
+}