Details (original message): Assemble P1-P4: advance module gitlinks (core 992d601, backend 97b90ad, frontend), cross-repo Makefile with contracts sync and single-binary build, example plugin assets, demo target.
74 lines
3.1 KiB
Makefile
74 lines
3.1 KiB
Makefile
# Agent-System-Dev 顶层编排
|
||
# 部署约束:非容器化;默认产物为单二进制(modules/backend,内嵌前端与嵌入式存储)。
|
||
|
||
SHELL := /bin/bash
|
||
CORE := modules/core
|
||
BACKEND := modules/backend
|
||
FRONTEND := modules/frontend
|
||
BIN := bin/agent-system
|
||
EMBED_DIR := $(BACKEND)/web/dist
|
||
PLUGINS := plugins
|
||
|
||
.PHONY: help sync status build frontend test test-backend test-frontend test-core dev pin clean
|
||
|
||
help:
|
||
@echo "make sync 物化全部 submodule(递归)"
|
||
@echo "make build 构建单二进制 bin/agent-system(契约同步→前端构建→embed→静态链接)"
|
||
@echo "make test 全量测试(core + backend + frontend)"
|
||
@echo "make dev 开发模式说明(前后端分离热更新)"
|
||
@echo "make pin 推进 submodule 指针到各仓远端 main(提交前须 make test 通过)"
|
||
@echo "make status submodule 状态"
|
||
|
||
sync:
|
||
git submodule update --init --recursive
|
||
|
||
status:
|
||
@git submodule status
|
||
|
||
# 契约同步:Core 的 TS 类型镜像到前端(Core 为权威,单一来源)。
|
||
contracts:
|
||
cp $(CORE)/ts/types.ts $(FRONTEND)/src/contracts.ts.tmp
|
||
{ echo "// 从 Agent-System-Core ts/types.ts 同步(make contracts 生成;Core 为权威)。"; cat $(FRONTEND)/src/contracts.ts.tmp; } > $(FRONTEND)/src/contracts.ts
|
||
rm $(FRONTEND)/src/contracts.ts.tmp
|
||
|
||
frontend: contracts
|
||
cd $(FRONTEND) && npm ci --no-fund --no-audit && npm run build
|
||
rm -rf $(EMBED_DIR) && mkdir -p $(EMBED_DIR) && cp -r $(FRONTEND)/dist/* $(EMBED_DIR)/
|
||
|
||
build: frontend
|
||
cd $(BACKEND) && CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o ../../$(BIN) ./cmd/agent-system
|
||
@echo "OK: $(BIN)(单二进制;随附插件目录 $(PLUGINS)/)"
|
||
|
||
test-core:
|
||
cd $(CORE) && go test ./...
|
||
|
||
test-backend:
|
||
cd $(BACKEND) && go test ./...
|
||
|
||
test-frontend: contracts
|
||
cd $(FRONTEND) && npm ci --no-fund --no-audit && npx vitest run
|
||
|
||
test: test-core test-backend test-frontend
|
||
|
||
# 运行演示(mock 模式):单二进制 + 示例插件 + 嵌入式存储,浏览器 http://127.0.0.1:8787
|
||
demo: build
|
||
$(BIN) serve --addr 127.0.0.1:8787 --data ./data --plugins $(PLUGINS) --mock
|
||
|
||
dev:
|
||
@echo "开发模式(原生,非容器):"
|
||
@echo " 1. make sync && make contracts"
|
||
@echo " 2. 终端 A:cd $(BACKEND) && go run ./cmd/agent-system serve --addr 127.0.0.1:8787 --data ./data --plugins ../$(PLUGINS)"
|
||
@echo " 3. 终端 B:cd $(FRONTEND) && npm ci && npm run dev # Vite 代理到 8787"
|
||
@echo " 4. mock 演示:设置→运行时→演示模式;或终端 A 加 --mock"
|
||
|
||
# 推进指针(多仓纪律:先验证后固定)。
|
||
pin:
|
||
@for m in modules/core modules/backend modules/frontend modules/documents deps/agent-native deps/agent-squad deps/agent-intent deps/error-code-system deps/logging-system deps/development-guidelines; do \
|
||
(git -C $$m fetch -q origin && git -C $$m checkout -q origin/main) || echo "skip $$m"; \
|
||
done
|
||
@cd $(BACKEND)/deps/agent-system-core && git fetch -q origin && git checkout -q origin/main || true
|
||
@echo "submodule 指针已推进;请 make test 后 git add .gitmodules modules deps && git commit"
|
||
|
||
clean:
|
||
rm -rf $(BIN) $(FRONTEND)/dist $(FRONTEND)/node_modules data
|