@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
@@ -1,3 +1,4 @@
1
+ import { RagError } from '../../interfaces/types.js';
1
2
  import { VectorRag } from '../vector-rag.js';
2
3
  import { AbstractRagProvider } from './base-provider.js';
3
4
  export class VectorRagProvider extends AbstractRagProvider {
@@ -18,11 +19,17 @@ export class VectorRagProvider extends AbstractRagProvider {
18
19
  this.idStrategyFactory = cfg.idStrategyFactory;
19
20
  }
20
21
  async createCollection(_name, opts) {
21
- const scopeCheck = this.checkScope(opts.scope);
22
- if (!scopeCheck.ok)
23
- return scopeCheck;
22
+ const checked = this.checkCreateOptions(opts);
23
+ if (!checked.ok)
24
+ return checked;
25
+ if (opts.adoptExisting === true) {
26
+ return {
27
+ ok: false,
28
+ error: new RagError(`Provider '${this.name}' keeps no store outside this process, so there is nothing to adopt`, 'RAG_CREATE_ERROR'),
29
+ };
30
+ }
24
31
  const rag = new VectorRag(this.embedder, this.vectorRagConfig ?? {});
25
- const editor = this.buildEditor(rag, this.pickIdStrategy(opts));
32
+ const editor = this.buildEditor(rag, this.pickIdStrategy(checked.value));
26
33
  return { ok: true, value: { rag, editor } };
27
34
  }
28
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vector-rag-provider.js","sourceRoot":"","sources":["../../../src/rag/providers/vector-rag-provider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAwB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAoBzD,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IAC/C,IAAI,CAAS;IACb,IAAI,GAAG,QAAQ,CAAC;IAChB,QAAQ,CAAU;IAClB,eAAe,CAAgC;IAEvC,QAAQ,CAAY;IACpB,eAAe,CAAmB;IAEnD,YAAY,GAA4B;QACtC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC7B,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,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;QAC3C,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,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QACrE,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":"vector-rag-provider.js","sourceRoot":"","sources":["../../../src/rag/providers/vector-rag-provider.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAwB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAoBzD,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IAC/C,IAAI,CAAS;IACb,IAAI,GAAG,QAAQ,CAAC;IAChB,QAAQ,CAAU;IAClB,eAAe,CAAgC;IAEvC,QAAQ,CAAY;IACpB,eAAe,CAAmB;IAEnD,YAAY,GAA4B;QACtC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC7B,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,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;QAC3C,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,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QACrE,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,2 +1,3 @@
1
1
  export { SimpleRagRegistry } from './simple-rag-registry.js';
2
+ export { ragStoreKey } from './store-key.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rag/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rag/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { SimpleRagRegistry } from './simple-rag-registry.js';
2
+ export { ragStoreKey } from './store-key.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rag/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rag/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,5 +1,6 @@
1
- import type { IRag, IRagEditor, IRagProviderRegistry, IRagRegistry, RagCollectionMeta, RagCollectionScope } from '../../interfaces/rag.js';
1
+ import type { IRag, IRagEditor, IRagProviderRegistry, IRagRegistry, RagCollectionMeta, RagCollectionRecord, RagCollectionScope, RagRegistryCreateCollectionParams } from '../../interfaces/rag.js';
2
2
  import { RagError, type Result } from '../../interfaces/types.js';
3
+ import { AmbiguousCollectionError } from '../corrections/errors.js';
3
4
  interface Entry {
4
5
  rag: IRag;
5
6
  editor?: IRagEditor;
@@ -7,52 +8,95 @@ interface Entry {
7
8
  /** The name its provider knows the store by; see createCollection. */
8
9
  storeName: string;
9
10
  }
11
+ type Found = {
12
+ ok: true;
13
+ found?: {
14
+ key: string;
15
+ entry: Entry;
16
+ };
17
+ } | {
18
+ ok: false;
19
+ error: AmbiguousCollectionError;
20
+ };
10
21
  export declare class SimpleRagRegistry implements IRagRegistry {
22
+ /** Keyed by keyOf(scope, name). */
11
23
  protected readonly entries: Map<string, Entry>;
12
24
  /**
13
- * Store names whose deletion is still running, with that deletion. A store
14
- * name is released only once its deletion has finished: a collection created
15
- * under it meanwhile waits, so the deletion cannot remove what it writes.
25
+ * Keys (scope, name) whose deletion is running. Absent to get, getEditor and
26
+ * list, so nothing reaches the collection; taken for createCollection,
27
+ * register and adopt, which refuse it — a taken name is refused, not queued
28
+ * (§6.3). The reservation is what lets a failed record deletion restore the
29
+ * entry: without it a creation could take the key in between.
16
30
  */
17
- protected readonly deletions: Map<string, Promise<unknown>>;
18
- /** Collection names being created, held until registered or refused. */
31
+ protected readonly deleting: Set<string>;
32
+ /** Keys (scope, name) being created, held until inserted or refused. */
19
33
  protected readonly creating: Set<string>;
20
34
  protected providerRegistry?: IRagProviderRegistry;
21
35
  protected mutationListener?: () => void;
22
36
  setProviderRegistry(providerRegistry: IRagProviderRegistry): void;
23
37
  setMutationListener(listener: () => void): void;
24
38
  private fireMutation;
39
+ /**
40
+ * The entry `name` addresses: with a scope, that scope's; without one, the
41
+ * entry of the one scope holding it — or AmbiguousCollectionError naming
42
+ * every scope that does. Never a silent precedence between scopes.
43
+ */
44
+ protected find(name: string, scope?: RagCollectionScope): Found;
45
+ private findOrThrow;
46
+ /** A key is taken while an entry holds it, or a creation or deletion runs. */
47
+ protected isTaken(key: string): boolean;
48
+ private insert;
25
49
  register(name: string, rag: IRag, editor?: IRagEditor, meta?: Omit<RagCollectionMeta, 'name' | 'editable'>): void;
26
- unregister(name: string): boolean;
27
- get(name: string): IRag | undefined;
28
- getEditor(name: string): IRagEditor | undefined;
50
+ /**
51
+ * Register a collection whose store EXISTS, from its catalog record (§6.3):
52
+ * under its logical name, with the store name the record gives. Creates
53
+ * nothing and asks no provider for anything. See IRagRegistry.adopt.
54
+ */
55
+ adopt(record: RagCollectionRecord, rag: IRag, editor?: IRagEditor, providerName?: string): void;
56
+ unregister(name: string, scope?: RagCollectionScope): boolean;
57
+ get(name: string, scope?: RagCollectionScope): IRag | undefined;
58
+ getEditor(name: string, scope?: RagCollectionScope): IRagEditor | undefined;
59
+ /**
60
+ * Swap the store handle of an existing entry, keeping everything else — its
61
+ * editor, its provider, its store name and its meta — and tell the mutation
62
+ * listener. For a decorator such as the builder's circuit-breaker
63
+ * FallbackRag: re-registering would set the store name to the logical name
64
+ * and drop the provider, so a hydrated collection's delete would miss its
65
+ * store and its catalog record would come back (§6.3). The scope is
66
+ * required, so the lookup is never ambiguous. False when the entry is
67
+ * absent — including one currently reserved by an in-flight deletion (it is
68
+ * gone from `entries` already); never re-inserts.
69
+ */
70
+ replaceRag(name: string, scope: RagCollectionScope, rag: IRag): boolean;
29
71
  list(): readonly RagCollectionMeta[];
30
- createCollection(params: {
31
- providerName: string;
32
- collectionName: string;
33
- scope: RagCollectionScope;
34
- sessionId?: string;
35
- userId?: string;
36
- displayName?: string;
37
- description?: string;
38
- tags?: readonly string[];
39
- }): Promise<Result<RagCollectionMeta, RagError>>;
72
+ createCollection(params: RagRegistryCreateCollectionParams): Promise<Result<RagCollectionMeta, RagError>>;
40
73
  private createUnder;
41
74
  /**
42
75
  * Delete a collection.
43
76
  *
44
- * It is unregistered first, whatever follows, so nothing can reach it again.
45
- * Then its data goes: a collection a provider created is deleted by that
46
- * provider's `deleteCollection` or, where the provider has none, emptied
47
- * through its store's `writer().clearAll()`. A collection registered directly,
48
- * with no provider, is only unregistered — its store belongs to whoever
49
- * registered it. Nothing is retried. A failure comes back as the error, with
50
- * the collection already unregistered; its data may remain in the backend,
51
- * under a store name no other session or user is given (see storeNameFor).
52
- * The store name itself is held until the deletion has finished (see
53
- * deletions).
77
+ * It is unregistered first and its key reserved, so nothing reaches it and
78
+ * nothing takes its name while it is being deleted. Then its data goes: a
79
+ * collection a provider created is deleted by that provider's
80
+ * `deleteCollection` (which cannot throw — see deleteData) — which removes
81
+ * its catalog record before its data — or, where the provider has none,
82
+ * emptied through its store's `writer().clearAll()`. A collection
83
+ * registered without a provider is only unregistered. Nothing is retried.
84
+ *
85
+ * On CatalogRecordDeleteError nothing was deleted: record and data are both
86
+ * intact, so the same entry is registered again before the reservation ends,
87
+ * and the same call can be retried in place. Any other failure comes back as
88
+ * the error with the collection unregistered; its data may remain under a
89
+ * store name no other session or user is given (see storeNameFor).
90
+ *
91
+ * The reservation is released — and the entry restored first, if this was a
92
+ * CatalogRecordDeleteError — on every path, including a throwing
93
+ * `mutationListener`: that listener is consumer-injected and its own
94
+ * exception must never pin the key in `deleting` forever, nor skip the
95
+ * restore. Once state is settled, a listener exception is rethrown (so the
96
+ * caller sees it — never silently dropped); the delete's own Result is
97
+ * returned only when notifying succeeded.
54
98
  */
55
- deleteCollection(name: string): Promise<Result<void, RagError>>;
99
+ deleteCollection(name: string, scope?: RagCollectionScope): Promise<Result<void, RagError>>;
56
100
  private deleteData;
57
101
  /**
58
102
  * Delete every session-scoped collection of this session. Goes through all of
@@ -1 +1 @@
1
- {"version":3,"file":"simple-rag-registry.d.ts","sourceRoot":"","sources":["../../../src/rag/registry/simple-rag-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EACJ,UAAU,EAEV,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAyClE,UAAU,KAAK;IACb,GAAG,EAAE,IAAI,CAAC;IACV,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,iBAAiB,CAAC;IACxB,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,iBAAkB,YAAW,YAAY;IACpD,SAAS,CAAC,QAAQ,CAAC,OAAO,qBAA4B;IACtD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,gCAAuC;IACnE,wEAAwE;IACxE,SAAS,CAAC,QAAQ,CAAC,QAAQ,cAAqB;IAChD,SAAS,CAAC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IAClD,SAAS,CAAC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAExC,mBAAmB,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,IAAI;IAIjE,mBAAmB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAI/C,OAAO,CAAC,YAAY;IAIpB,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,IAAI,EACT,MAAM,CAAC,EAAE,UAAU,EACnB,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,UAAU,CAAC,GAClD,IAAI;IAyBP,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAInC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI/C,IAAI,IAAI,SAAS,iBAAiB,EAAE;IAI9B,gBAAgB,CAAC,MAAM,EAAE;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE,kBAAkB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KAC1B,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;YAyClC,WAAW;IA6DzB;;;;;;;;;;;;;OAaG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAkBvD,UAAU;IA2CxB;;;;OAIG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;CAmBvE"}
1
+ {"version":3,"file":"simple-rag-registry.d.ts","sourceRoot":"","sources":["../../../src/rag/registry/simple-rag-registry.ts"],"names":[],"mappings":"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"}