@mcp-abap-adt/llm-agent 25.0.0 → 27.0.1
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/README.md +2 -0
- package/dist/credentials/static.d.ts +9 -0
- package/dist/credentials/static.d.ts.map +1 -0
- package/dist/credentials/static.js +12 -0
- package/dist/credentials/static.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/builder.d.ts +11 -1
- package/dist/interfaces/builder.d.ts.map +1 -1
- package/dist/interfaces/collect-server-descriptors.d.ts +12 -0
- package/dist/interfaces/collect-server-descriptors.d.ts.map +1 -0
- package/dist/interfaces/collect-server-descriptors.js +19 -0
- package/dist/interfaces/collect-server-descriptors.js.map +1 -0
- package/dist/interfaces/index.d.ts +3 -2
- package/dist/interfaces/index.d.ts.map +1 -1
- package/dist/interfaces/index.js.map +1 -1
- package/dist/interfaces/mcp-connection-strategy.d.ts +29 -2
- package/dist/interfaces/mcp-connection-strategy.d.ts.map +1 -1
- package/dist/interfaces/mcp-server-from-factory.d.ts +15 -0
- package/dist/interfaces/mcp-server-from-factory.d.ts.map +1 -0
- package/dist/interfaces/mcp-server-from-factory.js +37 -0
- package/dist/interfaces/mcp-server-from-factory.js.map +1 -0
- package/dist/interfaces/mcp-server.d.ts +24 -0
- package/dist/interfaces/mcp-server.d.ts.map +1 -0
- package/dist/interfaces/mcp-server.js +2 -0
- package/dist/interfaces/mcp-server.js.map +1 -0
- package/dist/interfaces/pipeline-plugin.d.ts +16 -6
- package/dist/interfaces/pipeline-plugin.d.ts.map +1 -1
- package/dist/interfaces/plugin.d.ts +11 -3
- package/dist/interfaces/plugin.d.ts.map +1 -1
- package/dist/interfaces/rag.d.ts +133 -23
- package/dist/interfaces/rag.d.ts.map +1 -1
- package/dist/interfaces/rag.js.map +1 -1
- package/dist/interfaces/tool-catalog.d.ts +4 -2
- package/dist/interfaces/tool-catalog.d.ts.map +1 -1
- package/dist/interfaces/tool-catalog.js.map +1 -1
- package/dist/interfaces/types.d.ts +2 -1
- package/dist/interfaces/types.d.ts.map +1 -1
- package/dist/interfaces/types.js.map +1 -1
- package/dist/llm/base-llm-provider.d.ts +29 -4
- package/dist/llm/base-llm-provider.d.ts.map +1 -1
- package/dist/llm/base-llm-provider.js +45 -9
- package/dist/llm/base-llm-provider.js.map +1 -1
- package/dist/logger/normalise-logger.d.ts +28 -0
- package/dist/logger/normalise-logger.d.ts.map +1 -0
- package/dist/logger/normalise-logger.js +50 -0
- package/dist/logger/normalise-logger.js.map +1 -0
- package/dist/logger/text-logger.d.ts +14 -0
- package/dist/logger/text-logger.d.ts.map +1 -0
- package/dist/logger/text-logger.js +2 -0
- package/dist/logger/text-logger.js.map +1 -0
- package/dist/policy/fallback-llm-call-strategy.d.ts +3 -3
- package/dist/policy/fallback-llm-call-strategy.d.ts.map +1 -1
- package/dist/policy/fallback-llm-call-strategy.js +3 -2
- package/dist/policy/fallback-llm-call-strategy.js.map +1 -1
- package/dist/rag/catalog/index.d.ts +2 -0
- package/dist/rag/catalog/index.d.ts.map +1 -0
- package/dist/rag/catalog/index.js +2 -0
- package/dist/rag/catalog/index.js.map +1 -0
- package/dist/rag/catalog/validation.d.ts +56 -0
- package/dist/rag/catalog/validation.d.ts.map +1 -0
- package/dist/rag/catalog/validation.js +168 -0
- package/dist/rag/catalog/validation.js.map +1 -0
- package/dist/rag/corrections/errors.d.ts +69 -0
- package/dist/rag/corrections/errors.d.ts.map +1 -1
- package/dist/rag/corrections/errors.js +98 -0
- package/dist/rag/corrections/errors.js.map +1 -1
- package/dist/rag/identity-filter.d.ts +19 -0
- package/dist/rag/identity-filter.d.ts.map +1 -0
- package/dist/rag/identity-filter.js +31 -0
- package/dist/rag/identity-filter.js.map +1 -0
- package/dist/rag/in-memory-rag.d.ts +3 -1
- package/dist/rag/in-memory-rag.d.ts.map +1 -1
- package/dist/rag/in-memory-rag.js +20 -15
- package/dist/rag/in-memory-rag.js.map +1 -1
- package/dist/rag/index.d.ts +3 -0
- package/dist/rag/index.d.ts.map +1 -1
- package/dist/rag/index.js +2 -0
- package/dist/rag/index.js.map +1 -1
- package/dist/rag/mcp-tools/index.d.ts +1 -1
- package/dist/rag/mcp-tools/index.d.ts.map +1 -1
- package/dist/rag/mcp-tools/index.js.map +1 -1
- package/dist/rag/mcp-tools/rag-collection-tools.d.ts +36 -5
- package/dist/rag/mcp-tools/rag-collection-tools.d.ts.map +1 -1
- package/dist/rag/mcp-tools/rag-collection-tools.js +128 -54
- package/dist/rag/mcp-tools/rag-collection-tools.js.map +1 -1
- package/dist/rag/providers/base-provider.d.ts +8 -6
- package/dist/rag/providers/base-provider.d.ts.map +1 -1
- package/dist/rag/providers/base-provider.js +18 -0
- package/dist/rag/providers/base-provider.js.map +1 -1
- package/dist/rag/providers/in-memory-rag-provider.d.ts +11 -8
- package/dist/rag/providers/in-memory-rag-provider.d.ts.map +1 -1
- package/dist/rag/providers/in-memory-rag-provider.js +13 -5
- package/dist/rag/providers/in-memory-rag-provider.js.map +1 -1
- package/dist/rag/providers/vector-rag-provider.d.ts +11 -8
- package/dist/rag/providers/vector-rag-provider.d.ts.map +1 -1
- package/dist/rag/providers/vector-rag-provider.js +13 -5
- package/dist/rag/providers/vector-rag-provider.js.map +1 -1
- package/dist/rag/registry/index.d.ts +1 -0
- package/dist/rag/registry/index.d.ts.map +1 -1
- package/dist/rag/registry/index.js +1 -0
- package/dist/rag/registry/index.js.map +1 -1
- package/dist/rag/registry/simple-rag-registry.d.ts +90 -15
- package/dist/rag/registry/simple-rag-registry.d.ts.map +1 -1
- package/dist/rag/registry/simple-rag-registry.js +331 -57
- package/dist/rag/registry/simple-rag-registry.js.map +1 -1
- package/dist/rag/registry/store-key.d.ts +15 -0
- package/dist/rag/registry/store-key.d.ts.map +1 -0
- package/dist/rag/registry/store-key.js +25 -0
- package/dist/rag/registry/store-key.js.map +1 -0
- package/dist/rag/search-strategy.d.ts +9 -0
- package/dist/rag/search-strategy.d.ts.map +1 -1
- package/dist/rag/search-strategy.js +49 -22
- package/dist/rag/search-strategy.js.map +1 -1
- package/dist/rag/tokenizer.d.ts +17 -0
- package/dist/rag/tokenizer.d.ts.map +1 -0
- package/dist/rag/tokenizer.js +38 -0
- package/dist/rag/tokenizer.js.map +1 -0
- package/dist/rag/vector-rag.d.ts +2 -2
- package/dist/rag/vector-rag.d.ts.map +1 -1
- package/dist/rag/vector-rag.js +29 -21
- package/dist/rag/vector-rag.js.map +1 -1
- package/dist/resilience/embedder-resilience.d.ts +2 -2
- package/dist/resilience/embedder-resilience.d.ts.map +1 -1
- package/dist/resilience/embedder-resilience.js +3 -1
- package/dist/resilience/embedder-resilience.js.map +1 -1
- package/dist/testing/rag-filter-conformance.d.ts +60 -0
- package/dist/testing/rag-filter-conformance.d.ts.map +1 -0
- package/dist/testing/rag-filter-conformance.js +379 -0
- package/dist/testing/rag-filter-conformance.js.map +1 -0
- package/dist/types.d.ts +11 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -1
- package/dist/interfaces/failure-strategy.d.ts +0 -95
- package/dist/interfaces/failure-strategy.d.ts.map +0 -1
- package/dist/interfaces/failure-strategy.js +0 -96
- package/dist/interfaces/failure-strategy.js.map +0 -1
- package/dist/llm/rate-limit.d.ts +0 -165
- package/dist/llm/rate-limit.d.ts.map +0 -1
- package/dist/llm/rate-limit.js +0 -394
- package/dist/llm/rate-limit.js.map +0 -1
- package/dist/resilience/status.d.ts +0 -29
- package/dist/resilience/status.d.ts.map +0 -1
- package/dist/resilience/status.js +0 -51
- package/dist/resilience/status.js.map +0 -1
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { RagError } from '../interfaces/types.js';
|
|
3
|
+
import { matchesRagIdentity, ragIdentityFilter } from './identity-filter.js';
|
|
4
|
+
import { tokenizeSearchText } from './tokenizer.js';
|
|
3
5
|
// ---------------------------------------------------------------------------
|
|
4
6
|
// Private helpers
|
|
5
7
|
// ---------------------------------------------------------------------------
|
|
6
8
|
function tokenize(text) {
|
|
7
|
-
return text
|
|
8
|
-
.toLowerCase()
|
|
9
|
-
.replace(/[^a-z0-9\s]/g, ' ')
|
|
10
|
-
.split(/\s+/)
|
|
11
|
-
.filter((t) => t.length > 1);
|
|
9
|
+
return tokenizeSearchText(text);
|
|
12
10
|
}
|
|
13
11
|
function embed(text) {
|
|
14
12
|
const tokens = tokenize(text);
|
|
@@ -75,10 +73,15 @@ export class InMemoryRag {
|
|
|
75
73
|
return { ok: true, value: undefined };
|
|
76
74
|
}
|
|
77
75
|
}
|
|
78
|
-
//
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
76
|
+
// Similarity dedup only between records written WITHOUT an id: a record
|
|
77
|
+
// with an id is replaced only by the same id (above). Merging on
|
|
78
|
+
// similarity alone let a near-identical tool record overwrite another
|
|
79
|
+
// tool's record (ReadFunctionInclude vanished under ReadFunctionGroup).
|
|
80
|
+
const candidates = metadata.id
|
|
81
|
+
? []
|
|
82
|
+
: this.records.filter((r) => !r.metadata.id &&
|
|
83
|
+
(this.namespace === undefined ||
|
|
84
|
+
r.metadata.namespace === this.namespace));
|
|
82
85
|
// Find record with cosine similarity >= dedupThreshold
|
|
83
86
|
let dupRecord;
|
|
84
87
|
for (const r of candidates) {
|
|
@@ -117,18 +120,20 @@ export class InMemoryRag {
|
|
|
117
120
|
}
|
|
118
121
|
const queryEmbedding = embed(searchText);
|
|
119
122
|
const nowSecs = Date.now() / 1000;
|
|
120
|
-
const
|
|
121
|
-
|
|
123
|
+
const identity = ragIdentityFilter(options);
|
|
124
|
+
const targetNamespace = options?.ragFilter?.namespace;
|
|
125
|
+
// Filter BEFORE top-k: store namespace + the query's `ragFilter.namespace`
|
|
126
|
+
// + TTL not expired + the sessionId/userId the query is scoped to.
|
|
122
127
|
const candidates = this.records.filter((r) => {
|
|
123
128
|
if (this.namespace !== undefined &&
|
|
124
129
|
r.metadata.namespace !== this.namespace)
|
|
125
130
|
return false;
|
|
126
|
-
if (
|
|
131
|
+
if (targetNamespace !== undefined &&
|
|
132
|
+
r.metadata.namespace !== targetNamespace)
|
|
127
133
|
return false;
|
|
128
|
-
if (
|
|
129
|
-
r.metadata.sessionId !== targetSessionId)
|
|
134
|
+
if (r.metadata.ttl !== undefined && r.metadata.ttl < nowSecs)
|
|
130
135
|
return false;
|
|
131
|
-
return
|
|
136
|
+
return matchesRagIdentity(r.metadata, identity);
|
|
132
137
|
});
|
|
133
138
|
// Compute cosine similarity for each candidate
|
|
134
139
|
const scored = candidates.map((r) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory-rag.js","sourceRoot":"","sources":["../../src/rag/in-memory-rag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASzC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"in-memory-rag.js","sourceRoot":"","sources":["../../src/rag/in-memory-rag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASzC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,KAAK,CAAC,IAAY;IACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1E,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CACvB,CAAsB,EACtB,CAAsB;IAEtB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,EAAE,KAAK,SAAS;YAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,GAAG,CAAC,CAAC,uCAAuC;AACrD,CAAC;AA8BD,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,MAAM,OAAO,WAAW;IACd,OAAO,GAAmB,EAAE,CAAC;IACpB,cAAc,CAAS;IACvB,SAAS,CAAU;IACnB,kBAAkB,CAAuB;IACzC,iBAAiB,CAAsB;IAExD,YAAY,MAA0B;QACpC,IAAI,CAAC,cAAc,GAAG,MAAM,EAAE,cAAc,IAAI,IAAI,CAAC;QACrD,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,SAAS,CAAC;QACnC,IAAI,CAAC,kBAAkB,GAAG,MAAM,EAAE,kBAAkB,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,iBAAiB,GAAG,MAAM,EAAE,iBAAiB,IAAI,EAAE,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,QAAqB,EACrB,OAAqB;QAErB,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;QAClE,CAAC;QAED,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC7D,IAAI,OAAO,CAAC,EAAE;gBAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QAC/C,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QAChE,MAAM,gBAAgB,GAAgB;YACpC,GAAG,QAAQ;YACX,SAAS,EAAE,kBAAkB;SAC9B,CAAC;QAEF,8DAA8D;QAC9D,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzE,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC;gBACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG;oBAC3B,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ;oBAC7B,GAAG,gBAAgB;iBACpB,CAAC;gBACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACxC,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,iEAAiE;QACjE,sEAAsE;QACtE,wEAAwE;QACxE,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAE;YAC5B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CACjB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;gBACd,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS;oBAC3B,CAAC,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAC7C,CAAC;QAEN,uDAAuD;QACvD,IAAI,SAAmC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpE,SAAS,GAAG,CAAC,CAAC;gBACd,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,yBAAyB;YACzB,SAAS,CAAC,IAAI,GAAG,YAAY,CAAC;YAC9B,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;YAChC,SAAS,CAAC,QAAQ,GAAG,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,gBAAgB,EAAE,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,kBAAkB;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,EAAE,EAAE,UAAU,EAAE;gBAChB,IAAI,EAAE,YAAY;gBAClB,SAAS;gBACT,QAAQ,EAAE,gBAAgB;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,KAAK,CACT,SAA0B,EAC1B,CAAS,EACT,OAAqB;QAErB,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;QAClE,CAAC;QAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC5B,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACvD,IAAI,QAAQ,CAAC,EAAE;gBAAE,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC/C,CAAC;QACD,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAClC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,eAAe,GAAG,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;QAEtD,2EAA2E;QAC3E,mEAAmE;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3C,IACE,IAAI,CAAC,SAAS,KAAK,SAAS;gBAC5B,CAAC,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;gBAEvC,OAAO,KAAK,CAAC;YACf,IACE,eAAe,KAAK,SAAS;gBAC7B,CAAC,CAAC,QAAQ,CAAC,SAAS,KAAK,eAAe;gBAExC,OAAO,KAAK,CAAC;YACf,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,OAAO;gBAC1D,OAAO,KAAK,CAAC;YACf,OAAO,kBAAkB,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,+CAA+C;QAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,KAAK,EAAE,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC;SACrD,CAAC,CAAC,CAAC;QAEJ,iCAAiC;QACjC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,OAAO,GAAgB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,OAAO,CACX,EAAU,EACV,QAAsB;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC9C,OAAO;YACL,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;SAClE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;gBAC/C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;gBAClE,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACvD,CAAC;YACD,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;gBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChE,IAAI,GAAG,KAAK,CAAC,CAAC;oBAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBAClD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACnC,CAAC;YACD,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACxC,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
|
package/dist/rag/index.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
export * from './catalog/index.js';
|
|
1
2
|
export * from './corrections/index.js';
|
|
3
|
+
export type { RagIdentityFilter } from './identity-filter.js';
|
|
4
|
+
export { matchesRagIdentity, ragIdentityFilter } from './identity-filter.js';
|
|
2
5
|
export type { InMemoryRagConfig } from './in-memory-rag.js';
|
|
3
6
|
export { InMemoryRag } from './in-memory-rag.js';
|
|
4
7
|
export * from './mcp-tools/index.js';
|
package/dist/rag/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rag/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,cAAc,qBAAqB,CAAC;AACpC,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,WAAW,EACX,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rag/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,cAAc,qBAAqB,CAAC;AACpC,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,WAAW,EACX,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/rag/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
export * from './catalog/index.js';
|
|
1
2
|
export * from './corrections/index.js';
|
|
3
|
+
export { matchesRagIdentity, ragIdentityFilter } from './identity-filter.js';
|
|
2
4
|
export { InMemoryRag } from './in-memory-rag.js';
|
|
3
5
|
export * from './mcp-tools/index.js';
|
|
4
6
|
export * from './overlays/index.js';
|
package/dist/rag/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rag/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AAEpC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,cAAc,qBAAqB,CAAC;AAQpC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EAEjB,WAAW,EACX,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rag/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AAEvC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AAEpC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,cAAc,qBAAqB,CAAC;AAQpC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EAEjB,WAAW,EACX,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { buildRagCollectionToolEntries, type RagToolContext, type RagToolEntry, } from './rag-collection-tools.js';
|
|
1
|
+
export { buildRagCollectionToolEntries, type RagCallerIdentity, type RagCollectionToolOptions, type RagToolContext, type RagToolEntry, } from './rag-collection-tools.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rag/mcp-tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rag/mcp-tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,2BAA2B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rag/mcp-tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rag/mcp-tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,GAK9B,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import type { IRagProviderRegistry, IRagRegistry } from '../../interfaces/rag.js';
|
|
2
|
+
import type { IRagProviderRegistry, IRagRegistry, RagCollectionOwner, RagJsonValue } from '../../interfaces/rag.js';
|
|
3
|
+
/**
|
|
4
|
+
* The caller these entries were built for (§5.1). Declared here rather than
|
|
5
|
+
* imported: llm-agent-libs' SessionGraphIdentity is the same shape, but the
|
|
6
|
+
* dependency runs libs → llm-agent, one way. A consumer hands one straight in.
|
|
7
|
+
*/
|
|
8
|
+
export interface RagCallerIdentity {
|
|
9
|
+
readonly sessionId: string;
|
|
10
|
+
readonly userId?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Free-form per-call context. It carries no identity: the entries were built
|
|
14
|
+
* for one caller, and a per-call value that disagreed would act as somebody
|
|
15
|
+
* else. Call sites passing sessionId/userId still compile — the index
|
|
16
|
+
* signature takes them — and nothing reads them.
|
|
17
|
+
*/
|
|
3
18
|
export interface RagToolContext {
|
|
4
|
-
sessionId?: string;
|
|
5
|
-
userId?: string;
|
|
6
19
|
[key: string]: unknown;
|
|
7
20
|
}
|
|
8
21
|
export interface RagToolEntry {
|
|
@@ -13,8 +26,26 @@ export interface RagToolEntry {
|
|
|
13
26
|
};
|
|
14
27
|
handler: (context: RagToolContext, args: Record<string, unknown>) => Promise<unknown>;
|
|
15
28
|
}
|
|
16
|
-
export
|
|
29
|
+
export interface RagCollectionToolOptions {
|
|
17
30
|
registry: IRagRegistry;
|
|
31
|
+
/**
|
|
32
|
+
* Required. It narrows the address space to this caller's collections and
|
|
33
|
+
* the globals the registry holds; an absent identity would mean "do not
|
|
34
|
+
* narrow", which is everyone's address space reached by forgetting a field.
|
|
35
|
+
*/
|
|
36
|
+
identity: RagCallerIdentity;
|
|
37
|
+
/** When given, rag_create_collection is offered, creating through these providers. */
|
|
18
38
|
providerRegistry?: IRagProviderRegistry;
|
|
19
|
-
|
|
39
|
+
/**
|
|
40
|
+
* What a collection this caller creates through the tool is recorded with.
|
|
41
|
+
* Called by rag_create_collection with what the model asked for; its result
|
|
42
|
+
* is stored unread. Absent → the collection has no attributes. The model's
|
|
43
|
+
* own input never supplies them: it would be writing the policy that later
|
|
44
|
+
* decides who reads the collection.
|
|
45
|
+
*/
|
|
46
|
+
attributesFor?: (created: {
|
|
47
|
+
name: string;
|
|
48
|
+
} & RagCollectionOwner) => RagJsonValue | undefined;
|
|
49
|
+
}
|
|
50
|
+
export declare function buildRagCollectionToolEntries(opts: RagCollectionToolOptions): RagToolEntry[];
|
|
20
51
|
//# sourceMappingURL=rag-collection-tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rag-collection-tools.d.ts","sourceRoot":"","sources":["../../../src/rag/mcp-tools/rag-collection-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"rag-collection-tools.d.ts","sourceRoot":"","sources":["../../../src/rag/mcp-tools/rag-collection-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAEV,oBAAoB,EACpB,YAAY,EAEZ,kBAAkB,EAElB,YAAY,EACb,MAAM,yBAAyB,CAAC;AAYjC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC;KAC5B,CAAC;IACF,OAAO,EAAE,CACP,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,YAAY,CAAC;IACvB;;;;OAIG;IACH,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CACd,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,kBAAkB,KAC3C,YAAY,GAAG,SAAS,CAAC;CAC/B;AAWD,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,wBAAwB,GAC7B,YAAY,EAAE,CAkUhB"}
|
|
@@ -1,18 +1,65 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { AmbiguousCollectionError, CatalogRecordDeleteError, CollectionNotFoundError, DeleteUnsupportedError, } from '../corrections/errors.js';
|
|
2
3
|
import { buildCorrectionMetadata, deprecateMetadata, } from '../corrections/metadata.js';
|
|
4
|
+
const scopeArg = z
|
|
5
|
+
.enum(['session', 'user', 'global'])
|
|
6
|
+
.optional()
|
|
7
|
+
.describe('Which collection of that name, when several scopes hold one (rag_list_collections shows each scope).');
|
|
3
8
|
export function buildRagCollectionToolEntries(opts) {
|
|
4
|
-
const { registry } = opts;
|
|
5
|
-
const
|
|
6
|
-
|
|
9
|
+
const { registry, identity } = opts;
|
|
10
|
+
const scopeOf = (m) => m.scope ?? 'global';
|
|
11
|
+
/** This caller's collections, and the globals it was given (§5.1). */
|
|
12
|
+
const addressable = () => registry.list().filter((m) => {
|
|
13
|
+
const scope = scopeOf(m);
|
|
14
|
+
if (scope === 'session')
|
|
15
|
+
return m.sessionId === identity.sessionId;
|
|
16
|
+
if (scope === 'user') {
|
|
17
|
+
return identity.userId !== undefined && m.userId === identity.userId;
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* The one addressable collection a name (and scope) means. Another caller's
|
|
23
|
+
* collection neither resolves nor makes a name ambiguous: it is absent.
|
|
24
|
+
*/
|
|
25
|
+
const resolve = (name, scope) => {
|
|
26
|
+
if (typeof name !== 'string' || name === '') {
|
|
7
27
|
return { ok: false, error: 'collection is required' };
|
|
8
28
|
}
|
|
9
|
-
const
|
|
10
|
-
|
|
29
|
+
const wanted = typeof scope === 'string' ? scope : undefined;
|
|
30
|
+
const matches = addressable().filter((m) => m.name === name && (wanted === undefined || scopeOf(m) === wanted));
|
|
31
|
+
if (matches.length === 0) {
|
|
32
|
+
return {
|
|
33
|
+
ok: false,
|
|
34
|
+
error: wanted
|
|
35
|
+
? `Collection '${name}' not found in scope '${wanted}'`
|
|
36
|
+
: `Collection '${name}' not found`,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
if (matches.length > 1) {
|
|
40
|
+
// The registry's own error, so the tool and the registry word and code
|
|
41
|
+
// an ambiguous name alike.
|
|
42
|
+
const ambiguous = new AmbiguousCollectionError(name, matches.map(scopeOf));
|
|
43
|
+
return { ok: false, code: ambiguous.code, error: ambiguous.message };
|
|
44
|
+
}
|
|
45
|
+
return { ok: true, meta: matches[0], scope: scopeOf(matches[0]) };
|
|
46
|
+
};
|
|
47
|
+
const resolveEditor = (name, scope) => {
|
|
48
|
+
const r = resolve(name, scope);
|
|
49
|
+
if (!r.ok)
|
|
50
|
+
return r;
|
|
51
|
+
// Reachable licenses reading, never writing: no framework tool mutates a
|
|
52
|
+
// global, whatever its authorization value (§5.1).
|
|
53
|
+
if (r.scope === 'global') {
|
|
11
54
|
return {
|
|
12
55
|
ok: false,
|
|
13
|
-
error:
|
|
56
|
+
error: 'Global collections cannot be modified via MCP',
|
|
14
57
|
};
|
|
15
58
|
}
|
|
59
|
+
const editor = registry.getEditor(r.meta.name, r.scope);
|
|
60
|
+
if (!editor) {
|
|
61
|
+
return { ok: false, error: `Collection '${r.meta.name}' is read-only` };
|
|
62
|
+
}
|
|
16
63
|
return { ok: true, editor };
|
|
17
64
|
};
|
|
18
65
|
const addTool = {
|
|
@@ -21,13 +68,14 @@ export function buildRagCollectionToolEntries(opts) {
|
|
|
21
68
|
description: 'Add a new document to a RAG collection.',
|
|
22
69
|
inputSchema: {
|
|
23
70
|
collection: z.string(),
|
|
71
|
+
scope: scopeArg,
|
|
24
72
|
text: z.string(),
|
|
25
73
|
canonicalKey: z.string(),
|
|
26
74
|
tags: z.array(z.string()).optional(),
|
|
27
75
|
},
|
|
28
76
|
},
|
|
29
77
|
handler: async (_ctx, args) => {
|
|
30
|
-
const r = resolveEditor(args.collection);
|
|
78
|
+
const r = resolveEditor(args.collection, args.scope);
|
|
31
79
|
if (!r.ok)
|
|
32
80
|
return r;
|
|
33
81
|
const res = await r.editor.upsert(String(args.text), {
|
|
@@ -45,6 +93,7 @@ export function buildRagCollectionToolEntries(opts) {
|
|
|
45
93
|
description: 'Supersede a document with a new corrected version. Marks the predecessor as superseded.',
|
|
46
94
|
inputSchema: {
|
|
47
95
|
collection: z.string(),
|
|
96
|
+
scope: scopeArg,
|
|
48
97
|
predecessorId: z.string(),
|
|
49
98
|
predecessorCanonicalKey: z.string(),
|
|
50
99
|
newText: z.string(),
|
|
@@ -52,7 +101,7 @@ export function buildRagCollectionToolEntries(opts) {
|
|
|
52
101
|
},
|
|
53
102
|
},
|
|
54
103
|
handler: async (_ctx, args) => {
|
|
55
|
-
const r = resolveEditor(args.collection);
|
|
104
|
+
const r = resolveEditor(args.collection, args.scope);
|
|
56
105
|
if (!r.ok)
|
|
57
106
|
return r;
|
|
58
107
|
const predecessorMeta = {
|
|
@@ -88,13 +137,14 @@ export function buildRagCollectionToolEntries(opts) {
|
|
|
88
137
|
description: 'Mark a document as deprecated (idempotent).',
|
|
89
138
|
inputSchema: {
|
|
90
139
|
collection: z.string(),
|
|
140
|
+
scope: scopeArg,
|
|
91
141
|
id: z.string(),
|
|
92
142
|
canonicalKey: z.string(),
|
|
93
143
|
reason: z.string(),
|
|
94
144
|
},
|
|
95
145
|
},
|
|
96
146
|
handler: async (_ctx, args) => {
|
|
97
|
-
const r = resolveEditor(args.collection);
|
|
147
|
+
const r = resolveEditor(args.collection, args.scope);
|
|
98
148
|
if (!r.ok)
|
|
99
149
|
return r;
|
|
100
150
|
const meta = deprecateMetadata({ canonicalKey: String(args.canonicalKey) }, String(args.reason));
|
|
@@ -110,15 +160,15 @@ export function buildRagCollectionToolEntries(opts) {
|
|
|
110
160
|
const listTool = {
|
|
111
161
|
toolDefinition: {
|
|
112
162
|
name: 'rag_list_collections',
|
|
113
|
-
description: 'List
|
|
163
|
+
description: 'List the RAG collections you can address, each with its scope, with optional scope/provider filters.',
|
|
114
164
|
inputSchema: {
|
|
115
165
|
scope: z.enum(['session', 'user', 'global']).optional(),
|
|
116
166
|
provider: z.string().optional(),
|
|
117
167
|
},
|
|
118
168
|
},
|
|
119
169
|
handler: async (_ctx, args) => {
|
|
120
|
-
const metas =
|
|
121
|
-
if (args.scope && m
|
|
170
|
+
const metas = addressable().filter((m) => {
|
|
171
|
+
if (args.scope && scopeOf(m) !== args.scope)
|
|
122
172
|
return false;
|
|
123
173
|
if (args.provider && m.providerName !== args.provider)
|
|
124
174
|
return false;
|
|
@@ -131,53 +181,57 @@ export function buildRagCollectionToolEntries(opts) {
|
|
|
131
181
|
toolDefinition: {
|
|
132
182
|
name: 'rag_describe_collection',
|
|
133
183
|
description: 'Return the metadata of a RAG collection by name.',
|
|
134
|
-
inputSchema: { name: z.string() },
|
|
184
|
+
inputSchema: { name: z.string(), scope: scopeArg },
|
|
135
185
|
},
|
|
136
186
|
handler: async (_ctx, args) => {
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
if (!meta) {
|
|
140
|
-
return { ok: false, error: `Collection '${name}' not found` };
|
|
141
|
-
}
|
|
142
|
-
return { ok: true, meta };
|
|
187
|
+
const r = resolve(args.name, args.scope);
|
|
188
|
+
return r.ok ? { ok: true, meta: r.meta } : r;
|
|
143
189
|
},
|
|
144
190
|
};
|
|
145
191
|
const deleteTool = {
|
|
146
192
|
toolDefinition: {
|
|
147
193
|
name: 'rag_delete_collection',
|
|
148
194
|
description: 'Delete a RAG collection you own (session or user scope).',
|
|
149
|
-
inputSchema: { name: z.string() },
|
|
195
|
+
inputSchema: { name: z.string(), scope: scopeArg },
|
|
150
196
|
},
|
|
151
|
-
handler: async (
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
if (
|
|
197
|
+
handler: async (_ctx, args) => {
|
|
198
|
+
// Owner keys are compared by resolve(): a collection that is not this
|
|
199
|
+
// caller's is not in its address space.
|
|
200
|
+
const r = resolve(args.name, args.scope);
|
|
201
|
+
if (!r.ok)
|
|
202
|
+
return r;
|
|
203
|
+
if (r.scope === 'global') {
|
|
158
204
|
return {
|
|
159
205
|
ok: false,
|
|
160
|
-
error:
|
|
206
|
+
error: 'Global collections cannot be deleted via MCP',
|
|
161
207
|
};
|
|
162
208
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
}
|
|
209
|
+
const name = r.meta.name;
|
|
210
|
+
const res = await registry.deleteCollection(name, r.scope);
|
|
211
|
+
if (res.ok)
|
|
212
|
+
return { ok: true };
|
|
213
|
+
if (res.error instanceof CollectionNotFoundError) {
|
|
214
|
+
return { ok: false, error: res.error.message };
|
|
170
215
|
}
|
|
171
|
-
if (
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
};
|
|
177
|
-
}
|
|
216
|
+
if (res.error instanceof CatalogRecordDeleteError) {
|
|
217
|
+
// Its record could not be removed, so nothing was: record and data are
|
|
218
|
+
// intact and the registry has it again. A failed deletion to retry —
|
|
219
|
+
// not a removal with a data problem.
|
|
220
|
+
return { ok: false, error: res.error.message };
|
|
178
221
|
}
|
|
179
|
-
|
|
180
|
-
|
|
222
|
+
if (res.error instanceof DeleteUnsupportedError) {
|
|
223
|
+
// Nothing could reach the collection's store: its provider is not
|
|
224
|
+
// registered, or has no way to delete. Its catalog record was never
|
|
225
|
+
// touched, so the collection is not gone — it comes back on the next
|
|
226
|
+
// hydration. Reporting ok:true would claim a removal that did not happen.
|
|
227
|
+
return { ok: false, code: res.error.code, error: res.error.message };
|
|
228
|
+
}
|
|
229
|
+
// The record is gone and the collection unregistered: it is gone for the
|
|
230
|
+
// caller, and the orphaned data is reported as what it is.
|
|
231
|
+
return {
|
|
232
|
+
ok: true,
|
|
233
|
+
warning: `Collection '${name}' was removed, but its data could not be deleted: ${res.error.message}`,
|
|
234
|
+
};
|
|
181
235
|
},
|
|
182
236
|
};
|
|
183
237
|
const tools = [
|
|
@@ -193,38 +247,58 @@ export function buildRagCollectionToolEntries(opts) {
|
|
|
193
247
|
const createTool = {
|
|
194
248
|
toolDefinition: {
|
|
195
249
|
name: 'rag_create_collection',
|
|
196
|
-
description: 'Create a new RAG collection
|
|
250
|
+
description: 'Create a new RAG collection of your own, for this session or for you.',
|
|
197
251
|
inputSchema: {
|
|
198
252
|
provider: z.string(),
|
|
199
253
|
name: z.string(),
|
|
200
|
-
|
|
254
|
+
// No 'global': creating one would put a collection into every
|
|
255
|
+
// caller's address space, and that is a consumer's decision (§5.1).
|
|
256
|
+
scope: z.enum(['session', 'user']),
|
|
201
257
|
displayName: z.string().optional(),
|
|
202
258
|
description: z.string().optional(),
|
|
203
259
|
tags: z.array(z.string()).optional(),
|
|
204
260
|
},
|
|
205
261
|
},
|
|
206
|
-
handler: async (
|
|
262
|
+
handler: async (_ctx, args) => {
|
|
207
263
|
const providerName = String(args.provider);
|
|
208
|
-
|
|
209
|
-
if (!provider) {
|
|
264
|
+
if (!providerRegistry.getProvider(providerName)) {
|
|
210
265
|
return {
|
|
211
266
|
ok: false,
|
|
212
267
|
error: `RAG provider '${providerName}' is not registered`,
|
|
213
268
|
};
|
|
214
269
|
}
|
|
270
|
+
// The owner comes from the bound identity and nowhere else; the scope
|
|
271
|
+
// is checked here too, for a caller that did not apply the schema.
|
|
272
|
+
let owner;
|
|
273
|
+
if (args.scope === 'session') {
|
|
274
|
+
owner = { scope: 'session', sessionId: identity.sessionId };
|
|
275
|
+
}
|
|
276
|
+
else if (args.scope === 'user') {
|
|
277
|
+
if (!identity.userId) {
|
|
278
|
+
return {
|
|
279
|
+
ok: false,
|
|
280
|
+
error: 'A user collection needs a caller with a userId, and this one has none',
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
owner = { scope: 'user', userId: identity.userId };
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
return { ok: false, error: "scope must be 'session' or 'user'" };
|
|
287
|
+
}
|
|
288
|
+
const name = String(args.name);
|
|
289
|
+
const attributes = opts.attributesFor?.({ name, ...owner });
|
|
215
290
|
const res = await registry.createCollection({
|
|
216
291
|
providerName,
|
|
217
|
-
collectionName:
|
|
218
|
-
scope: args.scope,
|
|
219
|
-
sessionId: ctx.sessionId,
|
|
220
|
-
userId: ctx.userId,
|
|
292
|
+
collectionName: name,
|
|
221
293
|
displayName: args.displayName,
|
|
222
294
|
description: args.description,
|
|
223
295
|
tags: args.tags,
|
|
296
|
+
...owner,
|
|
297
|
+
...(attributes !== undefined ? { attributes } : {}),
|
|
224
298
|
});
|
|
225
299
|
return res.ok
|
|
226
300
|
? { ok: true, meta: res.value }
|
|
227
|
-
: { ok: false, error: res.error.message };
|
|
301
|
+
: { ok: false, code: res.error.code, error: res.error.message };
|
|
228
302
|
},
|
|
229
303
|
};
|
|
230
304
|
tools.push(createTool);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rag-collection-tools.js","sourceRoot":"","sources":["../../../src/rag/mcp-tools/rag-collection-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rag-collection-tools.js","sourceRoot":"","sources":["../../../src/rag/mcp-tools/rag-collection-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IIdStrategy, IRag, IRagEditor, IRagProvider, RagCollectionScope } from '../../interfaces/rag.js';
|
|
1
|
+
import type { IIdStrategy, IRag, IRagEditor, IRagProvider, RagCollectionOwner, RagCollectionScope, RagProviderCreateCollectionOptions } from '../../interfaces/rag.js';
|
|
2
2
|
import type { RagError, Result } from '../../interfaces/types.js';
|
|
3
3
|
export declare abstract class AbstractRagProvider implements IRagProvider {
|
|
4
4
|
abstract readonly name: string;
|
|
@@ -10,15 +10,17 @@ export declare abstract class AbstractRagProvider implements IRagProvider {
|
|
|
10
10
|
sessionId?: string;
|
|
11
11
|
userId?: string;
|
|
12
12
|
}) => IIdStrategy;
|
|
13
|
-
abstract createCollection(name: string, opts: {
|
|
14
|
-
scope: RagCollectionScope;
|
|
15
|
-
sessionId?: string;
|
|
16
|
-
userId?: string;
|
|
17
|
-
}): Promise<Result<{
|
|
13
|
+
abstract createCollection(name: string, opts: RagProviderCreateCollectionOptions): Promise<Result<{
|
|
18
14
|
rag: IRag;
|
|
19
15
|
editor: IRagEditor;
|
|
20
16
|
}, RagError>>;
|
|
21
17
|
protected checkScope(scope: RagCollectionScope): Result<void, RagError>;
|
|
18
|
+
/**
|
|
19
|
+
* The owner, the scope and the attributes, checked before any backend is
|
|
20
|
+
* touched — for callers no compiler saw (§6.3). Returns the owner with only
|
|
21
|
+
* the key its scope selects.
|
|
22
|
+
*/
|
|
23
|
+
protected checkCreateOptions(opts: RagProviderCreateCollectionOptions): Result<RagCollectionOwner, RagError>;
|
|
22
24
|
protected pickIdStrategy(opts: {
|
|
23
25
|
scope: RagCollectionScope;
|
|
24
26
|
sessionId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-provider.d.ts","sourceRoot":"","sources":["../../../src/rag/providers/base-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,kBAAkB,
|
|
1
|
+
{"version":3,"file":"base-provider.d.ts","sourceRoot":"","sources":["../../../src/rag/providers/base-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,kCAAkC,EACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAelE,8BAAsB,mBAAoB,YAAW,YAAY;IAC/D,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAEjE,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QACnC,KAAK,EAAE,kBAAkB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,KAAK,WAAW,CAAC;IAElB,QAAQ,CAAC,gBAAgB,CACvB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,kCAAkC,GACvC,OAAO,CAAC,MAAM,CAAC;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,EAAE,QAAQ,CAAC,CAAC;IAE/D,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC;IAOvE;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAC1B,IAAI,EAAE,kCAAkC,GACvC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAUvC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE;QAC7B,KAAK,EAAE,kBAAkB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,WAAW;IAQf,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,GAAG,UAAU;CAUtE"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { validateRagAttributes, validateRagOwner, } from '../catalog/validation.js';
|
|
1
2
|
import { UnsupportedScopeError } from '../corrections/errors.js';
|
|
2
3
|
import { DirectEditStrategy, ImmutableEditStrategy, } from '../strategies/edit/index.js';
|
|
3
4
|
import { GlobalUniqueIdStrategy, SessionScopedIdStrategy, } from '../strategies/id/index.js';
|
|
@@ -9,6 +10,23 @@ export class AbstractRagProvider {
|
|
|
9
10
|
}
|
|
10
11
|
return { ok: true, value: undefined };
|
|
11
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* The owner, the scope and the attributes, checked before any backend is
|
|
15
|
+
* touched — for callers no compiler saw (§6.3). Returns the owner with only
|
|
16
|
+
* the key its scope selects.
|
|
17
|
+
*/
|
|
18
|
+
checkCreateOptions(opts) {
|
|
19
|
+
const owner = validateRagOwner(opts);
|
|
20
|
+
if (!owner.ok)
|
|
21
|
+
return owner;
|
|
22
|
+
const scope = this.checkScope(owner.value.scope);
|
|
23
|
+
if (!scope.ok)
|
|
24
|
+
return scope;
|
|
25
|
+
const attributes = validateRagAttributes(opts.attributes);
|
|
26
|
+
if (!attributes.ok)
|
|
27
|
+
return attributes;
|
|
28
|
+
return owner;
|
|
29
|
+
}
|
|
12
30
|
pickIdStrategy(opts) {
|
|
13
31
|
if (this.idStrategyFactory)
|
|
14
32
|
return this.idStrategyFactory(opts);
|