@mcp-abap-adt/llm-agent 26.0.0 → 28.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +124 -21
  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 +47 -0
  67. package/dist/rag/corrections/errors.d.ts.map +1 -1
  68. package/dist/rag/corrections/errors.js +73 -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 +121 -58
  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 +4 -7
  94. package/dist/rag/providers/in-memory-rag-provider.d.ts.map +1 -1
  95. package/dist/rag/providers/in-memory-rag-provider.js +11 -4
  96. package/dist/rag/providers/in-memory-rag-provider.js.map +1 -1
  97. package/dist/rag/providers/vector-rag-provider.d.ts +4 -7
  98. package/dist/rag/providers/vector-rag-provider.d.ts.map +1 -1
  99. package/dist/rag/providers/vector-rag-provider.js +11 -4
  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 +74 -30
  106. package/dist/rag/registry/simple-rag-registry.d.ts.map +1 -1
  107. package/dist/rag/registry/simple-rag-registry.js +265 -100
  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 +11 -2
  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
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;AAOjC,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,CAwPjB"}
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,19 +1,65 @@
1
1
  import { z } from 'zod';
2
- import { CollectionNotFoundError } from '../corrections/errors.js';
2
+ import { AmbiguousCollectionError, CatalogRecordDeleteError, CollectionNotFoundError, DeleteUnsupportedError, } from '../corrections/errors.js';
3
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).');
4
8
  export function buildRagCollectionToolEntries(opts) {
5
- const { registry } = opts;
6
- const resolveEditor = (name) => {
7
- 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 === '') {
8
27
  return { ok: false, error: 'collection is required' };
9
28
  }
10
- const editor = registry.getEditor(name);
11
- 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') {
12
54
  return {
13
55
  ok: false,
14
- error: `Collection '${name}' is read-only or unknown`,
56
+ error: 'Global collections cannot be modified via MCP',
15
57
  };
16
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
+ }
17
63
  return { ok: true, editor };
18
64
  };
19
65
  const addTool = {
@@ -22,13 +68,14 @@ export function buildRagCollectionToolEntries(opts) {
22
68
  description: 'Add a new document to a RAG collection.',
23
69
  inputSchema: {
24
70
  collection: z.string(),
71
+ scope: scopeArg,
25
72
  text: z.string(),
26
73
  canonicalKey: z.string(),
27
74
  tags: z.array(z.string()).optional(),
28
75
  },
29
76
  },
30
77
  handler: async (_ctx, args) => {
31
- const r = resolveEditor(args.collection);
78
+ const r = resolveEditor(args.collection, args.scope);
32
79
  if (!r.ok)
33
80
  return r;
34
81
  const res = await r.editor.upsert(String(args.text), {
@@ -46,6 +93,7 @@ export function buildRagCollectionToolEntries(opts) {
46
93
  description: 'Supersede a document with a new corrected version. Marks the predecessor as superseded.',
47
94
  inputSchema: {
48
95
  collection: z.string(),
96
+ scope: scopeArg,
49
97
  predecessorId: z.string(),
50
98
  predecessorCanonicalKey: z.string(),
51
99
  newText: z.string(),
@@ -53,7 +101,7 @@ export function buildRagCollectionToolEntries(opts) {
53
101
  },
54
102
  },
55
103
  handler: async (_ctx, args) => {
56
- const r = resolveEditor(args.collection);
104
+ const r = resolveEditor(args.collection, args.scope);
57
105
  if (!r.ok)
58
106
  return r;
59
107
  const predecessorMeta = {
@@ -89,13 +137,14 @@ export function buildRagCollectionToolEntries(opts) {
89
137
  description: 'Mark a document as deprecated (idempotent).',
90
138
  inputSchema: {
91
139
  collection: z.string(),
140
+ scope: scopeArg,
92
141
  id: z.string(),
93
142
  canonicalKey: z.string(),
94
143
  reason: z.string(),
95
144
  },
96
145
  },
97
146
  handler: async (_ctx, args) => {
98
- const r = resolveEditor(args.collection);
147
+ const r = resolveEditor(args.collection, args.scope);
99
148
  if (!r.ok)
100
149
  return r;
101
150
  const meta = deprecateMetadata({ canonicalKey: String(args.canonicalKey) }, String(args.reason));
@@ -111,15 +160,15 @@ export function buildRagCollectionToolEntries(opts) {
111
160
  const listTool = {
112
161
  toolDefinition: {
113
162
  name: 'rag_list_collections',
114
- 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.',
115
164
  inputSchema: {
116
165
  scope: z.enum(['session', 'user', 'global']).optional(),
117
166
  provider: z.string().optional(),
118
167
  },
119
168
  },
120
169
  handler: async (_ctx, args) => {
121
- const metas = registry.list().filter((m) => {
122
- if (args.scope && m.scope !== args.scope)
170
+ const metas = addressable().filter((m) => {
171
+ if (args.scope && scopeOf(m) !== args.scope)
123
172
  return false;
124
173
  if (args.provider && m.providerName !== args.provider)
125
174
  return false;
@@ -132,59 +181,53 @@ export function buildRagCollectionToolEntries(opts) {
132
181
  toolDefinition: {
133
182
  name: 'rag_describe_collection',
134
183
  description: 'Return the metadata of a RAG collection by name.',
135
- inputSchema: { name: z.string() },
184
+ inputSchema: { name: z.string(), scope: scopeArg },
136
185
  },
137
186
  handler: async (_ctx, args) => {
138
- const name = String(args.name);
139
- const meta = registry.list().find((m) => m.name === name);
140
- if (!meta) {
141
- return { ok: false, error: `Collection '${name}' not found` };
142
- }
143
- return { ok: true, meta };
187
+ const r = resolve(args.name, args.scope);
188
+ return r.ok ? { ok: true, meta: r.meta } : r;
144
189
  },
145
190
  };
146
191
  const deleteTool = {
147
192
  toolDefinition: {
148
193
  name: 'rag_delete_collection',
149
194
  description: 'Delete a RAG collection you own (session or user scope).',
150
- inputSchema: { name: z.string() },
195
+ inputSchema: { name: z.string(), scope: scopeArg },
151
196
  },
152
- handler: async (ctx, args) => {
153
- const name = String(args.name);
154
- const meta = registry.list().find((m) => m.name === name);
155
- if (!meta) {
156
- return { ok: false, error: `Collection '${name}' not found` };
157
- }
158
- 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') {
159
204
  return {
160
205
  ok: false,
161
- error: `Global collections cannot be deleted via MCP`,
206
+ error: 'Global collections cannot be deleted via MCP',
162
207
  };
163
208
  }
164
- if (meta.scope === 'session') {
165
- if (!ctx.sessionId || ctx.sessionId !== meta.sessionId) {
166
- return {
167
- ok: false,
168
- error: `sessionId mismatch for collection '${name}'`,
169
- };
170
- }
171
- }
172
- if (meta.scope === 'user') {
173
- if (!ctx.userId || ctx.userId !== meta.userId) {
174
- return {
175
- ok: false,
176
- error: `userId mismatch for collection '${name}'`,
177
- };
178
- }
179
- }
180
- const res = await registry.deleteCollection(name);
209
+ const name = r.meta.name;
210
+ const res = await registry.deleteCollection(name, r.scope);
181
211
  if (res.ok)
182
212
  return { ok: true };
183
213
  if (res.error instanceof CollectionNotFoundError) {
184
214
  return { ok: false, error: res.error.message };
185
215
  }
186
- // The collection is unregistered whatever happened to its data: it is
187
- // gone for the caller, and the failure is reported as what it is.
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 };
221
+ }
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.
188
231
  return {
189
232
  ok: true,
190
233
  warning: `Collection '${name}' was removed, but its data could not be deleted: ${res.error.message}`,
@@ -204,38 +247,58 @@ export function buildRagCollectionToolEntries(opts) {
204
247
  const createTool = {
205
248
  toolDefinition: {
206
249
  name: 'rag_create_collection',
207
- 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.',
208
251
  inputSchema: {
209
252
  provider: z.string(),
210
253
  name: z.string(),
211
- 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']),
212
257
  displayName: z.string().optional(),
213
258
  description: z.string().optional(),
214
259
  tags: z.array(z.string()).optional(),
215
260
  },
216
261
  },
217
- handler: async (ctx, args) => {
262
+ handler: async (_ctx, args) => {
218
263
  const providerName = String(args.provider);
219
- const provider = providerRegistry.getProvider(providerName);
220
- if (!provider) {
264
+ if (!providerRegistry.getProvider(providerName)) {
221
265
  return {
222
266
  ok: false,
223
267
  error: `RAG provider '${providerName}' is not registered`,
224
268
  };
225
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 });
226
290
  const res = await registry.createCollection({
227
291
  providerName,
228
- collectionName: String(args.name),
229
- scope: args.scope,
230
- sessionId: ctx.sessionId,
231
- userId: ctx.userId,
292
+ collectionName: name,
232
293
  displayName: args.displayName,
233
294
  description: args.description,
234
295
  tags: args.tags,
296
+ ...owner,
297
+ ...(attributes !== undefined ? { attributes } : {}),
235
298
  });
236
299
  return res.ok
237
300
  ? { ok: true, meta: res.value }
238
- : { ok: false, error: res.error.message };
301
+ : { ok: false, code: res.error.code, error: res.error.message };
239
302
  },
240
303
  };
241
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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AA0DpC,MAAM,QAAQ,GAAG,CAAC;KACf,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;KACnC,QAAQ,EAAE;KACV,QAAQ,CACP,sGAAsG,CACvG,CAAC;AAEJ,MAAM,UAAU,6BAA6B,CAC3C,IAA8B;IAE9B,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAEpC,MAAM,OAAO,GAAG,CAAC,CAAoB,EAAsB,EAAE,CAC3D,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC;IAEtB,sEAAsE;IACtE,MAAM,WAAW,GAAG,GAAwB,EAAE,CAC5C,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC;QACnE,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,OAAO,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC;QACvE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEL;;;OAGG;IACH,MAAM,OAAO,GAAG,CACd,IAAa,EACb,KAAc,EAGJ,EAAE;QACZ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAC5C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QACxD,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAC1E,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,MAAM;oBACX,CAAC,CAAC,eAAe,IAAI,yBAAyB,MAAM,GAAG;oBACvD,CAAC,CAAC,eAAe,IAAI,aAAa;aACrC,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,uEAAuE;YACvE,2BAA2B;YAC3B,MAAM,SAAS,GAAG,IAAI,wBAAwB,CAC5C,IAAI,EACJ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CACrB,CAAC;YACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;QACvE,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CACpB,IAAa,EACb,KAAc,EAC8B,EAAE;QAC9C,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,CAAC,CAAC;QACpB,yEAAyE;QACzE,mDAAmD;QACnD,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACzB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,+CAA+C;aACvD,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAC1E,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,OAAO,GAAiB;QAC5B,cAAc,EAAE;YACd,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,yCAAyC;YACtD,WAAW,EAAE;gBACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;gBACtB,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;gBACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;aACrC;SACF;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC5B,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,CAAC,CAAC,EAAE;gBAAE,OAAO,CAAC,CAAC;YACpB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACnD,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;gBACvC,IAAI,EAAE,IAAI,CAAC,IAA4B;aACxC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,EAAE;gBACX,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE;gBAChC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9C,CAAC;KACF,CAAC;IAEF,MAAM,WAAW,GAAiB;QAChC,cAAc,EAAE;YACd,IAAI,EAAE,aAAa;YACnB,WAAW,EACT,yFAAyF;YAC3F,WAAW,EAAE;gBACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;gBACtB,KAAK,EAAE,QAAQ;gBACf,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;gBACzB,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE;gBACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;gBACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;aACnB;SACF;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC5B,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,CAAC,CAAC,EAAE;gBAAE,OAAO,CAAC,CAAC;YACpB,MAAM,eAAe,GAAG;gBACtB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC;aACnD,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBACzD,YAAY,EAAE,eAAe,CAAC,YAAY;aAC3C,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAElE,MAAM,EAAE,WAAW,EAAE,GAAG,uBAAuB,CAAC;gBAC9C,WAAW,EAAE,eAAe;gBAC5B,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;gBACzC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC3B,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC5B,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;gBACvC,GAAG,WAAW;gBACd,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;aAC/B,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAClE,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;gBACzC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;aACvB,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,MAAM,aAAa,GAAiB;QAClC,cAAc,EAAE;YACd,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,6CAA6C;YAC1D,WAAW,EAAE;gBACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;gBACtB,KAAK,EAAE,QAAQ;gBACf,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;gBACd,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;gBACxB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;aACnB;SACF;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC5B,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,CAAC,CAAC,EAAE;gBAAE,OAAO,CAAC,CAAC;YACpB,MAAM,IAAI,GAAG,iBAAiB,CAC5B,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAC3C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CACpB,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;gBACpC,GAAG,IAAI;gBACP,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;aACpB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,EAAE;gBACX,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE;gBAChC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9C,CAAC;KACF,CAAC;IAEF,MAAM,QAAQ,GAAiB;QAC7B,cAAc,EAAE;YACd,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EACT,sGAAsG;YACxG,WAAW,EAAE;gBACX,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAChC;SACF;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC5B,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvC,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK;oBAAE,OAAO,KAAK,CAAC;gBAC1D,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ;oBAAE,OAAO,KAAK,CAAC;gBACpE,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QAC1C,CAAC;KACF,CAAC;IAEF,MAAM,YAAY,GAAiB;QACjC,cAAc,EAAE;YACd,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE,kDAAkD;YAC/D,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;SACnD;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC5B,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;KACF,CAAC;IAEF,MAAM,UAAU,GAAiB;QAC/B,cAAc,EAAE;YACd,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,0DAA0D;YACvE,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;SACnD;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC5B,sEAAsE;YACtE,wCAAwC;YACxC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAAE,OAAO,CAAC,CAAC;YACpB,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACzB,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,8CAA8C;iBACtD,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,GAAG,CAAC,EAAE;gBAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,KAAK,YAAY,uBAAuB,EAAE,CAAC;gBACjD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACjD,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,YAAY,wBAAwB,EAAE,CAAC;gBAClD,uEAAuE;gBACvE,qEAAqE;gBACrE,qCAAqC;gBACrC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACjD,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,YAAY,sBAAsB,EAAE,CAAC;gBAChD,kEAAkE;gBAClE,oEAAoE;gBACpE,qEAAqE;gBACrE,0EAA0E;gBAC1E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACvE,CAAC;YACD,yEAAyE;YACzE,2DAA2D;YAC3D,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,eAAe,IAAI,qDAAqD,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE;aACrG,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,MAAM,KAAK,GAAmB;QAC5B,OAAO;QACP,WAAW;QACX,aAAa;QACb,QAAQ;QACR,YAAY;QACZ,UAAU;KACX,CAAC;IAEF,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC/C,MAAM,UAAU,GAAiB;YAC/B,cAAc,EAAE;gBACd,IAAI,EAAE,uBAAuB;gBAC7B,WAAW,EACT,uEAAuE;gBACzE,WAAW,EAAE;oBACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;oBACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;oBAChB,8DAA8D;oBAC9D,oEAAoE;oBACpE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;oBAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;oBAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;oBAClC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;iBACrC;aACF;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;gBAC5B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3C,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;oBAChD,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,KAAK,EAAE,iBAAiB,YAAY,qBAAqB;qBAC1D,CAAC;gBACJ,CAAC;gBACD,sEAAsE;gBACtE,mEAAmE;gBACnE,IAAI,KAAyB,CAAC;gBAC9B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC7B,KAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAC9D,CAAC;qBAAM,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;oBACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACrB,OAAO;4BACL,EAAE,EAAE,KAAK;4BACT,KAAK,EACH,uEAAuE;yBAC1E,CAAC;oBACJ,CAAC;oBACD,KAAK,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC;gBACnE,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;gBAC5D,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC;oBAC1C,YAAY;oBACZ,cAAc,EAAE,IAAI;oBACpB,WAAW,EAAE,IAAI,CAAC,WAAiC;oBACnD,WAAW,EAAE,IAAI,CAAC,WAAiC;oBACnD,IAAI,EAAE,IAAI,CAAC,IAA4B;oBACvC,GAAG,KAAK;oBACR,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpD,CAAC,CAAC;gBACH,OAAO,GAAG,CAAC,EAAE;oBACX,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE;oBAC/B,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACpE,CAAC;SACF,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -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);
@@ -1 +1 @@
1
- {"version":3,"file":"base-provider.js","sourceRoot":"","sources":["../../../src/rag/providers/base-provider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,OAAgB,mBAAmB;IAM7B,iBAAiB,CAIT;IAWR,UAAU,CAAC,KAAyB;QAC5C,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QAC3E,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;IAES,cAAc,CAAC,IAIxB;QACC,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/C,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,sBAAsB,EAAE,CAAC;IACtC,CAAC;IAES,WAAW,CAAC,GAAS,EAAE,UAAuB;QACtD,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,CAAC,IAAI,4DAA4D,CACnF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;CACF"}
1
+ {"version":3,"file":"base-provider.js","sourceRoot":"","sources":["../../../src/rag/providers/base-provider.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,OAAgB,mBAAmB;IAM7B,iBAAiB,CAIT;IAOR,UAAU,CAAC,KAAyB;QAC5C,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QAC3E,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACO,kBAAkB,CAC1B,IAAwC;QAExC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,EAAE;YAAE,OAAO,UAAU,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAES,cAAc,CAAC,IAIxB;QACC,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/C,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,sBAAsB,EAAE,CAAC;IACtC,CAAC;IAES,WAAW,CAAC,GAAS,EAAE,UAAuB;QACtD,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,CAAC,IAAI,4DAA4D,CACnF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
- import type { IIdStrategy, IRag, IRagEditor, RagCollectionScope } from '../../interfaces/rag.js';
2
- import type { RagError, Result } from '../../interfaces/types.js';
1
+ import type { IIdStrategy, IRag, IRagEditor, RagCollectionScope, RagProviderCreateCollectionOptions } from '../../interfaces/rag.js';
2
+ import type { Result } from '../../interfaces/types.js';
3
+ import { RagError } from '../../interfaces/types.js';
3
4
  import { type InMemoryRagConfig } from '../in-memory-rag.js';
4
5
  import { AbstractRagProvider } from './base-provider.js';
5
6
  export interface InMemoryRagProviderConfig {
@@ -25,11 +26,7 @@ export declare class InMemoryRagProvider extends AbstractRagProvider {
25
26
  readonly supportedScopes: readonly RagCollectionScope[];
26
27
  private readonly inMemoryCfg?;
27
28
  constructor(cfg: InMemoryRagProviderConfig);
28
- createCollection(_name: string, opts: {
29
- scope: RagCollectionScope;
30
- sessionId?: string;
31
- userId?: string;
32
- }): Promise<Result<{
29
+ createCollection(_name: string, opts: RagProviderCreateCollectionOptions): Promise<Result<{
33
30
  rag: IRag;
34
31
  editor: IRagEditor;
35
32
  }, RagError>>;
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-rag-provider.d.ts","sourceRoot":"","sources":["../../../src/rag/providers/in-memory-rag-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,IAAI,EACJ,UAAU,EACV,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,KAAK,EAAE,kBAAkB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,KAAK,WAAW,CAAC;CACnB;AAED,qBAAa,mBAAoB,SAAQ,mBAAmB;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAExD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAoB;gBAErC,GAAG,EAAE,yBAAyB;IASpC,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,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;CAOhE"}
1
+ {"version":3,"file":"in-memory-rag-provider.d.ts","sourceRoot":"","sources":["../../../src/rag/providers/in-memory-rag-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,IAAI,EACJ,UAAU,EACV,kBAAkB,EAClB,kCAAkC,EACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,KAAK,EAAE,kBAAkB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,KAAK,WAAW,CAAC;CACnB;AAED,qBAAa,mBAAoB,SAAQ,mBAAmB;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAExD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAoB;gBAErC,GAAG,EAAE,yBAAyB;IASpC,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,kCAAkC,GACvC,OAAO,CAAC,MAAM,CAAC;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,EAAE,QAAQ,CAAC,CAAC;CAgBhE"}
@@ -1,3 +1,4 @@
1
+ import { RagError } from '../../interfaces/types.js';
1
2
  import { InMemoryRag } from '../in-memory-rag.js';
2
3
  import { AbstractRagProvider } from './base-provider.js';
3
4
  export class InMemoryRagProvider extends AbstractRagProvider {
@@ -16,11 +17,17 @@ export class InMemoryRagProvider extends AbstractRagProvider {
16
17
  this.idStrategyFactory = cfg.idStrategyFactory;
17
18
  }
18
19
  async createCollection(_name, opts) {
19
- const scopeCheck = this.checkScope(opts.scope);
20
- if (!scopeCheck.ok)
21
- return scopeCheck;
20
+ const checked = this.checkCreateOptions(opts);
21
+ if (!checked.ok)
22
+ return checked;
23
+ if (opts.adoptExisting === true) {
24
+ return {
25
+ ok: false,
26
+ error: new RagError(`Provider '${this.name}' keeps no store outside this process, so there is nothing to adopt`, 'RAG_CREATE_ERROR'),
27
+ };
28
+ }
22
29
  const rag = new InMemoryRag(this.inMemoryCfg);
23
- const editor = this.buildEditor(rag, this.pickIdStrategy(opts));
30
+ const editor = this.buildEditor(rag, this.pickIdStrategy(checked.value));
24
31
  return { ok: true, value: { rag, editor } };
25
32
  }
26
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-rag-provider.js","sourceRoot":"","sources":["../../../src/rag/providers/in-memory-rag-provider.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAA0B,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAmBzD,MAAM,OAAO,mBAAoB,SAAQ,mBAAmB;IACjD,IAAI,CAAS;IACb,IAAI,GAAG,QAAQ,CAAC;IAChB,QAAQ,CAAU;IAClB,eAAe,CAAgC;IAEvC,WAAW,CAAqB;IAEjD,YAAY,GAA8B;QACxC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,iBAAiB,CAAC;QACzC,IAAI,GAAG,CAAC,iBAAiB;YAAE,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,KAAa,EACb,IAIC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,EAAE;YAAE,OAAO,UAAU,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;IAC9C,CAAC;CACF"}
1
+ {"version":3,"file":"in-memory-rag-provider.js","sourceRoot":"","sources":["../../../src/rag/providers/in-memory-rag-provider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,WAAW,EAA0B,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAmBzD,MAAM,OAAO,mBAAoB,SAAQ,mBAAmB;IACjD,IAAI,CAAS;IACb,IAAI,GAAG,QAAQ,CAAC;IAChB,QAAQ,CAAU;IAClB,eAAe,CAAgC;IAEvC,WAAW,CAAqB;IAEjD,YAAY,GAA8B;QACxC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,iBAAiB,CAAC;QACzC,IAAI,GAAG,CAAC,iBAAiB;YAAE,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,KAAa,EACb,IAAwC;QAExC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,OAAO,CAAC;QAChC,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAChC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,IAAI,QAAQ,CACjB,aAAa,IAAI,CAAC,IAAI,qEAAqE,EAC3F,kBAAkB,CACnB;aACF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;IAC9C,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
- import type { IEmbedder, IIdStrategy, IRag, IRagEditor, RagCollectionScope } from '../../interfaces/rag.js';
2
- import type { RagError, Result } from '../../interfaces/types.js';
1
+ import type { IEmbedder, IIdStrategy, IRag, IRagEditor, RagCollectionScope, RagProviderCreateCollectionOptions } from '../../interfaces/rag.js';
2
+ import type { Result } from '../../interfaces/types.js';
3
+ import { RagError } from '../../interfaces/types.js';
3
4
  import { type VectorRagConfig } from '../vector-rag.js';
4
5
  import { AbstractRagProvider } from './base-provider.js';
5
6
  export interface VectorRagProviderConfig {
@@ -27,11 +28,7 @@ export declare class VectorRagProvider extends AbstractRagProvider {
27
28
  private readonly embedder;
28
29
  private readonly vectorRagConfig?;
29
30
  constructor(cfg: VectorRagProviderConfig);
30
- createCollection(_name: string, opts: {
31
- scope: RagCollectionScope;
32
- sessionId?: string;
33
- userId?: string;
34
- }): Promise<Result<{
31
+ createCollection(_name: string, opts: RagProviderCreateCollectionOptions): Promise<Result<{
35
32
  rag: IRag;
36
33
  editor: IRagEditor;
37
34
  }, RagError>>;
@@ -1 +1 @@
1
- {"version":3,"file":"vector-rag-provider.d.ts","sourceRoot":"","sources":["../../../src/rag/providers/vector-rag-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,IAAI,EACJ,UAAU,EACV,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,KAAK,EAAE,kBAAkB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,KAAK,WAAW,CAAC;CACnB;AAED,qBAAa,iBAAkB,SAAQ,mBAAmB;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAExD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAkB;gBAEvC,GAAG,EAAE,uBAAuB;IAUlC,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,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;CAOhE"}
1
+ {"version":3,"file":"vector-rag-provider.d.ts","sourceRoot":"","sources":["../../../src/rag/providers/vector-rag-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,IAAI,EACJ,UAAU,EACV,kBAAkB,EAClB,kCAAkC,EACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,KAAK,EAAE,kBAAkB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,KAAK,WAAW,CAAC;CACnB;AAED,qBAAa,iBAAkB,SAAQ,mBAAmB;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAExD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAkB;gBAEvC,GAAG,EAAE,uBAAuB;IAUlC,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,kCAAkC,GACvC,OAAO,CAAC,MAAM,CAAC;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,EAAE,QAAQ,CAAC,CAAC;CAgBhE"}