Implement spawn_tracker module to enforce recursive agent spawning limits via R_MAX_SPAWN_DEPTH and R_MAX_TOTAL_SPAWNS environment variables, replacing the previous max_subagents parameter in tool_agent.c. Add tool_deepsearch.c implementing an iterative multi-query research algorithm with configurable system message, and register the new source files in Makefile build targets.
110 lines
2.7 KiB
Makefile
Executable File
110 lines
2.7 KiB
Makefile
Executable File
# retoor <retoor@molodetz.nl>
|
|
|
|
CC = gcc
|
|
CFLAGS = -Ofast -Werror -Wall -I./include
|
|
LDFLAGS = -lreadline -lncurses -lcurl -ljson-c -lsqlite3 -lm -lpthread -lssl -lcrypto
|
|
|
|
SRCDIR = src
|
|
TOOLSDIR = src/tools
|
|
BUILDDIR = build
|
|
BINDIR = bin
|
|
|
|
SRC_CORE = $(SRCDIR)/r_error.c \
|
|
$(SRCDIR)/r_config.c \
|
|
$(SRCDIR)/spawn_tracker.c \
|
|
$(SRCDIR)/tool_registry.c \
|
|
$(SRCDIR)/db.c \
|
|
$(SRCDIR)/http_client.c \
|
|
$(SRCDIR)/messages.c \
|
|
$(SRCDIR)/agent.c \
|
|
$(SRCDIR)/bash_executor.c \
|
|
$(SRCDIR)/context_manager.c \
|
|
$(SRCDIR)/markdown.c \
|
|
$(SRCDIR)/r_diff.c \
|
|
$(SRCDIR)/main.c
|
|
|
|
SRC_TOOLS = $(TOOLSDIR)/tools_init.c \
|
|
$(TOOLSDIR)/tool_terminal.c \
|
|
$(TOOLSDIR)/tool_file.c \
|
|
$(TOOLSDIR)/tool_db.c \
|
|
$(TOOLSDIR)/tool_http.c \
|
|
$(TOOLSDIR)/tool_python.c \
|
|
$(TOOLSDIR)/tool_indexer.c \
|
|
$(TOOLSDIR)/tool_code.c \
|
|
$(TOOLSDIR)/tool_file_edit.c \
|
|
$(TOOLSDIR)/tool_system.c \
|
|
$(TOOLSDIR)/tool_enterprise.c \
|
|
$(TOOLSDIR)/tool_research.c \
|
|
$(TOOLSDIR)/tool_network.c \
|
|
$(TOOLSDIR)/tool_dns.c \
|
|
$(TOOLSDIR)/tool_automation.c \
|
|
$(TOOLSDIR)/tool_csv.c \
|
|
$(TOOLSDIR)/tool_agent.c \
|
|
$(TOOLSDIR)/tool_deepsearch.c
|
|
|
|
SRC = $(SRC_CORE) $(SRC_TOOLS)
|
|
|
|
OBJ_CORE = $(patsubst $(SRCDIR)/%.c,$(BUILDDIR)/%.o,$(SRC_CORE))
|
|
OBJ_TOOLS = $(patsubst $(TOOLSDIR)/%.c,$(BUILDDIR)/tools/%.o,$(SRC_TOOLS))
|
|
OBJ = $(OBJ_CORE) $(OBJ_TOOLS)
|
|
|
|
.PHONY: all clean build build_legacy run
|
|
|
|
all: build
|
|
|
|
build: $(BINDIR)/r
|
|
cp $(BINDIR)/r r
|
|
|
|
$(BINDIR)/r: $(OBJ)
|
|
@mkdir -p $(BINDIR)
|
|
$(CC) $(OBJ) $(LDFLAGS) -o $@
|
|
|
|
$(BUILDDIR)/%.o: $(SRCDIR)/%.c
|
|
@mkdir -p $(dir $@)
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(BUILDDIR)/tools/%.o: $(TOOLSDIR)/%.c
|
|
@mkdir -p $(dir $@)
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
build_legacy:
|
|
@mkdir -p $(BINDIR)
|
|
$(CC) main.c $(CFLAGS) $(LDFLAGS) -o $(BINDIR)/r_legacy
|
|
cp $(BINDIR)/r_legacy r
|
|
|
|
build_rpylib:
|
|
$(CC) -shared -o rpylib.so -fPIC rpylib.c -lpython3.12 `python3-config --includes` -I/usr/include/CL -ljson-c -lcurl -lsqlite3
|
|
|
|
run: build
|
|
./r --verbose
|
|
|
|
install:
|
|
cp ./r /usr/local/bin/r
|
|
|
|
clean:
|
|
rm -rf $(BUILDDIR) $(BINDIR)
|
|
rm -f r
|
|
|
|
appimage: build
|
|
-@rm -rf AppImage
|
|
mkdir -p AppImage/usr/bin
|
|
mkdir -p AppImage/lib
|
|
cp AppRun AppImage/AppRun
|
|
cp r.desktop AppImage/r.desktop
|
|
cp r.png AppImage/r.png
|
|
cp $(BINDIR)/r AppImage/usr/bin/r
|
|
./collect_so_files.sh
|
|
appimagetool-x86_64.AppImage AppImage
|
|
mv r-x86_64.AppImage r
|
|
|
|
docker: docker_make docker_run
|
|
|
|
docker_make:
|
|
docker build -t r .
|
|
|
|
docker_run:
|
|
docker run -v .:/app --rm -it r
|
|
|
|
build_deb:
|
|
dpkg-deb --build r_package
|