From c2d96500e4beb8372baed0e7f8e368fb21bbb7a9 Mon Sep 17 00:00:00 2001 From: shenlan Date: Sat, 9 Aug 2025 16:51:39 +0800 Subject: [PATCH] fix(cli): remove unused proxy import --- cmd/cli/main.go | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/cmd/cli/main.go b/cmd/cli/main.go index 279fe14..652db80 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -2,6 +2,7 @@ package main import ( "context" + "encoding/json" "flag" "io" "log" @@ -10,17 +11,46 @@ import ( "time" rconfig "xcontrol/server/rag/config" + "xcontrol/server/rag/ingest" ) // main loads server RAG configuration and triggers a manual sync by -// calling the running API server's /api/rag/sync endpoint. +// calling the running API server's /api/rag/sync endpoint. When a file +// path is provided via -file, it parses the Markdown locally and emits +// chunk data as newline-delimited JSON. func main() { configPath := flag.String("config", "", "Path to server RAG configuration file") + filePath := flag.String("file", "", "Markdown file to parse and chunk") flag.Parse() + + var cfg *rconfig.Config + var err error if *configPath != "" { - if _, err := rconfig.Load(*configPath); err != nil { + cfg, err = rconfig.Load(*configPath) + if err != nil { log.Fatalf("load config: %v", err) } + } else { + cfg = &rconfig.Config{} + } + + if *filePath != "" { + chunkCfg := cfg.ResolveChunking() + secs, err := ingest.ParseMarkdown(*filePath) + if err != nil { + log.Fatalf("parse markdown: %v", err) + } + chunks, err := ingest.BuildChunks(secs, chunkCfg) + if err != nil { + log.Fatalf("build chunks: %v", err) + } + enc := json.NewEncoder(os.Stdout) + for _, ch := range chunks { + if err := enc.Encode(ch); err != nil { + log.Fatalf("encode chunk: %v", err) + } + } + return } baseURL := os.Getenv("SERVER_URL")