@lacneu/openclaw-knowledge 3.2.6 → 3.2.7
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.
- package/CHANGELOG.md +31 -0
- package/README.md +86 -0
- package/dist/config.js +87 -4
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.js +82 -11
- package/dist/index.js.map +1 -1
- package/dist/tracing/events.d.ts +13 -0
- package/dist/tracing/events.js.map +1 -1
- package/dist/types.d.ts +82 -2
- package/openclaw.plugin.json +61 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,37 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [3.2.7] - 2026-06-18
|
|
11
|
+
|
|
12
|
+
### Added — TEST mode (mocked sources, opt-in)
|
|
13
|
+
|
|
14
|
+
New `testMode` config block lets the plugin run in an **isolated test
|
|
15
|
+
environment with no live LightRAG server and no PostgreSQL/pgvector
|
|
16
|
+
backend**. When `testMode.enabled` is `true`, BOTH sources return canned
|
|
17
|
+
data instead of querying anything:
|
|
18
|
+
|
|
19
|
+
- **LightRAG** → `testMode.lightragMockResponse` (a realistic synthetic
|
|
20
|
+
knowledge-graph context by default; the `{{query}}` token is substituted
|
|
21
|
+
with the user's query at runtime so you can confirm it reaches the source).
|
|
22
|
+
- **pgvector** → `testMode.pgvectorMockResults` (a small realistic
|
|
23
|
+
synthetic hit set by default; each entry is normalized to a full result
|
|
24
|
+
row and sorted by descending score).
|
|
25
|
+
|
|
26
|
+
The mocked context is **genuinely injected** into the agent's system prompt
|
|
27
|
+
via the unchanged `before_prompt_build` → `appendSystemContext` path, so the
|
|
28
|
+
plugin's real impact on the agent's answers is observable downstream — e.g.
|
|
29
|
+
the agent's LLM call (traced via LiteLLM → Langfuse) reflects the injected
|
|
30
|
+
context. The plugin makes **zero** outbound calls in test mode (no Gemini
|
|
31
|
+
embedding, no LightRAG query) and **no pg pool is created**.
|
|
32
|
+
|
|
33
|
+
Safety: off by default; a loud `⚠️ TEST MODE ACTIVE` warning is logged at
|
|
34
|
+
registration; the ready line and the `lightrag`/`pgvector` tracing events are
|
|
35
|
+
flagged so synthetic traffic is distinguishable (`mock:true`, only present in
|
|
36
|
+
test mode — production event lines are byte-for-byte unchanged). A source
|
|
37
|
+
counts as "enabled" under the mock even without its URL/credentials, but an
|
|
38
|
+
explicit `pgvectorEnabled`/`lightragEnabled: false` still wins, so a single
|
|
39
|
+
source can be mocked in isolation. **Never enable `testMode` in production.**
|
|
40
|
+
|
|
10
41
|
### Added — provenance reporting (provenance/v1, opt-in)
|
|
11
42
|
|
|
12
43
|
New `provenanceReport` config (`"off"` default | `"metadata"` | `"full"`).
|
package/README.md
CHANGED
|
@@ -191,6 +191,10 @@ openclaw gateway restart
|
|
|
191
191
|
| `jina.pgvectorReranker.enabled` | boolean | `false` | Cross-encoder re-ordering of pgvector results |
|
|
192
192
|
| `jina.pgvectorReranker.model` | string | `"jina-reranker-v2-base-multilingual"` | Reranker model |
|
|
193
193
|
| `jina.pgvectorReranker.topN` | number | `5` | Max results returned after rerank |
|
|
194
|
+
| **TEST mode (optional, v3.2.7+)** | | | |
|
|
195
|
+
| `testMode.enabled` | boolean | `false` | Mock BOTH sources — no LightRAG/Postgres connection. **Never enable in production.** |
|
|
196
|
+
| `testMode.lightragMockResponse` | string | synthetic context | Canned LightRAG context; `{{query}}` is substituted at runtime |
|
|
197
|
+
| `testMode.pgvectorMockResults` | object[] | synthetic hits | Canned pgvector hits (`file_name`, `text`, `score`, `collection`) |
|
|
194
198
|
|
|
195
199
|
### LightRAG query modes
|
|
196
200
|
|
|
@@ -201,6 +205,88 @@ openclaw gateway restart
|
|
|
201
205
|
| `global` | Community summaries | Broad, overview questions |
|
|
202
206
|
| `hybrid` | Combines local + global | **Recommended for most cases** |
|
|
203
207
|
|
|
208
|
+
### TEST mode — run without LightRAG or Postgres (v3.2.7+)
|
|
209
|
+
|
|
210
|
+
TEST mode lets you deploy the plugin into an **isolated test environment**
|
|
211
|
+
that has **no live LightRAG server and no PostgreSQL/pgvector backend**, while
|
|
212
|
+
still observing the plugin's real impact on the agent's answers. Both sources
|
|
213
|
+
return canned data, but that data is **genuinely injected** into the agent's
|
|
214
|
+
system prompt through the normal `before_prompt_build` → `appendSystemContext`
|
|
215
|
+
path — so the agent reasons over it exactly as it would over real retrieval,
|
|
216
|
+
and any downstream LLM trace (e.g. the agent's call routed through LiteLLM to
|
|
217
|
+
Langfuse) reflects the injected context.
|
|
218
|
+
|
|
219
|
+
The plugin makes **zero outbound calls** in test mode: no Gemini embedding,
|
|
220
|
+
no LightRAG query, and **no pg pool is created**.
|
|
221
|
+
|
|
222
|
+
```json
|
|
223
|
+
{
|
|
224
|
+
"plugins": {
|
|
225
|
+
"entries": {
|
|
226
|
+
"openclaw-knowledge": {
|
|
227
|
+
"enabled": true,
|
|
228
|
+
"config": {
|
|
229
|
+
"collections": ["knowledge_test"],
|
|
230
|
+
"testMode": {
|
|
231
|
+
"enabled": true,
|
|
232
|
+
"lightragMockResponse": "Knowledge-graph context for \"{{query}}\": Projet Hélios, reference HX-2026-0042, owned by équipe Plateforme.",
|
|
233
|
+
"pgvectorMockResults": [
|
|
234
|
+
{ "file_name": "guide-helios.md", "text": "Hélios rollout: prep, switch, validation. Ref HX-2026-0042.", "score": 0.87 },
|
|
235
|
+
{ "file_name": "faq-helios.md", "text": "Hélios is piloted by équipe Plateforme since 2026-02-14.", "score": 0.72 }
|
|
236
|
+
]
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
Notes:
|
|
246
|
+
|
|
247
|
+
- **No credentials needed.** Under the mock, each source counts as "enabled"
|
|
248
|
+
even without `geminiApiKey` / `lightragUrl`. To mock a **single** source,
|
|
249
|
+
set the other's explicit toggle off (`"pgvectorEnabled": false` or
|
|
250
|
+
`"lightragEnabled": false`) — the explicit disable always wins.
|
|
251
|
+
- **Defaults are realistic.** Omit `lightragMockResponse` /
|
|
252
|
+
`pgvectorMockResults` and the plugin injects a synthetic "Projet Hélios"
|
|
253
|
+
knowledge set (with a citable `HX-2026-0042` reference) so you can confirm
|
|
254
|
+
injection worked straight from the agent's reply.
|
|
255
|
+
- **`{{query}}`** in `lightragMockResponse` is replaced with the user's query
|
|
256
|
+
at runtime, proving the query travels through the source.
|
|
257
|
+
- **Mock fidelity divergences** (intentional — the mock path has no DB/Jina):
|
|
258
|
+
- Mock pgvector results **always inject regardless of `scoreThreshold`**
|
|
259
|
+
(the real path filters `score >= scoreThreshold`).
|
|
260
|
+
- The **Jina reranker is bypassed** in test mode (it needs a live endpoint);
|
|
261
|
+
ordering is controlled entirely by the mock `score` values.
|
|
262
|
+
- **Router still applies.** The adaptive router (if enabled) runs normally. In
|
|
263
|
+
the default `heuristic` mode it works fully offline; in `jina-classifier`
|
|
264
|
+
mode it would call Jina and fail open to "retrieve" if Jina is unreachable.
|
|
265
|
+
For a fully offline test env, keep the router off or in `heuristic` mode.
|
|
266
|
+
- **Safety.** A loud `⚠️ TEST MODE ACTIVE` warning is logged at registration,
|
|
267
|
+
the ready line marks each source `[MOCK]`, and the `lightrag`/`pgvector`
|
|
268
|
+
tracing events carry `mock:true`. **Never enable `testMode` in production** —
|
|
269
|
+
it feeds the agent canned facts it will treat as real.
|
|
270
|
+
|
|
271
|
+
#### Verifying the impact (Langfuse)
|
|
272
|
+
|
|
273
|
+
The mock context is genuinely injected, so it reaches the agent's LLM call.
|
|
274
|
+
Whether it shows up in **Langfuse** depends on how your test agent is wired:
|
|
275
|
+
Langfuse traces calls that go **through LiteLLM** (and the LightRAG server).
|
|
276
|
+
A typical production OpenClaw agent routes its chat/reasoning calls **straight
|
|
277
|
+
to the model provider** (e.g. `openai-codex`), which Langfuse does **not**
|
|
278
|
+
trace — so for Langfuse visibility, the test agent must route its LLM calls
|
|
279
|
+
through LiteLLM. The plugin injects correctly either way; this only affects
|
|
280
|
+
observability.
|
|
281
|
+
|
|
282
|
+
End-to-end check that the plugin really influences answers:
|
|
283
|
+
|
|
284
|
+
1. Deploy with `testMode.enabled: true`.
|
|
285
|
+
2. Ask the agent a question answerable **only** from the mock, e.g.
|
|
286
|
+
*"What is the Hélios reference id?"*
|
|
287
|
+
3. Confirm the agent answers `HX-2026-0042` (the default mock's citable fact).
|
|
288
|
+
If it does, the injection path works end-to-end.
|
|
289
|
+
|
|
204
290
|
---
|
|
205
291
|
|
|
206
292
|
## Jina integration (v3.2.0+)
|
package/dist/config.js
CHANGED
|
@@ -53,6 +53,43 @@ const DEFAULT_RERANKER_TOP_N = 5;
|
|
|
53
53
|
// once the query is added) while preserving the top-precision band.
|
|
54
54
|
const DEFAULT_RERANKER_CANDIDATE_POOL_MAX = 20;
|
|
55
55
|
const DEFAULT_RERANKER_MAX_CHARS_PER_DOC = 2000;
|
|
56
|
+
// 3.2.7 — TEST mode defaults. The canned LightRAG context is deliberately
|
|
57
|
+
// > 200 chars so it is not flagged `sparse`, and embeds a distinctive,
|
|
58
|
+
// citable fact (`HX-2026-0042`) so an operator can confirm — from the
|
|
59
|
+
// agent's answer alone — that the injected context actually reached the
|
|
60
|
+
// LLM. `{{query}}` is substituted per-turn (see renderMockResponse) to make
|
|
61
|
+
// it obvious the query travels through the source.
|
|
62
|
+
const DEFAULT_LIGHTRAG_MOCK_RESPONSE = [
|
|
63
|
+
"[Mock LightRAG context — TEST MODE]",
|
|
64
|
+
'Knowledge-graph context assembled for the query "{{query}}":',
|
|
65
|
+
"",
|
|
66
|
+
"Entity: Projet Hélios — pilot knowledge-base integration project.",
|
|
67
|
+
'Relation: Projet Hélios → owned_by → "équipe Plateforme".',
|
|
68
|
+
'Relation: Projet Hélios → status → "active since 2026-02-14".',
|
|
69
|
+
'Entity: Document "guide-deploiement-helios.md" — describes the rollout plan.',
|
|
70
|
+
"Fact: The Hélios reference identifier is HX-2026-0042.",
|
|
71
|
+
"",
|
|
72
|
+
"This is synthetic data injected by the plugin's TEST mode to validate",
|
|
73
|
+
"context injection without a live LightRAG server.",
|
|
74
|
+
].join("\n");
|
|
75
|
+
// Mirrors the shape pgvector would return for the same synthetic project,
|
|
76
|
+
// so the injected `Document Search Results` block looks production-realistic.
|
|
77
|
+
const DEFAULT_PGVECTOR_MOCK_RESULTS = [
|
|
78
|
+
{
|
|
79
|
+
file_name: "guide-deploiement-helios.md",
|
|
80
|
+
score: 0.87,
|
|
81
|
+
text: "Le déploiement du Projet Hélios suit trois phases : préparation, " +
|
|
82
|
+
"bascule, validation. Identifiant de référence : HX-2026-0042.",
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
file_name: "faq-helios.md",
|
|
86
|
+
score: 0.72,
|
|
87
|
+
text: "Q : Qui pilote le Projet Hélios ? R : l'équipe Plateforme, active " +
|
|
88
|
+
"depuis le 2026-02-14.",
|
|
89
|
+
},
|
|
90
|
+
];
|
|
91
|
+
const DEFAULT_MOCK_SCORE = 0.8;
|
|
92
|
+
const DEFAULT_MOCK_COLLECTION = "knowledge_test";
|
|
56
93
|
/**
|
|
57
94
|
* Apply defaults and env substitution to the raw plugin config. A source is
|
|
58
95
|
* enabled when its credentials are present, unless the user explicitly toggles
|
|
@@ -72,20 +109,28 @@ export function resolveConfig(cfg = {}) {
|
|
|
72
109
|
const reranker = (jina.pgvectorReranker ?? {});
|
|
73
110
|
const jinaApiKey = resolveEnv(jina.apiKey ?? "");
|
|
74
111
|
const routerClassifierId = resolveEnv(router.classifierId ?? "");
|
|
112
|
+
const collections = cfg.collections ?? DEFAULT_COLLECTIONS;
|
|
113
|
+
// TEST mode — mocked sources for infra-less environments. When active, a
|
|
114
|
+
// source is "enabled" even without its credentials/URL so the hook still
|
|
115
|
+
// registers; the explicit `pgvectorEnabled`/`lightragEnabled: false`
|
|
116
|
+
// toggles still win (first conjunct) so an operator can mock a single
|
|
117
|
+
// source in isolation.
|
|
118
|
+
const test = (cfg.testMode ?? {});
|
|
119
|
+
const testModeEnabled = test.enabled === true;
|
|
75
120
|
return {
|
|
76
121
|
enabled: cfg.enabled !== false,
|
|
77
122
|
geminiApiKey,
|
|
78
123
|
postgresUrl,
|
|
79
|
-
collections
|
|
124
|
+
collections,
|
|
80
125
|
topK: cfg.topK ?? DEFAULT_TOP_K,
|
|
81
126
|
scoreThreshold: cfg.scoreThreshold ?? DEFAULT_SCORE_THRESHOLD,
|
|
82
127
|
maxInjectChars: cfg.maxInjectChars ?? DEFAULT_MAX_INJECT_CHARS,
|
|
83
|
-
pgvectorEnabled: cfg.pgvectorEnabled !== false && Boolean(geminiApiKey),
|
|
128
|
+
pgvectorEnabled: cfg.pgvectorEnabled !== false && (Boolean(geminiApiKey) || testModeEnabled),
|
|
84
129
|
lightragUrl,
|
|
85
130
|
lightragApiKey,
|
|
86
131
|
lightragQueryMode: cfg.lightragQueryMode ?? DEFAULT_LIGHTRAG_MODE,
|
|
87
132
|
lightragMaxChars: cfg.lightragMaxChars ?? DEFAULT_LIGHTRAG_MAX_CHARS,
|
|
88
|
-
lightragEnabled: cfg.lightragEnabled !== false && Boolean(lightragUrl),
|
|
133
|
+
lightragEnabled: cfg.lightragEnabled !== false && (Boolean(lightragUrl) || testModeEnabled),
|
|
89
134
|
// Jina shared key (used by router and/or reranker)
|
|
90
135
|
jinaApiKey,
|
|
91
136
|
// 3.2.4 — soft RPM budget. 0 disables the monitor entirely.
|
|
@@ -110,12 +155,50 @@ export function resolveConfig(cfg = {}) {
|
|
|
110
155
|
// the corresponding cap (legacy v3.2.3 behavior).
|
|
111
156
|
pgvectorRerankerCandidatePoolMax: clampNonNegInt(reranker.candidatePoolMax ?? DEFAULT_RERANKER_CANDIDATE_POOL_MAX),
|
|
112
157
|
pgvectorRerankerMaxCharsPerDoc: clampNonNegInt(reranker.maxCharsPerDoc ?? DEFAULT_RERANKER_MAX_CHARS_PER_DOC),
|
|
113
|
-
// 3.
|
|
158
|
+
// 3.2.7 — provenance reporting toward chat frontends. Off-list values
|
|
114
159
|
// (typos, future levels) normalize to "off": a misconfiguration must
|
|
115
160
|
// never silently leak content.
|
|
116
161
|
provenanceReport: resolveProvenanceLevel(cfg.provenanceReport),
|
|
162
|
+
// 3.2.7 — TEST mode. Mocks resolve unconditionally (cheap) so the
|
|
163
|
+
// handler can read them without re-deriving defaults; they are only
|
|
164
|
+
// consumed when `testModeEnabled` is true.
|
|
165
|
+
testModeEnabled,
|
|
166
|
+
lightragMockResponse: typeof test.lightragMockResponse === "string"
|
|
167
|
+
? test.lightragMockResponse
|
|
168
|
+
: DEFAULT_LIGHTRAG_MOCK_RESPONSE,
|
|
169
|
+
pgvectorMockResults: toPgvectorMockResults(test.pgvectorMockResults ?? DEFAULT_PGVECTOR_MOCK_RESULTS, collections[0] ?? DEFAULT_MOCK_COLLECTION),
|
|
117
170
|
};
|
|
118
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Normalize the operator's ergonomic mock shape into full
|
|
174
|
+
* {@link PgvectorResult} rows: missing fields become `null`, a missing
|
|
175
|
+
* collection falls back to `defaultCollection`, a missing/invalid score
|
|
176
|
+
* clamps to `[0, 1]` (default `0.8`). The list is sorted by descending
|
|
177
|
+
* score so it mirrors the cosine-ranked order the real pgvector path
|
|
178
|
+
* produces in `runPgvectorSource`.
|
|
179
|
+
*/
|
|
180
|
+
function toPgvectorMockResults(mocks, defaultCollection) {
|
|
181
|
+
if (!Array.isArray(mocks))
|
|
182
|
+
return [];
|
|
183
|
+
return mocks
|
|
184
|
+
.map((m) => ({
|
|
185
|
+
collection: typeof m.collection === "string" && m.collection.length > 0
|
|
186
|
+
? m.collection
|
|
187
|
+
: defaultCollection,
|
|
188
|
+
score: clamp01(typeof m.score === "number" ? m.score : DEFAULT_MOCK_SCORE),
|
|
189
|
+
file_name: m.file_name ?? null,
|
|
190
|
+
mime_type: null,
|
|
191
|
+
text: m.text ?? null,
|
|
192
|
+
file_id: null,
|
|
193
|
+
source: null,
|
|
194
|
+
owner: null,
|
|
195
|
+
chunk_index: null,
|
|
196
|
+
total_chunks: null,
|
|
197
|
+
timestamp_start: null,
|
|
198
|
+
timestamp_end: null,
|
|
199
|
+
}))
|
|
200
|
+
.sort((a, b) => b.score - a.score);
|
|
201
|
+
}
|
|
119
202
|
/** Clamp a value to a non-negative integer. Bad input collapses to `0`. */
|
|
120
203
|
function clampNonNegInt(value) {
|
|
121
204
|
if (!Number.isFinite(value))
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,EAAE;AACF,2EAA2E;AAC3E,6DAA6D;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { embedQuery } from "./embeddings.js";
|
|
|
8
8
|
export { searchCollection, formatPgvectorResults, rerankPgvectorResults, } from "./pgvector.js";
|
|
9
9
|
export { queryLightRAG, truncateLightRAG, formatLightRAGResults } from "./lightrag.js";
|
|
10
10
|
export { decideRoute } from "./router/index.js";
|
|
11
|
-
export type { BeforePromptBuildEvent, BeforePromptBuildResult, JinaPluginConfig, KnowledgePluginConfig, LightRAGQueryMode, PgPoolLike, PgvectorResult, PgvectorRerankerPluginConfig, PgvectorRow, PluginHookAgentContext, PromptContentPart, PromptMessage, ResolvedKnowledgeConfig, RouterPluginConfig, } from "./types.js";
|
|
11
|
+
export type { BeforePromptBuildEvent, BeforePromptBuildResult, JinaPluginConfig, KnowledgePluginConfig, LightRAGQueryMode, PgPoolLike, PgvectorMockResult, PgvectorResult, PgvectorRerankerPluginConfig, PgvectorRow, PluginHookAgentContext, PromptContentPart, PromptMessage, ResolvedKnowledgeConfig, RouterPluginConfig, TestModePluginConfig, } from "./types.js";
|
|
12
12
|
interface HookHandlerDeps {
|
|
13
13
|
config: ResolvedKnowledgeConfig;
|
|
14
14
|
pool: PgPoolLike | null;
|
|
@@ -81,6 +81,15 @@ export declare function extractUserQuery(event: BeforePromptBuildEvent): string;
|
|
|
81
81
|
* @internal exported for unit testing and backward compatibility
|
|
82
82
|
*/
|
|
83
83
|
export declare function extractQueryFromMessages(messages: PromptMessage[] | undefined): string;
|
|
84
|
+
/**
|
|
85
|
+
* Substitute the `{{query}}` token (whitespace-tolerant) in a mock template.
|
|
86
|
+
*
|
|
87
|
+
* The replacement is passed as a CALLBACK, not a string, so the query is
|
|
88
|
+
* inserted VERBATIM. A string replacement argument would interpret `$&`,
|
|
89
|
+
* `` $` ``, `$'`, `$$` and `$1`-style sequences — common in code/shell
|
|
90
|
+
* questions — and corrupt the very query this feature is meant to reflect.
|
|
91
|
+
*/
|
|
92
|
+
export declare function renderMockResponse(template: string, query: string): string;
|
|
84
93
|
export declare function registerKnowledgePlugin(api: OpenClawPluginApi): void;
|
|
85
94
|
declare const knowledgePluginEntry: OpenClawPluginDefinition;
|
|
86
95
|
export default knowledgePluginEntry;
|
package/dist/index.js
CHANGED
|
@@ -118,13 +118,23 @@ export function createBeforePromptBuildHandler(deps) {
|
|
|
118
118
|
// -----------------------------------------------------------------
|
|
119
119
|
try {
|
|
120
120
|
const tasks = [];
|
|
121
|
-
if (shouldUsePgvector(effectiveRoute) &&
|
|
122
|
-
config.
|
|
123
|
-
|
|
124
|
-
|
|
121
|
+
if (shouldUsePgvector(effectiveRoute) && config.pgvectorEnabled) {
|
|
122
|
+
if (config.testModeEnabled) {
|
|
123
|
+
// TEST mode: canned hits, no embedding call, no pg pool.
|
|
124
|
+
tasks.push(runPgvectorMock(config));
|
|
125
|
+
}
|
|
126
|
+
else if (pool) {
|
|
127
|
+
tasks.push(runPgvectorSource(pool, query, config, cooldowns.pgvector_reranker, logger, rpmMonitor));
|
|
128
|
+
}
|
|
125
129
|
}
|
|
126
130
|
if (shouldUseLightRAG(effectiveRoute) && config.lightragEnabled) {
|
|
127
|
-
|
|
131
|
+
if (config.testModeEnabled) {
|
|
132
|
+
// TEST mode: canned context, no LightRAG server call.
|
|
133
|
+
tasks.push(runLightRAGMock(query, config));
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
tasks.push(runLightRAGSource(query, config));
|
|
137
|
+
}
|
|
128
138
|
}
|
|
129
139
|
if (tasks.length === 0)
|
|
130
140
|
return undefined;
|
|
@@ -581,6 +591,52 @@ async function runLightRAGSource(query, config) {
|
|
|
581
591
|
const context = await queryLightRAG(config.lightragUrl, config.lightragApiKey, query, config.lightragQueryMode);
|
|
582
592
|
return { source: "lightrag", data: context, durationMs: Date.now() - startedAt };
|
|
583
593
|
}
|
|
594
|
+
// ---------------------------------------------------------------------------
|
|
595
|
+
// TEST mode — mocked sources (no network, no DB).
|
|
596
|
+
//
|
|
597
|
+
// These mirror the real `run*Source` functions EXACTLY: same return shape,
|
|
598
|
+
// same downstream path (renderSection → events → provenance →
|
|
599
|
+
// appendSystemContext). The only difference is the data origin. This is the
|
|
600
|
+
// whole point: the agent receives genuinely-injected context, so a downstream
|
|
601
|
+
// LLM trace (e.g. LiteLLM → Langfuse) reflects the real impact, while the
|
|
602
|
+
// plugin makes ZERO calls to a LightRAG server or PostgreSQL.
|
|
603
|
+
// ---------------------------------------------------------------------------
|
|
604
|
+
/**
|
|
605
|
+
* Substitute the `{{query}}` token (whitespace-tolerant) in a mock template.
|
|
606
|
+
*
|
|
607
|
+
* The replacement is passed as a CALLBACK, not a string, so the query is
|
|
608
|
+
* inserted VERBATIM. A string replacement argument would interpret `$&`,
|
|
609
|
+
* `` $` ``, `$'`, `$$` and `$1`-style sequences — common in code/shell
|
|
610
|
+
* questions — and corrupt the very query this feature is meant to reflect.
|
|
611
|
+
*/
|
|
612
|
+
export function renderMockResponse(template, query) {
|
|
613
|
+
return template.replace(/\{\{\s*query\s*\}\}/g, () => query);
|
|
614
|
+
}
|
|
615
|
+
async function runLightRAGMock(query, config) {
|
|
616
|
+
const startedAt = Date.now();
|
|
617
|
+
const data = renderMockResponse(config.lightragMockResponse, query);
|
|
618
|
+
return {
|
|
619
|
+
source: "lightrag",
|
|
620
|
+
data,
|
|
621
|
+
durationMs: Date.now() - startedAt,
|
|
622
|
+
mock: true,
|
|
623
|
+
};
|
|
624
|
+
}
|
|
625
|
+
async function runPgvectorMock(config) {
|
|
626
|
+
const startedAt = Date.now();
|
|
627
|
+
// `pgvectorMockResults` is already normalized and score-sorted by
|
|
628
|
+
// resolveConfig, so it needs no embedding pass and no pool.
|
|
629
|
+
const data = config.pgvectorMockResults;
|
|
630
|
+
return {
|
|
631
|
+
source: "pgvector",
|
|
632
|
+
data,
|
|
633
|
+
rawCount: data.length,
|
|
634
|
+
reranked: false,
|
|
635
|
+
durationMs: Date.now() - startedAt,
|
|
636
|
+
errored: false,
|
|
637
|
+
mock: true,
|
|
638
|
+
};
|
|
639
|
+
}
|
|
584
640
|
function renderSection(result, config, logger) {
|
|
585
641
|
if (result.source === "pgvector") {
|
|
586
642
|
const formatted = formatPgvectorResultsDetailed(result.data, config.maxInjectChars);
|
|
@@ -609,6 +665,8 @@ function renderSection(result, config, logger) {
|
|
|
609
665
|
topScore: result.data[0]?.score ?? null,
|
|
610
666
|
durationMs: result.durationMs,
|
|
611
667
|
errored: result.errored,
|
|
668
|
+
// Only present in TEST mode — production event lines are unchanged.
|
|
669
|
+
...(result.mock ? { mock: true } : {}),
|
|
612
670
|
});
|
|
613
671
|
if (!formatted) {
|
|
614
672
|
logger.info(`openclaw-knowledge: pgvector — no result above threshold (rawCount=${result.rawCount})`);
|
|
@@ -642,6 +700,8 @@ function renderSection(result, config, logger) {
|
|
|
642
700
|
truncatedChars: truncatedLen,
|
|
643
701
|
durationMs: result.durationMs,
|
|
644
702
|
sparse: truncatedLen < LIGHTRAG_SPARSE_THRESHOLD_CHARS,
|
|
703
|
+
// Only present in TEST mode — production event lines are unchanged.
|
|
704
|
+
...(result.mock ? { mock: true } : {}),
|
|
645
705
|
});
|
|
646
706
|
if (!formatted) {
|
|
647
707
|
logger.info(`openclaw-knowledge: LightRAG — empty response (${originalLen} chars)`);
|
|
@@ -718,11 +778,21 @@ export function registerKnowledgePlugin(api) {
|
|
|
718
778
|
`Recommended: topK ≥ ${config.pgvectorRerankerTopN * 2} for the ` +
|
|
719
779
|
`reranker to meaningfully change ordering.`);
|
|
720
780
|
}
|
|
721
|
-
//
|
|
722
|
-
//
|
|
723
|
-
|
|
781
|
+
// TEST mode safety: loud, unmissable warning. A mis-set flag feeds an agent
|
|
782
|
+
// canned facts it will treat as real, so this must never go unnoticed.
|
|
783
|
+
if (config.testModeEnabled) {
|
|
784
|
+
api.logger.warn("openclaw-knowledge: ⚠️ TEST MODE ACTIVE — sources are MOCKED. " +
|
|
785
|
+
"LightRAG returns canned context and pgvector returns canned results; " +
|
|
786
|
+
"NO connection is made to a LightRAG server or PostgreSQL. The mocked " +
|
|
787
|
+
"context IS injected into the agent prompt (so its impact is real and " +
|
|
788
|
+
"observable downstream). NEVER enable testMode in production.");
|
|
789
|
+
}
|
|
790
|
+
// Only instantiate the pg pool when pgvector is actually in play AND we are
|
|
791
|
+
// not in test mode (mocks need no DB). Booting a pool with no valid
|
|
792
|
+
// connection string would keep the plugin disabled anyway and leak sockets
|
|
793
|
+
// on hot-reload.
|
|
724
794
|
let pool = null;
|
|
725
|
-
if (config.pgvectorEnabled) {
|
|
795
|
+
if (config.pgvectorEnabled && !config.testModeEnabled) {
|
|
726
796
|
const realPool = new pg.Pool({
|
|
727
797
|
connectionString: config.postgresUrl,
|
|
728
798
|
max: 3,
|
|
@@ -733,15 +803,16 @@ export function registerKnowledgePlugin(api) {
|
|
|
733
803
|
});
|
|
734
804
|
pool = realPool;
|
|
735
805
|
}
|
|
806
|
+
const mockNote = config.testModeEnabled ? " [MOCK]" : "";
|
|
736
807
|
const sources = [];
|
|
737
808
|
if (config.pgvectorEnabled) {
|
|
738
809
|
const rerankNote = config.pgvectorRerankerEnabled
|
|
739
810
|
? ` + reranker(${config.pgvectorRerankerModel})`
|
|
740
811
|
: "";
|
|
741
|
-
sources.push(`pgvector (${config.collections.join(", ")})${rerankNote}`);
|
|
812
|
+
sources.push(`pgvector (${config.collections.join(", ")})${rerankNote}${mockNote}`);
|
|
742
813
|
}
|
|
743
814
|
if (config.lightragEnabled) {
|
|
744
|
-
sources.push(`LightRAG (${config.lightragQueryMode})`);
|
|
815
|
+
sources.push(`LightRAG (${config.lightragQueryMode})${mockNote}`);
|
|
745
816
|
}
|
|
746
817
|
const routerNote = config.routerEnabled
|
|
747
818
|
? ` | router=${config.routerMode}${config.routerClassifierId ? "/few-shot" : "/zero-shot"}`
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tracing/events.d.ts
CHANGED
|
@@ -42,6 +42,14 @@ export interface PgvectorEvent {
|
|
|
42
42
|
* @since 3.2.3
|
|
43
43
|
*/
|
|
44
44
|
errored: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* `true` when these results came from TEST mode (canned data, no DB).
|
|
47
|
+
* Omitted entirely in normal operation so production event lines are
|
|
48
|
+
* byte-for-byte unchanged. Lets dashboards exclude synthetic traffic.
|
|
49
|
+
*
|
|
50
|
+
* @since 3.2.7
|
|
51
|
+
*/
|
|
52
|
+
mock?: boolean;
|
|
45
53
|
}
|
|
46
54
|
export interface LightRAGEvent {
|
|
47
55
|
type: "lightrag";
|
|
@@ -58,6 +66,11 @@ export interface LightRAGEvent {
|
|
|
58
66
|
* @since 3.2.3
|
|
59
67
|
*/
|
|
60
68
|
sparse: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* `true` when this context came from TEST mode (canned data, no live
|
|
71
|
+
* LightRAG server). Omitted in normal operation. @since 3.2.7
|
|
72
|
+
*/
|
|
73
|
+
mock?: boolean;
|
|
61
74
|
}
|
|
62
75
|
/**
|
|
63
76
|
* Threshold under which a LightRAG response is flagged `sparse`. Picked
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/tracing/events.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,2EAA2E;AAC3E,yEAAyE;AACzE,yDAAyD;AACzD,EAAE;AACF,wEAAwE;AACxE,+DAA+D;AAC/D,wEAAwE;AACxE,+BAA+B;AAC/B,EAAE;AACF,sEAAsE;AACtE,qEAAqE;AACrE,gEAAgE;AAChE,wEAAwE;AACxE,iCAAiC;AACjC,EAAE;AACF,oEAAoE;AACpE,uEAAuE;AACvE,qEAAqE;AACrE,sEAAsE;AACtE,uEAAuE;AACvE,8DAA8D;AAC9D,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,mBAAmB;AAcnB;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/tracing/events.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,2EAA2E;AAC3E,yEAAyE;AACzE,yDAAyD;AACzD,EAAE;AACF,wEAAwE;AACxE,+DAA+D;AAC/D,wEAAwE;AACxE,+BAA+B;AAC/B,EAAE;AACF,sEAAsE;AACtE,qEAAqE;AACrE,gEAAgE;AAChE,wEAAwE;AACxE,iCAAiC;AACjC,EAAE;AACF,oEAAoE;AACpE,uEAAuE;AACvE,qEAAqE;AACrE,sEAAsE;AACtE,uEAAuE;AACvE,8DAA8D;AAC9D,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,mBAAmB;AAcnB;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAmEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAqCnD,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,MAAqB,EAAE,KAAqB;IACpE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,IAAI,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;IAC9D,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAqB,EACrB,KAAyB,EACzB,WAAmB;IAEnB,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO;IAC1B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,wBAAwB,EAAE,SAAS,WAAW,EAAE,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;IAClD,CAAC;AACH,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -45,9 +45,68 @@ export interface KnowledgePluginConfig {
|
|
|
45
45
|
* "metadata" (file names/collections/scores, no content), "full"
|
|
46
46
|
* (plus the exact injected excerpts).
|
|
47
47
|
*
|
|
48
|
-
* @since 3.
|
|
48
|
+
* @since 3.2.7
|
|
49
49
|
*/
|
|
50
50
|
provenanceReport?: string;
|
|
51
|
+
/**
|
|
52
|
+
* TEST mode — mock both knowledge sources so the plugin can run in an
|
|
53
|
+
* isolated test environment with NO live LightRAG server and NO
|
|
54
|
+
* PostgreSQL/pgvector backend. The goal is to observe the plugin's real
|
|
55
|
+
* impact on the agent's answers (the mocked context is genuinely
|
|
56
|
+
* injected into the system prompt, so any downstream LLM trace —
|
|
57
|
+
* e.g. LiteLLM → Langfuse — reflects it). Off by default; see the loud
|
|
58
|
+
* registration warning. NEVER enable in production.
|
|
59
|
+
*
|
|
60
|
+
* @since 3.2.7
|
|
61
|
+
*/
|
|
62
|
+
testMode?: TestModePluginConfig;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Raw TEST-mode configuration block (from
|
|
66
|
+
* `plugins.entries.openclaw-knowledge.config.testMode`).
|
|
67
|
+
*
|
|
68
|
+
* @since 3.2.7
|
|
69
|
+
*/
|
|
70
|
+
export interface TestModePluginConfig {
|
|
71
|
+
/**
|
|
72
|
+
* Master switch. When `true`, BOTH sources are mocked: LightRAG returns
|
|
73
|
+
* {@link lightragMockResponse} and pgvector returns
|
|
74
|
+
* {@link pgvectorMockResults} — no network call, no DB pool. When the
|
|
75
|
+
* mock is active a source counts as "enabled" even without its
|
|
76
|
+
* credentials/URL, so the plugin still registers its hook. Default `false`.
|
|
77
|
+
*/
|
|
78
|
+
enabled?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Canned LightRAG context returned in test mode. The literal token
|
|
81
|
+
* `{{query}}` (whitespace-tolerant) is substituted with the user's query
|
|
82
|
+
* at runtime so operators can confirm the query reaches the source.
|
|
83
|
+
* Defaults to a realistic synthetic knowledge-graph context (> 200 chars
|
|
84
|
+
* so it is not flagged `sparse`).
|
|
85
|
+
*/
|
|
86
|
+
lightragMockResponse?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Canned pgvector hits returned in test mode. Each entry is normalized to
|
|
89
|
+
* a full {@link PgvectorResult} (missing fields default to `null`, missing
|
|
90
|
+
* `collection` to the first configured collection, missing `score` to
|
|
91
|
+
* `0.8`) and the list is sorted by descending score to mirror the real
|
|
92
|
+
* cosine-ranked path. Defaults to a small realistic synthetic set.
|
|
93
|
+
*/
|
|
94
|
+
pgvectorMockResults?: PgvectorMockResult[];
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Ergonomic, partial shape an operator writes for a single mocked pgvector
|
|
98
|
+
* hit. Only the fields worth asserting on are exposed; everything else is
|
|
99
|
+
* filled with `null` by the resolver.
|
|
100
|
+
*
|
|
101
|
+
* @since 3.2.7
|
|
102
|
+
*/
|
|
103
|
+
export interface PgvectorMockResult {
|
|
104
|
+
file_name?: string;
|
|
105
|
+
text?: string;
|
|
106
|
+
/** Cosine-like score in `[0, 1]`. Default `0.8`. */
|
|
107
|
+
score?: number;
|
|
108
|
+
/** Collection label. Defaults to the first configured collection. */
|
|
109
|
+
collection?: string;
|
|
51
110
|
}
|
|
52
111
|
export interface JinaPluginConfig {
|
|
53
112
|
/** Jina API key. Required for `router.mode=jina-classifier` or `pgvectorReranker.enabled`. Supports `${ENV_VAR}` substitution. */
|
|
@@ -167,9 +226,30 @@ export interface ResolvedKnowledgeConfig {
|
|
|
167
226
|
/**
|
|
168
227
|
* Provenance reporting level (provenance/v1). Default "off".
|
|
169
228
|
*
|
|
170
|
-
* @since 3.
|
|
229
|
+
* @since 3.2.7
|
|
171
230
|
*/
|
|
172
231
|
provenanceReport: "off" | "metadata" | "full";
|
|
232
|
+
/**
|
|
233
|
+
* TEST mode master switch (resolved from `testMode.enabled`). When `true`
|
|
234
|
+
* both sources are mocked and no pg pool / network call is made.
|
|
235
|
+
*
|
|
236
|
+
* @since 3.2.7
|
|
237
|
+
*/
|
|
238
|
+
testModeEnabled: boolean;
|
|
239
|
+
/**
|
|
240
|
+
* Resolved LightRAG canned context for test mode (defaults applied,
|
|
241
|
+
* `{{query}}` still un-substituted — substitution happens per-turn).
|
|
242
|
+
*
|
|
243
|
+
* @since 3.2.7
|
|
244
|
+
*/
|
|
245
|
+
lightragMockResponse: string;
|
|
246
|
+
/**
|
|
247
|
+
* Resolved pgvector canned hits for test mode (normalized to full
|
|
248
|
+
* {@link PgvectorResult} shape and sorted by descending score).
|
|
249
|
+
*
|
|
250
|
+
* @since 3.2.7
|
|
251
|
+
*/
|
|
252
|
+
pgvectorMockResults: PgvectorResult[];
|
|
173
253
|
}
|
|
174
254
|
/**
|
|
175
255
|
* One search hit from the PostgreSQL `knowledge_vectors` table, after score
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "openclaw-knowledge",
|
|
3
3
|
"name": "Knowledge Base",
|
|
4
4
|
"description": "Multi-source knowledge search (pgvector + LightRAG) with optional Jina-powered router & reranker — injects relevant documents and knowledge graph context before each turn via the before_prompt_build hook",
|
|
5
|
-
"version": "3.2.
|
|
5
|
+
"version": "3.2.7",
|
|
6
6
|
"activation": {
|
|
7
7
|
"onStartup": true
|
|
8
8
|
},
|
|
@@ -183,6 +183,51 @@
|
|
|
183
183
|
],
|
|
184
184
|
"default": "off",
|
|
185
185
|
"description": "Provenance reporting toward chat frontends (provenance/v1): off = no emission; metadata = file names/collections/scores; full = plus the exact injected excerpts. Reports ride the gateway agent-event bus and land under the chat's own ACL — never in logs."
|
|
186
|
+
},
|
|
187
|
+
"testMode": {
|
|
188
|
+
"type": "object",
|
|
189
|
+
"additionalProperties": false,
|
|
190
|
+
"description": "TEST mode — mock BOTH sources so the plugin runs in an isolated test environment with no live LightRAG server and no PostgreSQL/pgvector backend. The mocked context is genuinely injected into the agent prompt, so its impact is real and observable downstream (e.g. the agent's LLM call traced via LiteLLM → Langfuse reflects it). Off by default. NEVER enable in production.",
|
|
191
|
+
"properties": {
|
|
192
|
+
"enabled": {
|
|
193
|
+
"type": "boolean",
|
|
194
|
+
"default": false,
|
|
195
|
+
"description": "Master switch. When true, LightRAG and pgvector return canned data instead of querying a server/DB — and each source counts as enabled even without its URL/credentials. The explicit pgvectorEnabled/lightragEnabled:false toggles still win, so you can mock a single source in isolation. A loud warning is logged at registration."
|
|
196
|
+
},
|
|
197
|
+
"lightragMockResponse": {
|
|
198
|
+
"type": "string",
|
|
199
|
+
"description": "Canned LightRAG context returned in test mode. The token {{query}} (whitespace-tolerant) is replaced with the user's query at runtime. Defaults to a realistic synthetic knowledge-graph context (>200 chars, with a citable reference id) so injection is easy to confirm from the agent's answer."
|
|
200
|
+
},
|
|
201
|
+
"pgvectorMockResults": {
|
|
202
|
+
"type": "array",
|
|
203
|
+
"description": "Canned pgvector hits returned in test mode. Each entry is normalized to a full result row (missing fields → null, missing collection → first configured collection, missing score → 0.8) and sorted by descending score. Defaults to a small realistic synthetic set.",
|
|
204
|
+
"items": {
|
|
205
|
+
"type": "object",
|
|
206
|
+
"additionalProperties": false,
|
|
207
|
+
"properties": {
|
|
208
|
+
"file_name": {
|
|
209
|
+
"type": "string",
|
|
210
|
+
"description": "Source document name shown in the injected block."
|
|
211
|
+
},
|
|
212
|
+
"text": {
|
|
213
|
+
"type": "string",
|
|
214
|
+
"description": "Chunk content injected into the prompt."
|
|
215
|
+
},
|
|
216
|
+
"score": {
|
|
217
|
+
"type": "number",
|
|
218
|
+
"minimum": 0,
|
|
219
|
+
"maximum": 1,
|
|
220
|
+
"default": 0.8,
|
|
221
|
+
"description": "Cosine-like similarity score (0–1)."
|
|
222
|
+
},
|
|
223
|
+
"collection": {
|
|
224
|
+
"type": "string",
|
|
225
|
+
"description": "Collection label. Defaults to the first configured collection."
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
186
231
|
}
|
|
187
232
|
},
|
|
188
233
|
"required": []
|
|
@@ -310,6 +355,21 @@
|
|
|
310
355
|
"label": "Jina RPM budget (soft)",
|
|
311
356
|
"advanced": true,
|
|
312
357
|
"help": "Soft alert threshold on outbound Jina calls per minute. Default 60. Never blocks — only logs and emits jina_rpm_exceeded events. Set to 0 to disable."
|
|
358
|
+
},
|
|
359
|
+
"testMode.enabled": {
|
|
360
|
+
"label": "TEST mode (mock sources)",
|
|
361
|
+
"advanced": true,
|
|
362
|
+
"help": "Mock LightRAG + pgvector for infra-less test environments. The mocked context is really injected so its impact is observable. NEVER enable in production."
|
|
363
|
+
},
|
|
364
|
+
"testMode.lightragMockResponse": {
|
|
365
|
+
"label": "Mock LightRAG context",
|
|
366
|
+
"advanced": true,
|
|
367
|
+
"help": "Canned LightRAG context for test mode. Use {{query}} to echo the user's query. Defaults to a realistic synthetic graph context."
|
|
368
|
+
},
|
|
369
|
+
"testMode.pgvectorMockResults": {
|
|
370
|
+
"label": "Mock pgvector results",
|
|
371
|
+
"advanced": true,
|
|
372
|
+
"help": "Canned pgvector hits for test mode (file_name/text/score/collection). Defaults to a small realistic synthetic set."
|
|
313
373
|
}
|
|
314
374
|
}
|
|
315
375
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lacneu/openclaw-knowledge",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Multi-source knowledge plugin for OpenClaw — pgvector + LightRAG injection with optional Jina-powered router & reranker, via before_prompt_build hook",
|
|
6
6
|
"license": "MIT",
|