This commit is contained in:
Ettore Di Giacinto
2025-04-08 22:18:32 +02:00
parent 894dde9256
commit e7111c6554
97 changed files with 329 additions and 329 deletions

View File

@@ -13,7 +13,7 @@ jobs:
goreleaser:
permissions:
contents: write
runs-on: arc-runner-localagent
runs-on: arc-runner-localagi
steps:
- name: Checkout
uses: actions/checkout@v4

View File

@@ -11,7 +11,7 @@ concurrency:
cancel-in-progress: true
jobs:
containerImages:
runs-on: arc-runner-localagent
runs-on: arc-runner-localagi
steps:
- name: Checkout
uses: actions/checkout@v4

View File

@@ -12,7 +12,7 @@ concurrency:
cancel-in-progress: true
jobs:
test:
runs-on: arc-runner-localagent
runs-on: arc-runner-localagi
steps:
- name: Checkout code
uses: actions/checkout@v2

4
.gitignore vendored
View File

@@ -3,7 +3,7 @@ data/
pool
uploads/
local-agent-framework
localagent
LocalAgent
localagi
LocalAGI
**/.env
.vscode

View File

@@ -2,8 +2,8 @@
version: 2
builds:
- main: ./
id: "localagent"
binary: localagent
id: "localagi"
binary: localagi
ldflags:
- -w -s
# - -X github.com/internal.Version={{.Tag}}

View File

@@ -45,14 +45,14 @@ COPY . .
COPY --from=ui-builder /app/dist /work/webui/react-ui/dist
# Build the application
RUN go build -ldflags="$LDFLAGS" -o localagent ./
RUN go build -ldflags="$LDFLAGS" -o localagi ./
FROM scratch
# Copy the webui binary from the builder stage to the final image
COPY --from=builder /work/localagent /localagent
COPY --from=builder /work/localagi /localagi
COPY --from=builder /etc/ssl/ /etc/ssl/
COPY --from=builder /tmp /tmp
# Define the command that will be run when the container is started
ENTRYPOINT ["/localagent"]
ENTRYPOINT ["/localagi"]

View File

@@ -9,7 +9,7 @@ cleanup-tests:
docker compose down
tests: prepare-tests
LOCALAGENT_MODEL="arcee-agent" LOCALAI_API_URL="http://localhost:8081" LOCALAGENT_API_URL="http://localhost:8080" $(GOCMD) run github.com/onsi/ginkgo/v2/ginkgo --fail-fast -v -r ./...
LOCALAGI_MODEL="arcee-agent" LOCALAI_API_URL="http://localhost:8081" LOCALAGI_API_URL="http://localhost:8080" $(GOCMD) run github.com/onsi/ginkgo/v2/ginkgo --fail-fast -v -r ./...
run-nokb:
$(MAKE) run KBDISABLEINDEX=true
@@ -19,7 +19,7 @@ webui/react-ui/dist:
.PHONY: build
build: webui/react-ui/dist
$(GOCMD) build -o localagent ./
$(GOCMD) build -o localagi ./
.PHONY: run
run: webui/react-ui/dist

View File

@@ -96,21 +96,21 @@ Explore detailed documentation including:
| Variable | What It Does |
|----------|--------------|
| `LOCALAGENT_MODEL` | Your go-to model |
| `LOCALAGENT_MULTIMODAL_MODEL` | Optional model for multimodal capabilities |
| `LOCALAGENT_LLM_API_URL` | OpenAI-compatible API server URL |
| `LOCALAGENT_LLM_API_KEY` | API authentication |
| `LOCALAGENT_TIMEOUT` | Request timeout settings |
| `LOCALAGENT_STATE_DIR` | Where state gets stored |
| `LOCALAGENT_LOCALRAG_URL` | LocalRAG connection |
| `LOCALAGENT_ENABLE_CONVERSATIONS_LOGGING` | Toggle conversation logs |
| `LOCALAGENT_API_KEYS` | A comma separated list of api keys used for authentication |
| `LOCALAGI_MODEL` | Your go-to model |
| `LOCALAGI_MULTIMODAL_MODEL` | Optional model for multimodal capabilities |
| `LOCALAGI_LLM_API_URL` | OpenAI-compatible API server URL |
| `LOCALAGI_LLM_API_KEY` | API authentication |
| `LOCALAGI_TIMEOUT` | Request timeout settings |
| `LOCALAGI_STATE_DIR` | Where state gets stored |
| `LOCALAGI_LOCALRAG_URL` | LocalRAG connection |
| `LOCALAGI_ENABLE_CONVERSATIONS_LOGGING` | Toggle conversation logs |
| `LOCALAGI_API_KEYS` | A comma separated list of api keys used for authentication |
## Installation Options
### Pre-Built Binaries
Download ready-to-run binaries from the [Releases](https://github.com/mudler/LocalAgent/releases) page.
Download ready-to-run binaries from the [Releases](https://github.com/mudler/LocalAGI/releases) page.
### Source Build
@@ -121,16 +121,16 @@ Requirements:
```bash
# Clone repo
git clone https://github.com/mudler/LocalAgent.git
cd LocalAgent
git clone https://github.com/mudler/LocalAGI.git
cd LocalAGI
# Build it
cd webui/react-ui && bun i && bun run build
cd ../..
go build -o localagent
go build -o localagi
# Run it
./localagent
./localagi
```
### Development
@@ -139,8 +139,8 @@ The development workflow is similar to the source build, but with additional ste
```bash
# Clone repo
git clone https://github.com/mudler/LocalAgent.git
cd LocalAgent
git clone https://github.com/mudler/LocalAGI.git
cd LocalAGI
# Install dependencies and start frontend development server
cd webui/react-ui && bun i && bun run dev
@@ -216,7 +216,7 @@ Connect to IRC networks:
{
"server": "irc.example.com",
"port": "6667",
"nickname": "LocalAgentBot",
"nickname": "LocalAGIBot",
"channel": "#yourchannel",
"alwaysReply": "false"
}

View File

@@ -5,9 +5,9 @@ import (
"fmt"
"strings"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/sashabaranov/go-openai/jsonschema"
"github.com/traefik/yaegi/interp"
"github.com/traefik/yaegi/stdlib"

View File

@@ -3,8 +3,8 @@ package action_test
import (
"context"
. "github.com/mudler/LocalAgent/core/action"
"github.com/mudler/LocalAgent/core/types"
. "github.com/mudler/LocalAGI/core/action"
"github.com/mudler/LocalAGI/core/types"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"

View File

@@ -3,7 +3,7 @@ package action
import (
"context"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/types"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -3,7 +3,7 @@ package action
import (
"context"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/types"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -3,7 +3,7 @@ package action
import (
"context"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/types"
)
// StopActionName is the name of the action

View File

@@ -3,7 +3,7 @@ package action
import (
"context"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/types"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -3,7 +3,7 @@ package action
import (
"context"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/types"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -3,7 +3,7 @@ package action
import (
"context"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/types"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -4,7 +4,7 @@ import (
"context"
"fmt"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/types"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -6,10 +6,10 @@ import (
"fmt"
"os"
"github.com/mudler/LocalAgent/core/action"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/action"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/sashabaranov/go-openai"
)

View File

@@ -7,11 +7,11 @@ import (
"sync"
"time"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/mudler/LocalAgent/core/action"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/llm"
"github.com/mudler/LocalAGI/core/action"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/llm"
"github.com/sashabaranov/go-openai"
)

View File

@@ -13,7 +13,7 @@ func TestAgent(t *testing.T) {
RunSpecs(t, "Agent test suite")
}
var testModel = os.Getenv("LOCALAGENT_MODEL")
var testModel = os.Getenv("LOCALAGI_MODEL")
var apiURL = os.Getenv("LOCALAI_API_URL")
var apiKeyURL = os.Getenv("LOCALAI_API_KEY")

View File

@@ -6,11 +6,11 @@ import (
"strings"
"sync"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAgent/services/actions"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/mudler/LocalAGI/services/actions"
. "github.com/mudler/LocalAgent/core/agent"
"github.com/mudler/LocalAgent/core/types"
. "github.com/mudler/LocalAGI/core/agent"
"github.com/mudler/LocalAGI/core/types"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
"github.com/sashabaranov/go-openai"

View File

@@ -4,7 +4,7 @@ import (
"fmt"
"os"
"github.com/mudler/LocalAgent/pkg/llm"
"github.com/mudler/LocalAGI/pkg/llm"
)
func (a *Agent) generateIdentity(guidance string) error {

View File

@@ -6,7 +6,7 @@ import (
"path/filepath"
"time"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/sashabaranov/go-openai"
)

View File

@@ -7,8 +7,8 @@ import (
mcp "github.com/metoro-io/mcp-golang"
"github.com/metoro-io/mcp-golang/transport/http"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -5,7 +5,7 @@ import (
"strings"
"time"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/types"
"github.com/sashabaranov/go-openai"
)

View File

@@ -6,7 +6,7 @@ import (
"os"
"path/filepath"
"github.com/mudler/LocalAgent/core/action"
"github.com/mudler/LocalAGI/core/action"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -1,7 +1,7 @@
package agent_test
import (
. "github.com/mudler/LocalAgent/core/agent"
. "github.com/mudler/LocalAGI/core/agent"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)

View File

@@ -5,7 +5,7 @@ import (
"html/template"
"time"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/types"
"github.com/sashabaranov/go-openai"
)

View File

@@ -3,9 +3,9 @@ package state
import (
"encoding/json"
"github.com/mudler/LocalAgent/core/agent"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAGI/core/agent"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
)
type ConnectorConfig struct {

View File

@@ -1,7 +1,7 @@
package state
import (
. "github.com/mudler/LocalAgent/core/agent"
. "github.com/mudler/LocalAGI/core/agent"
)
type AgentPoolInternalAPI struct {

View File

@@ -12,16 +12,16 @@ import (
"sync"
"time"
. "github.com/mudler/LocalAgent/core/agent"
"github.com/mudler/LocalAgent/core/sse"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/llm"
"github.com/mudler/LocalAgent/pkg/localrag"
"github.com/mudler/LocalAgent/pkg/utils"
. "github.com/mudler/LocalAGI/core/agent"
"github.com/mudler/LocalAGI/core/sse"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/llm"
"github.com/mudler/LocalAGI/pkg/localrag"
"github.com/mudler/LocalAGI/pkg/utils"
"github.com/sashabaranov/go-openai"
"github.com/sashabaranov/go-openai/jsonschema"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/pkg/xlog"
)
type AgentPool struct {

View File

@@ -49,7 +49,7 @@ services:
image: busybox
command: ["sh", "-c", "until wget -q -O - http://localrecall:8080 > /dev/null 2>&1; do echo 'Waiting for localrecall...'; sleep 1; done; echo 'localrecall is up!'"]
localagent:
localagi:
depends_on:
localai:
condition: service_healthy
@@ -62,14 +62,14 @@ services:
- 8080:3000
image: quay.io/mudler/localagi:master
environment:
- LOCALAGENT_MODEL=arcee-agent
- LOCALAGENT_LLM_API_URL=http://localai:8080
- LOCALAGENT_LLM_API_KEY=sk-1234567890
- LOCALAGENT_LOCALRAG_URL=http://localrecall:8080
- LOCALAGENT_STATE_DIR=/pool
- LOCALAGENT_TIMEOUT=5m
- LOCALAGENT_ENABLE_CONVERSATIONS_LOGGING=false
- LOCALAGI_MODEL=arcee-agent
- LOCALAGI_LLM_API_URL=http://localai:8080
- LOCALAGI_LLM_API_KEY=sk-1234567890
- LOCALAGI_LOCALRAG_URL=http://localrecall:8080
- LOCALAGI_STATE_DIR=/pool
- LOCALAGI_TIMEOUT=5m
- LOCALAGI_ENABLE_CONVERSATIONS_LOGGING=false
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- ./volumes/localagent/:/pool
- ./volumes/localagi/:/pool

View File

@@ -58,7 +58,7 @@ services:
image: busybox
command: ["sh", "-c", "until wget -q -O - http://localrecall:8080 > /dev/null 2>&1; do echo 'Waiting for localrecall...'; sleep 1; done; echo 'localrecall is up!'"]
localagent:
localagi:
depends_on:
localai:
condition: service_healthy
@@ -71,16 +71,16 @@ services:
- 8080:3000
image: quay.io/mudler/localagi:master
environment:
- LOCALAGENT_MODEL=mlabonne_gemma-3-27b-it-abliterated
- LOCALAGENT_LLM_API_URL=http://localai:8080
- LOCALAGENT_LLM_API_KEY=sk-1234567890
- LOCALAGENT_LOCALRAG_URL=http://localrecall:8080
- LOCALAGENT_STATE_DIR=/pool
- LOCALAGENT_TIMEOUT=5m
- LOCALAGENT_ENABLE_CONVERSATIONS_LOGGING=false
- LOCALAGENT_MULTIMODAL_MODEL=minicpm-v-2_6
- LOCALAGENT_IMAGE_MODEL=flux.1-dev
- LOCALAGI_MODEL=mlabonne_gemma-3-27b-it-abliterated
- LOCALAGI_LLM_API_URL=http://localai:8080
- LOCALAGI_LLM_API_KEY=sk-1234567890
- LOCALAGI_LOCALRAG_URL=http://localrecall:8080
- LOCALAGI_STATE_DIR=/pool
- LOCALAGI_TIMEOUT=5m
- LOCALAGI_ENABLE_CONVERSATIONS_LOGGING=false
- LOCALAGI_MULTIMODAL_MODEL=minicpm-v-2_6
- LOCALAGI_IMAGE_MODEL=flux.1-dev
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- ./volumes/localagent/:/pool
- ./volumes/localagi/:/pool

View File

@@ -55,7 +55,7 @@ services:
image: busybox
command: ["sh", "-c", "until wget -q -O - http://localrecall:8080 > /dev/null 2>&1; do echo 'Waiting for localrecall...'; sleep 1; done; echo 'localrecall is up!'"]
localagent:
localagi:
depends_on:
localai:
condition: service_healthy
@@ -68,14 +68,14 @@ services:
- 8080:3000
image: quay.io/mudler/localagi:master
environment:
- LOCALAGENT_MODEL=arcee-agent
- LOCALAGENT_LLM_API_URL=http://localai:8080
- LOCALAGENT_LLM_API_KEY=sk-1234567890
- LOCALAGENT_LOCALRAG_URL=http://localrecall:8080
- LOCALAGENT_STATE_DIR=/pool
- LOCALAGENT_TIMEOUT=5m
- LOCALAGENT_ENABLE_CONVERSATIONS_LOGGING=false
- LOCALAGI_MODEL=arcee-agent
- LOCALAGI_LLM_API_URL=http://localai:8080
- LOCALAGI_LLM_API_KEY=sk-1234567890
- LOCALAGI_LOCALRAG_URL=http://localrecall:8080
- LOCALAGI_STATE_DIR=/pool
- LOCALAGI_TIMEOUT=5m
- LOCALAGI_ENABLE_CONVERSATIONS_LOGGING=false
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- ./volumes/localagent/:/pool
- ./volumes/localagi/:/pool

2
go.mod
View File

@@ -1,4 +1,4 @@
module github.com/mudler/LocalAgent
module github.com/mudler/LocalAGI
go 1.22.0

28
main.go
View File

@@ -6,22 +6,22 @@ import (
"path/filepath"
"strings"
"github.com/mudler/LocalAgent/core/state"
"github.com/mudler/LocalAgent/services"
"github.com/mudler/LocalAgent/webui"
"github.com/mudler/LocalAGI/core/state"
"github.com/mudler/LocalAGI/services"
"github.com/mudler/LocalAGI/webui"
)
var testModel = os.Getenv("LOCALAGENT_MODEL")
var multimodalModel = os.Getenv("LOCALAGENT_MULTIMODAL_MODEL")
var apiURL = os.Getenv("LOCALAGENT_LLM_API_URL")
var apiKey = os.Getenv("LOCALAGENT_LLM_API_KEY")
var timeout = os.Getenv("LOCALAGENT_TIMEOUT")
var stateDir = os.Getenv("LOCALAGENT_STATE_DIR")
var localRAG = os.Getenv("LOCALAGENT_LOCALRAG_URL")
var withLogs = os.Getenv("LOCALAGENT_ENABLE_CONVERSATIONS_LOGGING") == "true"
var apiKeysEnv = os.Getenv("LOCALAGENT_API_KEYS")
var imageModel = os.Getenv("LOCALAGENT_IMAGE_MODEL")
var conversationDuration = os.Getenv("LOCALAGENT_CONVERSATION_DURATION")
var testModel = os.Getenv("LOCALAGI_MODEL")
var multimodalModel = os.Getenv("LOCALAGI_MULTIMODAL_MODEL")
var apiURL = os.Getenv("LOCALAGI_LLM_API_URL")
var apiKey = os.Getenv("LOCALAGI_LLM_API_KEY")
var timeout = os.Getenv("LOCALAGI_TIMEOUT")
var stateDir = os.Getenv("LOCALAGI_STATE_DIR")
var localRAG = os.Getenv("LOCALAGI_LOCALRAG_URL")
var withLogs = os.Getenv("LOCALAGI_ENABLE_CONVERSATIONS_LOGGING") == "true"
var apiKeysEnv = os.Getenv("LOCALAGI_API_KEYS")
var imageModel = os.Getenv("LOCALAGI_IMAGE_MODEL")
var conversationDuration = os.Getenv("LOCALAGI_CONVERSATION_DURATION")
func init() {
if testModel == "" {

View File

@@ -1,4 +1,4 @@
package localagent
package localagi
import (
"encoding/json"

View File

@@ -1,4 +1,4 @@
package localagent
package localagi
import (
"fmt"

View File

@@ -1,4 +1,4 @@
package localagent
package localagi
import (
"bytes"
@@ -9,14 +9,14 @@ import (
"time"
)
// Client represents a client for the LocalAgent API
// Client represents a client for the LocalAGI API
type Client struct {
BaseURL string
APIKey string
HTTPClient *http.Client
}
// NewClient creates a new LocalAgent client
// NewClient creates a new LocalAGI client
func NewClient(baseURL string, apiKey string, timeout time.Duration) *Client {
if timeout == 0 {
timeout = time.Second * 30

View File

@@ -1,4 +1,4 @@
package localagent
package localagi
import (
"encoding/json"

View File

@@ -5,7 +5,7 @@ import (
"encoding/json"
"fmt"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/sashabaranov/go-openai"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -15,8 +15,8 @@ import (
"path/filepath"
"time"
"github.com/mudler/LocalAgent/core/agent"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/core/agent"
"github.com/mudler/LocalAGI/pkg/xlog"
)
var _ agent.RAGDB = &WrappedClient{}

View File

@@ -1,7 +1,7 @@
package xstrings_test
import (
xtrings "github.com/mudler/LocalAgent/pkg/xstrings"
xtrings "github.com/mudler/LocalAGI/pkg/xstrings"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)

View File

@@ -5,13 +5,13 @@ import (
"encoding/json"
"fmt"
"github.com/mudler/LocalAgent/core/action"
"github.com/mudler/LocalAgent/core/state"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/core/action"
"github.com/mudler/LocalAGI/core/state"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/mudler/LocalAgent/services/actions"
"github.com/mudler/LocalAGI/services/actions"
)
const (

View File

@@ -6,7 +6,7 @@ import (
"io"
"net/http"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/types"
"github.com/sashabaranov/go-openai/jsonschema"
"jaytaylor.com/html2text"
)

View File

@@ -4,8 +4,8 @@ import (
"context"
"fmt"
"github.com/mudler/LocalAgent/core/state"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/state"
"github.com/mudler/LocalAGI/core/types"
"github.com/sashabaranov/go-openai"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -5,7 +5,7 @@ import (
"fmt"
"sync"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/types"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -4,8 +4,8 @@ import (
"context"
"fmt"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/sashabaranov/go-openai"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -4,9 +4,9 @@ import (
"context"
"os"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/types"
. "github.com/mudler/LocalAgent/services/actions"
. "github.com/mudler/LocalAGI/services/actions"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)

View File

@@ -5,8 +5,8 @@ import (
"fmt"
"github.com/google/go-github/v69/github"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -5,8 +5,8 @@ import (
"fmt"
"github.com/google/go-github/v69/github"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -6,9 +6,9 @@ import (
"strings"
"github.com/google/go-github/v69/github"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -5,8 +5,8 @@ import (
"fmt"
"github.com/google/go-github/v69/github"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -5,8 +5,8 @@ import (
"fmt"
"github.com/google/go-github/v69/github"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -5,9 +5,9 @@ import (
"fmt"
"github.com/google/go-github/v69/github"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -5,8 +5,8 @@ import (
"fmt"
"github.com/google/go-github/v69/github"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/sashabaranov/go-openai/jsonschema"
)
@@ -51,7 +51,7 @@ func (g *GithubRepositoryCreateOrUpdateContent) Run(ctx context.Context, params
}
if result.CommitMessage == "" {
result.CommitMessage = "LocalAgent commit"
result.CommitMessage = "LocalAGI commit"
}
if g.repository != "" && g.owner != "" {

View File

@@ -5,8 +5,8 @@ import (
"fmt"
"github.com/google/go-github/v69/github"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -5,8 +5,8 @@ import (
"fmt"
"github.com/google/go-github/v69/github"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -4,7 +4,7 @@ import (
"context"
"fmt"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/types"
"github.com/sashabaranov/go-openai/jsonschema"
"github.com/tmc/langchaingo/tools/scraper"
)

View File

@@ -6,8 +6,8 @@ import (
"log/slog"
"strings"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/sashabaranov/go-openai/jsonschema"
"github.com/tmc/langchaingo/tools/duckduckgo"
"mvdan.cc/xurls/v2"
@@ -45,7 +45,7 @@ func (a *SearchAction) Run(ctx context.Context, params types.ActionParams) (type
return types.ActionResult{}, err
}
ddg, err := duckduckgo.New(a.results, "LocalAgent")
ddg, err := duckduckgo.New(a.results, "LocalAGI")
if err != nil {
fmt.Printf("error: %v", err)

View File

@@ -5,8 +5,8 @@ import (
"fmt"
"net/smtp"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -5,8 +5,8 @@ import (
"fmt"
"log"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/sashabaranov/go-openai/jsonschema"
"golang.org/x/crypto/ssh"
)

View File

@@ -4,9 +4,9 @@ import (
"context"
"fmt"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAgent/services/connectors/twitter"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/mudler/LocalAGI/services/connectors/twitter"
"github.com/sashabaranov/go-openai/jsonschema"
)

View File

@@ -4,7 +4,7 @@ import (
"context"
"fmt"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/types"
"github.com/sashabaranov/go-openai/jsonschema"
"github.com/tmc/langchaingo/tools/wikipedia"
)
@@ -25,7 +25,7 @@ func (a *WikipediaAction) Run(ctx context.Context, params types.ActionParams) (t
return types.ActionResult{}, err
}
wiki := wikipedia.New("LocalAgent")
wiki := wikipedia.New("LocalAGI")
res, err := wiki.Call(ctx, result.Query)
if err != nil {
fmt.Printf("error: %v", err)

View File

@@ -3,11 +3,11 @@ package services
import (
"encoding/json"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAgent/services/connectors"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/mudler/LocalAGI/services/connectors"
"github.com/mudler/LocalAgent/core/state"
"github.com/mudler/LocalAGI/core/state"
)
const (

View File

@@ -5,7 +5,7 @@ import (
"sync"
"time"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/sashabaranov/go-openai"
)

View File

@@ -3,7 +3,7 @@ package connectors_test
import (
"time"
"github.com/mudler/LocalAgent/services/connectors"
"github.com/mudler/LocalAGI/services/connectors"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
"github.com/sashabaranov/go-openai"

View File

@@ -6,10 +6,10 @@ import (
"time"
"github.com/bwmarrin/discordgo"
"github.com/mudler/LocalAgent/core/agent"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/core/agent"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/sashabaranov/go-openai"
)

View File

@@ -6,10 +6,10 @@ import (
"time"
"github.com/google/go-github/v69/github"
"github.com/mudler/LocalAgent/core/agent"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/core/agent"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/sashabaranov/go-openai"
)

View File

@@ -6,10 +6,10 @@ import (
"time"
"github.com/google/go-github/v69/github"
"github.com/mudler/LocalAgent/core/agent"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/core/agent"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/sashabaranov/go-openai"
)

View File

@@ -5,11 +5,11 @@ import (
"strings"
"time"
"github.com/mudler/LocalAgent/core/agent"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAgent/services/actions"
"github.com/mudler/LocalAGI/core/agent"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/mudler/LocalAGI/services/actions"
"github.com/sashabaranov/go-openai"
irc "github.com/thoj/go-ircevent"
)

View File

@@ -10,14 +10,14 @@ import (
"sync"
"time"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAgent/pkg/xstrings"
"github.com/mudler/LocalAgent/services/actions"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/mudler/LocalAGI/pkg/xstrings"
"github.com/mudler/LocalAGI/services/actions"
"github.com/sashabaranov/go-openai"
"github.com/mudler/LocalAgent/core/agent"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAGI/core/agent"
"github.com/mudler/LocalAGI/core/types"
"github.com/slack-go/slack/socketmode"

View File

@@ -12,12 +12,12 @@ import (
"github.com/go-telegram/bot"
"github.com/go-telegram/bot/models"
"github.com/mudler/LocalAgent/core/agent"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAgent/pkg/xstrings"
"github.com/mudler/LocalAgent/services/actions"
"github.com/mudler/LocalAGI/core/agent"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/mudler/LocalAGI/pkg/xstrings"
"github.com/mudler/LocalAGI/services/actions"
"github.com/sashabaranov/go-openai"
)

View File

@@ -6,11 +6,11 @@ import (
"os"
"os/signal"
"github.com/mudler/LocalAgent/core/agent"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAgent/services/connectors/twitter"
"github.com/mudler/LocalAGI/core/agent"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/mudler/LocalAGI/services/connectors/twitter"
"github.com/sashabaranov/go-openai"
)

View File

@@ -3,12 +3,12 @@ package services
import (
"encoding/json"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAgent/services/prompts"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/mudler/LocalAGI/services/prompts"
"github.com/mudler/LocalAgent/core/agent"
"github.com/mudler/LocalAgent/core/state"
"github.com/mudler/LocalAGI/core/agent"
"github.com/mudler/LocalAGI/core/state"
)
const (

View File

@@ -4,9 +4,9 @@ import (
"fmt"
"strings"
"github.com/mudler/LocalAgent/core/agent"
"github.com/mudler/LocalAgent/pkg/config"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAGI/core/agent"
"github.com/mudler/LocalAGI/pkg/config"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/traefik/yaegi/interp"
"github.com/traefik/yaegi/stdlib"
)

View File

@@ -6,12 +6,12 @@
## When configuring the connector, supply the tokens with:
## { "botToken": "OAuth Tokens for Your Workspace", "appToken": "App-Level Tokens" }
display_information:
name: LocalAgent
description: LocalAgent bot
name: LocalAGI
description: LocalAGI bot
background_color: "#0040ff"
features:
bot_user:
display_name: LocalAgent
display_name: LocalAGI
always_online: true
oauth_config:
scopes:

View File

@@ -13,9 +13,9 @@ func TestE2E(t *testing.T) {
RunSpecs(t, "E2E test suite")
}
var testModel = os.Getenv("LOCALAGENT_MODEL")
var testModel = os.Getenv("LOCALAGI_MODEL")
var apiURL = os.Getenv("LOCALAI_API_URL")
var localagentURL = os.Getenv("LOCALAGENT_API_URL")
var localagiURL = os.Getenv("LOCALAGI_API_URL")
func init() {
if testModel == "" {

View File

@@ -3,7 +3,7 @@ package e2e_test
import (
"time"
localagent "github.com/mudler/LocalAgent/pkg/client"
localagi "github.com/mudler/LocalAGI/pkg/client"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
@@ -12,9 +12,9 @@ import (
var _ = Describe("Agent test", func() {
Context("Creates an agent and it answers", func() {
It("create agent", func() {
client := localagent.NewClient(localagentURL, "", 5*time.Minute)
client := localagi.NewClient(localagiURL, "", 5*time.Minute)
err := client.CreateAgent(&localagent.AgentConfig{
err := client.CreateAgent(&localagi.AgentConfig{
Name: "testagent",
})
Expect(err).ToNot(HaveOccurred())

View File

@@ -11,17 +11,17 @@ import (
"time"
"github.com/google/uuid"
coreTypes "github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/llm"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAgent/services"
"github.com/mudler/LocalAgent/services/connectors"
"github.com/mudler/LocalAgent/webui/types"
coreTypes "github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/llm"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/mudler/LocalAGI/services"
"github.com/mudler/LocalAGI/services/connectors"
"github.com/mudler/LocalAGI/webui/types"
"github.com/sashabaranov/go-openai"
"github.com/sashabaranov/go-openai/jsonschema"
"github.com/mudler/LocalAgent/core/sse"
"github.com/mudler/LocalAgent/core/state"
"github.com/mudler/LocalAGI/core/sse"
"github.com/mudler/LocalAGI/core/state"
"github.com/donseba/go-htmx"
fiber "github.com/gofiber/fiber/v2"

View File

@@ -1,7 +1,7 @@
/**
* Connector Templates
*
* This file contains templates for all connector types supported by LocalAgent.
* This file contains templates for all connector types supported by LocalAGI.
* Each template is a function that returns an HTML string for the connector's form.
*
* Note: We don't need to escape HTML in the value attributes because browsers

View File

@@ -62,7 +62,7 @@
</section>
<footer class="text-center text-gray-500 text-sm mb-8">
<p>&copy; 2025 LocalAgent.</p>
<p>&copy; 2025 LocalAGI.</p>
</footer>
</div>

View File

@@ -157,7 +157,7 @@
</div>
<footer class="text-center text-gray-500 text-sm mb-8">
<p>&copy; 2025 LocalAgent.</p>
<p>&copy; 2025 LocalAGI.</p>
</footer>
</div>

View File

@@ -140,7 +140,7 @@
<img src="/old/public/logo_1.png" width="250" alt="Company Logo">
</div>
<h1 class="dashboard-title">LocalAgent</h1>
<h1 class="dashboard-title">LocalAGI</h1>
<!-- Simple stats display -->
<div class="dashboard-stats">

View File

@@ -16,7 +16,7 @@
</div>
</div>
<span class="text-xl font-bold transition-colors duration-300"
style="color: var(--primary); text-shadow: var(--neon-glow);">LocalAgent</span>
style="color: var(--primary); text-shadow: var(--neon-glow);">LocalAGI</span>
</a>
</div>
<div class="hidden md:block ml-10">

View File

@@ -3,7 +3,7 @@ package webui
import (
"time"
"github.com/mudler/LocalAgent/core/state"
"github.com/mudler/LocalAGI/core/state"
)
type Config struct {

View File

@@ -31,7 +31,7 @@ function App() {
<div className="logo-image-container">
<img src="/app/logo_2.png" alt="Logo" className="logo-image" />
</div>
{/* <span className="logo-text">LocalAgent</span> */}
{/* <span className="logo-text">LocalAGI</span> */}
</Link>
</div>

View File

@@ -15,9 +15,9 @@ function ActionsPlayground() {
// Update document title
useEffect(() => {
document.title = 'Actions Playground - LocalAgent';
document.title = 'Actions Playground - LocalAGI';
return () => {
document.title = 'LocalAgent'; // Reset title when component unmounts
document.title = 'LocalAGI'; // Reset title when component unmounts
};
}, []);

View File

@@ -14,10 +14,10 @@ function AgentSettings() {
// Update document title
useEffect(() => {
if (name) {
document.title = `Agent Settings: ${name} - LocalAgent`;
document.title = `Agent Settings: ${name} - LocalAGI`;
}
return () => {
document.title = 'LocalAgent'; // Reset title when component unmounts
document.title = 'LocalAGI'; // Reset title when component unmounts
};
}, [name]);

View File

@@ -13,10 +13,10 @@ function AgentStatus() {
// Update document title
useEffect(() => {
if (name) {
document.title = `Agent Status: ${name} - LocalAgent`;
document.title = `Agent Status: ${name} - LocalAGI`;
}
return () => {
document.title = 'LocalAgent'; // Reset title when component unmounts
document.title = 'LocalAGI'; // Reset title when component unmounts
};
}, [name]);

View File

@@ -96,9 +96,9 @@ function AgentsList() {
};
useEffect(() => {
document.title = 'Agents - LocalAgent';
document.title = 'Agents - LocalAGI';
return () => {
document.title = 'LocalAgent'; // Reset title when component unmounts
document.title = 'LocalAGI'; // Reset title when component unmounts
};
}, []);

View File

@@ -23,10 +23,10 @@ function Chat() {
// Update document title
useEffect(() => {
if (name) {
document.title = `Chat with ${name} - LocalAgent`;
document.title = `Chat with ${name} - LocalAGI`;
}
return () => {
document.title = 'LocalAgent'; // Reset title when component unmounts
document.title = 'LocalAGI'; // Reset title when component unmounts
};
}, [name]);

View File

@@ -11,9 +11,9 @@ function CreateAgent() {
const [formData, setFormData] = useState({});
useEffect(() => {
document.title = 'Create Agent - LocalAgent';
document.title = 'Create Agent - LocalAGI';
return () => {
document.title = 'LocalAgent'; // Reset title when component unmounts
document.title = 'LocalAGI'; // Reset title when component unmounts
};
}, []);

View File

@@ -23,9 +23,9 @@ function GroupCreate() {
// Update document title
useEffect(() => {
document.title = 'Create Agent Group - LocalAgent';
document.title = 'Create Agent Group - LocalAGI';
return () => {
document.title = 'LocalAgent'; // Reset title when component unmounts
document.title = 'LocalAGI'; // Reset title when component unmounts
};
}, []);

View File

@@ -16,9 +16,9 @@ function Home() {
// Update document title
useEffect(() => {
document.title = 'Agent Dashboard - LocalAgent';
document.title = 'Agent Dashboard - LocalAGI';
return () => {
document.title = 'LocalAgent'; // Reset title when component unmounts
document.title = 'LocalAGI'; // Reset title when component unmounts
};
}, []);
@@ -57,10 +57,10 @@ function Home() {
return (
<div>
<div className="image-container">
<img src="/app/logo_1.png" width="250" alt="LocalAgent Logo" />
<img src="/app/logo_1.png" width="250" alt="LocalAGI Logo" />
</div>
{/*<h1 className="dashboard-title">LocalAgent</h1>*/}
{/*<h1 className="dashboard-title">LocalAGI</h1>*/}
{/* Dashboard Stats */}
<div className="dashboard-stats">

View File

@@ -10,9 +10,9 @@ function ImportAgent() {
// Update document title
useEffect(() => {
document.title = 'Import Agent - LocalAgent';
document.title = 'Import Agent - LocalAGI';
return () => {
document.title = 'LocalAgent'; // Reset title when component unmounts
document.title = 'LocalAGI'; // Reset title when component unmounts
};
}, []);

View File

@@ -12,13 +12,13 @@ import (
fiber "github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/filesystem"
"github.com/gofiber/fiber/v2/middleware/keyauth"
"github.com/mudler/LocalAgent/core/sse"
"github.com/mudler/LocalAgent/services/connectors"
"github.com/mudler/LocalAGI/core/sse"
"github.com/mudler/LocalAGI/services/connectors"
"github.com/mudler/LocalAgent/core/state"
"github.com/mudler/LocalAgent/core/types"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAgent/services"
"github.com/mudler/LocalAGI/core/state"
"github.com/mudler/LocalAGI/core/types"
"github.com/mudler/LocalAGI/pkg/xlog"
"github.com/mudler/LocalAGI/services"
)
//go:embed old/views/*