@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 +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,10 +1,17 @@
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 {
6
7
  name: string;
7
8
  editable?: boolean;
9
+ /**
10
+ * Scopes this provider accepts. Default `['session']`: its stores live in
11
+ * this process and are gone after a restart, so whether a longer-lived scope
12
+ * fits is the host's call.
13
+ */
14
+ supportedScopes?: readonly RagCollectionScope[];
8
15
  inMemoryRagConfig?: InMemoryRagConfig;
9
16
  idStrategyFactory?: (opts: {
10
17
  scope: RagCollectionScope;
@@ -16,14 +23,10 @@ export declare class InMemoryRagProvider extends AbstractRagProvider {
16
23
  readonly name: string;
17
24
  readonly kind = "vector";
18
25
  readonly editable: boolean;
19
- readonly supportedScopes: readonly ["session"];
26
+ readonly supportedScopes: readonly RagCollectionScope[];
20
27
  private readonly inMemoryCfg?;
21
28
  constructor(cfg: InMemoryRagProviderConfig);
22
- createCollection(_name: string, opts: {
23
- scope: RagCollectionScope;
24
- sessionId?: string;
25
- userId?: string;
26
- }): Promise<Result<{
29
+ createCollection(_name: string, opts: RagProviderCreateCollectionOptions): Promise<Result<{
27
30
  rag: IRag;
28
31
  editor: IRagEditor;
29
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,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,uBAAwB;IAEhD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAoB;gBAErC,GAAG,EAAE,yBAAyB;IAQpC,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,25 +1,33 @@
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 {
4
5
  name;
5
6
  kind = 'vector';
6
7
  editable;
7
- supportedScopes = ['session'];
8
+ supportedScopes;
8
9
  inMemoryCfg;
9
10
  constructor(cfg) {
10
11
  super();
11
12
  this.name = cfg.name;
12
13
  this.editable = cfg.editable ?? true;
14
+ this.supportedScopes = cfg.supportedScopes ?? ['session'];
13
15
  this.inMemoryCfg = cfg.inMemoryRagConfig;
14
16
  if (cfg.idStrategyFactory)
15
17
  this.idStrategyFactory = cfg.idStrategyFactory;
16
18
  }
17
19
  async createCollection(_name, opts) {
18
- const scopeCheck = this.checkScope(opts.scope);
19
- if (!scopeCheck.ok)
20
- 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
+ }
21
29
  const rag = new InMemoryRag(this.inMemoryCfg);
22
- const editor = this.buildEditor(rag, this.pickIdStrategy(opts));
30
+ const editor = this.buildEditor(rag, this.pickIdStrategy(checked.value));
23
31
  return { ok: true, value: { rag, editor } };
24
32
  }
25
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;AAazD,MAAM,OAAO,mBAAoB,SAAQ,mBAAmB;IACjD,IAAI,CAAS;IACb,IAAI,GAAG,QAAQ,CAAC;IAChB,QAAQ,CAAU;IAClB,eAAe,GAAG,CAAC,SAAS,CAAU,CAAC;IAE/B,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,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,11 +1,18 @@
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 {
6
7
  name: string;
7
8
  embedder: IEmbedder;
8
9
  editable?: boolean;
10
+ /**
11
+ * Scopes this provider accepts. Default `['session']`: its stores live in
12
+ * this process and are gone after a restart, so whether a longer-lived scope
13
+ * fits is the host's call.
14
+ */
15
+ supportedScopes?: readonly RagCollectionScope[];
9
16
  vectorRagConfig?: VectorRagConfig;
10
17
  idStrategyFactory?: (opts: {
11
18
  scope: RagCollectionScope;
@@ -17,15 +24,11 @@ export declare class VectorRagProvider extends AbstractRagProvider {
17
24
  readonly name: string;
18
25
  readonly kind = "vector";
19
26
  readonly editable: boolean;
20
- readonly supportedScopes: readonly ["session"];
27
+ readonly supportedScopes: readonly RagCollectionScope[];
21
28
  private readonly embedder;
22
29
  private readonly vectorRagConfig?;
23
30
  constructor(cfg: VectorRagProviderConfig);
24
- createCollection(_name: string, opts: {
25
- scope: RagCollectionScope;
26
- sessionId?: string;
27
- userId?: string;
28
- }): Promise<Result<{
31
+ createCollection(_name: string, opts: RagProviderCreateCollectionOptions): Promise<Result<{
29
32
  rag: IRag;
30
33
  editor: IRagEditor;
31
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,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,uBAAwB;IAEhD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAkB;gBAEvC,GAAG,EAAE,uBAAuB;IASlC,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"}
@@ -1,10 +1,11 @@
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 {
4
5
  name;
5
6
  kind = 'vector';
6
7
  editable;
7
- supportedScopes = ['session'];
8
+ supportedScopes;
8
9
  embedder;
9
10
  vectorRagConfig;
10
11
  constructor(cfg) {
@@ -12,16 +13,23 @@ export class VectorRagProvider extends AbstractRagProvider {
12
13
  this.name = cfg.name;
13
14
  this.embedder = cfg.embedder;
14
15
  this.editable = cfg.editable ?? true;
16
+ this.supportedScopes = cfg.supportedScopes ?? ['session'];
15
17
  this.vectorRagConfig = cfg.vectorRagConfig;
16
18
  if (cfg.idStrategyFactory)
17
19
  this.idStrategyFactory = cfg.idStrategyFactory;
18
20
  }
19
21
  async createCollection(_name, opts) {
20
- const scopeCheck = this.checkScope(opts.scope);
21
- if (!scopeCheck.ok)
22
- 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
+ }
23
31
  const rag = new VectorRag(this.embedder, this.vectorRagConfig ?? {});
24
- const editor = this.buildEditor(rag, this.pickIdStrategy(opts));
32
+ const editor = this.buildEditor(rag, this.pickIdStrategy(checked.value));
25
33
  return { ok: true, value: { rag, editor } };
26
34
  }
27
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;AAczD,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IAC/C,IAAI,CAAS;IACb,IAAI,GAAG,QAAQ,CAAC;IAChB,QAAQ,CAAU;IAClB,eAAe,GAAG,CAAC,SAAS,CAAU,CAAC;IAE/B,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,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,33 +1,108 @@
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;
6
7
  meta: RagCollectionMeta;
8
+ /** The name its provider knows the store by; see createCollection. */
9
+ storeName: string;
7
10
  }
11
+ type Found = {
12
+ ok: true;
13
+ found?: {
14
+ key: string;
15
+ entry: Entry;
16
+ };
17
+ } | {
18
+ ok: false;
19
+ error: AmbiguousCollectionError;
20
+ };
8
21
  export declare class SimpleRagRegistry implements IRagRegistry {
22
+ /** Keyed by keyOf(scope, name). */
9
23
  protected readonly entries: Map<string, Entry>;
24
+ /**
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.
30
+ */
31
+ protected readonly deleting: Set<string>;
32
+ /** Keys (scope, name) being created, held until inserted or refused. */
33
+ protected readonly creating: Set<string>;
10
34
  protected providerRegistry?: IRagProviderRegistry;
11
35
  protected mutationListener?: () => void;
12
36
  setProviderRegistry(providerRegistry: IRagProviderRegistry): void;
13
37
  setMutationListener(listener: () => void): void;
14
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;
15
49
  register(name: string, rag: IRag, editor?: IRagEditor, meta?: Omit<RagCollectionMeta, 'name' | 'editable'>): void;
16
- unregister(name: string): boolean;
17
- get(name: string): IRag | undefined;
18
- 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;
19
71
  list(): readonly RagCollectionMeta[];
20
- createCollection(params: {
21
- providerName: string;
22
- collectionName: string;
23
- scope: RagCollectionScope;
24
- sessionId?: string;
25
- userId?: string;
26
- displayName?: string;
27
- description?: string;
28
- tags?: readonly string[];
29
- }): Promise<Result<RagCollectionMeta, RagError>>;
30
- deleteCollection(name: string): Promise<Result<void, RagError>>;
72
+ createCollection(params: RagRegistryCreateCollectionParams): Promise<Result<RagCollectionMeta, RagError>>;
73
+ private createUnder;
74
+ /**
75
+ * Delete a collection.
76
+ *
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.
98
+ */
99
+ deleteCollection(name: string, scope?: RagCollectionScope): Promise<Result<void, RagError>>;
100
+ private deleteData;
101
+ /**
102
+ * Delete every session-scoped collection of this session. Goes through all of
103
+ * them even when one fails — each is unregistered regardless (see
104
+ * deleteCollection) — and returns the failures together.
105
+ */
31
106
  closeSession(sessionId: string): Promise<Result<void, RagError>>;
32
107
  }
33
108
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"simple-rag-registry.d.ts","sourceRoot":"","sources":["../../../src/rag/registry/simple-rag-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,UAAU,EACV,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAOlE,UAAU,KAAK;IACb,GAAG,EAAE,IAAI,CAAC;IACV,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,qBAAa,iBAAkB,YAAW,YAAY;IACpD,SAAS,CAAC,QAAQ,CAAC,OAAO,qBAA4B;IACtD,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;IAwBP,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;IA+E1C,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAkB/D,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;CAYvE"}
1
+ {"version":3,"file":"simple-rag-registry.d.ts","sourceRoot":"","sources":["../../../src/rag/registry/simple-rag-registry.ts"],"names":[],"mappings":"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"}