maskweaver 0.7.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.
- package/assets/agents/dummy-human.md +31 -0
- package/assets/agents/dummy-template.md +57 -0
- package/assets/agents/mask-master.md +225 -0
- package/assets/masks/ai-ml/andrew-ng.yaml +207 -0
- package/assets/masks/architecture/jeff-dean.yaml +208 -0
- package/assets/masks/index.json +65 -0
- package/assets/masks/software-engineering/dan-abramov.yaml +188 -0
- package/assets/masks/software-engineering/kent-beck.yaml +191 -0
- package/assets/masks/software-engineering/linus-torvalds.yaml +152 -0
- package/assets/masks/software-engineering/martin-fowler.yaml +173 -0
- package/dist/cli/install.d.ts +11 -0
- package/dist/cli/install.d.ts.map +1 -0
- package/dist/cli/install.js +299 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/context/config.d.ts +38 -0
- package/dist/context/config.d.ts.map +1 -0
- package/dist/context/config.js +55 -0
- package/dist/context/config.js.map +1 -0
- package/dist/context/feature.d.ts +49 -0
- package/dist/context/feature.d.ts.map +1 -0
- package/dist/context/feature.js +290 -0
- package/dist/context/feature.js.map +1 -0
- package/dist/context/files.d.ts +17 -0
- package/dist/context/files.d.ts.map +1 -0
- package/dist/context/files.js +50 -0
- package/dist/context/files.js.map +1 -0
- package/dist/context/index.d.ts +14 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +18 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/project.d.ts +26 -0
- package/dist/context/project.d.ts.map +1 -0
- package/dist/context/project.js +95 -0
- package/dist/context/project.js.map +1 -0
- package/dist/context/types.d.ts +72 -0
- package/dist/context/types.d.ts.map +1 -0
- package/dist/context/types.js +14 -0
- package/dist/context/types.js.map +1 -0
- package/dist/context/utils.d.ts +22 -0
- package/dist/context/utils.d.ts.map +1 -0
- package/dist/context/utils.js +40 -0
- package/dist/context/utils.js.map +1 -0
- package/dist/core/engine/promptBuilder.d.ts +32 -0
- package/dist/core/engine/promptBuilder.d.ts.map +1 -0
- package/dist/core/engine/promptBuilder.js +117 -0
- package/dist/core/engine/promptBuilder.js.map +1 -0
- package/dist/core/index.d.ts +11 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +13 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/loader/MaskLoader.d.ts +47 -0
- package/dist/core/loader/MaskLoader.d.ts.map +1 -0
- package/dist/core/loader/MaskLoader.js +132 -0
- package/dist/core/loader/MaskLoader.js.map +1 -0
- package/dist/core/schema/types.d.ts +128 -0
- package/dist/core/schema/types.d.ts.map +1 -0
- package/dist/core/schema/types.js +8 -0
- package/dist/core/schema/types.js.map +1 -0
- package/dist/core/schema/validator.d.ts +290 -0
- package/dist/core/schema/validator.d.ts.map +1 -0
- package/dist/core/schema/validator.js +105 -0
- package/dist/core/schema/validator.js.map +1 -0
- package/dist/i18n/index.d.ts +33 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +57 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/locales/en.json +16 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/chunking.d.ts +35 -0
- package/dist/memory/chunking.d.ts.map +1 -0
- package/dist/memory/chunking.js +168 -0
- package/dist/memory/chunking.js.map +1 -0
- package/dist/memory/core.d.ts +73 -0
- package/dist/memory/core.d.ts.map +1 -0
- package/dist/memory/core.js +186 -0
- package/dist/memory/core.js.map +1 -0
- package/dist/memory/index.d.ts +21 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +22 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/indexer.d.ts +37 -0
- package/dist/memory/indexer.d.ts.map +1 -0
- package/dist/memory/indexer.js +162 -0
- package/dist/memory/indexer.js.map +1 -0
- package/dist/memory/providers/examples.d.ts +17 -0
- package/dist/memory/providers/examples.d.ts.map +1 -0
- package/dist/memory/providers/examples.js +271 -0
- package/dist/memory/providers/examples.js.map +1 -0
- package/dist/memory/providers/factory.d.ts +49 -0
- package/dist/memory/providers/factory.d.ts.map +1 -0
- package/dist/memory/providers/factory.js +111 -0
- package/dist/memory/providers/factory.js.map +1 -0
- package/dist/memory/providers/index.d.ts +34 -0
- package/dist/memory/providers/index.d.ts.map +1 -0
- package/dist/memory/providers/index.js +35 -0
- package/dist/memory/providers/index.js.map +1 -0
- package/dist/memory/providers/ollama.d.ts +18 -0
- package/dist/memory/providers/ollama.d.ts.map +1 -0
- package/dist/memory/providers/ollama.js +68 -0
- package/dist/memory/providers/ollama.js.map +1 -0
- package/dist/memory/providers/openai.d.ts +21 -0
- package/dist/memory/providers/openai.d.ts.map +1 -0
- package/dist/memory/providers/openai.js +91 -0
- package/dist/memory/providers/openai.js.map +1 -0
- package/dist/memory/providers/openrouter.d.ts +22 -0
- package/dist/memory/providers/openrouter.d.ts.map +1 -0
- package/dist/memory/providers/openrouter.js +89 -0
- package/dist/memory/providers/openrouter.js.map +1 -0
- package/dist/memory/providers/text-only.d.ts +20 -0
- package/dist/memory/providers/text-only.d.ts.map +1 -0
- package/dist/memory/providers/text-only.js +35 -0
- package/dist/memory/providers/text-only.js.map +1 -0
- package/dist/memory/providers/types.d.ts +63 -0
- package/dist/memory/providers/types.d.ts.map +1 -0
- package/dist/memory/providers/types.js +9 -0
- package/dist/memory/providers/types.js.map +1 -0
- package/dist/memory/providers/voyage.d.ts +39 -0
- package/dist/memory/providers/voyage.d.ts.map +1 -0
- package/dist/memory/providers/voyage.js +127 -0
- package/dist/memory/providers/voyage.js.map +1 -0
- package/dist/memory/search/hybrid.d.ts +12 -0
- package/dist/memory/search/hybrid.d.ts.map +1 -0
- package/dist/memory/search/hybrid.js +59 -0
- package/dist/memory/search/hybrid.js.map +1 -0
- package/dist/memory/store/sqlite.d.ts +86 -0
- package/dist/memory/store/sqlite.d.ts.map +1 -0
- package/dist/memory/store/sqlite.js +390 -0
- package/dist/memory/store/sqlite.js.map +1 -0
- package/dist/plugin/config/index.d.ts +148 -0
- package/dist/plugin/config/index.d.ts.map +1 -0
- package/dist/plugin/config/index.js +236 -0
- package/dist/plugin/config/index.js.map +1 -0
- package/dist/plugin/index.d.ts +19 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +811 -0
- package/dist/plugin/index.js.map +1 -0
- package/dist/plugin/tools/context.d.ts +36 -0
- package/dist/plugin/tools/context.d.ts.map +1 -0
- package/dist/plugin/tools/context.js +332 -0
- package/dist/plugin/tools/context.js.map +1 -0
- package/dist/plugin/tools/maskSave.d.ts +6 -0
- package/dist/plugin/tools/maskSave.d.ts.map +1 -0
- package/dist/plugin/tools/maskSave.js +42 -0
- package/dist/plugin/tools/maskSave.js.map +1 -0
- package/dist/plugin/tools/memoryGet.d.ts +21 -0
- package/dist/plugin/tools/memoryGet.d.ts.map +1 -0
- package/dist/plugin/tools/memoryGet.js +40 -0
- package/dist/plugin/tools/memoryGet.js.map +1 -0
- package/dist/plugin/tools/memoryIndexer.d.ts +6 -0
- package/dist/plugin/tools/memoryIndexer.d.ts.map +1 -0
- package/dist/plugin/tools/memoryIndexer.js +75 -0
- package/dist/plugin/tools/memoryIndexer.js.map +1 -0
- package/dist/plugin/tools/memorySearch.d.ts +74 -0
- package/dist/plugin/tools/memorySearch.d.ts.map +1 -0
- package/dist/plugin/tools/memorySearch.js +172 -0
- package/dist/plugin/tools/memorySearch.js.map +1 -0
- package/dist/plugin/tools/memoryWrite.d.ts +11 -0
- package/dist/plugin/tools/memoryWrite.d.ts.map +1 -0
- package/dist/plugin/tools/memoryWrite.js +161 -0
- package/dist/plugin/tools/memoryWrite.js.map +1 -0
- package/dist/plugin/tools/retrospect.d.ts +6 -0
- package/dist/plugin/tools/retrospect.d.ts.map +1 -0
- package/dist/plugin/tools/retrospect.js +46 -0
- package/dist/plugin/tools/retrospect.js.map +1 -0
- package/dist/plugin/types.d.ts +34 -0
- package/dist/plugin/types.d.ts.map +1 -0
- package/dist/plugin/types.js +7 -0
- package/dist/plugin/types.js.map +1 -0
- package/dist/retrospect/index.d.ts +14 -0
- package/dist/retrospect/index.d.ts.map +1 -0
- package/dist/retrospect/index.js +13 -0
- package/dist/retrospect/index.js.map +1 -0
- package/dist/retrospect/mask-save.d.ts +31 -0
- package/dist/retrospect/mask-save.d.ts.map +1 -0
- package/dist/retrospect/mask-save.js +263 -0
- package/dist/retrospect/mask-save.js.map +1 -0
- package/dist/retrospect/retrospect.d.ts +24 -0
- package/dist/retrospect/retrospect.d.ts.map +1 -0
- package/dist/retrospect/retrospect.js +165 -0
- package/dist/retrospect/retrospect.js.map +1 -0
- package/dist/retrospect/strategies/base.d.ts +20 -0
- package/dist/retrospect/strategies/base.d.ts.map +1 -0
- package/dist/retrospect/strategies/base.js +9 -0
- package/dist/retrospect/strategies/base.js.map +1 -0
- package/dist/retrospect/strategies/deep.d.ts +18 -0
- package/dist/retrospect/strategies/deep.d.ts.map +1 -0
- package/dist/retrospect/strategies/deep.js +105 -0
- package/dist/retrospect/strategies/deep.js.map +1 -0
- package/dist/retrospect/strategies/index.d.ts +20 -0
- package/dist/retrospect/strategies/index.d.ts.map +1 -0
- package/dist/retrospect/strategies/index.js +27 -0
- package/dist/retrospect/strategies/index.js.map +1 -0
- package/dist/retrospect/strategies/quick.d.ts +18 -0
- package/dist/retrospect/strategies/quick.d.ts.map +1 -0
- package/dist/retrospect/strategies/quick.js +55 -0
- package/dist/retrospect/strategies/quick.js.map +1 -0
- package/dist/retrospect/strategies/standard.d.ts +18 -0
- package/dist/retrospect/strategies/standard.d.ts.map +1 -0
- package/dist/retrospect/strategies/standard.js +66 -0
- package/dist/retrospect/strategies/standard.js.map +1 -0
- package/dist/retrospect/types.d.ts +34 -0
- package/dist/retrospect/types.d.ts.map +1 -0
- package/dist/retrospect/types.js +9 -0
- package/dist/retrospect/types.js.map +1 -0
- package/dist/shared/config.d.ts +130 -0
- package/dist/shared/config.d.ts.map +1 -0
- package/dist/shared/config.js +12 -0
- package/dist/shared/config.js.map +1 -0
- package/dist/shared/errors.d.ts +36 -0
- package/dist/shared/errors.d.ts.map +1 -0
- package/dist/shared/errors.js +57 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/index.d.ts +10 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +9 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/types.d.ts +34 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +5 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/shared-context/index.d.ts +11 -0
- package/dist/shared-context/index.d.ts.map +1 -0
- package/dist/shared-context/index.js +16 -0
- package/dist/shared-context/index.js.map +1 -0
- package/dist/shared-context/logger.d.ts +10 -0
- package/dist/shared-context/logger.d.ts.map +1 -0
- package/dist/shared-context/logger.js +28 -0
- package/dist/shared-context/logger.js.map +1 -0
- package/dist/shared-context/session.d.ts +23 -0
- package/dist/shared-context/session.d.ts.map +1 -0
- package/dist/shared-context/session.js +34 -0
- package/dist/shared-context/session.js.map +1 -0
- package/dist/shared-context/squad.d.ts +30 -0
- package/dist/shared-context/squad.d.ts.map +1 -0
- package/dist/shared-context/squad.js +66 -0
- package/dist/shared-context/squad.js.map +1 -0
- package/dist/shared-context/storage.d.ts +25 -0
- package/dist/shared-context/storage.d.ts.map +1 -0
- package/dist/shared-context/storage.js +66 -0
- package/dist/shared-context/storage.js.map +1 -0
- package/dist/shared-context/types.d.ts +107 -0
- package/dist/shared-context/types.d.ts.map +1 -0
- package/dist/shared-context/types.js +18 -0
- package/dist/shared-context/types.js.map +1 -0
- package/dist/verify/budget.d.ts +45 -0
- package/dist/verify/budget.d.ts.map +1 -0
- package/dist/verify/budget.js +89 -0
- package/dist/verify/budget.js.map +1 -0
- package/dist/verify/critical-files.d.ts +22 -0
- package/dist/verify/critical-files.d.ts.map +1 -0
- package/dist/verify/critical-files.js +130 -0
- package/dist/verify/critical-files.js.map +1 -0
- package/dist/verify/escalation.d.ts +27 -0
- package/dist/verify/escalation.d.ts.map +1 -0
- package/dist/verify/escalation.js +68 -0
- package/dist/verify/escalation.js.map +1 -0
- package/dist/verify/index.d.ts +13 -0
- package/dist/verify/index.d.ts.map +1 -0
- package/dist/verify/index.js +18 -0
- package/dist/verify/index.js.map +1 -0
- package/dist/verify/prompts.d.ts +27 -0
- package/dist/verify/prompts.d.ts.map +1 -0
- package/dist/verify/prompts.js +158 -0
- package/dist/verify/prompts.js.map +1 -0
- package/dist/verify/types.d.ts +80 -0
- package/dist/verify/types.d.ts.map +1 -0
- package/dist/verify/types.js +22 -0
- package/dist/verify/types.js.map +1 -0
- package/dist/verify/verifier.d.ts +47 -0
- package/dist/verify/verifier.d.ts.map +1 -0
- package/dist/verify/verifier.js +180 -0
- package/dist/verify/verifier.js.map +1 -0
- package/masks/ai-ml/andrew-ng.yaml +207 -0
- package/masks/architecture/jeff-dean.yaml +208 -0
- package/masks/index.json +65 -0
- package/masks/orchestration/squad-operator.yaml +205 -0
- package/masks/software-engineering/dan-abramov.yaml +188 -0
- package/masks/software-engineering/kent-beck.yaml +191 -0
- package/masks/software-engineering/linus-torvalds.yaml +152 -0
- package/masks/software-engineering/martin-fowler.yaml +173 -0
- package/package.json +111 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding Providers Module
|
|
3
|
+
*
|
|
4
|
+
* Clean public API following the Dependency Inversion Principle.
|
|
5
|
+
* Clients depend on abstractions (IEmbeddingProvider), not implementations.
|
|
6
|
+
*
|
|
7
|
+
* @example Basic usage
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { createProvider } from "./providers";
|
|
10
|
+
*
|
|
11
|
+
* const provider = createProvider({
|
|
12
|
+
* type: "voyage",
|
|
13
|
+
* model: "voyage-code-3"
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* const embeddings = await provider.embed(["hello world"]);
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @example Auto-selection with graceful degradation
|
|
20
|
+
* ```typescript
|
|
21
|
+
* import { selectBestProvider, getDefaultConfigs } from "./providers";
|
|
22
|
+
*
|
|
23
|
+
* const provider = await selectBestProvider(getDefaultConfigs());
|
|
24
|
+
* // Will try providers in order and fallback to text-only if needed
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export type { Embedding, ProviderType, HealthCheckResult, ProviderConfig, IEmbeddingProvider } from "./types.js";
|
|
28
|
+
export { OllamaProvider } from "./ollama.js";
|
|
29
|
+
export { OpenAIProvider } from "./openai.js";
|
|
30
|
+
export { VoyageProvider } from "./voyage.js";
|
|
31
|
+
export { OpenRouterProvider } from "./openrouter.js";
|
|
32
|
+
export { TextOnlyProvider } from "./text-only.js";
|
|
33
|
+
export { createProvider, selectBestProvider, getDefaultConfigs } from "./factory.js";
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,YAAY,EACV,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding Providers Module
|
|
3
|
+
*
|
|
4
|
+
* Clean public API following the Dependency Inversion Principle.
|
|
5
|
+
* Clients depend on abstractions (IEmbeddingProvider), not implementations.
|
|
6
|
+
*
|
|
7
|
+
* @example Basic usage
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { createProvider } from "./providers";
|
|
10
|
+
*
|
|
11
|
+
* const provider = createProvider({
|
|
12
|
+
* type: "voyage",
|
|
13
|
+
* model: "voyage-code-3"
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* const embeddings = await provider.embed(["hello world"]);
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @example Auto-selection with graceful degradation
|
|
20
|
+
* ```typescript
|
|
21
|
+
* import { selectBestProvider, getDefaultConfigs } from "./providers";
|
|
22
|
+
*
|
|
23
|
+
* const provider = await selectBestProvider(getDefaultConfigs());
|
|
24
|
+
* // Will try providers in order and fallback to text-only if needed
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
// Concrete implementations (export for advanced use cases)
|
|
28
|
+
export { OllamaProvider } from "./ollama.js";
|
|
29
|
+
export { OpenAIProvider } from "./openai.js";
|
|
30
|
+
export { VoyageProvider } from "./voyage.js";
|
|
31
|
+
export { OpenRouterProvider } from "./openrouter.js";
|
|
32
|
+
export { TextOnlyProvider } from "./text-only.js";
|
|
33
|
+
// Factory functions (recommended API)
|
|
34
|
+
export { createProvider, selectBestProvider, getDefaultConfigs } from "./factory.js";
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAWH,2DAA2D;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,sCAAsC;AACtC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Embedding Provider
|
|
3
|
+
*
|
|
4
|
+
* Local-first embedding using Ollama's API.
|
|
5
|
+
* Prioritizes privacy and zero-cost operation.
|
|
6
|
+
*/
|
|
7
|
+
import type { Embedding, HealthCheckResult, IEmbeddingProvider, ProviderConfig } from "./types.js";
|
|
8
|
+
export declare class OllamaProvider implements IEmbeddingProvider {
|
|
9
|
+
readonly name = "Ollama";
|
|
10
|
+
readonly type: "ollama";
|
|
11
|
+
readonly dimensions: number;
|
|
12
|
+
private readonly baseUrl;
|
|
13
|
+
private readonly model;
|
|
14
|
+
constructor(config: ProviderConfig);
|
|
15
|
+
healthCheck(): Promise<HealthCheckResult>;
|
|
16
|
+
embed(texts: string[]): Promise<Embedding[]>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=ollama.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/memory/providers/ollama.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnG,qBAAa,cAAe,YAAW,kBAAkB;IACvD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,MAAM,EAAE,cAAc;IAM5B,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAiCzC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAwBnD"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Embedding Provider
|
|
3
|
+
*
|
|
4
|
+
* Local-first embedding using Ollama's API.
|
|
5
|
+
* Prioritizes privacy and zero-cost operation.
|
|
6
|
+
*/
|
|
7
|
+
export class OllamaProvider {
|
|
8
|
+
name = "Ollama";
|
|
9
|
+
type = "ollama";
|
|
10
|
+
dimensions;
|
|
11
|
+
baseUrl;
|
|
12
|
+
model;
|
|
13
|
+
constructor(config) {
|
|
14
|
+
this.baseUrl = config.baseUrl || "http://localhost:11434";
|
|
15
|
+
this.model = config.model || "nomic-embed-text";
|
|
16
|
+
this.dimensions = config.dimensions || 768; // nomic-embed-text default
|
|
17
|
+
}
|
|
18
|
+
async healthCheck() {
|
|
19
|
+
try {
|
|
20
|
+
const response = await fetch(`${this.baseUrl}/api/tags`);
|
|
21
|
+
if (!response.ok) {
|
|
22
|
+
return {
|
|
23
|
+
ok: false,
|
|
24
|
+
reason: `Ollama API returned ${response.status}`,
|
|
25
|
+
hint: "Is Ollama running? Try: ollama serve"
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const data = await response.json();
|
|
29
|
+
const hasModel = data.models?.some((m) => m.name.includes(this.model));
|
|
30
|
+
if (!hasModel) {
|
|
31
|
+
return {
|
|
32
|
+
ok: false,
|
|
33
|
+
reason: `Model '${this.model}' not found`,
|
|
34
|
+
hint: `Pull it with: ollama pull ${this.model}`
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return { ok: true };
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
return {
|
|
41
|
+
ok: false,
|
|
42
|
+
reason: error instanceof Error ? error.message : "Unknown error",
|
|
43
|
+
hint: "Ensure Ollama is installed and running on port 11434"
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async embed(texts) {
|
|
48
|
+
const embeddings = [];
|
|
49
|
+
// Ollama API processes one text at a time
|
|
50
|
+
for (const text of texts) {
|
|
51
|
+
const response = await fetch(`${this.baseUrl}/api/embeddings`, {
|
|
52
|
+
method: "POST",
|
|
53
|
+
headers: { "Content-Type": "application/json" },
|
|
54
|
+
body: JSON.stringify({
|
|
55
|
+
model: this.model,
|
|
56
|
+
prompt: text
|
|
57
|
+
})
|
|
58
|
+
});
|
|
59
|
+
if (!response.ok) {
|
|
60
|
+
throw new Error(`Ollama embedding failed: ${response.statusText}`);
|
|
61
|
+
}
|
|
62
|
+
const data = await response.json();
|
|
63
|
+
embeddings.push(data.embedding);
|
|
64
|
+
}
|
|
65
|
+
return embeddings;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=ollama.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../src/memory/providers/ollama.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,QAAQ,CAAC;IAChB,IAAI,GAAG,QAAiB,CAAC;IACzB,UAAU,CAAS;IAEX,OAAO,CAAS;IAChB,KAAK,CAAS;IAE/B,YAAY,MAAsB;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,wBAAwB,CAAC;QAC1D,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,kBAAkB,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,2BAA2B;IACzE,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,WAAW,CAAC,CAAC;YAEzD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,uBAAuB,QAAQ,CAAC,MAAM,EAAE;oBAChD,IAAI,EAAE,sCAAsC;iBAC7C,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA0C,CAAC;YAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAEvE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,UAAU,IAAI,CAAC,KAAK,aAAa;oBACzC,IAAI,EAAE,6BAA6B,IAAI,CAAC,KAAK,EAAE;iBAChD,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;gBAChE,IAAI,EAAE,sDAAsD;aAC7D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAe;QACzB,MAAM,UAAU,GAAgB,EAAE,CAAC;QAEnC,0CAA0C;QAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,iBAAiB,EAAE;gBAC7D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,IAAI;iBACb,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA6B,CAAC;YAC9D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Embedding Provider
|
|
3
|
+
*
|
|
4
|
+
* Industry-standard embeddings with flexible dimensionality.
|
|
5
|
+
* Supports text-embedding-3-small and text-embedding-3-large models.
|
|
6
|
+
*/
|
|
7
|
+
import type { Embedding, HealthCheckResult, IEmbeddingProvider, ProviderConfig } from "./types.js";
|
|
8
|
+
export declare class OpenAIProvider implements IEmbeddingProvider {
|
|
9
|
+
readonly name = "OpenAI";
|
|
10
|
+
readonly type: "openai";
|
|
11
|
+
readonly dimensions: number;
|
|
12
|
+
private readonly apiKey;
|
|
13
|
+
private readonly model;
|
|
14
|
+
private readonly baseUrl;
|
|
15
|
+
constructor(config: ProviderConfig);
|
|
16
|
+
private validateDimensions;
|
|
17
|
+
healthCheck(): Promise<HealthCheckResult>;
|
|
18
|
+
embed(texts: string[]): Promise<Embedding[]>;
|
|
19
|
+
embedQuery(text: string): Promise<Embedding>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=openai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/memory/providers/openai.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAInG,qBAAa,cAAe,YAAW,kBAAkB;IACvD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,cAAc;IAYlC,OAAO,CAAC,kBAAkB;IAYpB,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAoCzC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA0B5C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;CAInD"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Embedding Provider
|
|
3
|
+
*
|
|
4
|
+
* Industry-standard embeddings with flexible dimensionality.
|
|
5
|
+
* Supports text-embedding-3-small and text-embedding-3-large models.
|
|
6
|
+
*/
|
|
7
|
+
const VALID_DIMENSIONS = [256, 512, 1536, 3072];
|
|
8
|
+
export class OpenAIProvider {
|
|
9
|
+
name = "OpenAI";
|
|
10
|
+
type = "openai";
|
|
11
|
+
dimensions;
|
|
12
|
+
apiKey;
|
|
13
|
+
model;
|
|
14
|
+
baseUrl;
|
|
15
|
+
constructor(config) {
|
|
16
|
+
const apiKey = config.apiKey || process.env.OPENAI_API_KEY;
|
|
17
|
+
if (!apiKey) {
|
|
18
|
+
throw new Error("OpenAI API key is required (config.apiKey or OPENAI_API_KEY)");
|
|
19
|
+
}
|
|
20
|
+
this.apiKey = apiKey;
|
|
21
|
+
this.model = config.model || "text-embedding-3-small";
|
|
22
|
+
this.baseUrl = config.baseUrl || "https://api.openai.com/v1";
|
|
23
|
+
this.dimensions = this.validateDimensions(config.dimensions);
|
|
24
|
+
}
|
|
25
|
+
validateDimensions(dim) {
|
|
26
|
+
if (!dim)
|
|
27
|
+
return 1536; // Default for text-embedding-3-small
|
|
28
|
+
if (!VALID_DIMENSIONS.includes(dim)) {
|
|
29
|
+
throw new Error(`Invalid dimensions ${dim}. Must be one of: ${VALID_DIMENSIONS.join(", ")}`);
|
|
30
|
+
}
|
|
31
|
+
return dim;
|
|
32
|
+
}
|
|
33
|
+
async healthCheck() {
|
|
34
|
+
try {
|
|
35
|
+
// Lightweight check: list models endpoint
|
|
36
|
+
const response = await fetch(`${this.baseUrl}/models`, {
|
|
37
|
+
headers: {
|
|
38
|
+
"Authorization": `Bearer ${this.apiKey}`,
|
|
39
|
+
"Content-Type": "application/json"
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
if (response.status === 401) {
|
|
43
|
+
return {
|
|
44
|
+
ok: false,
|
|
45
|
+
reason: "Invalid API key",
|
|
46
|
+
hint: "Check your OPENAI_API_KEY environment variable"
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
if (!response.ok) {
|
|
50
|
+
return {
|
|
51
|
+
ok: false,
|
|
52
|
+
reason: `API returned ${response.status}`,
|
|
53
|
+
hint: "Check your network connection and API status"
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return { ok: true };
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
return {
|
|
60
|
+
ok: false,
|
|
61
|
+
reason: error instanceof Error ? error.message : "Unknown error",
|
|
62
|
+
hint: "Verify network connectivity to OpenAI API"
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async embed(texts) {
|
|
67
|
+
const response = await fetch(`${this.baseUrl}/embeddings`, {
|
|
68
|
+
method: "POST",
|
|
69
|
+
headers: {
|
|
70
|
+
"Authorization": `Bearer ${this.apiKey}`,
|
|
71
|
+
"Content-Type": "application/json"
|
|
72
|
+
},
|
|
73
|
+
body: JSON.stringify({
|
|
74
|
+
model: this.model,
|
|
75
|
+
input: texts,
|
|
76
|
+
dimensions: this.dimensions
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
if (!response.ok) {
|
|
80
|
+
const error = await response.text();
|
|
81
|
+
throw new Error(`OpenAI embedding failed: ${error}`);
|
|
82
|
+
}
|
|
83
|
+
const data = await response.json();
|
|
84
|
+
return data.data.map((item) => item.embedding);
|
|
85
|
+
}
|
|
86
|
+
async embedQuery(text) {
|
|
87
|
+
const [embedding] = await this.embed([text]);
|
|
88
|
+
return embedding;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=openai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/memory/providers/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenRouter Embedding Provider
|
|
3
|
+
*
|
|
4
|
+
* Multi-model gateway supporting various embedding providers.
|
|
5
|
+
* Requires HTTP-Referer and X-Title headers for API tracking.
|
|
6
|
+
*/
|
|
7
|
+
import type { Embedding, HealthCheckResult, IEmbeddingProvider, ProviderConfig } from "./types.js";
|
|
8
|
+
export declare class OpenRouterProvider implements IEmbeddingProvider {
|
|
9
|
+
readonly name = "OpenRouter";
|
|
10
|
+
readonly type: "openrouter";
|
|
11
|
+
readonly dimensions: number;
|
|
12
|
+
private readonly apiKey;
|
|
13
|
+
private readonly model;
|
|
14
|
+
private readonly baseUrl;
|
|
15
|
+
private readonly referer;
|
|
16
|
+
private readonly title;
|
|
17
|
+
constructor(config: ProviderConfig);
|
|
18
|
+
healthCheck(): Promise<HealthCheckResult>;
|
|
19
|
+
embed(texts: string[]): Promise<Embedding[]>;
|
|
20
|
+
embedQuery(text: string): Promise<Embedding>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=openrouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/memory/providers/openrouter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnG,qBAAa,kBAAmB,YAAW,kBAAkB;IAC3D,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAU;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,MAAM,EAAE,cAAc;IAgB5B,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAqCzC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA2B5C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;CAInD"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenRouter Embedding Provider
|
|
3
|
+
*
|
|
4
|
+
* Multi-model gateway supporting various embedding providers.
|
|
5
|
+
* Requires HTTP-Referer and X-Title headers for API tracking.
|
|
6
|
+
*/
|
|
7
|
+
export class OpenRouterProvider {
|
|
8
|
+
name = "OpenRouter";
|
|
9
|
+
type = "openrouter";
|
|
10
|
+
dimensions;
|
|
11
|
+
apiKey;
|
|
12
|
+
model;
|
|
13
|
+
baseUrl;
|
|
14
|
+
referer;
|
|
15
|
+
title;
|
|
16
|
+
constructor(config) {
|
|
17
|
+
const apiKey = config.apiKey || process.env.OPENROUTER_API_KEY;
|
|
18
|
+
if (!apiKey) {
|
|
19
|
+
throw new Error("OpenRouter API key is required (config.apiKey or OPENROUTER_API_KEY)");
|
|
20
|
+
}
|
|
21
|
+
this.apiKey = apiKey;
|
|
22
|
+
this.model = config.model || "openai/text-embedding-3-small";
|
|
23
|
+
this.baseUrl = config.baseUrl || "https://openrouter.ai/api/v1";
|
|
24
|
+
this.dimensions = config.dimensions || 1536;
|
|
25
|
+
// OpenRouter requires these headers for tracking
|
|
26
|
+
this.referer = process.env.OPENROUTER_REFERER || "https://maskweaver.dev";
|
|
27
|
+
this.title = process.env.OPENROUTER_TITLE || "MaskWeaver";
|
|
28
|
+
}
|
|
29
|
+
async healthCheck() {
|
|
30
|
+
try {
|
|
31
|
+
// Check API key validity
|
|
32
|
+
const response = await fetch(`${this.baseUrl}/auth/key`, {
|
|
33
|
+
headers: {
|
|
34
|
+
"Authorization": `Bearer ${this.apiKey}`,
|
|
35
|
+
"HTTP-Referer": this.referer,
|
|
36
|
+
"X-Title": this.title
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
if (response.status === 401) {
|
|
40
|
+
return {
|
|
41
|
+
ok: false,
|
|
42
|
+
reason: "Invalid API key",
|
|
43
|
+
hint: "Check your OPENROUTER_API_KEY environment variable"
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
if (!response.ok) {
|
|
47
|
+
return {
|
|
48
|
+
ok: false,
|
|
49
|
+
reason: `API returned ${response.status}`,
|
|
50
|
+
hint: "Verify your OpenRouter account status"
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return { ok: true };
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
return {
|
|
57
|
+
ok: false,
|
|
58
|
+
reason: error instanceof Error ? error.message : "Unknown error",
|
|
59
|
+
hint: "Check network connectivity to OpenRouter"
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async embed(texts) {
|
|
64
|
+
const response = await fetch(`${this.baseUrl}/embeddings`, {
|
|
65
|
+
method: "POST",
|
|
66
|
+
headers: {
|
|
67
|
+
"Authorization": `Bearer ${this.apiKey}`,
|
|
68
|
+
"HTTP-Referer": this.referer,
|
|
69
|
+
"X-Title": this.title,
|
|
70
|
+
"Content-Type": "application/json"
|
|
71
|
+
},
|
|
72
|
+
body: JSON.stringify({
|
|
73
|
+
model: this.model,
|
|
74
|
+
input: texts
|
|
75
|
+
})
|
|
76
|
+
});
|
|
77
|
+
if (!response.ok) {
|
|
78
|
+
const error = await response.text();
|
|
79
|
+
throw new Error(`OpenRouter embedding failed: ${error}`);
|
|
80
|
+
}
|
|
81
|
+
const data = await response.json();
|
|
82
|
+
return data.data.map((item) => item.embedding);
|
|
83
|
+
}
|
|
84
|
+
async embedQuery(text) {
|
|
85
|
+
const [embedding] = await this.embed([text]);
|
|
86
|
+
return embedding;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=openrouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/memory/providers/openrouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text-Only Provider (Null Object Pattern)
|
|
3
|
+
*
|
|
4
|
+
* Graceful degradation when no embedding service is available.
|
|
5
|
+
* Returns empty vectors, allowing the system to function in text-only mode.
|
|
6
|
+
*
|
|
7
|
+
* Use case: Development, testing, or when embedding APIs are unavailable.
|
|
8
|
+
*/
|
|
9
|
+
import type { Embedding, HealthCheckResult, IEmbeddingProvider, ProviderConfig } from "./types.js";
|
|
10
|
+
export declare class TextOnlyProvider implements IEmbeddingProvider {
|
|
11
|
+
readonly name = "Text-Only (No Embeddings)";
|
|
12
|
+
readonly type: "text-only";
|
|
13
|
+
readonly dimensions: number;
|
|
14
|
+
constructor(config: ProviderConfig);
|
|
15
|
+
healthCheck(): Promise<HealthCheckResult>;
|
|
16
|
+
embed(texts: string[]): Promise<Embedding[]>;
|
|
17
|
+
embedQuery(text: string): Promise<Embedding>;
|
|
18
|
+
embedCode(texts: string[]): Promise<Embedding[]>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=text-only.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-only.d.ts","sourceRoot":"","sources":["../../../src/memory/providers/text-only.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnG,qBAAa,gBAAiB,YAAW,kBAAkB;IACzD,QAAQ,CAAC,IAAI,+BAA+B;IAC5C,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,MAAM,EAAE,cAAc;IAK5B,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAQzC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAK5C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI5C,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAGvD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text-Only Provider (Null Object Pattern)
|
|
3
|
+
*
|
|
4
|
+
* Graceful degradation when no embedding service is available.
|
|
5
|
+
* Returns empty vectors, allowing the system to function in text-only mode.
|
|
6
|
+
*
|
|
7
|
+
* Use case: Development, testing, or when embedding APIs are unavailable.
|
|
8
|
+
*/
|
|
9
|
+
export class TextOnlyProvider {
|
|
10
|
+
name = "Text-Only (No Embeddings)";
|
|
11
|
+
type = "text-only";
|
|
12
|
+
dimensions;
|
|
13
|
+
constructor(config) {
|
|
14
|
+
// Minimal dimensions for compatibility
|
|
15
|
+
this.dimensions = config.dimensions || 1;
|
|
16
|
+
}
|
|
17
|
+
async healthCheck() {
|
|
18
|
+
// Always healthy - it's a fallback
|
|
19
|
+
return {
|
|
20
|
+
ok: true,
|
|
21
|
+
hint: "Text-only mode: semantic search will be limited to keyword matching"
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
async embed(texts) {
|
|
25
|
+
// Return zero vectors
|
|
26
|
+
return texts.map(() => new Array(this.dimensions).fill(0));
|
|
27
|
+
}
|
|
28
|
+
async embedQuery(text) {
|
|
29
|
+
return new Array(this.dimensions).fill(0);
|
|
30
|
+
}
|
|
31
|
+
async embedCode(texts) {
|
|
32
|
+
return this.embed(texts);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=text-only.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-only.js","sourceRoot":"","sources":["../../../src/memory/providers/text-only.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,2BAA2B,CAAC;IACnC,IAAI,GAAG,WAAoB,CAAC;IAC5B,UAAU,CAAS;IAE5B,YAAY,MAAsB;QAChC,uCAAuC;QACvC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW;QACf,mCAAmC;QACnC,OAAO;YACL,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,qEAAqE;SAC5E,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAe;QACzB,sBAAsB;QACtB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAe;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding Provider Types
|
|
3
|
+
*
|
|
4
|
+
* Clean interface design following Interface Segregation Principle.
|
|
5
|
+
* Each provider implements the IEmbeddingProvider contract while maintaining
|
|
6
|
+
* flexibility for provider-specific optimizations.
|
|
7
|
+
*/
|
|
8
|
+
export type Embedding = number[];
|
|
9
|
+
export type ProviderType = "ollama" | "openai" | "voyage" | "openrouter" | "text-only";
|
|
10
|
+
/**
|
|
11
|
+
* Health check result with actionable feedback
|
|
12
|
+
*/
|
|
13
|
+
export interface HealthCheckResult {
|
|
14
|
+
ok: boolean;
|
|
15
|
+
reason?: string;
|
|
16
|
+
hint?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Provider configuration - immutable after construction
|
|
20
|
+
*/
|
|
21
|
+
export interface ProviderConfig {
|
|
22
|
+
type: ProviderType;
|
|
23
|
+
apiKey?: string;
|
|
24
|
+
model?: string;
|
|
25
|
+
baseUrl?: string;
|
|
26
|
+
dimensions?: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Core embedding provider interface
|
|
30
|
+
*
|
|
31
|
+
* Design principle: "Program to an interface, not an implementation"
|
|
32
|
+
* This enables Strategy Pattern for swappable embedding backends.
|
|
33
|
+
*/
|
|
34
|
+
export interface IEmbeddingProvider {
|
|
35
|
+
/** Provider identifier */
|
|
36
|
+
readonly name: string;
|
|
37
|
+
/** Provider type for factory selection */
|
|
38
|
+
readonly type: ProviderType;
|
|
39
|
+
/** Output vector dimensions */
|
|
40
|
+
readonly dimensions: number;
|
|
41
|
+
/**
|
|
42
|
+
* Verify provider is ready and reachable
|
|
43
|
+
* Should be fast and non-destructive
|
|
44
|
+
*/
|
|
45
|
+
healthCheck(): Promise<HealthCheckResult>;
|
|
46
|
+
/**
|
|
47
|
+
* Generate embeddings for multiple texts
|
|
48
|
+
* @param texts - Array of text strings to embed
|
|
49
|
+
* @returns Array of embedding vectors
|
|
50
|
+
*/
|
|
51
|
+
embed(texts: string[]): Promise<Embedding[]>;
|
|
52
|
+
/**
|
|
53
|
+
* Optional: Generate code-optimized embeddings
|
|
54
|
+
* Some providers (like Voyage) have specialized code models
|
|
55
|
+
*/
|
|
56
|
+
embedCode?(texts: string[]): Promise<Embedding[]>;
|
|
57
|
+
/**
|
|
58
|
+
* Optional: Generate query-optimized embedding
|
|
59
|
+
* For asymmetric search (query vs document)
|
|
60
|
+
*/
|
|
61
|
+
embedQuery?(text: string): Promise<Embedding>;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/memory/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;AACjC,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAE5B,+BAA+B;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE1C;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAE7C;;;OAGG;IACH,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAElD;;;OAGG;IACH,UAAU,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CAC/C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding Provider Types
|
|
3
|
+
*
|
|
4
|
+
* Clean interface design following Interface Segregation Principle.
|
|
5
|
+
* Each provider implements the IEmbeddingProvider contract while maintaining
|
|
6
|
+
* flexibility for provider-specific optimizations.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/memory/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Voyage AI Embedding Provider
|
|
3
|
+
*
|
|
4
|
+
* Specialized embeddings with code-specific models (voyage-code-3).
|
|
5
|
+
* Supports asymmetric search with input_type distinction.
|
|
6
|
+
*
|
|
7
|
+
* Key feature: embedCode() method for superior code understanding.
|
|
8
|
+
*/
|
|
9
|
+
import type { Embedding, HealthCheckResult, IEmbeddingProvider, ProviderConfig } from "./types.js";
|
|
10
|
+
export declare class VoyageProvider implements IEmbeddingProvider {
|
|
11
|
+
readonly name = "Voyage AI";
|
|
12
|
+
readonly type: "voyage";
|
|
13
|
+
readonly dimensions: number;
|
|
14
|
+
private readonly apiKey;
|
|
15
|
+
private readonly model;
|
|
16
|
+
private readonly baseUrl;
|
|
17
|
+
constructor(config: ProviderConfig);
|
|
18
|
+
private validateDimensions;
|
|
19
|
+
healthCheck(): Promise<HealthCheckResult>;
|
|
20
|
+
/**
|
|
21
|
+
* General-purpose embedding (documents)
|
|
22
|
+
*/
|
|
23
|
+
embed(texts: string[]): Promise<Embedding[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Code-optimized embedding
|
|
26
|
+
* Use voyage-code-3 model for best results
|
|
27
|
+
*/
|
|
28
|
+
embedCode(texts: string[]): Promise<Embedding[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Query-optimized embedding
|
|
31
|
+
* For asymmetric search (query vs document)
|
|
32
|
+
*/
|
|
33
|
+
embedQuery(text: string): Promise<Embedding>;
|
|
34
|
+
/**
|
|
35
|
+
* Core embedding method with input_type specification
|
|
36
|
+
*/
|
|
37
|
+
private embedWithType;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=voyage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voyage.d.ts","sourceRoot":"","sources":["../../../src/memory/providers/voyage.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAQnG,qBAAa,cAAe,YAAW,kBAAkB;IACvD,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,cAAc;IAYlC,OAAO,CAAC,kBAAkB;IAYpB,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA2C/C;;OAEG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAIlD;;;OAGG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAYtD;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAKlD;;OAEG;YACW,aAAa;CA6B5B"}
|