Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
c70df81
fix(agent): graceful error handling instead of panics
Nithwin Jul 26, 2026
5601b77
fix(agent): resolve variable assignment compiler error
Nithwin Jul 26, 2026
4c3d46e
Merge pull request #31 from Nithwin/fix/v2-graceful-errors
Nithwin Jul 26, 2026
b9be689
fix(agent): implement exponential backoff retry in loop
Nithwin Jul 26, 2026
8e08e7a
Merge pull request #32 from Nithwin/fix/agent-retry
Nithwin Jul 26, 2026
cb613bf
fix(chat): implement graceful context cancellation on ctrl+c
Nithwin Jul 26, 2026
e4c165a
Merge pull request #33 from Nithwin/fix/graceful-shutdown
Nithwin Jul 26, 2026
31851d6
fix(config): allow setting base URL for providers
Nithwin Jul 26, 2026
bdc0922
Merge pull request #34 from Nithwin/fix/base-url
Nithwin Jul 26, 2026
96df1a7
feat(chat): implement input history navigation with up/down arrows
Nithwin Jul 26, 2026
6db2e2a
feat(agent): stream progress indicators during tool execution
Nithwin Jul 26, 2026
5f347d3
feat(agent): implement concurrent tool execution
Nithwin Jul 26, 2026
e61ebf3
Merge pull request #35 from Nithwin/feat/parallel-tools
Nithwin Jul 26, 2026
f16ff35
feat(providers): add deepseek, mistral, and kimi (moonshot) models
Nithwin Jul 26, 2026
6a0c131
Merge pull request #36 from Nithwin/feat/new-providers
Nithwin Jul 26, 2026
edbb782
feat(providers): add latest 2026 models and providers (perplexity, to…
Nithwin Jul 26, 2026
fdcf112
Merge pull request #37 from Nithwin/feat/latest-models-providers
Nithwin Jul 26, 2026
5055b3d
feat(config): support saving and displaying custom models persistently
Nithwin Jul 26, 2026
ce8427f
Merge pull request #38 from Nithwin/feat/custom-models
Nithwin Jul 26, 2026
ed307a0
chore: add bin/ to gitignore
Nithwin Jul 26, 2026
097a580
feat(tools): implement priority 1 tools (glob, grep, search, fetch, t…
Nithwin Jul 26, 2026
8cd9482
Merge pull request #39 from Nithwin/feat/v2-tools-p1
Nithwin Jul 26, 2026
04d89d8
feat(tools): implement GitTool and PatchTool
Nithwin Jul 26, 2026
d558853
Merge pull request #40 from Nithwin/feat/v2-tools-p2
Nithwin Jul 26, 2026
a9012af
feat(tools): implement tool categories and permission levels
Nithwin Jul 26, 2026
6a8b6de
Merge pull request #41 from Nithwin/feat/v2-tools-architecture
Nithwin Jul 26, 2026
f744ae2
feat(persistence): implement sqlite session persistence
Nithwin Jul 26, 2026
6cd4aed
Merge pull request #42 from Nithwin/feat/v2-session-persistence
Nithwin Jul 26, 2026
dfe5391
docs: add Discord community link
Nithwin Jul 26, 2026
1a59b3e
feat(ui): implement interactive session loader and searchable menus
Nithwin Jul 26, 2026
75f708a
Merge pull request #43 from Nithwin/feat/v2-session-commands
Nithwin Jul 26, 2026
3d5ab2b
fix(ui): make /new command create a new database session
Nithwin Jul 26, 2026
1aae975
feat(agent): implement atomic undo/redo file engine with SQLite integ…
Nithwin Jul 26, 2026
4bb35de
Merge pull request #44 from Nithwin/feat/v2-undo-redo
Nithwin Jul 26, 2026
7f7cad2
chore(ui): remove confusing /clear command in favor of /new
Nithwin Jul 26, 2026
b5079c6
feat(agent): implement build and plan agent modes with auto-routing
Nithwin Jul 26, 2026
5cfe2c5
Merge pull request #45 from Nithwin/feat/v2-agent-modes
Nithwin Jul 26, 2026
8470a10
feat(agent): implement exact token-aware memory with tiktoken
Nithwin Jul 26, 2026
e57efd3
Merge pull request #46 from Nithwin/feat/v2-token-memory
Nithwin Jul 26, 2026
f0649d1
feat(agent): implement sub-agent system for robust background research
Nithwin Jul 26, 2026
db9847d
Merge pull request #47 from Nithwin/feat/v2-subagents
Nithwin Jul 26, 2026
c009cc0
feat(agent): implement sub-agent fallback strategy and /subagent UI c…
Nithwin Jul 26, 2026
e0731f1
Merge pull request #48 from Nithwin/feat/v2-subagent-refinements
Nithwin Jul 26, 2026
4e5b6a6
feat(ui): implement configurable theme system
Nithwin Jul 26, 2026
56db93a
Merge pull request #49 from Nithwin/feat/v2-themes
Nithwin Jul 26, 2026
1bfd9d6
fix(ui): apply global background color and fix theme updating
Nithwin Jul 26, 2026
e74a3b0
Merge pull request #50 from Nithwin/fix/v2-themes
Nithwin Jul 26, 2026
da7fe23
fix(ui): eliminate black styling artifacts
Nithwin Jul 26, 2026
69ad77f
Merge pull request #51 from Nithwin/fix/v2-theme-black-blocks
Nithwin Jul 26, 2026
558d7eb
refactor(ui): remove deprecated lipgloss Copy calls
Nithwin Jul 26, 2026
aa9bf26
Merge pull request #52 from Nithwin/fix/v2-theme-deprecations
Nithwin Jul 26, 2026
0509d0c
fix(ui): apply theme background to textarea and unstyled spacing
Nithwin Jul 26, 2026
4c4cfaf
Merge pull request #53 from Nithwin/fix/v2-theme-input-black-bg
Nithwin Jul 26, 2026
9ac74f3
fix(ui): correct header gap calculation and upgrade windmist theme
Nithwin Jul 26, 2026
657a427
Merge pull request #54 from Nithwin/fix/v2-theme-header-gap
Nithwin Jul 26, 2026
2c07c3c
feat(ui): display current theme in header and theme selector
Nithwin Jul 26, 2026
ba06013
Merge pull request #55 from Nithwin/feat/v2-theme-enhancements
Nithwin Jul 26, 2026
81bc033
fix(ui): use hardcoded BrandCyan for logo and theme tags
Nithwin Jul 26, 2026
bc94cdb
Merge pull request #56 from Nithwin/fix/v2-theme-brand-cyan
Nithwin Jul 26, 2026
ecf9496
fix(ui): correct windmist info mapping and enforce BrandCyan on splas…
Nithwin Jul 26, 2026
3ca2516
Merge pull request #57 from Nithwin/fix/v2-theme-splash-cyan
Nithwin Jul 26, 2026
ac767bf
feat(ui): add fuzzy file picker triggered by @
Nithwin Jul 26, 2026
8faf9e8
Merge pull request #58 from Nithwin/feat/v2-file-picker
Nithwin Jul 26, 2026
0f5f30a
feat(ui): implement enhanced status bar with token and cost tracking
Nithwin Jul 26, 2026
cce1f65
Merge pull request #59 from Nithwin/feat/v2-status-bar
Nithwin Jul 26, 2026
1c83ffb
fix(ui): remove bottom status bar and integrate metrics into top header
Nithwin Jul 26, 2026
211d577
Merge pull request #60 from Nithwin/fix/v2-header-status-merge
Nithwin Jul 26, 2026
59f43c5
fix(ui): remove emojis and format metrics as plain text in header
Nithwin Jul 26, 2026
91eba82
Merge pull request #61 from Nithwin/fix/v2-header-text-format
Nithwin Jul 26, 2026
d360153
feat(ui): implement inline git-style diff view for file changes
Nithwin Jul 26, 2026
374802e
Merge pull request #62 from Nithwin/feat/v2-diff-view
Nithwin Jul 26, 2026
9aa7ee0
feat(agent): automatically run language formatters after file modific…
Nithwin Jul 26, 2026
769c98e
Merge pull request #63 from Nithwin/feat/v2-auto-format
Nithwin Jul 26, 2026
6eaa4a0
fix(ui): correct evaluation order for the fuzzy file picker to trigge…
Nithwin Jul 26, 2026
614e0cb
Merge pull request #64 from Nithwin/fix/v2-picker-eval-order
Nithwin Jul 26, 2026
5b4811e
fix(ui): resolve file picker not opening due to disconnected state mu…
Nithwin Jul 26, 2026
b1366ab
Merge pull request #65 from Nithwin/fix/v2-file-picker-state
Nithwin Jul 26, 2026
e17908b
feat(store): complete option 2 with multi-level undo/redo and auto-ti…
Nithwin Jul 26, 2026
38cd4f2
Merge pull request #66 from Nithwin/feat/v2-session-management-complete
Nithwin Jul 26, 2026
8af52b4
feat(lsp): implement LSP client and auto-fix loop
Nithwin Jul 26, 2026
ca95551
Merge pull request #67 from Nithwin/feat/v2-lsp-integration
Nithwin Jul 26, 2026
7d53d31
feat(lsp): add support for C/C++, Java, and Ruby
Nithwin Jul 26, 2026
2c03dad
feat(mcp): implement MCP client and tool auto-discovery
Nithwin Jul 26, 2026
720c79d
Merge pull request #68 from Nithwin/feat/v2-mcp-integration
Nithwin Jul 26, 2026
2744c98
fix(gemini): fix 400 error on empty schema and add /mcp interactive c…
Nithwin Jul 26, 2026
cdb859b
Merge pull request #69 from Nithwin/fix/gemini-400-and-mcp-catalog
Nithwin Jul 26, 2026
45b443f
feat(ui): add /apikey command and rename plan mode to chat
Nithwin Jul 26, 2026
151aad9
Merge pull request #70 from Nithwin/feat/v2-apikey-and-chat-mode
Nithwin Jul 26, 2026
add6996
feat(mcp): auto-extract github token using gh cli
Nithwin Jul 26, 2026
a134b0a
Merge pull request #71 from Nithwin/feat/v2-github-auto-auth
Nithwin Jul 26, 2026
9f578f7
feat(mcp): implement native GitHub device flow OAuth
Nithwin Jul 26, 2026
dabfd9f
Merge pull request #72 from Nithwin/feat/v2-native-github-oauth
Nithwin Jul 26, 2026
d2e58ac
chore: mark completed roadmap items including sub-agent and mcp
Nithwin Jul 26, 2026
7bd8aee
Merge pull request #73 from Nithwin/chore/update-roadmap-todos
Nithwin Jul 26, 2026
1b684d4
fix(ui): prevent terminal blanking by replacing selector with inline …
Nithwin Jul 26, 2026
ccd9762
Merge pull request #74 from Nithwin/fix/ui-blanking
Nithwin Jul 26, 2026
1d2cfad
fix(gemini): resolve 400 bad request by correctly schema-translating …
Nithwin Jul 26, 2026
bd99b3f
Merge pull request #75 from Nithwin/fix/gemini-400-arrays
Nithwin Jul 26, 2026
ccb3c11
fix(tui): resolve 3 critical UX bugs — race condition, loading feedba…
Nithwin Jul 26, 2026
23c8366
feat: implement request queuing system for non-blocking UI and add RA…
Nithwin Jul 26, 2026
a9a19b9
refactor: standardize code formatting and improve consistency across …
Nithwin Jul 26, 2026
591b742
fix(chat): reset stream tokens correctly for new requests
Nithwin Jul 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Go binaries & build artifacts
WindMist
bin/
*.exe
*.exe~
*.dll
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@
[![Version: v1.0.0](https://img.shields.io/badge/Version-v1.0.0-8B5CF6?style=for-the-badge)](CHANGELOG.md)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge)](LICENSE)
[![Go Version](https://img.shields.io/badge/Go-1.25+-00ADD8?style=for-the-badge&logo=go)](https://golang.org)
[![Python Version](https://img.shields.io/badge/Python-3.13+-3776AB?style=for-the-badge&logo=python&logoColor=white)](https://python.org)
[![Discord](https://img.shields.io/badge/Discord-Join-7289DA?style=for-the-badge&logo=discord)](https://discord.gg/9hNxQdHYX)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-10B981?style=for-the-badge)](CONTRIBUTING.md)

**A modern open-source AI coding assistant running right inside your terminal.**
WindMist (`v1.0.0`) is built in high-performance Go to inspect code, edit files atomically across your workspace, and engage in multi-turn reasoning loops with local tools.

> **🌐 Official Website:** [windmist.vercel.app](https://windmist.vercel.app/)  |  **💻 Website Repo:** [`windmist-site`](https://github.com/Nithwin/windmist-site)
> **🌐 Official Website:** [windmist.vercel.app](https://windmist.vercel.app/)  |  **💻 Website Repo:** [`windmist-site`](https://github.com/Nithwin/windmist-site)  |  **💬 Community:** [Discord](https://discord.gg/9hNxQdHYX)

[Demo](#-demo) • [Installation](#-installation) • [Quick Start](#-quick-start) • [Features](#-features--capabilities) • [Commands](#-core-commands) • [Architecture](docs/architecture.md) • [Contributing](CONTRIBUTING.md)

Expand Down
2 changes: 1 addition & 1 deletion ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ gantt
**Goal:** Prepare WindMist for widespread open-source adoption, extensible plugin development, and cross-platform distribution.

### Key Deliverables:
- [ ] **Model Context Protocol (MCP) Integration (`plugins/`)**
- [x] **Model Context Protocol (MCP) Integration (`plugins/`)**
- Support standard MCP client specs so developers can connect custom database tools, Jira integrations, and cloud monitoring servers directly to WindMist.
- [ ] **Custom Plugin Engine**
- Allow users to write shared object plugins (`.so` or external binaries) that conform to our Go `Tool` interface.
Expand Down
4 changes: 2 additions & 2 deletions cmd/chat.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,11 @@ var chatCmd = &cobra.Command{
var ans string
fmt.Scanln(&ans)
return ans == "y" || ans == "Y"
})
}, cfg)

ag := agent.New(provider, manager, agent.Config{})

res, err := ag.Run(context.Background(), args[0], func(s string) {
res, err := ag.Run(context.Background(), nil, args[0], func(s string) {
fmt.Print(s)
})
if err != nil {
Expand Down
3 changes: 2 additions & 1 deletion cmd/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ var modelCmd = &cobra.Command{
opt, err := selector.Run(
fmt.Sprintf("Select Model for %s", cfg.AI.Provider),
"Choose the active model to use:",
config.GetModelOptions(cfg.AI.Provider, ollamaBaseURL),
cfg.GetModelOptions(cfg.AI.Provider, ollamaBaseURL),
)
if err != nil {
log.Fatal(err)
Expand All @@ -42,6 +42,7 @@ var modelCmd = &cobra.Command{
log.Fatal(err)
}
value = customVal
cfg.AddCustomModel(cfg.AI.Provider, value)
}
}

Expand Down
3 changes: 2 additions & 1 deletion cmd/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ var providerCmd = &cobra.Command{
modelOpt, err := selector.Run(
fmt.Sprintf("Select Model for %s", value),
"Choose the active model for this provider:",
config.GetModelOptions(value, ollamaBaseURL),
cfg.GetModelOptions(value, ollamaBaseURL),
)
if err != nil {
log.Fatal(err)
Expand All @@ -57,6 +57,7 @@ var providerCmd = &cobra.Command{
log.Fatal(err)
}
modelValue = customVal
cfg.AddCustomModel(value, modelValue)
}

if err := cfg.SetModel(value, modelValue); err != nil {
Expand Down
5 changes: 5 additions & 0 deletions cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,15 @@ package cmd

import (
_ "github.com/Nithwin/WindMist/internal/providers/anthropic"
_ "github.com/Nithwin/WindMist/internal/providers/deepseek"
_ "github.com/Nithwin/WindMist/internal/providers/gemini"
_ "github.com/Nithwin/WindMist/internal/providers/groq"
_ "github.com/Nithwin/WindMist/internal/providers/kimi"
_ "github.com/Nithwin/WindMist/internal/providers/mistral"
_ "github.com/Nithwin/WindMist/internal/providers/ollama"
_ "github.com/Nithwin/WindMist/internal/providers/openai"
_ "github.com/Nithwin/WindMist/internal/providers/perplexity"
_ "github.com/Nithwin/WindMist/internal/providers/together"

"github.com/Nithwin/WindMist/internal/chat"
"github.com/spf13/cobra"
Expand Down
10 changes: 6 additions & 4 deletions cmd/set.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ var setCmd = &cobra.Command{
modelOpt, err := selector.Run(
fmt.Sprintf("Select Model for %s", value),
"Choose the active model for this provider:",
config.GetModelOptions(value, ollamaBaseURL),
cfg.GetModelOptions(value, ollamaBaseURL),
)
if err != nil {
log.Fatal(err)
Expand All @@ -62,6 +62,7 @@ var setCmd = &cobra.Command{
log.Fatal(err)
}
modelValue = customVal
cfg.AddCustomModel(value, modelValue)
}
err = cfg.SetModel(value, modelValue)
if err != nil {
Expand All @@ -84,7 +85,7 @@ var setCmd = &cobra.Command{
opt, err := selector.Run(
fmt.Sprintf("Select Model for %s", cfg.AI.Provider),
"Choose the active model to use:",
config.GetModelOptions(cfg.AI.Provider, ollamaBaseURL),
cfg.GetModelOptions(cfg.AI.Provider, ollamaBaseURL),
)
if err != nil {
log.Fatal(err)
Expand All @@ -96,6 +97,7 @@ var setCmd = &cobra.Command{
log.Fatal(err)
}
value = customVal
cfg.AddCustomModel(cfg.AI.Provider, value)
}
}
err = cfg.SetModel(cfg.AI.Provider, value)
Expand All @@ -116,8 +118,8 @@ var setCmd = &cobra.Command{
case "theme":
if value == "" {
opt, err := selector.Run("Select UI Theme", "Choose visual theme:", []selector.Option{
{Label: "dark", Description: "Dark theme with purple & cyan accents", Value: "dark"},
{Label: "light", Description: "Light theme", Value: "light"},
{Label: "dark", Desc: "Dark theme with purple & cyan accents", Value: "dark"},
{Label: "light", Desc: "Light theme", Value: "light"},
})
if err != nil {
log.Fatal(err)
Expand Down
19 changes: 15 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,15 @@ module github.com/Nithwin/WindMist
go 1.26

require (
github.com/bmatcuk/doublestar/v4 v4.10.0
github.com/charmbracelet/bubbles v1.0.0
github.com/charmbracelet/bubbletea v1.3.10
github.com/charmbracelet/glamour v1.0.0
github.com/charmbracelet/lipgloss v1.1.1-0.20250404203927-76690c660834
github.com/jmoiron/sqlx v1.4.0
github.com/mattn/go-sqlite3 v1.14.48
github.com/pkoukk/tiktoken-go v0.1.8
github.com/pmezard/go-difflib v1.0.0
github.com/spf13/cobra v1.10.2
gopkg.in/yaml.v3 v3.0.1
)
Expand All @@ -26,6 +31,7 @@ require (
github.com/clipperhouse/uax29/v2 v2.5.0 // indirect
github.com/dlclark/regexp2 v1.11.5 // indirect
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/gorilla/css v1.0.1 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/lucasb-eyer/go-colorful v1.3.0 // indirect
Expand All @@ -38,12 +44,17 @@ require (
github.com/muesli/reflow v0.3.0 // indirect
github.com/muesli/termenv v0.16.0 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/sahilm/fuzzy v0.1.1 // indirect
github.com/spf13/pflag v1.0.9 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
github.com/yuin/goldmark v1.7.13 // indirect
github.com/yuin/goldmark-emoji v1.0.6 // indirect
golang.org/x/net v0.38.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/term v0.36.0 // indirect
golang.org/x/text v0.30.0 // indirect
golang.org/x/mod v0.38.0 // indirect
golang.org/x/net v0.57.0 // indirect
golang.org/x/sync v0.22.0 // indirect
golang.org/x/sys v0.47.0 // indirect
golang.org/x/telemetry v0.0.0-20260708182218-49f421fb7959 // indirect
golang.org/x/term v0.45.0 // indirect
golang.org/x/text v0.40.0 // indirect
golang.org/x/tools v0.48.0 // indirect
)
43 changes: 43 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ=
github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE=
github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0=
Expand All @@ -14,6 +16,8 @@ github.com/aymanbagabas/go-udiff v0.3.1 h1:LV+qyBQ2pqe0u42ZsUEtPiCaUoqgA9gYRDs3v
github.com/aymanbagabas/go-udiff v0.3.1/go.mod h1:G0fsKmG+P6ylD0r6N/KgQD/nWzgfnl8ZBcNLgcbrw8E=
github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
github.com/bmatcuk/doublestar/v4 v4.10.0 h1:zU9WiOla1YA122oLM6i4EXvGW62DvKZVxIe6TYWexEs=
github.com/bmatcuk/doublestar/v4 v4.10.0/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc=
github.com/charmbracelet/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc=
github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E=
github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw=
Expand Down Expand Up @@ -41,16 +45,28 @@ github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEX
github.com/clipperhouse/uax29/v2 v2.5.0 h1:x7T0T4eTHDONxFJsL94uKNKPHrclyFI0lm7+w94cO8U=
github.com/clipperhouse/uax29/v2 v2.5.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g=
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ=
github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM=
github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y=
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8=
github.com/gorilla/css v1.0.1/go.mod h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A3b0=
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o=
github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag=
github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
Expand All @@ -60,6 +76,9 @@ github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+Ei
github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw=
github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
github.com/mattn/go-sqlite3 v1.14.48 h1:7XHIgl0a8HwOaiK4E47ozLkST78rR9+OtNGx27D/TFs=
github.com/mattn/go-sqlite3 v1.14.48/go.mod h1:6JTjA44L93a0QCyJef5YvlPoKXntQPjzWv5gtm9sB6w=
github.com/microcosm-cc/bluemonday v1.0.27 h1:MpEUotklkwCSLeH+Qdx1VJgNqLlpY2KXwXFM08ygZfk=
github.com/microcosm-cc/bluemonday v1.0.27/go.mod h1:jFi9vgW+H7c3V0lb6nR74Ib/DIB5OBs92Dimizgw2cA=
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=
Expand All @@ -70,15 +89,23 @@ github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s=
github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8=
github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc=
github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk=
github.com/pkoukk/tiktoken-go v0.1.8 h1:85ENo+3FpWgAACBaEUVp+lctuTcYUO7BtmfhlN/QTRo=
github.com/pkoukk/tiktoken-go v0.1.8/go.mod h1:9NiV+i9mJKGj1rYOT+njbv+ZwA/zJxYdewGl6qVatpg=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sahilm/fuzzy v0.1.1 h1:ceu5RHF8DGgoi+/dR5PsECjCDH1BE3Fnmpo7aVXOdRA=
github.com/sahilm/fuzzy v0.1.1/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y=
github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=
github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4=
github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY=
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
github.com/yuin/goldmark v1.7.13 h1:GPddIs617DnBLFFVJFgpo1aBfe/4xcvMc3SB5t/D0pA=
Expand All @@ -88,16 +115,32 @@ github.com/yuin/goldmark-emoji v1.0.6/go.mod h1:ukxJDKFpdFb5x0a5HqbdlcKtebh086iJ
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI=
golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo=
golang.org/x/mod v0.38.0 h1:MECBjubtXD7yj4HrhIUcywNaGeNVUdfVnxmPajOk4yk=
golang.org/x/mod v0.38.0/go.mod h1:V6Xz0pq8TQ3dGqVQ1FVHuelZpAL0uNhSkk9ogYP3c40=
golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE=
golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU=
golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek=
golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs=
golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
golang.org/x/telemetry v0.0.0-20260708182218-49f421fb7959 h1:RJhm5l6Fo4rmEIcndxDllNhhf/fAx8qIm4t6A7vpm2A=
golang.org/x/telemetry v0.0.0-20260708182218-49f421fb7959/go.mod h1:LV7u5Oco+Z/g6XI7PqN+EUUUGGkEcmB1uj2ceI0fOVg=
golang.org/x/term v0.36.0 h1:zMPR+aF8gfksFprF/Nc/rd1wRS1EI6nDBGyWAvDzx2Q=
golang.org/x/term v0.36.0/go.mod h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss=
golang.org/x/term v0.45.0 h1:NwWyBmoJCbfTHpxrWoZ9C6/VxOf7ic219I8xZZFdrf0=
golang.org/x/term v0.45.0/go.mod h1:9aqxs0blBcrm/n0L9QW0aRVD+ktan8ssZromtqJC43w=
golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k=
golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM=
golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs=
golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY=
golang.org/x/tools v0.48.0 h1:3+hClM1aLL5mjMKm5ovokw9epgRXPuu2tILgismM6RE=
golang.org/x/tools v0.48.0/go.mod h1:08xX0orndb/F7jJxGDicx061tyd5pcMto75YMAXr6lk=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
Expand Down
Loading
Loading