on main help sign in
rename to opencode
commitcc07f7a186995f428436bc1adc66a264a95171a4 authorKujtim Hoxha <kujtimii.h@gmail.com> dateWed 16 Apr 2025, 21:48 (2 years ago) parentbbfa60c
66 files changed+266−266
.opencode.json+11 cmd/root.go+7−7 go.mod+1−1 internal/app/app.go+9−9 internal/app/lsp.go+4−4 internal/config/config.go+2−2 internal/db/connect.go+3−3 internal/diff/diff.go+2−2 internal/history/file.go+2−2 internal/llm/agent/agent-tool.go+5−5 internal/llm/agent/agent.go+9−9 internal/llm/agent/mcp-tools.go+5−5 internal/llm/agent/tools.go+6−6 internal/llm/prompt/coder.go+43−54 internal/llm/prompt/prompt.go+2−2 internal/llm/prompt/task.go+2−2 internal/llm/prompt/title.go+1−1 internal/llm/provider/anthropic.go+4−4 internal/llm/provider/bedrock.go+2−2 internal/llm/provider/gemini.go+4−4 internal/llm/provider/openai.go+4−4 internal/llm/provider/provider.go+3−3 internal/llm/tools/bash.go+8−8 internal/llm/tools/diagnostics.go+2−2 internal/llm/tools/edit.go+5−5 internal/llm/tools/edit_test.go+1−1 internal/llm/tools/fetch.go+3−3 internal/llm/tools/glob.go+1−1 internal/llm/tools/grep.go+1−1 internal/llm/tools/ls.go+1−1 internal/llm/tools/mocks_test.go+3−3 internal/llm/tools/shell/shell.go+4−4 internal/llm/tools/sourcegraph.go+1−1 internal/llm/tools/view.go+2−2 internal/llm/tools/write.go+5−5 internal/llm/tools/write_test.go+1−1 internal/logging/writer.go+1−1 internal/lsp/client.go+3−3 internal/lsp/handlers.go+4−4 internal/lsp/language.go+1−1 internal/lsp/methods.go+1−1 internal/lsp/transport.go+2−2 internal/lsp/util/edit.go+1−1 internal/lsp/watcher/watcher.go+4−4 internal/message/content.go+1−1 internal/message/message.go+3−3 internal/permission/permission.go+1−1 internal/session/session.go+2−2 internal/tui/components/chat/chat.go+4−4 internal/tui/components/chat/editor.go+5−5 internal/tui/components/chat/messages.go+11−11 internal/tui/components/chat/sidebar.go+6−6 internal/tui/components/core/status.go+6−6 internal/tui/components/dialog/help.go+1−1 internal/tui/components/dialog/permission.go+6−6 internal/tui/components/dialog/quit.go+3−3 internal/tui/components/logs/details.go+3−3 internal/tui/components/logs/table.go+5−5 internal/tui/layout/border.go+1−1 internal/tui/layout/container.go+1−1 internal/tui/layout/overlay.go+2−2 internal/tui/layout/split.go+1−1 internal/tui/page/chat.go+5−5 internal/tui/page/logs.go+2−2 internal/tui/tui.go+9−9 main.go+2−2
.opencode.json+11
@@ -3,5 +3,16 @@
33 "gopls": {
44 "command": "gopls"
55 }
6+ },
7+ "agents": {
8+ "coder": {
9+ "model": "gpt-4.1"
10+ },
11+ "task": {
12+ "model": "gpt-4.1"
13+ },
14+ "title": {
15+ "model": "gpt-4.1"
16+ }
617 }
718}
cmd/root.go+7−7
@@ -8,13 +8,13 @@ import (
88 "time"
99
1010 tea "github.com/charmbracelet/bubbletea"
11− "github.com/kujtimiihoxha/termai/internal/app"
12− "github.com/kujtimiihoxha/termai/internal/config"
13− "github.com/kujtimiihoxha/termai/internal/db"
14− "github.com/kujtimiihoxha/termai/internal/llm/agent"
15− "github.com/kujtimiihoxha/termai/internal/logging"
16− "github.com/kujtimiihoxha/termai/internal/pubsub"
17− "github.com/kujtimiihoxha/termai/internal/tui"
11+ "github.com/kujtimiihoxha/opencode/internal/app"
12+ "github.com/kujtimiihoxha/opencode/internal/config"
13+ "github.com/kujtimiihoxha/opencode/internal/db"
14+ "github.com/kujtimiihoxha/opencode/internal/llm/agent"
15+ "github.com/kujtimiihoxha/opencode/internal/logging"
16+ "github.com/kujtimiihoxha/opencode/internal/pubsub"
17+ "github.com/kujtimiihoxha/opencode/internal/tui"
1818 zone "github.com/lrstanley/bubblezone"
1919 "github.com/spf13/cobra"
2020)
go.mod+1−1
@@ -1,4 +1,4 @@
1−module github.com/kujtimiihoxha/termai
1+module github.com/kujtimiihoxha/opencode
22
33go 1.24.0
44
internal/app/app.go+9−9
@@ -7,15 +7,15 @@ import (
77 "sync"
88 "time"
99
10− "github.com/kujtimiihoxha/termai/internal/config"
11− "github.com/kujtimiihoxha/termai/internal/db"
12− "github.com/kujtimiihoxha/termai/internal/history"
13− "github.com/kujtimiihoxha/termai/internal/llm/agent"
14− "github.com/kujtimiihoxha/termai/internal/logging"
15− "github.com/kujtimiihoxha/termai/internal/lsp"
16− "github.com/kujtimiihoxha/termai/internal/message"
17− "github.com/kujtimiihoxha/termai/internal/permission"
18− "github.com/kujtimiihoxha/termai/internal/session"
10+ "github.com/kujtimiihoxha/opencode/internal/config"
11+ "github.com/kujtimiihoxha/opencode/internal/db"
12+ "github.com/kujtimiihoxha/opencode/internal/history"
13+ "github.com/kujtimiihoxha/opencode/internal/llm/agent"
14+ "github.com/kujtimiihoxha/opencode/internal/logging"
15+ "github.com/kujtimiihoxha/opencode/internal/lsp"
16+ "github.com/kujtimiihoxha/opencode/internal/message"
17+ "github.com/kujtimiihoxha/opencode/internal/permission"
18+ "github.com/kujtimiihoxha/opencode/internal/session"
1919)
2020
2121type App struct {
internal/app/lsp.go+4−4
@@ -4,10 +4,10 @@ import (
44 "context"
55 "time"
66
7− "github.com/kujtimiihoxha/termai/internal/config"
8− "github.com/kujtimiihoxha/termai/internal/logging"
9− "github.com/kujtimiihoxha/termai/internal/lsp"
10− "github.com/kujtimiihoxha/termai/internal/lsp/watcher"
7+ "github.com/kujtimiihoxha/opencode/internal/config"
8+ "github.com/kujtimiihoxha/opencode/internal/logging"
9+ "github.com/kujtimiihoxha/opencode/internal/lsp"
10+ "github.com/kujtimiihoxha/opencode/internal/lsp/watcher"
1111)
1212
1313func (app *App) initLSPClients(ctx context.Context) {
internal/config/config.go+2−2
@@ -7,8 +7,8 @@ import (
77 "os"
88 "strings"
99
10− "github.com/kujtimiihoxha/termai/internal/llm/models"
11− "github.com/kujtimiihoxha/termai/internal/logging"
10+ "github.com/kujtimiihoxha/opencode/internal/llm/models"
11+ "github.com/kujtimiihoxha/opencode/internal/logging"
1212 "github.com/spf13/viper"
1313)
1414
internal/db/connect.go+3−3
@@ -12,8 +12,8 @@ import (
1212 "github.com/golang-migrate/migrate/v4/database/sqlite3"
1313 _ "github.com/mattn/go-sqlite3"
1414
15− "github.com/kujtimiihoxha/termai/internal/config"
16− "github.com/kujtimiihoxha/termai/internal/logging"
15+ "github.com/kujtimiihoxha/opencode/internal/config"
16+ "github.com/kujtimiihoxha/opencode/internal/logging"
1717)
1818
1919func Connect() (*sql.DB, error) {
@@ -24,7 +24,7 @@ func Connect() (*sql.DB, error) {
2424 if err := os.MkdirAll(dataDir, 0o700); err != nil {
2525 return nil, fmt.Errorf("failed to create data directory: %w", err)
2626 }
27− dbPath := filepath.Join(dataDir, "termai.db")
27+ dbPath := filepath.Join(dataDir, "opencode.db")
2828 // Open the SQLite database
2929 db, err := sql.Open("sqlite3", dbPath)
3030 if err != nil {
internal/diff/diff.go+2−2
@@ -19,8 +19,8 @@ import (
1919 "github.com/charmbracelet/x/ansi"
2020 "github.com/go-git/go-git/v5"
2121 "github.com/go-git/go-git/v5/plumbing/object"
22− "github.com/kujtimiihoxha/termai/internal/config"
23− "github.com/kujtimiihoxha/termai/internal/logging"
22+ "github.com/kujtimiihoxha/opencode/internal/config"
23+ "github.com/kujtimiihoxha/opencode/internal/logging"
2424 "github.com/sergi/go-diff/diffmatchpatch"
2525)
2626
internal/history/file.go+2−2
@@ -7,8 +7,8 @@ import (
77 "strings"
88
99 "github.com/google/uuid"
10− "github.com/kujtimiihoxha/termai/internal/db"
11− "github.com/kujtimiihoxha/termai/internal/pubsub"
10+ "github.com/kujtimiihoxha/opencode/internal/db"
11+ "github.com/kujtimiihoxha/opencode/internal/pubsub"
1212)
1313
1414const (
internal/llm/agent/agent-tool.go+5−5
@@ -5,11 +5,11 @@ import (
55 "encoding/json"
66 "fmt"
77
8− "github.com/kujtimiihoxha/termai/internal/config"
9− "github.com/kujtimiihoxha/termai/internal/llm/tools"
10− "github.com/kujtimiihoxha/termai/internal/lsp"
11− "github.com/kujtimiihoxha/termai/internal/message"
12− "github.com/kujtimiihoxha/termai/internal/session"
8+ "github.com/kujtimiihoxha/opencode/internal/config"
9+ "github.com/kujtimiihoxha/opencode/internal/llm/tools"
10+ "github.com/kujtimiihoxha/opencode/internal/lsp"
11+ "github.com/kujtimiihoxha/opencode/internal/message"
12+ "github.com/kujtimiihoxha/opencode/internal/session"
1313)
1414
1515type agentTool struct {
internal/llm/agent/agent.go+9−9
@@ -7,15 +7,15 @@ import (
77 "strings"
88 "sync"
99
10− "github.com/kujtimiihoxha/termai/internal/config"
11− "github.com/kujtimiihoxha/termai/internal/llm/models"
12− "github.com/kujtimiihoxha/termai/internal/llm/prompt"
13− "github.com/kujtimiihoxha/termai/internal/llm/provider"
14− "github.com/kujtimiihoxha/termai/internal/llm/tools"
15− "github.com/kujtimiihoxha/termai/internal/logging"
16− "github.com/kujtimiihoxha/termai/internal/message"
17− "github.com/kujtimiihoxha/termai/internal/permission"
18− "github.com/kujtimiihoxha/termai/internal/session"
10+ "github.com/kujtimiihoxha/opencode/internal/config"
11+ "github.com/kujtimiihoxha/opencode/internal/llm/models"
12+ "github.com/kujtimiihoxha/opencode/internal/llm/prompt"
13+ "github.com/kujtimiihoxha/opencode/internal/llm/provider"
14+ "github.com/kujtimiihoxha/opencode/internal/llm/tools"
15+ "github.com/kujtimiihoxha/opencode/internal/logging"
16+ "github.com/kujtimiihoxha/opencode/internal/message"
17+ "github.com/kujtimiihoxha/opencode/internal/permission"
18+ "github.com/kujtimiihoxha/opencode/internal/session"
1919)
2020
2121// Common errors
internal/llm/agent/mcp-tools.go+5−5
@@ -5,11 +5,11 @@ import (
55 "encoding/json"
66 "fmt"
77
8− "github.com/kujtimiihoxha/termai/internal/config"
9− "github.com/kujtimiihoxha/termai/internal/llm/tools"
10− "github.com/kujtimiihoxha/termai/internal/logging"
11− "github.com/kujtimiihoxha/termai/internal/permission"
12− "github.com/kujtimiihoxha/termai/internal/version"
8+ "github.com/kujtimiihoxha/opencode/internal/config"
9+ "github.com/kujtimiihoxha/opencode/internal/llm/tools"
10+ "github.com/kujtimiihoxha/opencode/internal/logging"
11+ "github.com/kujtimiihoxha/opencode/internal/permission"
12+ "github.com/kujtimiihoxha/opencode/internal/version"
1313
1414 "github.com/mark3labs/mcp-go/client"
1515 "github.com/mark3labs/mcp-go/mcp"
internal/llm/agent/tools.go+6−6
@@ -3,12 +3,12 @@ package agent
33import (
44 "context"
55
6− "github.com/kujtimiihoxha/termai/internal/history"
7− "github.com/kujtimiihoxha/termai/internal/llm/tools"
8− "github.com/kujtimiihoxha/termai/internal/lsp"
9− "github.com/kujtimiihoxha/termai/internal/message"
10− "github.com/kujtimiihoxha/termai/internal/permission"
11− "github.com/kujtimiihoxha/termai/internal/session"
6+ "github.com/kujtimiihoxha/opencode/internal/history"
7+ "github.com/kujtimiihoxha/opencode/internal/llm/tools"
8+ "github.com/kujtimiihoxha/opencode/internal/lsp"
9+ "github.com/kujtimiihoxha/opencode/internal/message"
10+ "github.com/kujtimiihoxha/opencode/internal/permission"
11+ "github.com/kujtimiihoxha/opencode/internal/session"
1212)
1313
1414func CoderAgentTools(
internal/llm/prompt/coder.go+43−54
@@ -8,9 +8,9 @@ import (
88 "runtime"
99 "time"
1010
11− "github.com/kujtimiihoxha/termai/internal/config"
12− "github.com/kujtimiihoxha/termai/internal/llm/models"
13− "github.com/kujtimiihoxha/termai/internal/llm/tools"
11+ "github.com/kujtimiihoxha/opencode/internal/config"
12+ "github.com/kujtimiihoxha/opencode/internal/llm/models"
13+ "github.com/kujtimiihoxha/opencode/internal/llm/tools"
1414)
1515
1616func CoderPrompt(provider models.ModelProvider) string {
@@ -24,69 +24,58 @@ func CoderPrompt(provider models.ModelProvider) string {
2424 return fmt.Sprintf("%s\n\n%s\n%s", basePrompt, envInfo, lspInformation())
2525}
2626
27−const baseOpenAICoderPrompt = `You are termAI, an autonomous CLI-based software engineer. Your job is to reduce user effort by proactively reasoning, inferring context, and solving software engineering tasks end-to-end with minimal prompting.
28−
29−# Your mindset
30−Act like a competent, efficient software engineer who is familiar with large codebases. You should:
31−- Think critically about user requests.
32−- Proactively search the codebase for related information.
33−- Infer likely commands, tools, or conventions.
34−- Write and edit code with minimal user input.
35−- Anticipate next steps (tests, lints, etc.), but never commit unless explicitly told.
36−
37−# Context awareness
38−- Before acting, infer the purpose of a file from its name, directory, and neighboring files.
39−- If a file or function appears malicious, refuse to interact with it or discuss it.
40−- If a termai.md file exists, auto-load it as memory. Offer to update it only if new useful info appears (commands, preferences, structure).
41−
42−# CLI communication
43−- Use GitHub-flavored markdown in monospace font.
44−- Be concise. Never add preambles or postambles unless asked. Max 4 lines per response.
45−- Never explain your code unless asked. Do not narrate actions.
46−- Avoid unnecessary questions. Infer, search, act.
47−
48−# Behavior guidelines
49−- Follow project conventions: naming, formatting, libraries, frameworks.
50−- Before using any library or framework, confirm it’s already used.
51−- Always look at the surrounding code to match existing style.
52−- Do not add comments unless the code is complex or the user asks.
53−
54−# Autonomy rules
55−You are allowed and expected to:
56−- Search for commands, tools, or config files before asking the user.
57−- Run multiple search tool calls concurrently to gather relevant context.
58−- Choose test, lint, and typecheck commands based on package files or scripts.
59−- Offer to store these commands in termai.md if not already present.
60−
61−# Example behavior
62−user: write tests for new feature
63−assistant: [searches for existing test patterns, finds appropriate location, generates test code using existing style, optionally asks to add test command to termai.md]
27+const baseOpenAICoderPrompt = `
28+You are **OpenCode**, an autonomous CLI assistant for software‑engineering tasks.
29+
30+### ── INTERNAL REFLECTION ──
31+• Silently think step‑by‑step about the user request, directory layout, and tool calls (never reveal this).
32+• Formulate a plan, then execute without further approval unless a blocker triggers the Ask‑Only‑If rules.
33+
34+### ── PUBLIC RESPONSE RULES ──
35+• Visible reply ≤ 4 lines; no fluff, preamble, or postamble.
36+• Use GitHub‑flavored Markdown.
37+• When running a non‑trivial shell command, add ≤ 1 brief purpose sentence.
38+
39+### ── CONTEXT & MEMORY ──
40+• Infer file intent from directory structure before editing.
41+• Auto‑load 'OpenCode.md'; ask once before writing new reusable commands or style notes.
6442
65−user: how do I typecheck this codebase?
66−assistant: [searches for known commands, infers package manager, checks for scripts or config files]
67−tsc --noEmit
43+### ── AUTONOMY PRIORITY ──
44+**Ask‑Only‑If Decision Tree:**
45+1. **Safety risk?** (e.g., destructive command, secret exposure) → ask.
46+2. **Critical unknown?** (no docs/tests; cannot infer) → ask.
47+3. **Tool failure after two self‑attempts?** → ask.
48+Otherwise, proceed autonomously.
6849
69−user: is X function used anywhere else?
70−assistant: [searches repo for references, returns file paths and lines]
50+### ── SAFETY & STYLE ──
51+• Mimic existing code style; verify libraries exist before import.
52+• Never commit unless explicitly told.
53+• After edits, run lint & type‑check (ask for commands once, then offer to store in 'OpenCode.md').
54+• Protect secrets; follow standard security practices :contentReference[oaicite:2]{index=2}.
7155
72−# Tool usage
73−- Use parallel calls when possible.
74−- Use file search and content tools before asking the user.
75−- Do not ask the user for information unless it cannot be determined via tools.
56+### ── TOOL USAGE ──
57+• Batch independent Agent search/file calls in one block for efficiency :contentReference[oaicite:3]{index=3}.
58+• Communicate with the user only via visible text; do not expose tool output or internal reasoning.
7659
77−Never commit changes unless the user explicitly asks you to.`
60+### ── EXAMPLES ──
61+user: list files
62+assistant: ls
63+
64+user: write tests for new feature
65+assistant: [searches & edits autonomously, no extra chit‑chat]
66+`
7867
79−const baseAnthropicCoderPrompt = `You are termAI, an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.
68+const baseAnthropicCoderPrompt = `You are OpenCode, an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.
8069
8170IMPORTANT: Before you begin work, think about what the code you're editing is supposed to do based on the filenames directory structure.
8271
8372# Memory
84−If the current working directory contains a file called termai.md, it will be automatically added to your context. This file serves multiple purposes:
73+If the current working directory contains a file called OpenCode.md, it will be automatically added to your context. This file serves multiple purposes:
85741. Storing frequently used bash commands (build, test, lint, etc.) so you can use them without searching each time
86752. Recording the user's code style preferences (naming conventions, preferred libraries, etc.)
87763. Maintaining useful information about the codebase structure and organization
8877
89−When you spend time searching for commands to typecheck, lint, build, or test, you should ask the user if it's okay to add those commands to termai.md. Similarly, when learning about code style preferences or important codebase information, ask if it's okay to add that to termai.md so you can remember it for next time.
78+When you spend time searching for commands to typecheck, lint, build, or test, you should ask the user if it's okay to add those commands to OpenCode.md. Similarly, when learning about code style preferences or important codebase information, ask if it's okay to add that to OpenCode.md so you can remember it for next time.
9079
9180# Tone and style
9281You should be concise, direct, and to the point. When you run a non-trivial bash command, you should explain what the command does and why you are running it, to make sure the user understands what you are doing (this is especially important when you are running a command that will make changes to the user's system).
@@ -161,7 +150,7 @@ The user will primarily request you perform software engineering tasks. This inc
1611501. Use the available search tools to understand the codebase and the user's query. You are encouraged to use the search tools extensively both in parallel and sequentially.
1621512. Implement the solution using all tools available to you
1631523. Verify the solution if possible with tests. NEVER assume specific test framework or test script. Check the README or search codebase to determine the testing approach.
164−4. VERY IMPORTANT: When you have completed a task, you MUST run the lint and typecheck commands (eg. npm run lint, npm run typecheck, ruff, etc.) if they were provided to you to ensure your code is correct. If you are unable to find the correct command, ask the user for the command to run and if they supply it, proactively suggest writing it to termai.md so that you will know to run it next time.
153+4. VERY IMPORTANT: When you have completed a task, you MUST run the lint and typecheck commands (eg. npm run lint, npm run typecheck, ruff, etc.) if they were provided to you to ensure your code is correct. If you are unable to find the correct command, ask the user for the command to run and if they supply it, proactively suggest writing it to opencode.md so that you will know to run it next time.
165154
166155NEVER commit changes unless the user explicitly asks you to. It is VERY IMPORTANT to only commit when explicitly asked, otherwise the user will feel that you are being too proactive.
167156
internal/llm/prompt/prompt.go+2−2
@@ -1,8 +1,8 @@
11package prompt
22
33import (
4− "github.com/kujtimiihoxha/termai/internal/config"
5− "github.com/kujtimiihoxha/termai/internal/llm/models"
4+ "github.com/kujtimiihoxha/opencode/internal/config"
5+ "github.com/kujtimiihoxha/opencode/internal/llm/models"
66)
77
88func GetAgentPrompt(agentName config.AgentName, provider models.ModelProvider) string {
internal/llm/prompt/task.go+2−2
@@ -3,11 +3,11 @@ package prompt
33import (
44 "fmt"
55
6− "github.com/kujtimiihoxha/termai/internal/llm/models"
6+ "github.com/kujtimiihoxha/opencode/internal/llm/models"
77)
88
99func TaskPrompt(_ models.ModelProvider) string {
10− agentPrompt := `You are an agent for termAI. Given the user's prompt, you should use the tools available to you to answer the user's question.
10+ agentPrompt := `You are an agent for OpenCode. Given the user's prompt, you should use the tools available to you to answer the user's question.
1111Notes:
12121. IMPORTANT: You should be concise, direct, and to the point, since your responses will be displayed on a command line interface. Answer the user's question directly, without elaboration, explanation, or details. One word answers are best. Avoid introductions, conclusions, and explanations. You MUST avoid text before/after your response, such as "The answer is <answer>.", "Here is the content of the file..." or "Based on the information provided, the answer is..." or "Here is what I will do next...".
13132. When relevant, share file names and code snippets relevant to the query
internal/llm/prompt/title.go+1−1
@@ -1,6 +1,6 @@
11package prompt
22
3−import "github.com/kujtimiihoxha/termai/internal/llm/models"
3+import "github.com/kujtimiihoxha/opencode/internal/llm/models"
44
55func TitlePrompt(_ models.ModelProvider) string {
66 return `you will generate a short title based on the first message a user begins a conversation with
internal/llm/provider/anthropic.go+4−4
@@ -12,10 +12,10 @@ import (
1212 "github.com/anthropics/anthropic-sdk-go"
1313 "github.com/anthropics/anthropic-sdk-go/bedrock"
1414 "github.com/anthropics/anthropic-sdk-go/option"
15− "github.com/kujtimiihoxha/termai/internal/config"
16− "github.com/kujtimiihoxha/termai/internal/llm/tools"
17− "github.com/kujtimiihoxha/termai/internal/logging"
18− "github.com/kujtimiihoxha/termai/internal/message"
15+ "github.com/kujtimiihoxha/opencode/internal/config"
16+ "github.com/kujtimiihoxha/opencode/internal/llm/tools"
17+ "github.com/kujtimiihoxha/opencode/internal/logging"
18+ "github.com/kujtimiihoxha/opencode/internal/message"
1919)
2020
2121type anthropicOptions struct {
internal/llm/provider/bedrock.go+2−2
@@ -7,8 +7,8 @@ import (
77 "os"
88 "strings"
99
10− "github.com/kujtimiihoxha/termai/internal/llm/tools"
11− "github.com/kujtimiihoxha/termai/internal/message"
10+ "github.com/kujtimiihoxha/opencode/internal/llm/tools"
11+ "github.com/kujtimiihoxha/opencode/internal/message"
1212)
1313
1414type bedrockOptions struct {
internal/llm/provider/gemini.go+4−4
@@ -11,10 +11,10 @@ import (
1111
1212 "github.com/google/generative-ai-go/genai"
1313 "github.com/google/uuid"
14− "github.com/kujtimiihoxha/termai/internal/config"
15− "github.com/kujtimiihoxha/termai/internal/llm/tools"
16− "github.com/kujtimiihoxha/termai/internal/logging"
17− "github.com/kujtimiihoxha/termai/internal/message"
14+ "github.com/kujtimiihoxha/opencode/internal/config"
15+ "github.com/kujtimiihoxha/opencode/internal/llm/tools"
16+ "github.com/kujtimiihoxha/opencode/internal/logging"
17+ "github.com/kujtimiihoxha/opencode/internal/message"
1818 "google.golang.org/api/iterator"
1919 "google.golang.org/api/option"
2020)
internal/llm/provider/openai.go+4−4
@@ -8,10 +8,10 @@ import (
88 "io"
99 "time"
1010
11− "github.com/kujtimiihoxha/termai/internal/config"
12− "github.com/kujtimiihoxha/termai/internal/llm/tools"
13− "github.com/kujtimiihoxha/termai/internal/logging"
14− "github.com/kujtimiihoxha/termai/internal/message"
11+ "github.com/kujtimiihoxha/opencode/internal/config"
12+ "github.com/kujtimiihoxha/opencode/internal/llm/tools"
13+ "github.com/kujtimiihoxha/opencode/internal/logging"
14+ "github.com/kujtimiihoxha/opencode/internal/message"
1515 "github.com/openai/openai-go"
1616 "github.com/openai/openai-go/option"
1717)
internal/llm/provider/provider.go+3−3
@@ -4,9 +4,9 @@ import (
44 "context"
55 "fmt"
66
7− "github.com/kujtimiihoxha/termai/internal/llm/models"
8− "github.com/kujtimiihoxha/termai/internal/llm/tools"
9− "github.com/kujtimiihoxha/termai/internal/message"
7+ "github.com/kujtimiihoxha/opencode/internal/llm/models"
8+ "github.com/kujtimiihoxha/opencode/internal/llm/tools"
9+ "github.com/kujtimiihoxha/opencode/internal/message"
1010)
1111
1212type EventType string
internal/llm/tools/bash.go+8−8
@@ -7,9 +7,9 @@ import (
77 "strings"
88 "time"
99
10− "github.com/kujtimiihoxha/termai/internal/config"
11− "github.com/kujtimiihoxha/termai/internal/llm/tools/shell"
12− "github.com/kujtimiihoxha/termai/internal/permission"
10+ "github.com/kujtimiihoxha/opencode/internal/config"
11+ "github.com/kujtimiihoxha/opencode/internal/llm/tools/shell"
12+ "github.com/kujtimiihoxha/opencode/internal/permission"
1313)
1414
1515type BashParams struct {
@@ -122,16 +122,16 @@ When the user asks you to create a new git commit, follow these steps carefully:
122122</commit_analysis>
123123
1241244. Create the commit with a message ending with:
125−🤖 Generated with termai
126−Co-Authored-By: termai <noreply@termai.io>
125+🤖 Generated with opencode
126+Co-Authored-By: opencode <noreply@opencode.ai>
127127
128128- In order to ensure good formatting, ALWAYS pass the commit message via a HEREDOC, a la this example:
129129<example>
130130git commit -m "$(cat <<'EOF'
131131 Commit message here.
132132
133− 🤖 Generated with termai
134− Co-Authored-By: termai <noreply@termai.io>
133+ 🤖 Generated with opencode
134+ Co-Authored-By: opencode <noreply@opencode.ai>
135135 EOF
136136 )"
137137</example>
@@ -193,7 +193,7 @@ gh pr create --title "the pr title" --body "$(cat <<'EOF'
193193## Test plan
194194[Checklist of TODOs for testing the pull request...]
195195
196−🤖 Generated with termai
196+🤖 Generated with opencode
197197EOF
198198)"
199199</example>
internal/llm/tools/diagnostics.go+2−2
@@ -9,8 +9,8 @@ import (
99 "strings"
1010 "time"
1111
12− "github.com/kujtimiihoxha/termai/internal/lsp"
13− "github.com/kujtimiihoxha/termai/internal/lsp/protocol"
12+ "github.com/kujtimiihoxha/opencode/internal/lsp"
13+ "github.com/kujtimiihoxha/opencode/internal/lsp/protocol"
1414)
1515
1616type DiagnosticsParams struct {
internal/llm/tools/edit.go+5−5
@@ -9,11 +9,11 @@ import (
99 "strings"
1010 "time"
1111
12− "github.com/kujtimiihoxha/termai/internal/config"
13− "github.com/kujtimiihoxha/termai/internal/diff"
14− "github.com/kujtimiihoxha/termai/internal/history"
15− "github.com/kujtimiihoxha/termai/internal/lsp"
16− "github.com/kujtimiihoxha/termai/internal/permission"
12+ "github.com/kujtimiihoxha/opencode/internal/config"
13+ "github.com/kujtimiihoxha/opencode/internal/diff"
14+ "github.com/kujtimiihoxha/opencode/internal/history"
15+ "github.com/kujtimiihoxha/opencode/internal/lsp"
16+ "github.com/kujtimiihoxha/opencode/internal/permission"
1717)
1818
1919type EditParams struct {
internal/llm/tools/edit_test.go+1−1
@@ -8,7 +8,7 @@ import (
88 "testing"
99 "time"
1010
11− "github.com/kujtimiihoxha/termai/internal/lsp"
11+ "github.com/kujtimiihoxha/opencode/internal/lsp"
1212 "github.com/stretchr/testify/assert"
1313 "github.com/stretchr/testify/require"
1414)
internal/llm/tools/fetch.go+3−3
@@ -11,8 +11,8 @@ import (
1111
1212 md "github.com/JohannesKaufmann/html-to-markdown"
1313 "github.com/PuerkitoBio/goquery"
14− "github.com/kujtimiihoxha/termai/internal/config"
15− "github.com/kujtimiihoxha/termai/internal/permission"
14+ "github.com/kujtimiihoxha/opencode/internal/config"
15+ "github.com/kujtimiihoxha/opencode/internal/permission"
1616)
1717
1818type FetchParams struct {
@@ -146,7 +146,7 @@ func (t *fetchTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error
146146 return ToolResponse{}, fmt.Errorf("failed to create request: %w", err)
147147 }
148148
149− req.Header.Set("User-Agent", "termai/1.0")
149+ req.Header.Set("User-Agent", "opencode/1.0")
150150
151151 resp, err := client.Do(req)
152152 if err != nil {
internal/llm/tools/glob.go+1−1
@@ -12,7 +12,7 @@ import (
1212 "time"
1313
1414 "github.com/bmatcuk/doublestar/v4"
15− "github.com/kujtimiihoxha/termai/internal/config"
15+ "github.com/kujtimiihoxha/opencode/internal/config"
1616)
1717
1818const (
internal/llm/tools/grep.go+1−1
@@ -13,7 +13,7 @@ import (
1313 "strings"
1414 "time"
1515
16− "github.com/kujtimiihoxha/termai/internal/config"
16+ "github.com/kujtimiihoxha/opencode/internal/config"
1717)
1818
1919type GrepParams struct {
internal/llm/tools/ls.go+1−1
@@ -8,7 +8,7 @@ import (
88 "path/filepath"
99 "strings"
1010
11− "github.com/kujtimiihoxha/termai/internal/config"
11+ "github.com/kujtimiihoxha/opencode/internal/config"
1212)
1313
1414type LSParams struct {
internal/llm/tools/mocks_test.go+3−3
@@ -9,9 +9,9 @@ import (
99 "time"
1010
1111 "github.com/google/uuid"
12− "github.com/kujtimiihoxha/termai/internal/history"
13− "github.com/kujtimiihoxha/termai/internal/permission"
14− "github.com/kujtimiihoxha/termai/internal/pubsub"
12+ "github.com/kujtimiihoxha/opencode/internal/history"
13+ "github.com/kujtimiihoxha/opencode/internal/permission"
14+ "github.com/kujtimiihoxha/opencode/internal/pubsub"
1515)
1616
1717// Mock permission service for testing
internal/llm/tools/shell/shell.go+4−4
@@ -126,10 +126,10 @@ func (s *PersistentShell) execCommand(command string, timeout time.Duration, ctx
126126 }
127127
128128 tempDir := os.TempDir()
129− stdoutFile := filepath.Join(tempDir, fmt.Sprintf("termai-stdout-%d", time.Now().UnixNano()))
130− stderrFile := filepath.Join(tempDir, fmt.Sprintf("termai-stderr-%d", time.Now().UnixNano()))
131− statusFile := filepath.Join(tempDir, fmt.Sprintf("termai-status-%d", time.Now().UnixNano()))
132− cwdFile := filepath.Join(tempDir, fmt.Sprintf("termai-cwd-%d", time.Now().UnixNano()))
129+ stdoutFile := filepath.Join(tempDir, fmt.Sprintf("opencode-stdout-%d", time.Now().UnixNano()))
130+ stderrFile := filepath.Join(tempDir, fmt.Sprintf("opencode-stderr-%d", time.Now().UnixNano()))
131+ statusFile := filepath.Join(tempDir, fmt.Sprintf("opencode-status-%d", time.Now().UnixNano()))
132+ cwdFile := filepath.Join(tempDir, fmt.Sprintf("opencode-cwd-%d", time.Now().UnixNano()))
133133
134134 defer func() {
135135 os.Remove(stdoutFile)
internal/llm/tools/sourcegraph.go+1−1
@@ -218,7 +218,7 @@ func (t *sourcegraphTool) Run(ctx context.Context, call ToolCall) (ToolResponse,
218218 }
219219
220220 req.Header.Set("Content-Type", "application/json")
221− req.Header.Set("User-Agent", "termai/1.0")
221+ req.Header.Set("User-Agent", "opencode/1.0")
222222
223223 resp, err := client.Do(req)
224224 if err != nil {
internal/llm/tools/view.go+2−2
@@ -10,8 +10,8 @@ import (
1010 "path/filepath"
1111 "strings"
1212
13− "github.com/kujtimiihoxha/termai/internal/config"
14− "github.com/kujtimiihoxha/termai/internal/lsp"
13+ "github.com/kujtimiihoxha/opencode/internal/config"
14+ "github.com/kujtimiihoxha/opencode/internal/lsp"
1515)
1616
1717type ViewParams struct {
internal/llm/tools/write.go+5−5
@@ -8,11 +8,11 @@ import (
88 "path/filepath"
99 "time"
1010
11− "github.com/kujtimiihoxha/termai/internal/config"
12− "github.com/kujtimiihoxha/termai/internal/diff"
13− "github.com/kujtimiihoxha/termai/internal/history"
14− "github.com/kujtimiihoxha/termai/internal/lsp"
15− "github.com/kujtimiihoxha/termai/internal/permission"
11+ "github.com/kujtimiihoxha/opencode/internal/config"
12+ "github.com/kujtimiihoxha/opencode/internal/diff"
13+ "github.com/kujtimiihoxha/opencode/internal/history"
14+ "github.com/kujtimiihoxha/opencode/internal/lsp"
15+ "github.com/kujtimiihoxha/opencode/internal/permission"
1616)
1717
1818type WriteParams struct {
internal/llm/tools/write_test.go+1−1
@@ -8,7 +8,7 @@ import (
88 "testing"
99 "time"
1010
11− "github.com/kujtimiihoxha/termai/internal/lsp"
11+ "github.com/kujtimiihoxha/opencode/internal/lsp"
1212 "github.com/stretchr/testify/assert"
1313 "github.com/stretchr/testify/require"
1414)
internal/logging/writer.go+1−1
@@ -9,7 +9,7 @@ import (
99 "time"
1010
1111 "github.com/go-logfmt/logfmt"
12− "github.com/kujtimiihoxha/termai/internal/pubsub"
12+ "github.com/kujtimiihoxha/opencode/internal/pubsub"
1313)
1414
1515const (
internal/lsp/client.go+3−3
@@ -13,9 +13,9 @@ import (
1313 "sync/atomic"
1414 "time"
1515
16− "github.com/kujtimiihoxha/termai/internal/config"
17− "github.com/kujtimiihoxha/termai/internal/logging"
18− "github.com/kujtimiihoxha/termai/internal/lsp/protocol"
16+ "github.com/kujtimiihoxha/opencode/internal/config"
17+ "github.com/kujtimiihoxha/opencode/internal/logging"
18+ "github.com/kujtimiihoxha/opencode/internal/lsp/protocol"
1919)
2020
2121type Client struct {
internal/lsp/handlers.go+4−4
@@ -3,10 +3,10 @@ package lsp
33import (
44 "encoding/json"
55
6− "github.com/kujtimiihoxha/termai/internal/config"
7− "github.com/kujtimiihoxha/termai/internal/logging"
8− "github.com/kujtimiihoxha/termai/internal/lsp/protocol"
9− "github.com/kujtimiihoxha/termai/internal/lsp/util"
6+ "github.com/kujtimiihoxha/opencode/internal/config"
7+ "github.com/kujtimiihoxha/opencode/internal/logging"
8+ "github.com/kujtimiihoxha/opencode/internal/lsp/protocol"
9+ "github.com/kujtimiihoxha/opencode/internal/lsp/util"
1010)
1111
1212// Requests
internal/lsp/language.go+1−1
@@ -4,7 +4,7 @@ import (
44 "path/filepath"
55 "strings"
66
7− "github.com/kujtimiihoxha/termai/internal/lsp/protocol"
7+ "github.com/kujtimiihoxha/opencode/internal/lsp/protocol"
88)
99
1010func DetectLanguageID(uri string) protocol.LanguageKind {
internal/lsp/methods.go+1−1
@@ -4,7 +4,7 @@ package lsp
44import (
55 "context"
66
7− "github.com/kujtimiihoxha/termai/internal/lsp/protocol"
7+ "github.com/kujtimiihoxha/opencode/internal/lsp/protocol"
88)
99
1010// Implementation sends a textDocument/implementation request to the LSP server.
internal/lsp/transport.go+2−2
@@ -8,8 +8,8 @@ import (
88 "io"
99 "strings"
1010
11− "github.com/kujtimiihoxha/termai/internal/config"
12− "github.com/kujtimiihoxha/termai/internal/logging"
11+ "github.com/kujtimiihoxha/opencode/internal/config"
12+ "github.com/kujtimiihoxha/opencode/internal/logging"
1313)
1414
1515// Write writes an LSP message to the given writer
internal/lsp/util/edit.go+1−1
@@ -7,7 +7,7 @@ import (
77 "sort"
88 "strings"
99
10− "github.com/kujtimiihoxha/termai/internal/lsp/protocol"
10+ "github.com/kujtimiihoxha/opencode/internal/lsp/protocol"
1111)
1212
1313func applyTextEdits(uri protocol.DocumentUri, edits []protocol.TextEdit) error {
internal/lsp/watcher/watcher.go+4−4
@@ -10,10 +10,10 @@ import (
1010 "time"
1111
1212 "github.com/fsnotify/fsnotify"
13− "github.com/kujtimiihoxha/termai/internal/config"
14− "github.com/kujtimiihoxha/termai/internal/logging"
15− "github.com/kujtimiihoxha/termai/internal/lsp"
16− "github.com/kujtimiihoxha/termai/internal/lsp/protocol"
13+ "github.com/kujtimiihoxha/opencode/internal/config"
14+ "github.com/kujtimiihoxha/opencode/internal/logging"
15+ "github.com/kujtimiihoxha/opencode/internal/lsp"
16+ "github.com/kujtimiihoxha/opencode/internal/lsp/protocol"
1717)
1818
1919// WorkspaceWatcher manages LSP file watching
internal/message/content.go+1−1
@@ -5,7 +5,7 @@ import (
55 "slices"
66 "time"
77
8− "github.com/kujtimiihoxha/termai/internal/llm/models"
8+ "github.com/kujtimiihoxha/opencode/internal/llm/models"
99)
1010
1111type MessageRole string
internal/message/message.go+3−3
@@ -7,9 +7,9 @@ import (
77 "fmt"
88
99 "github.com/google/uuid"
10− "github.com/kujtimiihoxha/termai/internal/db"
11− "github.com/kujtimiihoxha/termai/internal/llm/models"
12− "github.com/kujtimiihoxha/termai/internal/pubsub"
10+ "github.com/kujtimiihoxha/opencode/internal/db"
11+ "github.com/kujtimiihoxha/opencode/internal/llm/models"
12+ "github.com/kujtimiihoxha/opencode/internal/pubsub"
1313)
1414
1515type CreateMessageParams struct {
internal/permission/permission.go+1−1
@@ -6,7 +6,7 @@ import (
66 "time"
77
88 "github.com/google/uuid"
9− "github.com/kujtimiihoxha/termai/internal/pubsub"
9+ "github.com/kujtimiihoxha/opencode/internal/pubsub"
1010)
1111
1212var ErrorPermissionDenied = errors.New("permission denied")
internal/session/session.go+2−2
@@ -5,8 +5,8 @@ import (
55 "database/sql"
66
77 "github.com/google/uuid"
8− "github.com/kujtimiihoxha/termai/internal/db"
9− "github.com/kujtimiihoxha/termai/internal/pubsub"
8+ "github.com/kujtimiihoxha/opencode/internal/db"
9+ "github.com/kujtimiihoxha/opencode/internal/pubsub"
1010)
1111
1212type Session struct {
internal/tui/components/chat/chat.go+4−4
@@ -5,10 +5,10 @@ import (
55
66 "github.com/charmbracelet/lipgloss"
77 "github.com/charmbracelet/x/ansi"
8− "github.com/kujtimiihoxha/termai/internal/config"
9− "github.com/kujtimiihoxha/termai/internal/session"
10− "github.com/kujtimiihoxha/termai/internal/tui/styles"
11− "github.com/kujtimiihoxha/termai/internal/version"
8+ "github.com/kujtimiihoxha/opencode/internal/config"
9+ "github.com/kujtimiihoxha/opencode/internal/session"
10+ "github.com/kujtimiihoxha/opencode/internal/tui/styles"
11+ "github.com/kujtimiihoxha/opencode/internal/version"
1212)
1313
1414type SendMsg struct {
internal/tui/components/chat/editor.go+5−5
@@ -5,11 +5,11 @@ import (
55 "github.com/charmbracelet/bubbles/textarea"
66 tea "github.com/charmbracelet/bubbletea"
77 "github.com/charmbracelet/lipgloss"
8− "github.com/kujtimiihoxha/termai/internal/app"
9− "github.com/kujtimiihoxha/termai/internal/session"
10− "github.com/kujtimiihoxha/termai/internal/tui/layout"
11− "github.com/kujtimiihoxha/termai/internal/tui/styles"
12− "github.com/kujtimiihoxha/termai/internal/tui/util"
8+ "github.com/kujtimiihoxha/opencode/internal/app"
9+ "github.com/kujtimiihoxha/opencode/internal/session"
10+ "github.com/kujtimiihoxha/opencode/internal/tui/layout"
11+ "github.com/kujtimiihoxha/opencode/internal/tui/styles"
12+ "github.com/kujtimiihoxha/opencode/internal/tui/util"
1313)
1414
1515type editorCmp struct {
internal/tui/components/chat/messages.go+11−11
@@ -15,17 +15,17 @@ import (
1515 "github.com/charmbracelet/glamour"
1616 "github.com/charmbracelet/lipgloss"
1717 "github.com/charmbracelet/x/ansi"
18− "github.com/kujtimiihoxha/termai/internal/app"
19− "github.com/kujtimiihoxha/termai/internal/llm/agent"
20− "github.com/kujtimiihoxha/termai/internal/llm/models"
21− "github.com/kujtimiihoxha/termai/internal/llm/tools"
22− "github.com/kujtimiihoxha/termai/internal/logging"
23− "github.com/kujtimiihoxha/termai/internal/message"
24− "github.com/kujtimiihoxha/termai/internal/pubsub"
25− "github.com/kujtimiihoxha/termai/internal/session"
26− "github.com/kujtimiihoxha/termai/internal/tui/layout"
27− "github.com/kujtimiihoxha/termai/internal/tui/styles"
28− "github.com/kujtimiihoxha/termai/internal/tui/util"
18+ "github.com/kujtimiihoxha/opencode/internal/app"
19+ "github.com/kujtimiihoxha/opencode/internal/llm/agent"
20+ "github.com/kujtimiihoxha/opencode/internal/llm/models"
21+ "github.com/kujtimiihoxha/opencode/internal/llm/tools"
22+ "github.com/kujtimiihoxha/opencode/internal/logging"
23+ "github.com/kujtimiihoxha/opencode/internal/message"
24+ "github.com/kujtimiihoxha/opencode/internal/pubsub"
25+ "github.com/kujtimiihoxha/opencode/internal/session"
26+ "github.com/kujtimiihoxha/opencode/internal/tui/layout"
27+ "github.com/kujtimiihoxha/opencode/internal/tui/styles"
28+ "github.com/kujtimiihoxha/opencode/internal/tui/util"
2929)
3030
3131type uiMessageType int
internal/tui/components/chat/sidebar.go+6−6
@@ -7,12 +7,12 @@ import (
77
88 tea "github.com/charmbracelet/bubbletea"
99 "github.com/charmbracelet/lipgloss"
10− "github.com/kujtimiihoxha/termai/internal/config"
11− "github.com/kujtimiihoxha/termai/internal/diff"
12− "github.com/kujtimiihoxha/termai/internal/history"
13− "github.com/kujtimiihoxha/termai/internal/pubsub"
14− "github.com/kujtimiihoxha/termai/internal/session"
15− "github.com/kujtimiihoxha/termai/internal/tui/styles"
10+ "github.com/kujtimiihoxha/opencode/internal/config"
11+ "github.com/kujtimiihoxha/opencode/internal/diff"
12+ "github.com/kujtimiihoxha/opencode/internal/history"
13+ "github.com/kujtimiihoxha/opencode/internal/pubsub"
14+ "github.com/kujtimiihoxha/opencode/internal/session"
15+ "github.com/kujtimiihoxha/opencode/internal/tui/styles"
1616)
1717
1818type sidebarCmp struct {
internal/tui/components/core/status.go+6−6
@@ -7,12 +7,12 @@ import (
77
88 tea "github.com/charmbracelet/bubbletea"
99 "github.com/charmbracelet/lipgloss"
10− "github.com/kujtimiihoxha/termai/internal/config"
11− "github.com/kujtimiihoxha/termai/internal/llm/models"
12− "github.com/kujtimiihoxha/termai/internal/lsp"
13− "github.com/kujtimiihoxha/termai/internal/lsp/protocol"
14− "github.com/kujtimiihoxha/termai/internal/tui/styles"
15− "github.com/kujtimiihoxha/termai/internal/tui/util"
10+ "github.com/kujtimiihoxha/opencode/internal/config"
11+ "github.com/kujtimiihoxha/opencode/internal/llm/models"
12+ "github.com/kujtimiihoxha/opencode/internal/lsp"
13+ "github.com/kujtimiihoxha/opencode/internal/lsp/protocol"
14+ "github.com/kujtimiihoxha/opencode/internal/tui/styles"
15+ "github.com/kujtimiihoxha/opencode/internal/tui/util"
1616)
1717
1818type statusCmp struct {
internal/tui/components/dialog/help.go+1−1
@@ -6,7 +6,7 @@ import (
66 "github.com/charmbracelet/bubbles/key"
77 tea "github.com/charmbracelet/bubbletea"
88 "github.com/charmbracelet/lipgloss"
9− "github.com/kujtimiihoxha/termai/internal/tui/styles"
9+ "github.com/kujtimiihoxha/opencode/internal/tui/styles"
1010)
1111
1212type helpCmp struct {
internal/tui/components/dialog/permission.go+6−6
@@ -9,12 +9,12 @@ import (
99 tea "github.com/charmbracelet/bubbletea"
1010 "github.com/charmbracelet/glamour"
1111 "github.com/charmbracelet/lipgloss"
12− "github.com/kujtimiihoxha/termai/internal/diff"
13− "github.com/kujtimiihoxha/termai/internal/llm/tools"
14− "github.com/kujtimiihoxha/termai/internal/permission"
15− "github.com/kujtimiihoxha/termai/internal/tui/layout"
16− "github.com/kujtimiihoxha/termai/internal/tui/styles"
17− "github.com/kujtimiihoxha/termai/internal/tui/util"
12+ "github.com/kujtimiihoxha/opencode/internal/diff"
13+ "github.com/kujtimiihoxha/opencode/internal/llm/tools"
14+ "github.com/kujtimiihoxha/opencode/internal/permission"
15+ "github.com/kujtimiihoxha/opencode/internal/tui/layout"
16+ "github.com/kujtimiihoxha/opencode/internal/tui/styles"
17+ "github.com/kujtimiihoxha/opencode/internal/tui/util"
1818)
1919
2020type PermissionAction string
internal/tui/components/dialog/quit.go+3−3
@@ -6,9 +6,9 @@ import (
66 "github.com/charmbracelet/bubbles/key"
77 tea "github.com/charmbracelet/bubbletea"
88 "github.com/charmbracelet/lipgloss"
9− "github.com/kujtimiihoxha/termai/internal/tui/layout"
10− "github.com/kujtimiihoxha/termai/internal/tui/styles"
11− "github.com/kujtimiihoxha/termai/internal/tui/util"
9+ "github.com/kujtimiihoxha/opencode/internal/tui/layout"
10+ "github.com/kujtimiihoxha/opencode/internal/tui/styles"
11+ "github.com/kujtimiihoxha/opencode/internal/tui/util"
1212)
1313
1414const question = "Are you sure you want to quit?"
internal/tui/components/logs/details.go+3−3
@@ -9,9 +9,9 @@ import (
99 "github.com/charmbracelet/bubbles/viewport"
1010 tea "github.com/charmbracelet/bubbletea"
1111 "github.com/charmbracelet/lipgloss"
12− "github.com/kujtimiihoxha/termai/internal/logging"
13− "github.com/kujtimiihoxha/termai/internal/tui/layout"
14− "github.com/kujtimiihoxha/termai/internal/tui/styles"
12+ "github.com/kujtimiihoxha/opencode/internal/logging"
13+ "github.com/kujtimiihoxha/opencode/internal/tui/layout"
14+ "github.com/kujtimiihoxha/opencode/internal/tui/styles"
1515)
1616
1717type DetailComponent interface {
internal/tui/components/logs/table.go+5−5
@@ -7,11 +7,11 @@ import (
77 "github.com/charmbracelet/bubbles/key"
88 "github.com/charmbracelet/bubbles/table"
99 tea "github.com/charmbracelet/bubbletea"
10− "github.com/kujtimiihoxha/termai/internal/logging"
11− "github.com/kujtimiihoxha/termai/internal/pubsub"
12− "github.com/kujtimiihoxha/termai/internal/tui/layout"
13− "github.com/kujtimiihoxha/termai/internal/tui/styles"
14− "github.com/kujtimiihoxha/termai/internal/tui/util"
10+ "github.com/kujtimiihoxha/opencode/internal/logging"
11+ "github.com/kujtimiihoxha/opencode/internal/pubsub"
12+ "github.com/kujtimiihoxha/opencode/internal/tui/layout"
13+ "github.com/kujtimiihoxha/opencode/internal/tui/styles"
14+ "github.com/kujtimiihoxha/opencode/internal/tui/util"
1515)
1616
1717type TableComponent interface {
internal/tui/layout/border.go+1−1
@@ -5,7 +5,7 @@ import (
55 "strings"
66
77 "github.com/charmbracelet/lipgloss"
8− "github.com/kujtimiihoxha/termai/internal/tui/styles"
8+ "github.com/kujtimiihoxha/opencode/internal/tui/styles"
99)
1010
1111type BorderPosition int
internal/tui/layout/container.go+1−1
@@ -4,7 +4,7 @@ import (
44 "github.com/charmbracelet/bubbles/key"
55 tea "github.com/charmbracelet/bubbletea"
66 "github.com/charmbracelet/lipgloss"
7− "github.com/kujtimiihoxha/termai/internal/tui/styles"
7+ "github.com/kujtimiihoxha/opencode/internal/tui/styles"
88)
99
1010type Container interface {
internal/tui/layout/overlay.go+2−2
@@ -5,8 +5,8 @@ import (
55 "strings"
66
77 "github.com/charmbracelet/lipgloss"
8− "github.com/kujtimiihoxha/termai/internal/tui/styles"
9− "github.com/kujtimiihoxha/termai/internal/tui/util"
8+ "github.com/kujtimiihoxha/opencode/internal/tui/styles"
9+ "github.com/kujtimiihoxha/opencode/internal/tui/util"
1010 "github.com/mattn/go-runewidth"
1111 "github.com/muesli/ansi"
1212 "github.com/muesli/reflow/truncate"
internal/tui/layout/split.go+1−1
@@ -4,7 +4,7 @@ import (
44 "github.com/charmbracelet/bubbles/key"
55 tea "github.com/charmbracelet/bubbletea"
66 "github.com/charmbracelet/lipgloss"
7− "github.com/kujtimiihoxha/termai/internal/tui/styles"
7+ "github.com/kujtimiihoxha/opencode/internal/tui/styles"
88)
99
1010type SplitPaneLayout interface {
internal/tui/page/chat.go+5−5
@@ -5,11 +5,11 @@ import (
55
66 "github.com/charmbracelet/bubbles/key"
77 tea "github.com/charmbracelet/bubbletea"
8− "github.com/kujtimiihoxha/termai/internal/app"
9− "github.com/kujtimiihoxha/termai/internal/session"
10− "github.com/kujtimiihoxha/termai/internal/tui/components/chat"
11− "github.com/kujtimiihoxha/termai/internal/tui/layout"
12− "github.com/kujtimiihoxha/termai/internal/tui/util"
8+ "github.com/kujtimiihoxha/opencode/internal/app"
9+ "github.com/kujtimiihoxha/opencode/internal/session"
10+ "github.com/kujtimiihoxha/opencode/internal/tui/components/chat"
11+ "github.com/kujtimiihoxha/opencode/internal/tui/layout"
12+ "github.com/kujtimiihoxha/opencode/internal/tui/util"
1313)
1414
1515var ChatPage PageID = "chat"
internal/tui/page/logs.go+2−2
@@ -2,8 +2,8 @@ package page
22
33import (
44 tea "github.com/charmbracelet/bubbletea"
5− "github.com/kujtimiihoxha/termai/internal/tui/components/logs"
6− "github.com/kujtimiihoxha/termai/internal/tui/layout"
5+ "github.com/kujtimiihoxha/opencode/internal/tui/components/logs"
6+ "github.com/kujtimiihoxha/opencode/internal/tui/layout"
77)
88
99var LogsPage PageID = "logs"
internal/tui/tui.go+9−9
@@ -4,15 +4,15 @@ import (
44 "github.com/charmbracelet/bubbles/key"
55 tea "github.com/charmbracelet/bubbletea"
66 "github.com/charmbracelet/lipgloss"
7− "github.com/kujtimiihoxha/termai/internal/app"
8− "github.com/kujtimiihoxha/termai/internal/logging"
9− "github.com/kujtimiihoxha/termai/internal/permission"
10− "github.com/kujtimiihoxha/termai/internal/pubsub"
11− "github.com/kujtimiihoxha/termai/internal/tui/components/core"
12− "github.com/kujtimiihoxha/termai/internal/tui/components/dialog"
13− "github.com/kujtimiihoxha/termai/internal/tui/layout"
14− "github.com/kujtimiihoxha/termai/internal/tui/page"
15− "github.com/kujtimiihoxha/termai/internal/tui/util"
7+ "github.com/kujtimiihoxha/opencode/internal/app"
8+ "github.com/kujtimiihoxha/opencode/internal/logging"
9+ "github.com/kujtimiihoxha/opencode/internal/permission"
10+ "github.com/kujtimiihoxha/opencode/internal/pubsub"
11+ "github.com/kujtimiihoxha/opencode/internal/tui/components/core"
12+ "github.com/kujtimiihoxha/opencode/internal/tui/components/dialog"
13+ "github.com/kujtimiihoxha/opencode/internal/tui/layout"
14+ "github.com/kujtimiihoxha/opencode/internal/tui/page"
15+ "github.com/kujtimiihoxha/opencode/internal/tui/util"
1616)
1717
1818type keyMap struct {
main.go+2−2
@@ -1,8 +1,8 @@
11package main
22
33import (
4− "github.com/kujtimiihoxha/termai/cmd"
5− "github.com/kujtimiihoxha/termai/internal/logging"
4+ "github.com/kujtimiihoxha/opencode/cmd"
5+ "github.com/kujtimiihoxha/opencode/internal/logging"
66)
77
88func main() {