@squadrules/mcp 5.0.0-beta.1 → 5.0.0

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 (162) hide show
  1. package/README.md +23 -20
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/config/embedding-fastembed.d.ts +9 -0
  4. package/dist/config/embedding-fastembed.d.ts.map +1 -0
  5. package/dist/config/embedding-fastembed.js +20 -0
  6. package/dist/config/embedding-fastembed.js.map +1 -0
  7. package/dist/config.d.ts +8 -4
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +10 -4
  10. package/dist/config.js.map +1 -1
  11. package/dist/embed-docs/mem/adapter-migration.md +1 -1
  12. package/dist/embed-docs/mem/bulk-insert-adapters-via-cli.md +1 -1
  13. package/dist/embed-docs/mem/challenge-type-guide.md +1 -1
  14. package/dist/embed-docs/mem/create-new-protocol.md +1 -1
  15. package/dist/embed-docs/mem/phase-critic-guide.md +1 -1
  16. package/dist/embed-docs/mem/phase-critic.md +1 -1
  17. package/dist/embed-docs/mem/protocol-linking-guide.md +1 -1
  18. package/dist/embed-docs/mem/refine-search.md +1 -1
  19. package/dist/embed-docs/mem/skill-format-guide.md +1 -1
  20. package/dist/http/http-api-snapshot.d.ts.map +1 -1
  21. package/dist/http/http-api-snapshot.js +13 -1
  22. package/dist/http/http-api-snapshot.js.map +1 -1
  23. package/dist/http/http-health-routes.d.ts.map +1 -1
  24. package/dist/http/http-health-routes.js +6 -3
  25. package/dist/http/http-health-routes.js.map +1 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +15 -5
  28. package/dist/index.js.map +1 -1
  29. package/dist/resources/embedded-mcp-resources.js +9 -9
  30. package/dist/resources/embedded-mcp-resources.js.map +1 -1
  31. package/dist/resources/mem-resources-boot.d.ts.map +1 -1
  32. package/dist/resources/mem-resources-boot.js +2 -28
  33. package/dist/resources/mem-resources-boot.js.map +1 -1
  34. package/dist/resources/mem-uuid-mapper.d.ts.map +1 -1
  35. package/dist/resources/mem-uuid-mapper.js +8 -23
  36. package/dist/resources/mem-uuid-mapper.js.map +1 -1
  37. package/dist/server.d.ts.map +1 -1
  38. package/dist/server.js +9 -7
  39. package/dist/server.js.map +1 -1
  40. package/dist/services/embedding/fastembed-provider.d.ts +2 -0
  41. package/dist/services/embedding/fastembed-provider.d.ts.map +1 -0
  42. package/dist/services/embedding/fastembed-provider.js +78 -0
  43. package/dist/services/embedding/fastembed-provider.js.map +1 -0
  44. package/dist/services/embedding/health.d.ts.map +1 -1
  45. package/dist/services/embedding/health.js +99 -96
  46. package/dist/services/embedding/health.js.map +1 -1
  47. package/dist/services/embedding/provider-audit.d.ts +15 -0
  48. package/dist/services/embedding/provider-audit.d.ts.map +1 -0
  49. package/dist/services/embedding/provider-audit.js +28 -0
  50. package/dist/services/embedding/provider-audit.js.map +1 -0
  51. package/dist/services/embedding/providers.d.ts +2 -1
  52. package/dist/services/embedding/providers.d.ts.map +1 -1
  53. package/dist/services/embedding/providers.js +21 -23
  54. package/dist/services/embedding/providers.js.map +1 -1
  55. package/dist/services/embedding/service.d.ts +2 -2
  56. package/dist/services/embedding/service.d.ts.map +1 -1
  57. package/dist/services/embedding/service.js +13 -16
  58. package/dist/services/embedding/service.js.map +1 -1
  59. package/dist/services/execution-trace-store.d.ts +5 -29
  60. package/dist/services/execution-trace-store.d.ts.map +1 -1
  61. package/dist/services/execution-trace-store.js +10 -2
  62. package/dist/services/execution-trace-store.js.map +1 -1
  63. package/dist/services/memory/store.d.ts +23 -0
  64. package/dist/services/memory/store.d.ts.map +1 -1
  65. package/dist/services/memory/store.js +110 -3
  66. package/dist/services/memory/store.js.map +1 -1
  67. package/dist/services/memory-store.d.ts +5 -0
  68. package/dist/services/memory-store.d.ts.map +1 -1
  69. package/dist/services/memory-store.js +5 -0
  70. package/dist/services/memory-store.js.map +1 -1
  71. package/dist/services/qdrant/service.d.ts.map +1 -1
  72. package/dist/services/qdrant/service.js +11 -2
  73. package/dist/services/qdrant/service.js.map +1 -1
  74. package/dist/services/vector-store/IExecutionTraceStore.d.ts +25 -0
  75. package/dist/services/vector-store/IExecutionTraceStore.d.ts.map +1 -0
  76. package/dist/services/vector-store/IExecutionTraceStore.js +2 -0
  77. package/dist/services/vector-store/IExecutionTraceStore.js.map +1 -0
  78. package/dist/services/vector-store/IVectorRecordStore.d.ts +58 -0
  79. package/dist/services/vector-store/IVectorRecordStore.d.ts.map +1 -0
  80. package/dist/services/vector-store/IVectorRecordStore.js +2 -0
  81. package/dist/services/vector-store/IVectorRecordStore.js.map +1 -0
  82. package/dist/services/vector-store/commit-retry.d.ts +21 -0
  83. package/dist/services/vector-store/commit-retry.d.ts.map +1 -0
  84. package/dist/services/vector-store/commit-retry.js +58 -0
  85. package/dist/services/vector-store/commit-retry.js.map +1 -0
  86. package/dist/services/vector-store/embedded-store-singleton.d.ts +12 -0
  87. package/dist/services/vector-store/embedded-store-singleton.d.ts.map +1 -0
  88. package/dist/services/vector-store/embedded-store-singleton.js +17 -0
  89. package/dist/services/vector-store/embedded-store-singleton.js.map +1 -0
  90. package/dist/services/vector-store/lancedb/LanceExecutionTraceStore.d.ts +28 -0
  91. package/dist/services/vector-store/lancedb/LanceExecutionTraceStore.d.ts.map +1 -0
  92. package/dist/services/vector-store/lancedb/LanceExecutionTraceStore.js +222 -0
  93. package/dist/services/vector-store/lancedb/LanceExecutionTraceStore.js.map +1 -0
  94. package/dist/services/vector-store/lancedb/LanceVectorRecordStore.d.ts +77 -0
  95. package/dist/services/vector-store/lancedb/LanceVectorRecordStore.d.ts.map +1 -0
  96. package/dist/services/vector-store/lancedb/LanceVectorRecordStore.js +136 -0
  97. package/dist/services/vector-store/lancedb/LanceVectorRecordStore.js.map +1 -0
  98. package/dist/services/vector-store/lancedb/lance-records-engine.d.ts +41 -0
  99. package/dist/services/vector-store/lancedb/lance-records-engine.d.ts.map +1 -0
  100. package/dist/services/vector-store/lancedb/lance-records-engine.js +102 -0
  101. package/dist/services/vector-store/lancedb/lance-records-engine.js.map +1 -0
  102. package/dist/services/vector-store/lancedb/lance-records-mutations.d.ts +22 -0
  103. package/dist/services/vector-store/lancedb/lance-records-mutations.d.ts.map +1 -0
  104. package/dist/services/vector-store/lancedb/lance-records-mutations.js +211 -0
  105. package/dist/services/vector-store/lancedb/lance-records-mutations.js.map +1 -0
  106. package/dist/services/vector-store/lancedb/lance-records-reads.d.ts +64 -0
  107. package/dist/services/vector-store/lancedb/lance-records-reads.d.ts.map +1 -0
  108. package/dist/services/vector-store/lancedb/lance-records-reads.js +237 -0
  109. package/dist/services/vector-store/lancedb/lance-records-reads.js.map +1 -0
  110. package/dist/services/vector-store/lancedb/lance-records-schema.d.ts +48 -0
  111. package/dist/services/vector-store/lancedb/lance-records-schema.d.ts.map +1 -0
  112. package/dist/services/vector-store/lancedb/lance-records-schema.js +159 -0
  113. package/dist/services/vector-store/lancedb/lance-records-schema.js.map +1 -0
  114. package/dist/services/vector-store/lancedb/lance-records-search.d.ts +30 -0
  115. package/dist/services/vector-store/lancedb/lance-records-search.d.ts.map +1 -0
  116. package/dist/services/vector-store/lancedb/lance-records-search.js +112 -0
  117. package/dist/services/vector-store/lancedb/lance-records-search.js.map +1 -0
  118. package/dist/services/vector-store/lancedb/lance-records-write-artifact.d.ts +11 -0
  119. package/dist/services/vector-store/lancedb/lance-records-write-artifact.d.ts.map +1 -0
  120. package/dist/services/vector-store/lancedb/lance-records-write-artifact.js +121 -0
  121. package/dist/services/vector-store/lancedb/lance-records-write-artifact.js.map +1 -0
  122. package/dist/services/vector-store/lancedb/lance-records-write-helpers.d.ts +52 -0
  123. package/dist/services/vector-store/lancedb/lance-records-write-helpers.d.ts.map +1 -0
  124. package/dist/services/vector-store/lancedb/lance-records-write-helpers.js +216 -0
  125. package/dist/services/vector-store/lancedb/lance-records-write-helpers.js.map +1 -0
  126. package/dist/services/vector-store/lancedb/lance-records-writes.d.ts +21 -0
  127. package/dist/services/vector-store/lancedb/lance-records-writes.d.ts.map +1 -0
  128. package/dist/services/vector-store/lancedb/lance-records-writes.js +294 -0
  129. package/dist/services/vector-store/lancedb/lance-records-writes.js.map +1 -0
  130. package/dist/services/vector-store/lancedb-connection.d.ts +12 -0
  131. package/dist/services/vector-store/lancedb-connection.d.ts.map +1 -0
  132. package/dist/services/vector-store/lancedb-connection.js +28 -0
  133. package/dist/services/vector-store/lancedb-connection.js.map +1 -0
  134. package/dist/services/vector-store/types.d.ts +85 -0
  135. package/dist/services/vector-store/types.d.ts.map +1 -0
  136. package/dist/services/vector-store/types.js +2 -0
  137. package/dist/services/vector-store/types.js.map +1 -0
  138. package/dist/tools/artifact-catalog.d.ts.map +1 -1
  139. package/dist/tools/artifact-catalog.js +6 -33
  140. package/dist/tools/artifact-catalog.js.map +1 -1
  141. package/dist/tools/search.d.ts.map +1 -1
  142. package/dist/tools/search.js +6 -20
  143. package/dist/tools/search.js.map +1 -1
  144. package/dist/tools/search_schema.d.ts +1 -1
  145. package/dist/tools/skill-export/enumerate-space-adapters.d.ts +1 -1
  146. package/dist/tools/skill-export/enumerate-space-adapters.d.ts.map +1 -1
  147. package/dist/tools/skill-export/enumerate-space-adapters.js +11 -27
  148. package/dist/tools/skill-export/enumerate-space-adapters.js.map +1 -1
  149. package/dist/tools/spaces.d.ts.map +1 -1
  150. package/dist/tools/spaces.js +2 -15
  151. package/dist/tools/spaces.js.map +1 -1
  152. package/dist/ui/assets/{AccountPage-B0ali9jz.js → AccountPage-BJm56sur.js} +1 -1
  153. package/dist/ui/assets/{ProtocolEditPage-DIySo-F_.js → ProtocolEditPage-mChBe3JY.js} +1 -1
  154. package/dist/ui/assets/{RichTextEditor-uun0UIVc.js → RichTextEditor-Bj6JxHM5.js} +1 -1
  155. package/dist/ui/assets/{SkillBundlePage-DtOlpupj.js → SkillBundlePage-D1OPKJzA.js} +1 -1
  156. package/dist/ui/assets/{index-BlCipoHI.js → index-PouLvU1c.js} +2 -2
  157. package/dist/ui/index.html +1 -1
  158. package/dist/utils/squadrules-user-dirs.d.ts +10 -0
  159. package/dist/utils/squadrules-user-dirs.d.ts.map +1 -1
  160. package/dist/utils/squadrules-user-dirs.js +12 -0
  161. package/dist/utils/squadrules-user-dirs.js.map +1 -1
  162. package/package.json +18 -11
package/README.md CHANGED
@@ -102,7 +102,7 @@ The current codebase includes:
102
102
 
103
103
  - **HTTP application server** — Express app for MCP, REST, auth routes, and UI
104
104
  - **stdio MCP transport** — direct local-host launch path for desktop/IDE MCP clients
105
- - **Qdrant-backed adapter store** — required for runtime
105
+ - **Vector/trace store** — embedded LanceDB by default; Qdrant when `QDRANT_URL` is set
106
106
  - **Optional Redis cache / proof-of-work state store** — enabled when `REDIS_URL` is set
107
107
  - **Optional Keycloak auth integration** — browser session + Bearer JWT validation
108
108
  - **React UI** — served from the same origin at `/ui`
@@ -134,15 +134,13 @@ Compose — install the package globally and point your host at `squadrules serv
134
134
  ### Prerequisites
135
135
 
136
136
  - **Node.js 24+**.
137
- - **A Qdrant instance on `http://localhost:6333`** — SquadRules cannot start
138
- without it, and no auth is required for local use. If you don't already run
139
- one, this is the quickest option (optional convenience):
140
-
141
- ```bash
142
- docker run -p 6333:6333 qdrant/qdrant
143
- ```
144
-
145
- - **One embedding backend**, supplied through the host `env` below.
137
+ - **One embedding backend**, supplied through the host `env` below (the embedded
138
+ store removes the vector *database* dependency, not the embedding provider).
139
+ - **No database required.** By default SquadRules keeps its vectors in an embedded,
140
+ file-backed LanceDB store under `~/.config/squadrules/lancedb` (created on first
141
+ run) — no Qdrant, Redis, or Docker. To keep an existing Qdrant, set `QDRANT_URL`;
142
+ the single-switch selection rule and limitations live in
143
+ [Known issues & limitations](docs/known-issues-and-limitations.md#vector-store-backends).
146
144
 
147
145
  ### Install
148
146
 
@@ -167,23 +165,24 @@ Add SquadRules to your host's `mcp.json` (Cursor, Claude Desktop, Claude Code,
167
165
  "SquadRules": {
168
166
  "command": "squadrules",
169
167
  "args": ["serve"],
170
- "env": {
171
- "QDRANT_URL": "http://localhost:6333",
172
- "QDRANT_API_KEY": "",
173
- "OPENAI_API_KEY": "sk-..."
174
- }
168
+ "env": {}
175
169
  }
176
170
  }
177
171
  }
178
172
  ```
179
173
 
180
- `QDRANT_API_KEY=""` selects no-auth localhost Qdrant. For the embedding backend,
181
- supply **one** of:
174
+ An empty `env` is enough: with no `QDRANT_URL` the server uses the embedded
175
+ LanceDB store (created on first run under `~/.config/squadrules/lancedb`), and
176
+ embeddings run **locally with fastembed** (no API key, no inference service; the
177
+ model is downloaded once into `~/.config/squadrules/models`). To use an existing
178
+ Qdrant instead, add `"QDRANT_URL": "http://localhost:6333"` (and
179
+ `"QDRANT_API_KEY": ""` for no-auth localhost Qdrant). To override the local
180
+ embedding default with an external backend, supply **one** of:
182
181
 
183
182
  - **OpenAI** — `OPENAI_API_KEY`
184
183
  - **Ollama / OpenAI-compatible** — `OPENAI_API_URL`, `OPENAI_EMBEDDING_MODEL`,
185
184
  and `OPENAI_API_KEY=ollama`
186
- - **TEI** — `TEI_BASE_URL` (+ optional `TEI_MODEL`)
185
+ - **TEI** (deprecated) — `TEI_BASE_URL` (+ optional `TEI_MODEL`)
187
186
 
188
187
  Every parameter is **ENV-overridable**. To run SquadRules as an HTTP listener
189
188
  instead of stdio, add `"--transport", "http"` to `args` (see
@@ -311,11 +310,15 @@ health endpoint (`curl http://localhost:3000/health`).
311
310
 
312
311
  ### Embeddings fail on startup
313
312
 
314
- Set one working embedding backend in the host `env`:
313
+ By default embeddings run **locally with fastembed** — no key required — but the
314
+ **first run downloads the model**, so it needs network access once (cached under
315
+ `~/.config/squadrules/models`; air-gapped hosts must pre-seed it). Override the
316
+ model or location with `FASTEMBED_MODEL` / `FASTEMBED_CACHE_DIR`. To use an
317
+ external backend instead, set one working provider in the host `env`:
315
318
 
316
319
  - OpenAI: `OPENAI_API_KEY`
317
320
  - Ollama/OpenAI-compatible: `OPENAI_API_URL`, `OPENAI_EMBEDDING_MODEL`, `OPENAI_API_KEY=ollama`
318
- - TEI: `TEI_BASE_URL` (+ optional `TEI_MODEL`)
321
+ - TEI (deprecated): `TEI_BASE_URL` (+ optional `TEI_MODEL`)
319
322
 
320
323
  ### The CLI keeps asking for login
321
324