@xdarkicex/openclaw-memory-libravdb 1.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +46 -0
  2. package/docs/README.md +14 -0
  3. package/docs/architecture-decisions/README.md +6 -0
  4. package/docs/architecture-decisions/adr-001-onnx-over-ollama.md +21 -0
  5. package/docs/architecture-decisions/adr-002-libravdb-over-lancedb.md +19 -0
  6. package/docs/architecture-decisions/adr-003-convex-gating-over-threshold.md +27 -0
  7. package/docs/architecture-decisions/adr-004-sidecar-over-native-ts.md +21 -0
  8. package/docs/architecture.md +188 -0
  9. package/docs/contributing.md +76 -0
  10. package/docs/dependencies.md +38 -0
  11. package/docs/embedding-profiles.md +42 -0
  12. package/docs/gating.md +329 -0
  13. package/docs/implementation.md +381 -0
  14. package/docs/installation.md +272 -0
  15. package/docs/mathematics.md +695 -0
  16. package/docs/models.md +63 -0
  17. package/docs/problem.md +64 -0
  18. package/docs/security.md +86 -0
  19. package/openclaw.plugin.json +84 -0
  20. package/package.json +41 -0
  21. package/scripts/build-sidecar.sh +30 -0
  22. package/scripts/postinstall.js +169 -0
  23. package/scripts/setup.sh +20 -0
  24. package/scripts/setup.ts +505 -0
  25. package/scripts/sidecar-release.d.ts +4 -0
  26. package/scripts/sidecar-release.js +17 -0
  27. package/sidecar/cmd/inspect_onnx/main.go +105 -0
  28. package/sidecar/compact/gate.go +273 -0
  29. package/sidecar/compact/gate_test.go +85 -0
  30. package/sidecar/compact/summarize.go +345 -0
  31. package/sidecar/compact/summarize_test.go +319 -0
  32. package/sidecar/compact/tokens.go +11 -0
  33. package/sidecar/config/config.go +119 -0
  34. package/sidecar/config/config_test.go +75 -0
  35. package/sidecar/embed/engine.go +696 -0
  36. package/sidecar/embed/engine_test.go +349 -0
  37. package/sidecar/embed/matryoshka.go +93 -0
  38. package/sidecar/embed/matryoshka_test.go +150 -0
  39. package/sidecar/embed/onnx_local.go +319 -0
  40. package/sidecar/embed/onnx_local_test.go +159 -0
  41. package/sidecar/embed/profile_contract_test.go +71 -0
  42. package/sidecar/embed/profile_eval_test.go +923 -0
  43. package/sidecar/embed/profiles.go +39 -0
  44. package/sidecar/go.mod +21 -0
  45. package/sidecar/go.sum +30 -0
  46. package/sidecar/health/check.go +33 -0
  47. package/sidecar/health/check_test.go +55 -0
  48. package/sidecar/main.go +151 -0
  49. package/sidecar/model/encoder.go +222 -0
  50. package/sidecar/model/registry.go +262 -0
  51. package/sidecar/model/registry_test.go +102 -0
  52. package/sidecar/model/seq2seq.go +133 -0
  53. package/sidecar/server/rpc.go +343 -0
  54. package/sidecar/server/rpc_test.go +350 -0
  55. package/sidecar/server/transport.go +160 -0
  56. package/sidecar/store/libravdb.go +676 -0
  57. package/sidecar/store/libravdb_test.go +472 -0
  58. package/sidecar/summarize/engine.go +360 -0
  59. package/sidecar/summarize/engine_test.go +148 -0
  60. package/sidecar/summarize/onnx_local.go +494 -0
  61. package/sidecar/summarize/onnx_local_test.go +48 -0
  62. package/sidecar/summarize/profiles.go +52 -0
  63. package/sidecar/summarize/tokenizer.go +13 -0
  64. package/sidecar/summarize/tokenizer_hf.go +76 -0
  65. package/sidecar/summarize/util.go +13 -0
  66. package/src/cli.ts +205 -0
  67. package/src/context-engine.ts +195 -0
  68. package/src/index.ts +27 -0
  69. package/src/memory-provider.ts +24 -0
  70. package/src/openclaw-plugin-sdk.d.ts +53 -0
  71. package/src/plugin-runtime.ts +67 -0
  72. package/src/recall-cache.ts +34 -0
  73. package/src/recall-utils.ts +22 -0
  74. package/src/rpc.ts +84 -0
  75. package/src/scoring.ts +58 -0
  76. package/src/sidecar.ts +506 -0
  77. package/src/tokens.ts +36 -0
  78. package/src/types.ts +146 -0
  79. package/tsconfig.json +20 -0
  80. package/tsconfig.tests.json +12 -0
@@ -0,0 +1,160 @@
1
+ package server
2
+
3
+ import (
4
+ "bufio"
5
+ "context"
6
+ "encoding/json"
7
+ "errors"
8
+ "fmt"
9
+ "io"
10
+ "net"
11
+ "os"
12
+ "path/filepath"
13
+ "runtime"
14
+ "strings"
15
+ )
16
+
17
+ var ErrServerClosed = errors.New("sidecar server closed")
18
+
19
+ type request struct {
20
+ JSONRPC string `json:"jsonrpc"`
21
+ ID any `json:"id"`
22
+ Method string `json:"method"`
23
+ Params json.RawMessage `json:"params"`
24
+ }
25
+
26
+ type response struct {
27
+ JSONRPC string `json:"jsonrpc"`
28
+ ID any `json:"id,omitempty"`
29
+ Result any `json:"result,omitempty"`
30
+ Error *responseError `json:"error,omitempty"`
31
+ }
32
+
33
+ type responseError struct {
34
+ Message string `json:"message"`
35
+ }
36
+
37
+ func Listen() (net.Listener, string, func(), error) {
38
+ if runtime.GOOS == "windows" {
39
+ listener, err := net.Listen("tcp", "127.0.0.1:0")
40
+ if err != nil {
41
+ return nil, "", nil, err
42
+ }
43
+ return listener, "tcp:" + listener.Addr().String(), func() {
44
+ _ = listener.Close()
45
+ }, nil
46
+ }
47
+
48
+ dir, err := os.MkdirTemp("", "libravdb-sidecar-*")
49
+ if err != nil {
50
+ return nil, "", nil, err
51
+ }
52
+ path := filepath.Join(dir, "rpc.sock")
53
+ listener, err := net.Listen("unix", path)
54
+ if err != nil {
55
+ _ = os.RemoveAll(dir)
56
+ return nil, "", nil, err
57
+ }
58
+ return listener, path, func() {
59
+ _ = listener.Close()
60
+ _ = os.Remove(path)
61
+ _ = os.RemoveAll(dir)
62
+ }, nil
63
+ }
64
+
65
+ func Serve(ctx context.Context, listener net.Listener, srv *Server) error {
66
+ if listener == nil {
67
+ return errors.New("listener is required")
68
+ }
69
+ if srv == nil {
70
+ return errors.New("server is required")
71
+ }
72
+
73
+ go func() {
74
+ <-ctx.Done()
75
+ _ = listener.Close()
76
+ }()
77
+
78
+ for {
79
+ conn, err := listener.Accept()
80
+ if err != nil {
81
+ if ctx.Err() != nil || errors.Is(err, net.ErrClosed) {
82
+ return ErrServerClosed
83
+ }
84
+ return err
85
+ }
86
+ go serveConn(ctx, conn, srv)
87
+ }
88
+ }
89
+
90
+ func serveConn(ctx context.Context, conn net.Conn, srv *Server) {
91
+ defer conn.Close()
92
+
93
+ reader := bufio.NewReader(conn)
94
+ for {
95
+ select {
96
+ case <-ctx.Done():
97
+ return
98
+ default:
99
+ }
100
+
101
+ line, err := reader.ReadString('\n')
102
+ if err != nil {
103
+ if errors.Is(err, io.EOF) {
104
+ return
105
+ }
106
+ return
107
+ }
108
+
109
+ line = strings.TrimSpace(line)
110
+ if line == "" {
111
+ continue
112
+ }
113
+
114
+ var req request
115
+ if err := json.Unmarshal([]byte(line), &req); err != nil {
116
+ _ = writeResponse(conn, response{
117
+ JSONRPC: "2.0",
118
+ Error: &responseError{Message: fmt.Sprintf("invalid request: %v", err)},
119
+ })
120
+ continue
121
+ }
122
+
123
+ var params any
124
+ if len(req.Params) > 0 {
125
+ if err := json.Unmarshal(req.Params, &params); err != nil {
126
+ _ = writeResponse(conn, response{
127
+ JSONRPC: "2.0",
128
+ ID: req.ID,
129
+ Error: &responseError{Message: fmt.Sprintf("invalid params: %v", err)},
130
+ })
131
+ continue
132
+ }
133
+ }
134
+
135
+ result, err := srv.Call(ctx, req.Method, params)
136
+ if err != nil {
137
+ _ = writeResponse(conn, response{
138
+ JSONRPC: "2.0",
139
+ ID: req.ID,
140
+ Error: &responseError{Message: err.Error()},
141
+ })
142
+ continue
143
+ }
144
+
145
+ _ = writeResponse(conn, response{
146
+ JSONRPC: "2.0",
147
+ ID: req.ID,
148
+ Result: result,
149
+ })
150
+ }
151
+ }
152
+
153
+ func writeResponse(w io.Writer, resp response) error {
154
+ data, err := json.Marshal(resp)
155
+ if err != nil {
156
+ return err
157
+ }
158
+ _, err = io.WriteString(w, string(data)+"\n")
159
+ return err
160
+ }