@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.
Files changed (147) hide show
  1. package/README.md +2 -0
  2. package/dist/credentials/static.d.ts +9 -0
  3. package/dist/credentials/static.d.ts.map +1 -0
  4. package/dist/credentials/static.js +12 -0
  5. package/dist/credentials/static.js.map +1 -0
  6. package/dist/index.d.ts +6 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +5 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/interfaces/builder.d.ts +11 -1
  11. package/dist/interfaces/builder.d.ts.map +1 -1
  12. package/dist/interfaces/collect-server-descriptors.d.ts +12 -0
  13. package/dist/interfaces/collect-server-descriptors.d.ts.map +1 -0
  14. package/dist/interfaces/collect-server-descriptors.js +19 -0
  15. package/dist/interfaces/collect-server-descriptors.js.map +1 -0
  16. package/dist/interfaces/index.d.ts +3 -2
  17. package/dist/interfaces/index.d.ts.map +1 -1
  18. package/dist/interfaces/index.js.map +1 -1
  19. package/dist/interfaces/mcp-connection-strategy.d.ts +29 -2
  20. package/dist/interfaces/mcp-connection-strategy.d.ts.map +1 -1
  21. package/dist/interfaces/mcp-server-from-factory.d.ts +15 -0
  22. package/dist/interfaces/mcp-server-from-factory.d.ts.map +1 -0
  23. package/dist/interfaces/mcp-server-from-factory.js +37 -0
  24. package/dist/interfaces/mcp-server-from-factory.js.map +1 -0
  25. package/dist/interfaces/mcp-server.d.ts +24 -0
  26. package/dist/interfaces/mcp-server.d.ts.map +1 -0
  27. package/dist/interfaces/mcp-server.js +2 -0
  28. package/dist/interfaces/mcp-server.js.map +1 -0
  29. package/dist/interfaces/pipeline-plugin.d.ts +16 -6
  30. package/dist/interfaces/pipeline-plugin.d.ts.map +1 -1
  31. package/dist/interfaces/plugin.d.ts +11 -3
  32. package/dist/interfaces/plugin.d.ts.map +1 -1
  33. package/dist/interfaces/rag.d.ts +133 -23
  34. package/dist/interfaces/rag.d.ts.map +1 -1
  35. package/dist/interfaces/rag.js.map +1 -1
  36. package/dist/interfaces/tool-catalog.d.ts +4 -2
  37. package/dist/interfaces/tool-catalog.d.ts.map +1 -1
  38. package/dist/interfaces/tool-catalog.js.map +1 -1
  39. package/dist/interfaces/types.d.ts +2 -1
  40. package/dist/interfaces/types.d.ts.map +1 -1
  41. package/dist/interfaces/types.js.map +1 -1
  42. package/dist/llm/base-llm-provider.d.ts +29 -4
  43. package/dist/llm/base-llm-provider.d.ts.map +1 -1
  44. package/dist/llm/base-llm-provider.js +45 -9
  45. package/dist/llm/base-llm-provider.js.map +1 -1
  46. package/dist/logger/normalise-logger.d.ts +28 -0
  47. package/dist/logger/normalise-logger.d.ts.map +1 -0
  48. package/dist/logger/normalise-logger.js +50 -0
  49. package/dist/logger/normalise-logger.js.map +1 -0
  50. package/dist/logger/text-logger.d.ts +14 -0
  51. package/dist/logger/text-logger.d.ts.map +1 -0
  52. package/dist/logger/text-logger.js +2 -0
  53. package/dist/logger/text-logger.js.map +1 -0
  54. package/dist/policy/fallback-llm-call-strategy.d.ts +3 -3
  55. package/dist/policy/fallback-llm-call-strategy.d.ts.map +1 -1
  56. package/dist/policy/fallback-llm-call-strategy.js +3 -2
  57. package/dist/policy/fallback-llm-call-strategy.js.map +1 -1
  58. package/dist/rag/catalog/index.d.ts +2 -0
  59. package/dist/rag/catalog/index.d.ts.map +1 -0
  60. package/dist/rag/catalog/index.js +2 -0
  61. package/dist/rag/catalog/index.js.map +1 -0
  62. package/dist/rag/catalog/validation.d.ts +56 -0
  63. package/dist/rag/catalog/validation.d.ts.map +1 -0
  64. package/dist/rag/catalog/validation.js +168 -0
  65. package/dist/rag/catalog/validation.js.map +1 -0
  66. package/dist/rag/corrections/errors.d.ts +69 -0
  67. package/dist/rag/corrections/errors.d.ts.map +1 -1
  68. package/dist/rag/corrections/errors.js +98 -0
  69. package/dist/rag/corrections/errors.js.map +1 -1
  70. package/dist/rag/identity-filter.d.ts +19 -0
  71. package/dist/rag/identity-filter.d.ts.map +1 -0
  72. package/dist/rag/identity-filter.js +31 -0
  73. package/dist/rag/identity-filter.js.map +1 -0
  74. package/dist/rag/in-memory-rag.d.ts +3 -1
  75. package/dist/rag/in-memory-rag.d.ts.map +1 -1
  76. package/dist/rag/in-memory-rag.js +20 -15
  77. package/dist/rag/in-memory-rag.js.map +1 -1
  78. package/dist/rag/index.d.ts +3 -0
  79. package/dist/rag/index.d.ts.map +1 -1
  80. package/dist/rag/index.js +2 -0
  81. package/dist/rag/index.js.map +1 -1
  82. package/dist/rag/mcp-tools/index.d.ts +1 -1
  83. package/dist/rag/mcp-tools/index.d.ts.map +1 -1
  84. package/dist/rag/mcp-tools/index.js.map +1 -1
  85. package/dist/rag/mcp-tools/rag-collection-tools.d.ts +36 -5
  86. package/dist/rag/mcp-tools/rag-collection-tools.d.ts.map +1 -1
  87. package/dist/rag/mcp-tools/rag-collection-tools.js +128 -54
  88. package/dist/rag/mcp-tools/rag-collection-tools.js.map +1 -1
  89. package/dist/rag/providers/base-provider.d.ts +8 -6
  90. package/dist/rag/providers/base-provider.d.ts.map +1 -1
  91. package/dist/rag/providers/base-provider.js +18 -0
  92. package/dist/rag/providers/base-provider.js.map +1 -1
  93. package/dist/rag/providers/in-memory-rag-provider.d.ts +11 -8
  94. package/dist/rag/providers/in-memory-rag-provider.d.ts.map +1 -1
  95. package/dist/rag/providers/in-memory-rag-provider.js +13 -5
  96. package/dist/rag/providers/in-memory-rag-provider.js.map +1 -1
  97. package/dist/rag/providers/vector-rag-provider.d.ts +11 -8
  98. package/dist/rag/providers/vector-rag-provider.d.ts.map +1 -1
  99. package/dist/rag/providers/vector-rag-provider.js +13 -5
  100. package/dist/rag/providers/vector-rag-provider.js.map +1 -1
  101. package/dist/rag/registry/index.d.ts +1 -0
  102. package/dist/rag/registry/index.d.ts.map +1 -1
  103. package/dist/rag/registry/index.js +1 -0
  104. package/dist/rag/registry/index.js.map +1 -1
  105. package/dist/rag/registry/simple-rag-registry.d.ts +90 -15
  106. package/dist/rag/registry/simple-rag-registry.d.ts.map +1 -1
  107. package/dist/rag/registry/simple-rag-registry.js +331 -57
  108. package/dist/rag/registry/simple-rag-registry.js.map +1 -1
  109. package/dist/rag/registry/store-key.d.ts +15 -0
  110. package/dist/rag/registry/store-key.d.ts.map +1 -0
  111. package/dist/rag/registry/store-key.js +25 -0
  112. package/dist/rag/registry/store-key.js.map +1 -0
  113. package/dist/rag/search-strategy.d.ts +9 -0
  114. package/dist/rag/search-strategy.d.ts.map +1 -1
  115. package/dist/rag/search-strategy.js +49 -22
  116. package/dist/rag/search-strategy.js.map +1 -1
  117. package/dist/rag/tokenizer.d.ts +17 -0
  118. package/dist/rag/tokenizer.d.ts.map +1 -0
  119. package/dist/rag/tokenizer.js +38 -0
  120. package/dist/rag/tokenizer.js.map +1 -0
  121. package/dist/rag/vector-rag.d.ts +2 -2
  122. package/dist/rag/vector-rag.d.ts.map +1 -1
  123. package/dist/rag/vector-rag.js +29 -21
  124. package/dist/rag/vector-rag.js.map +1 -1
  125. package/dist/resilience/embedder-resilience.d.ts +2 -2
  126. package/dist/resilience/embedder-resilience.d.ts.map +1 -1
  127. package/dist/resilience/embedder-resilience.js +3 -1
  128. package/dist/resilience/embedder-resilience.js.map +1 -1
  129. package/dist/testing/rag-filter-conformance.d.ts +60 -0
  130. package/dist/testing/rag-filter-conformance.d.ts.map +1 -0
  131. package/dist/testing/rag-filter-conformance.js +379 -0
  132. package/dist/testing/rag-filter-conformance.js.map +1 -0
  133. package/dist/types.d.ts +11 -2
  134. package/dist/types.d.ts.map +1 -1
  135. package/package.json +8 -1
  136. package/dist/interfaces/failure-strategy.d.ts +0 -95
  137. package/dist/interfaces/failure-strategy.d.ts.map +0 -1
  138. package/dist/interfaces/failure-strategy.js +0 -96
  139. package/dist/interfaces/failure-strategy.js.map +0 -1
  140. package/dist/llm/rate-limit.d.ts +0 -165
  141. package/dist/llm/rate-limit.d.ts.map +0 -1
  142. package/dist/llm/rate-limit.js +0 -394
  143. package/dist/llm/rate-limit.js.map +0 -1
  144. package/dist/resilience/status.d.ts +0 -29
  145. package/dist/resilience/status.d.ts.map +0 -1
  146. package/dist/resilience/status.js +0 -51
  147. 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
- // Filter existing records by same namespace
79
- const candidates = this.namespace !== undefined
80
- ? this.records.filter((r) => r.metadata.namespace === this.namespace)
81
- : this.records;
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 targetSessionId = options?.ragFilter?.sessionId;
121
- // Filter: namespace match + TTL not expired + sessionId match
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 (r.metadata.ttl !== undefined && r.metadata.ttl < nowSecs)
131
+ if (targetNamespace !== undefined &&
132
+ r.metadata.namespace !== targetNamespace)
127
133
  return false;
128
- if (targetSessionId !== undefined &&
129
- r.metadata.sessionId !== targetSessionId)
134
+ if (r.metadata.ttl !== undefined && r.metadata.ttl < nowSecs)
130
135
  return false;
131
- return true;
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":"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"}
1
+ {"version":3,"file":"in-memory-rag.js","sourceRoot":"","sources":["../../src/rag/in-memory-rag.ts"],"names":[],"mappings":"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"}
@@ -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';
@@ -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';
@@ -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,GAG9B,MAAM,2BAA2B,CAAC"}
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 declare function buildRagCollectionToolEntries(opts: {
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
- }): RagToolEntry[];
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,EACV,oBAAoB,EACpB,YAAY,EACb,MAAM,yBAAyB,CAAC;AAMjC,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,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,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,QAAQ,EAAE,YAAY,CAAC;IACvB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;CACzC,GAAG,YAAY,EAAE,CA+OjB"}
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 resolveEditor = (name) => {
6
- if (typeof name !== 'string') {
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 editor = registry.getEditor(name);
10
- if (!editor) {
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: `Collection '${name}' is read-only or unknown`,
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 known RAG collections with optional scope/provider filters.',
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 = registry.list().filter((m) => {
121
- if (args.scope && m.scope !== args.scope)
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 name = String(args.name);
138
- const meta = registry.list().find((m) => m.name === name);
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 (ctx, args) => {
152
- const name = String(args.name);
153
- const meta = registry.list().find((m) => m.name === name);
154
- if (!meta) {
155
- return { ok: false, error: `Collection '${name}' not found` };
156
- }
157
- if (meta.scope === 'global' || !meta.scope) {
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: `Global collections cannot be deleted via MCP`,
206
+ error: 'Global collections cannot be deleted via MCP',
161
207
  };
162
208
  }
163
- if (meta.scope === 'session') {
164
- if (!ctx.sessionId || ctx.sessionId !== meta.sessionId) {
165
- return {
166
- ok: false,
167
- error: `sessionId mismatch for collection '${name}'`,
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 (meta.scope === 'user') {
172
- if (!ctx.userId || ctx.userId !== meta.userId) {
173
- return {
174
- ok: false,
175
- error: `userId mismatch for collection '${name}'`,
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
- const res = await registry.deleteCollection(name);
180
- return res.ok ? { ok: true } : { ok: false, error: res.error.message };
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 via a provider.',
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
- scope: z.enum(['session', 'user', 'global']),
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 (ctx, args) => {
262
+ handler: async (_ctx, args) => {
207
263
  const providerName = String(args.provider);
208
- const provider = providerRegistry.getProvider(providerName);
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: String(args.name),
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,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAWlE,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;QACJ,KAAK,EAAE,kBAAkB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GACA,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,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
+ {"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);