From 6802a432d7e8f8de967e0aa877c7ab80d1b0c274 Mon Sep 17 00:00:00 2001 From: laily Date: Tue, 2 Jun 2026 14:34:39 +0800 Subject: [PATCH] feat: add agent-notify server command Co-authored-by: Cursor --- cmd/agent-notify/main.go | 3 +++ cmd/agent-notify/server.go | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 cmd/agent-notify/server.go diff --git a/cmd/agent-notify/main.go b/cmd/agent-notify/main.go index a296b65..133659e 100644 --- a/cmd/agent-notify/main.go +++ b/cmd/agent-notify/main.go @@ -41,6 +41,8 @@ func run(cmd string, args []string) error { return cmdLogs(args) case "inbox": return cmdInbox(args, os.Stdout, os.Stderr) + case "server": + return cmdServer(args) case "version", "-V": return cmdVersion() case "help", "-h", "--help": @@ -205,6 +207,7 @@ Commands: test claude [--apply] logs [--tail 30] inbox + server [--listen ADDR] [--db PATH] [--token TOKEN] version doctor `) diff --git a/cmd/agent-notify/server.go b/cmd/agent-notify/server.go new file mode 100644 index 0000000..419b60b --- /dev/null +++ b/cmd/agent-notify/server.go @@ -0,0 +1,36 @@ +package main + +import ( + "flag" + "fmt" + "net/http" + "os" + + "github.com/longbin/agent-notify/internal/server" +) + +func cmdServer(args []string) error { + fs := flag.NewFlagSet("server", flag.ExitOnError) + listen := fs.String("listen", ":8080", "listen address") + db := fs.String("db", "./agent-notify.db", "SQLite database path") + token := fs.String("token", "", "API bearer token") + _ = fs.Parse(args) + + tok := *token + if tok == "" { + tok = os.Getenv("AGENT_NOTIFY_TOKEN") + } + if tok == "" { + return fmt.Errorf("--token or AGENT_NOTIFY_TOKEN is required") + } + + store, err := server.Open(*db) + if err != nil { + return err + } + defer store.Close() + + handler := server.NewHandler(store, tok) + fmt.Fprintf(os.Stderr, "agent-notify server listening on %s\n", *listen) + return http.ListenAndServe(*listen, handler) +}