@alextis59/athena 1.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.
- package/LICENSE +15 -0
- package/README.md +147 -0
- package/dist/agent/ask.d.ts +7 -0
- package/dist/agent/ask.d.ts.map +1 -0
- package/dist/agent/ask.js +35 -0
- package/dist/agent/ask.js.map +1 -0
- package/dist/agent/citations.d.ts +27 -0
- package/dist/agent/citations.d.ts.map +1 -0
- package/dist/agent/citations.js +190 -0
- package/dist/agent/citations.js.map +1 -0
- package/dist/agent/fake-provider.d.ts +9 -0
- package/dist/agent/fake-provider.d.ts.map +1 -0
- package/dist/agent/fake-provider.js +51 -0
- package/dist/agent/fake-provider.js.map +1 -0
- package/dist/agent/index.d.ts +10 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +6 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/loop.d.ts +11 -0
- package/dist/agent/loop.d.ts.map +1 -0
- package/dist/agent/loop.js +156 -0
- package/dist/agent/loop.js.map +1 -0
- package/dist/agent/providers.d.ts +17 -0
- package/dist/agent/providers.d.ts.map +1 -0
- package/dist/agent/providers.js +171 -0
- package/dist/agent/providers.js.map +1 -0
- package/dist/agent/tools.d.ts +8 -0
- package/dist/agent/tools.d.ts.map +1 -0
- package/dist/agent/tools.js +233 -0
- package/dist/agent/tools.js.map +1 -0
- package/dist/agent/types.d.ts +84 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +2 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/cli/help.d.ts +2 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +28 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/main.d.ts +3 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +5 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/options.d.ts +21 -0
- package/dist/cli/options.d.ts.map +1 -0
- package/dist/cli/options.js +97 -0
- package/dist/cli/options.js.map +1 -0
- package/dist/cli/run.d.ts +21 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +144 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +3 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +14 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +352 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +6 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +72 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/types.d.ts +53 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/doctor/doctor.d.ts +47 -0
- package/dist/doctor/doctor.d.ts.map +1 -0
- package/dist/doctor/doctor.js +159 -0
- package/dist/doctor/doctor.js.map +1 -0
- package/dist/embeddings/index.d.ts +117 -0
- package/dist/embeddings/index.d.ts.map +1 -0
- package/dist/embeddings/index.js +515 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/errors.d.ts +19 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +37 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/indexer/discovery.d.ts +10 -0
- package/dist/indexer/discovery.d.ts.map +1 -0
- package/dist/indexer/discovery.js +38 -0
- package/dist/indexer/discovery.js.map +1 -0
- package/dist/indexer/hash.d.ts +3 -0
- package/dist/indexer/hash.d.ts.map +1 -0
- package/dist/indexer/hash.js +11 -0
- package/dist/indexer/hash.js.map +1 -0
- package/dist/indexer/index.d.ts +7 -0
- package/dist/indexer/index.d.ts.map +1 -0
- package/dist/indexer/index.js +5 -0
- package/dist/indexer/index.js.map +1 -0
- package/dist/indexer/kinds.d.ts +4 -0
- package/dist/indexer/kinds.d.ts.map +1 -0
- package/dist/indexer/kinds.js +38 -0
- package/dist/indexer/kinds.js.map +1 -0
- package/dist/indexer/run.d.ts +42 -0
- package/dist/indexer/run.d.ts.map +1 -0
- package/dist/indexer/run.js +563 -0
- package/dist/indexer/run.js.map +1 -0
- package/dist/logging/logger.d.ts +11 -0
- package/dist/logging/logger.d.ts.map +1 -0
- package/dist/logging/logger.js +18 -0
- package/dist/logging/logger.js.map +1 -0
- package/dist/mcp/index.d.ts +35 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +392 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/parsers/chunking.d.ts +4 -0
- package/dist/parsers/chunking.d.ts.map +1 -0
- package/dist/parsers/chunking.js +112 -0
- package/dist/parsers/chunking.js.map +1 -0
- package/dist/parsers/index.d.ts +8 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +5 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/line-parser.d.ts +13 -0
- package/dist/parsers/line-parser.d.ts.map +1 -0
- package/dist/parsers/line-parser.js +242 -0
- package/dist/parsers/line-parser.js.map +1 -0
- package/dist/parsers/normalize.d.ts +4 -0
- package/dist/parsers/normalize.d.ts.map +1 -0
- package/dist/parsers/normalize.js +17 -0
- package/dist/parsers/normalize.js.map +1 -0
- package/dist/parsers/parser.d.ts +14 -0
- package/dist/parsers/parser.d.ts.map +1 -0
- package/dist/parsers/parser.js +77 -0
- package/dist/parsers/parser.js.map +1 -0
- package/dist/parsers/pdf2llm.d.ts +14 -0
- package/dist/parsers/pdf2llm.d.ts.map +1 -0
- package/dist/parsers/pdf2llm.js +215 -0
- package/dist/parsers/pdf2llm.js.map +1 -0
- package/dist/parsers/types.d.ts +48 -0
- package/dist/parsers/types.d.ts.map +1 -0
- package/dist/parsers/types.js +2 -0
- package/dist/parsers/types.js.map +1 -0
- package/dist/retrieval/index.d.ts +4 -0
- package/dist/retrieval/index.d.ts.map +1 -0
- package/dist/retrieval/index.js +3 -0
- package/dist/retrieval/index.js.map +1 -0
- package/dist/retrieval/schemas.d.ts +127 -0
- package/dist/retrieval/schemas.d.ts.map +1 -0
- package/dist/retrieval/schemas.js +65 -0
- package/dist/retrieval/schemas.js.map +1 -0
- package/dist/retrieval/tools.d.ts +31 -0
- package/dist/retrieval/tools.d.ts.map +1 -0
- package/dist/retrieval/tools.js +803 -0
- package/dist/retrieval/tools.js.map +1 -0
- package/dist/retrieval/types.d.ts +104 -0
- package/dist/retrieval/types.d.ts.map +1 -0
- package/dist/retrieval/types.js +2 -0
- package/dist/retrieval/types.js.map +1 -0
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +2 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/server.d.ts +49 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +517 -0
- package/dist/server/server.js.map +1 -0
- package/dist/shared/types.d.ts +98 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +2 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/storage/database.d.ts +18 -0
- package/dist/storage/database.d.ts.map +1 -0
- package/dist/storage/database.js +66 -0
- package/dist/storage/database.js.map +1 -0
- package/dist/storage/index.d.ts +8 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +5 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/migrations.d.ts +15 -0
- package/dist/storage/migrations.d.ts.map +1 -0
- package/dist/storage/migrations.js +170 -0
- package/dist/storage/migrations.js.map +1 -0
- package/dist/storage/paths.d.ts +15 -0
- package/dist/storage/paths.d.ts.map +1 -0
- package/dist/storage/paths.js +27 -0
- package/dist/storage/paths.js.map +1 -0
- package/dist/storage/schema.d.ts +11 -0
- package/dist/storage/schema.d.ts.map +1 -0
- package/dist/storage/schema.js +40 -0
- package/dist/storage/schema.js.map +1 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +2 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/static-app.d.ts +2 -0
- package/dist/ui/static-app.d.ts.map +1 -0
- package/dist/ui/static-app.js +735 -0
- package/dist/ui/static-app.js.map +1 -0
- package/docs/adr/0001-sqlite-driver.md +23 -0
- package/docs/agentic-rag-specifications.md +659 -0
- package/docs/agentic-rag-study.md +1056 -0
- package/docs/implementation-plan.md +1425 -0
- package/docs/mcp-integration.md +154 -0
- package/docs/validation-corpus.md +71 -0
- package/package.json +79 -0
|
@@ -0,0 +1,515 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { UserFacingError } from "../errors.js";
|
|
3
|
+
import { hashString } from "../indexer/hash.js";
|
|
4
|
+
export const DEFAULT_EMBEDDING_REVISION = "local-deterministic-v2";
|
|
5
|
+
const TRANSFORMERS_JS_REVISION = "transformers-js-4.2.0";
|
|
6
|
+
const OLLAMA_EMBEDDING_REVISION = "ollama-api-embed-v1";
|
|
7
|
+
const OPENAI_EMBEDDING_REVISION = "openai-embeddings-v1";
|
|
8
|
+
const VOYAGE_EMBEDDING_REVISION = "voyage-embeddings-v1";
|
|
9
|
+
const COHERE_EMBEDDING_REVISION = "cohere-embed-v2";
|
|
10
|
+
const GEMINI_EMBEDDING_REVISION = "gemini-batch-embedcontents-v1beta";
|
|
11
|
+
const credentialEnvByEmbeddingProvider = {
|
|
12
|
+
openai: "OPENAI_API_KEY",
|
|
13
|
+
voyage: "VOYAGE_API_KEY",
|
|
14
|
+
cohere: "COHERE_API_KEY",
|
|
15
|
+
gemini: "GEMINI_API_KEY"
|
|
16
|
+
};
|
|
17
|
+
const embeddingRevisionByProvider = {
|
|
18
|
+
ollama: OLLAMA_EMBEDDING_REVISION,
|
|
19
|
+
openai: OPENAI_EMBEDDING_REVISION,
|
|
20
|
+
voyage: VOYAGE_EMBEDDING_REVISION,
|
|
21
|
+
cohere: COHERE_EMBEDDING_REVISION,
|
|
22
|
+
gemini: GEMINI_EMBEDDING_REVISION
|
|
23
|
+
};
|
|
24
|
+
export function createEmbeddingProvider(config, options = {}) {
|
|
25
|
+
validateEmbeddingProviderConfig(config, options.env);
|
|
26
|
+
if (config.provider === "none") {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
if (config.provider === "transformers-js") {
|
|
30
|
+
return new TransformersJsEmbeddingProvider(config);
|
|
31
|
+
}
|
|
32
|
+
if (config.provider === "ollama") {
|
|
33
|
+
return new OllamaEmbeddingProvider(config, options);
|
|
34
|
+
}
|
|
35
|
+
return new RemoteRestEmbeddingProvider(config, options);
|
|
36
|
+
}
|
|
37
|
+
export function validateEmbeddingProviderConfig(config, env = process.env) {
|
|
38
|
+
if (config.provider === "none") {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (config.model.trim() === "") {
|
|
42
|
+
throw new UserFacingError(`embeddings.model is required when embeddings.provider is '${config.provider}'.`);
|
|
43
|
+
}
|
|
44
|
+
const credentialEnv = credentialEnvByEmbeddingProvider[config.provider];
|
|
45
|
+
if (credentialEnv !== undefined) {
|
|
46
|
+
if (!config.allowRemoteDocumentText) {
|
|
47
|
+
throw new UserFacingError(`embeddings.allowRemoteDocumentText must be true before documents can be sent to ${config.provider}.`);
|
|
48
|
+
}
|
|
49
|
+
if (env[credentialEnv] === undefined) {
|
|
50
|
+
throw new UserFacingError(`${credentialEnv} is required when embeddings.provider is '${config.provider}'.`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export class DeterministicEmbeddingProvider {
|
|
55
|
+
metadata;
|
|
56
|
+
constructor(config, options = {}) {
|
|
57
|
+
this.metadata = {
|
|
58
|
+
provider: config.provider,
|
|
59
|
+
model: config.model,
|
|
60
|
+
dimensions: config.dimensions,
|
|
61
|
+
pooling: config.pooling,
|
|
62
|
+
normalize: config.normalize,
|
|
63
|
+
quantization: "none",
|
|
64
|
+
revision: options.revision ?? DEFAULT_EMBEDDING_REVISION,
|
|
65
|
+
implementation: options.implementation ?? "deterministic"
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
embed(inputs) {
|
|
69
|
+
return Promise.resolve(inputs.map((input) => {
|
|
70
|
+
const vector = createDeterministicEmbeddingVector(input.normalizedText, this.metadata.dimensions);
|
|
71
|
+
return {
|
|
72
|
+
chunkId: input.chunkId,
|
|
73
|
+
vector: this.metadata.normalize ? normalizeVector(vector) : vector,
|
|
74
|
+
metadata: this.metadata
|
|
75
|
+
};
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export class TransformersJsEmbeddingProvider {
|
|
80
|
+
config;
|
|
81
|
+
transformersMetadata;
|
|
82
|
+
fallbackProvider;
|
|
83
|
+
loader;
|
|
84
|
+
extractor = null;
|
|
85
|
+
prepared = false;
|
|
86
|
+
usingFallback = false;
|
|
87
|
+
constructor(config, options = {}) {
|
|
88
|
+
this.config = config;
|
|
89
|
+
this.transformersMetadata = {
|
|
90
|
+
provider: config.provider,
|
|
91
|
+
model: config.model,
|
|
92
|
+
dimensions: config.dimensions,
|
|
93
|
+
pooling: config.pooling,
|
|
94
|
+
normalize: config.normalize,
|
|
95
|
+
quantization: "none",
|
|
96
|
+
revision: options.revision ?? TRANSFORMERS_JS_REVISION,
|
|
97
|
+
implementation: "transformers-js"
|
|
98
|
+
};
|
|
99
|
+
const fallbackOptions = {
|
|
100
|
+
implementation: "transformers-js-local-deterministic"
|
|
101
|
+
};
|
|
102
|
+
if (options.fallbackRevision !== undefined) {
|
|
103
|
+
fallbackOptions.revision = options.fallbackRevision;
|
|
104
|
+
}
|
|
105
|
+
this.fallbackProvider = new DeterministicEmbeddingProvider(config, fallbackOptions);
|
|
106
|
+
this.loader = options.loader ?? loadTransformersJsPipeline;
|
|
107
|
+
}
|
|
108
|
+
get metadata() {
|
|
109
|
+
return this.usingFallback
|
|
110
|
+
? this.fallbackProvider.metadata
|
|
111
|
+
: this.transformersMetadata;
|
|
112
|
+
}
|
|
113
|
+
async prepare() {
|
|
114
|
+
if (this.prepared) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
try {
|
|
118
|
+
this.extractor = await this.loader("feature-extraction", this.config.model, { local_files_only: true });
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
this.usingFallback = true;
|
|
122
|
+
}
|
|
123
|
+
finally {
|
|
124
|
+
this.prepared = true;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async embed(inputs) {
|
|
128
|
+
await this.prepare();
|
|
129
|
+
if (this.usingFallback || this.extractor === null) {
|
|
130
|
+
return await this.fallbackProvider.embed(inputs);
|
|
131
|
+
}
|
|
132
|
+
const tensor = await this.extractor(inputs.map((input) => input.normalizedText), {
|
|
133
|
+
pooling: this.config.pooling,
|
|
134
|
+
normalize: this.config.normalize
|
|
135
|
+
});
|
|
136
|
+
const vectors = tensorToVectors(tensor, inputs.length, this.config.dimensions);
|
|
137
|
+
return inputs.map((input, index) => ({
|
|
138
|
+
chunkId: input.chunkId,
|
|
139
|
+
vector: vectors[index] ?? new Float32Array(this.config.dimensions),
|
|
140
|
+
metadata: this.transformersMetadata
|
|
141
|
+
}));
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
export class OllamaEmbeddingProvider {
|
|
145
|
+
config;
|
|
146
|
+
metadata;
|
|
147
|
+
fetchImpl;
|
|
148
|
+
endpoint;
|
|
149
|
+
constructor(config, options = {}) {
|
|
150
|
+
this.config = config;
|
|
151
|
+
this.fetchImpl = options.fetch ?? fetch;
|
|
152
|
+
this.endpoint = `${normalizeBaseUrl(options.ollamaBaseUrl ??
|
|
153
|
+
options.env?.OLLAMA_HOST ??
|
|
154
|
+
"http://127.0.0.1:11434")}/api/embed`;
|
|
155
|
+
this.metadata = createEmbeddingMetadata(config, "ollama-rest", OLLAMA_EMBEDDING_REVISION);
|
|
156
|
+
}
|
|
157
|
+
async embed(inputs) {
|
|
158
|
+
if (inputs.length === 0) {
|
|
159
|
+
return [];
|
|
160
|
+
}
|
|
161
|
+
const json = await postJson(this.fetchImpl, this.endpoint, {
|
|
162
|
+
model: this.config.model,
|
|
163
|
+
input: inputs.map((input) => input.normalizedText)
|
|
164
|
+
}, { provider: "ollama" });
|
|
165
|
+
const embeddings = readNumberMatrix(json, ["embeddings"], "ollama");
|
|
166
|
+
return createEmbeddingVectors(inputs, embeddings, this.metadata);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
export class RemoteRestEmbeddingProvider {
|
|
170
|
+
config;
|
|
171
|
+
options;
|
|
172
|
+
metadata;
|
|
173
|
+
fetchImpl;
|
|
174
|
+
env;
|
|
175
|
+
constructor(config, options = {}) {
|
|
176
|
+
this.config = config;
|
|
177
|
+
this.options = options;
|
|
178
|
+
this.fetchImpl = options.fetch ?? fetch;
|
|
179
|
+
this.env = options.env ?? process.env;
|
|
180
|
+
const revision = embeddingRevisionByProvider[config.provider];
|
|
181
|
+
if (revision === undefined || config.provider === "ollama") {
|
|
182
|
+
throw new UserFacingError(`Unsupported remote embedding provider '${config.provider}'.`);
|
|
183
|
+
}
|
|
184
|
+
this.metadata = createEmbeddingMetadata(config, `${config.provider}-rest`, revision);
|
|
185
|
+
}
|
|
186
|
+
async embed(inputs) {
|
|
187
|
+
if (inputs.length === 0) {
|
|
188
|
+
return [];
|
|
189
|
+
}
|
|
190
|
+
switch (this.config.provider) {
|
|
191
|
+
case "openai":
|
|
192
|
+
return await this.embedOpenAi(inputs);
|
|
193
|
+
case "voyage":
|
|
194
|
+
return await this.embedVoyage(inputs);
|
|
195
|
+
case "cohere":
|
|
196
|
+
return await this.embedCohere(inputs);
|
|
197
|
+
case "gemini":
|
|
198
|
+
return await this.embedGemini(inputs);
|
|
199
|
+
default:
|
|
200
|
+
throw new UserFacingError(`Unsupported remote embedding provider '${this.config.provider}'.`);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
async embedOpenAi(inputs) {
|
|
204
|
+
const apiKey = readApiKey(this.config.provider, this.env);
|
|
205
|
+
const body = compactJsonObject({
|
|
206
|
+
model: this.config.model,
|
|
207
|
+
input: inputs.map((input) => input.normalizedText),
|
|
208
|
+
dimensions: this.config.dimensions
|
|
209
|
+
});
|
|
210
|
+
const json = await postJson(this.fetchImpl, `${normalizeBaseUrl(this.options.openaiBaseUrl ?? "https://api.openai.com")}/v1/embeddings`, body, {
|
|
211
|
+
provider: "openai",
|
|
212
|
+
headers: { Authorization: `Bearer ${apiKey}` }
|
|
213
|
+
});
|
|
214
|
+
const embeddings = readIndexedEmbeddingData(json, "openai");
|
|
215
|
+
return createEmbeddingVectors(inputs, embeddings, this.metadata);
|
|
216
|
+
}
|
|
217
|
+
async embedVoyage(inputs) {
|
|
218
|
+
const apiKey = readApiKey(this.config.provider, this.env);
|
|
219
|
+
const body = compactJsonObject({
|
|
220
|
+
model: this.config.model,
|
|
221
|
+
input: inputs.map((input) => input.normalizedText),
|
|
222
|
+
input_type: "document",
|
|
223
|
+
output_dimension: this.config.dimensions
|
|
224
|
+
});
|
|
225
|
+
const json = await postJson(this.fetchImpl, `${normalizeBaseUrl(this.options.voyageBaseUrl ?? "https://api.voyageai.com")}/v1/embeddings`, body, {
|
|
226
|
+
provider: "voyage",
|
|
227
|
+
headers: { Authorization: `Bearer ${apiKey}` }
|
|
228
|
+
});
|
|
229
|
+
const embeddings = readIndexedEmbeddingData(json, "voyage");
|
|
230
|
+
return createEmbeddingVectors(inputs, embeddings, this.metadata);
|
|
231
|
+
}
|
|
232
|
+
async embedCohere(inputs) {
|
|
233
|
+
const apiKey = readApiKey(this.config.provider, this.env);
|
|
234
|
+
const body = compactJsonObject({
|
|
235
|
+
model: this.config.model,
|
|
236
|
+
texts: inputs.map((input) => input.normalizedText),
|
|
237
|
+
input_type: "search_document",
|
|
238
|
+
embedding_types: ["float"],
|
|
239
|
+
output_dimension: this.config.dimensions
|
|
240
|
+
});
|
|
241
|
+
const json = await postJson(this.fetchImpl, `${normalizeBaseUrl(this.options.cohereBaseUrl ?? "https://api.cohere.com")}/v2/embed`, body, {
|
|
242
|
+
provider: "cohere",
|
|
243
|
+
headers: { Authorization: `Bearer ${apiKey}` }
|
|
244
|
+
});
|
|
245
|
+
const embeddings = readNumberMatrix(json, ["embeddings", "float"], "cohere");
|
|
246
|
+
return createEmbeddingVectors(inputs, embeddings, this.metadata);
|
|
247
|
+
}
|
|
248
|
+
async embedGemini(inputs) {
|
|
249
|
+
const apiKey = readApiKey(this.config.provider, this.env);
|
|
250
|
+
const modelPath = this.config.model.startsWith("models/")
|
|
251
|
+
? this.config.model
|
|
252
|
+
: `models/${this.config.model}`;
|
|
253
|
+
const json = await postJson(this.fetchImpl, `${normalizeBaseUrl(this.options.geminiBaseUrl ??
|
|
254
|
+
"https://generativelanguage.googleapis.com")}/v1beta/${modelPath}:batchEmbedContents`, {
|
|
255
|
+
requests: inputs.map((input) => ({
|
|
256
|
+
model: modelPath,
|
|
257
|
+
content: { parts: [{ text: input.normalizedText }] },
|
|
258
|
+
embedContentConfig: {
|
|
259
|
+
outputDimensionality: this.config.dimensions
|
|
260
|
+
}
|
|
261
|
+
}))
|
|
262
|
+
}, {
|
|
263
|
+
provider: "gemini",
|
|
264
|
+
headers: { "x-goog-api-key": apiKey }
|
|
265
|
+
});
|
|
266
|
+
const embeddings = readGeminiEmbeddings(json);
|
|
267
|
+
return createEmbeddingVectors(inputs, embeddings, this.metadata);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
export function createEmbeddingCacheKey(input) {
|
|
271
|
+
return hashString(JSON.stringify({
|
|
272
|
+
chunkId: input.chunkId,
|
|
273
|
+
normalizedTextHash: hashString(input.normalizedText),
|
|
274
|
+
provider: input.provider,
|
|
275
|
+
model: input.model,
|
|
276
|
+
dimensions: input.dimensions,
|
|
277
|
+
pooling: input.pooling,
|
|
278
|
+
normalize: input.normalize,
|
|
279
|
+
quantization: input.quantization,
|
|
280
|
+
revision: input.revision,
|
|
281
|
+
chunkingVersion: input.chunkingVersion
|
|
282
|
+
}));
|
|
283
|
+
}
|
|
284
|
+
export function encodeVector(vector) {
|
|
285
|
+
return Buffer.from(vector.buffer, vector.byteOffset, vector.byteLength);
|
|
286
|
+
}
|
|
287
|
+
export function decodeVector(buffer) {
|
|
288
|
+
return new Float32Array(buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength));
|
|
289
|
+
}
|
|
290
|
+
async function loadTransformersJsPipeline(task, model, options) {
|
|
291
|
+
const transformers = await import("@huggingface/transformers");
|
|
292
|
+
transformers.env.allowRemoteModels = false;
|
|
293
|
+
return (await transformers.pipeline(task, model, options));
|
|
294
|
+
}
|
|
295
|
+
function tensorToVectors(tensor, inputCount, dimensions) {
|
|
296
|
+
const outputDimensions = tensor.dims.length === 1
|
|
297
|
+
? tensor.dims[0]
|
|
298
|
+
: tensor.dims[tensor.dims.length - 1];
|
|
299
|
+
if (outputDimensions !== dimensions) {
|
|
300
|
+
throw new UserFacingError(`Embedding model returned ${String(outputDimensions)} dimensions, expected ${String(dimensions)}.`);
|
|
301
|
+
}
|
|
302
|
+
const batchSize = tensor.dims.length === 1 ? 1 : (tensor.dims[0] ?? 0);
|
|
303
|
+
if (batchSize !== inputCount) {
|
|
304
|
+
throw new UserFacingError(`Embedding model returned ${String(batchSize)} vectors for ${String(inputCount)} inputs.`);
|
|
305
|
+
}
|
|
306
|
+
return Array.from({ length: inputCount }, (_, inputIndex) => {
|
|
307
|
+
const vector = new Float32Array(dimensions);
|
|
308
|
+
const offset = inputIndex * dimensions;
|
|
309
|
+
for (let index = 0; index < dimensions; index += 1) {
|
|
310
|
+
vector[index] = tensor.data[offset + index] ?? 0;
|
|
311
|
+
}
|
|
312
|
+
return vector;
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
function createEmbeddingMetadata(config, implementation, revision) {
|
|
316
|
+
return {
|
|
317
|
+
provider: config.provider,
|
|
318
|
+
model: config.model,
|
|
319
|
+
dimensions: config.dimensions,
|
|
320
|
+
pooling: config.pooling,
|
|
321
|
+
normalize: config.normalize,
|
|
322
|
+
quantization: "none",
|
|
323
|
+
revision,
|
|
324
|
+
implementation
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
function normalizeBaseUrl(url) {
|
|
328
|
+
return url.replace(/\/+$/u, "");
|
|
329
|
+
}
|
|
330
|
+
function readApiKey(provider, env) {
|
|
331
|
+
const envName = credentialEnvByEmbeddingProvider[provider];
|
|
332
|
+
if (envName === undefined) {
|
|
333
|
+
throw new UserFacingError(`No API key environment variable is configured for ${provider}.`);
|
|
334
|
+
}
|
|
335
|
+
const value = env[envName]?.trim();
|
|
336
|
+
if (value === undefined || value === "") {
|
|
337
|
+
throw new UserFacingError(`${envName} is required when embeddings.provider is '${provider}'.`);
|
|
338
|
+
}
|
|
339
|
+
return value;
|
|
340
|
+
}
|
|
341
|
+
function compactJsonObject(value) {
|
|
342
|
+
return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== undefined));
|
|
343
|
+
}
|
|
344
|
+
async function postJson(fetchImpl, url, body, options) {
|
|
345
|
+
let response;
|
|
346
|
+
try {
|
|
347
|
+
response = await fetchImpl(url, {
|
|
348
|
+
method: "POST",
|
|
349
|
+
headers: {
|
|
350
|
+
"content-type": "application/json",
|
|
351
|
+
...options.headers
|
|
352
|
+
},
|
|
353
|
+
body: JSON.stringify(body)
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
catch (error) {
|
|
357
|
+
throw new UserFacingError(`Embedding request to ${options.provider} failed: ${String(error)}`);
|
|
358
|
+
}
|
|
359
|
+
if (!response.ok) {
|
|
360
|
+
const responseText = await response.text().catch(() => "");
|
|
361
|
+
const detail = responseText.trim();
|
|
362
|
+
throw new UserFacingError(`Embedding request to ${options.provider} failed with HTTP ${String(response.status)}${detail === "" ? "." : `: ${detail}`}`);
|
|
363
|
+
}
|
|
364
|
+
try {
|
|
365
|
+
return await response.json();
|
|
366
|
+
}
|
|
367
|
+
catch {
|
|
368
|
+
throw new UserFacingError(`Embedding request to ${options.provider} returned invalid JSON.`);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
function createEmbeddingVectors(inputs, embeddings, metadata) {
|
|
372
|
+
if (embeddings.length !== inputs.length) {
|
|
373
|
+
throw new UserFacingError(`Embedding provider returned ${String(embeddings.length)} vectors for ${String(inputs.length)} inputs.`);
|
|
374
|
+
}
|
|
375
|
+
return inputs.map((input, index) => {
|
|
376
|
+
const values = embeddings[index];
|
|
377
|
+
if (values === undefined) {
|
|
378
|
+
throw new UserFacingError(`Embedding provider omitted vector ${String(index)}.`);
|
|
379
|
+
}
|
|
380
|
+
if (values.length !== metadata.dimensions) {
|
|
381
|
+
throw new UserFacingError(`Embedding provider returned ${String(values.length)} dimensions, expected ${String(metadata.dimensions)}.`);
|
|
382
|
+
}
|
|
383
|
+
const vector = new Float32Array(metadata.dimensions);
|
|
384
|
+
for (let valueIndex = 0; valueIndex < values.length; valueIndex += 1) {
|
|
385
|
+
const value = values[valueIndex];
|
|
386
|
+
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
387
|
+
throw new UserFacingError(`Embedding provider returned a non-finite value at vector ${String(index)}, dimension ${String(valueIndex)}.`);
|
|
388
|
+
}
|
|
389
|
+
vector[valueIndex] = value;
|
|
390
|
+
}
|
|
391
|
+
return {
|
|
392
|
+
chunkId: input.chunkId,
|
|
393
|
+
vector: metadata.normalize ? normalizeVector(vector) : vector,
|
|
394
|
+
metadata
|
|
395
|
+
};
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
function readIndexedEmbeddingData(json, provider) {
|
|
399
|
+
const data = readArrayProperty(json, "data", provider);
|
|
400
|
+
const indexed = data.map((entry, fallbackIndex) => {
|
|
401
|
+
if (!isRecord(entry)) {
|
|
402
|
+
throw invalidProviderResponse(provider);
|
|
403
|
+
}
|
|
404
|
+
const indexValue = entry.index;
|
|
405
|
+
const index = typeof indexValue === "number" && Number.isInteger(indexValue)
|
|
406
|
+
? indexValue
|
|
407
|
+
: fallbackIndex;
|
|
408
|
+
const embedding = readNumberArray(entry.embedding, provider);
|
|
409
|
+
return { index, embedding };
|
|
410
|
+
});
|
|
411
|
+
indexed.sort((first, second) => first.index - second.index);
|
|
412
|
+
return indexed.map((entry) => entry.embedding);
|
|
413
|
+
}
|
|
414
|
+
function readGeminiEmbeddings(json) {
|
|
415
|
+
const embeddings = readArrayProperty(json, "embeddings", "gemini");
|
|
416
|
+
return embeddings.map((entry) => {
|
|
417
|
+
if (!isRecord(entry)) {
|
|
418
|
+
throw invalidProviderResponse("gemini");
|
|
419
|
+
}
|
|
420
|
+
return readNumberArray(entry.values, "gemini");
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
function readNumberMatrix(json, path, provider) {
|
|
424
|
+
let current = json;
|
|
425
|
+
for (const key of path) {
|
|
426
|
+
if (!isRecord(current)) {
|
|
427
|
+
throw invalidProviderResponse(provider);
|
|
428
|
+
}
|
|
429
|
+
current = current[key];
|
|
430
|
+
}
|
|
431
|
+
if (!Array.isArray(current)) {
|
|
432
|
+
throw invalidProviderResponse(provider);
|
|
433
|
+
}
|
|
434
|
+
return current.map((entry) => readNumberArray(entry, provider));
|
|
435
|
+
}
|
|
436
|
+
function readArrayProperty(json, property, provider) {
|
|
437
|
+
if (!isRecord(json) || !Array.isArray(json[property])) {
|
|
438
|
+
throw invalidProviderResponse(provider);
|
|
439
|
+
}
|
|
440
|
+
return json[property];
|
|
441
|
+
}
|
|
442
|
+
function readNumberArray(value, provider) {
|
|
443
|
+
if (!Array.isArray(value)) {
|
|
444
|
+
throw invalidProviderResponse(provider);
|
|
445
|
+
}
|
|
446
|
+
return value.map((entry) => {
|
|
447
|
+
if (typeof entry !== "number" || !Number.isFinite(entry)) {
|
|
448
|
+
throw invalidProviderResponse(provider);
|
|
449
|
+
}
|
|
450
|
+
return entry;
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
function isRecord(value) {
|
|
454
|
+
return typeof value === "object" && value !== null;
|
|
455
|
+
}
|
|
456
|
+
function invalidProviderResponse(provider) {
|
|
457
|
+
return new UserFacingError(`Embedding request to ${provider} returned an invalid response shape.`);
|
|
458
|
+
}
|
|
459
|
+
export function createDeterministicEmbeddingVector(text, dimensions) {
|
|
460
|
+
const vector = new Float32Array(dimensions);
|
|
461
|
+
const tokens = tokenizeEmbeddingText(text);
|
|
462
|
+
for (const [index, token] of tokens.entries()) {
|
|
463
|
+
const digest = createHash("sha256")
|
|
464
|
+
.update(`${token}:${String(index)}`)
|
|
465
|
+
.digest();
|
|
466
|
+
for (let offset = 0; offset < digest.length; offset += 2) {
|
|
467
|
+
const dimension = (digest[offset] ?? 0) % dimensions;
|
|
468
|
+
const raw = digest[offset + 1] ?? 0;
|
|
469
|
+
vector[dimension] = (vector[dimension] ?? 0) + raw / 127.5 - 1;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
return vector;
|
|
473
|
+
}
|
|
474
|
+
function tokenizeEmbeddingText(text) {
|
|
475
|
+
const rawTokens = text.toLowerCase().match(/[a-z0-9_./:-]+/gu) ?? [text];
|
|
476
|
+
const tokens = [];
|
|
477
|
+
for (const rawToken of rawTokens) {
|
|
478
|
+
const token = rawToken.endsWith("s") ? rawToken.slice(0, -1) : rawToken;
|
|
479
|
+
tokens.push(token);
|
|
480
|
+
const aliases = Object.prototype.hasOwnProperty.call(semanticAliases, token)
|
|
481
|
+
? semanticAliases[token]
|
|
482
|
+
: undefined;
|
|
483
|
+
for (const alias of aliases ?? []) {
|
|
484
|
+
tokens.push(alias);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
return tokens;
|
|
488
|
+
}
|
|
489
|
+
const semanticAliases = {
|
|
490
|
+
auth: ["authentication", "login", "credential", "oauth"],
|
|
491
|
+
authentication: ["auth", "login", "credential", "oauth"],
|
|
492
|
+
oauth: ["auth", "authentication", "login"],
|
|
493
|
+
login: ["auth", "authentication", "oauth"],
|
|
494
|
+
credential: ["token", "secret", "auth"],
|
|
495
|
+
token: ["credential", "secret", "auth"],
|
|
496
|
+
index: ["search", "retrieval", "embedding"],
|
|
497
|
+
indexing: ["index", "search", "retrieval", "embedding"],
|
|
498
|
+
retrieval: ["search", "index", "embedding"],
|
|
499
|
+
search: ["retrieval", "index", "embedding"]
|
|
500
|
+
};
|
|
501
|
+
function normalizeVector(vector) {
|
|
502
|
+
let magnitude = 0;
|
|
503
|
+
for (const value of vector) {
|
|
504
|
+
magnitude += value * value;
|
|
505
|
+
}
|
|
506
|
+
if (magnitude === 0) {
|
|
507
|
+
return vector;
|
|
508
|
+
}
|
|
509
|
+
const scale = 1 / Math.sqrt(magnitude);
|
|
510
|
+
for (let index = 0; index < vector.length; index += 1) {
|
|
511
|
+
vector[index] = (vector[index] ?? 0) * scale;
|
|
512
|
+
}
|
|
513
|
+
return vector;
|
|
514
|
+
}
|
|
515
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embeddings/index.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare enum ExitCode {
|
|
2
|
+
Success = 0,
|
|
3
|
+
RuntimeFailure = 1,
|
|
4
|
+
UsageError = 2,
|
|
5
|
+
Interrupted = 130
|
|
6
|
+
}
|
|
7
|
+
export declare class AthenaError extends Error {
|
|
8
|
+
readonly exitCode: ExitCode;
|
|
9
|
+
readonly cause?: unknown | undefined;
|
|
10
|
+
constructor(message: string, exitCode: ExitCode, cause?: unknown | undefined);
|
|
11
|
+
}
|
|
12
|
+
export declare class UserFacingError extends AthenaError {
|
|
13
|
+
constructor(message: string, cause?: unknown);
|
|
14
|
+
}
|
|
15
|
+
export declare class InternalFailure extends AthenaError {
|
|
16
|
+
constructor(message: string, cause?: unknown);
|
|
17
|
+
}
|
|
18
|
+
export declare function toAthenaError(error: unknown): AthenaError;
|
|
19
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,OAAO,IAAI;IACX,cAAc,IAAI;IAClB,UAAU,IAAI;IACd,WAAW,MAAM;CAClB;AAED,qBAAa,WAAY,SAAQ,KAAK;aAGlB,QAAQ,EAAE,QAAQ;aACT,KAAK,CAAC,EAAE,OAAO;gBAFxC,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,QAAQ,EACT,KAAK,CAAC,EAAE,OAAO,YAAA;CAK3C;AAED,qBAAa,eAAgB,SAAQ,WAAW;gBAC3B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAGpD;AAED,qBAAa,eAAgB,SAAQ,WAAW;gBAC3B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAGpD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAUzD"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export var ExitCode;
|
|
2
|
+
(function (ExitCode) {
|
|
3
|
+
ExitCode[ExitCode["Success"] = 0] = "Success";
|
|
4
|
+
ExitCode[ExitCode["RuntimeFailure"] = 1] = "RuntimeFailure";
|
|
5
|
+
ExitCode[ExitCode["UsageError"] = 2] = "UsageError";
|
|
6
|
+
ExitCode[ExitCode["Interrupted"] = 130] = "Interrupted";
|
|
7
|
+
})(ExitCode || (ExitCode = {}));
|
|
8
|
+
export class AthenaError extends Error {
|
|
9
|
+
exitCode;
|
|
10
|
+
cause;
|
|
11
|
+
constructor(message, exitCode, cause) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.exitCode = exitCode;
|
|
14
|
+
this.cause = cause;
|
|
15
|
+
this.name = new.target.name;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class UserFacingError extends AthenaError {
|
|
19
|
+
constructor(message, cause) {
|
|
20
|
+
super(message, ExitCode.UsageError, cause);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class InternalFailure extends AthenaError {
|
|
24
|
+
constructor(message, cause) {
|
|
25
|
+
super(message, ExitCode.RuntimeFailure, cause);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export function toAthenaError(error) {
|
|
29
|
+
if (error instanceof AthenaError) {
|
|
30
|
+
return error;
|
|
31
|
+
}
|
|
32
|
+
if (error instanceof Error) {
|
|
33
|
+
return new InternalFailure(error.message, error);
|
|
34
|
+
}
|
|
35
|
+
return new InternalFailure("An unknown Athena failure occurred.", error);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,6CAAW,CAAA;IACX,2DAAkB,CAAA;IAClB,mDAAc,CAAA;IACd,uDAAiB,CAAA;AACnB,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IAGlB;IACS;IAH3B,YACE,OAAe,EACC,QAAkB,EACT,KAAe;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,aAAQ,GAAR,QAAQ,CAAU;QACT,UAAK,GAAL,KAAK,CAAU;QAGxC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAC9C,YAAmB,OAAe,EAAE,KAAe;QACjD,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAC9C,YAAmB,OAAe,EAAE,KAAe;QACjD,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,IAAI,eAAe,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;AAC3E,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { ConfigValidationError, DEFAULT_CONFIG_FILENAMES, defaultAthenaConfig, defineConfig, discoverConfigFile, loadConfig, resolveConfig } from "./config/index.js";
|
|
2
|
+
export { DEFAULT_MAX_AGENT_STEPS, FakeModelProvider, OllamaModelProvider, askQuestion, buildModelMessages, createModelToolDefinitions, createConfiguredModelProvider, parseAnswerCitations, parsePdfCitations, parseTextCitations, runAgentTurn, serializePdfCitation, serializeTextCitation, validateAnswerCitations, validateModelProviderConfig, renderTerminalCitations } from "./agent/index.js";
|
|
3
|
+
export { AthenaError, ExitCode, InternalFailure, UserFacingError } from "./errors.js";
|
|
4
|
+
export { DEFAULT_EMBEDDING_REVISION, DeterministicEmbeddingProvider, OllamaEmbeddingProvider, RemoteRestEmbeddingProvider, createEmbeddingCacheKey, createEmbeddingProvider, decodeVector, encodeVector, validateEmbeddingProviderConfig } from "./embeddings/index.js";
|
|
5
|
+
export { createLogger } from "./logging/logger.js";
|
|
6
|
+
export { RetrievalToolRuntime, toolSchemas } from "./retrieval/index.js";
|
|
7
|
+
export { startAthenaServer } from "./server/index.js";
|
|
8
|
+
export { SCHEMA_VERSION, countAvailable, getCacheState, getSchemaVersion, initializeDatabase, inspectDatabase, inspectSchema, migrateDatabase, openDatabase, requiredIndexes, requiredTables, resolveAthenaPaths, withTransaction } from "./storage/index.js";
|
|
9
|
+
export type { AthenaConfig, AthenaUserConfig, ChatProvider, ChatProviderConfig, ConfigDiagnostic, EmbeddingProvider, EmbeddingProviderConfig, IndexConfig, LoadedConfig, PdfConfig, ServerConfig } from "./config/index.js";
|
|
10
|
+
export type { Logger, LogLevel, LogSink } from "./logging/logger.js";
|
|
11
|
+
export type { GrepDocsInput, GrepDocsResult, ListDocsInput, ListDocsResult, ReadPdfSourceInput, ReadPdfSourceResult, ReadSourceRangeInput, ReadSourceRangeResult, RelatedChunkResult, RelatedChunksInput, RetrievalTrace, SearchDocsInput, SearchDocsResult } from "./retrieval/index.js";
|
|
12
|
+
export type { AthenaPaths, CacheState, DatabaseHealthReport, DatabaseSchemaHealth, DatabaseStatus, InitializedDatabase } from "./storage/index.js";
|
|
13
|
+
export type { AthenaServer, ServerStatus, StartServerOptions } from "./server/index.js";
|
|
14
|
+
export type { ChunkRecord, Citation, DocumentRecord, ParserArtifact, PdfLocator, ProviderEvent, SourceKind, SourceLocator, SourceRecord, TextLocator, ToolResult } from "./shared/types.js";
|
|
15
|
+
export type { AssistantModelMessage, AgentEvent, AgentTurnInput, AgentTurnResult, AskQuestionInput, CompactConversationTurn, CreateModelProviderOptions, FetchLike, ModelEvent, ModelFinishReason, ModelMessage, ModelProvider, ModelProviderRequest, ModelRole, ModelToolCall, ModelToolCallEvent, ModelToolDefinition, ModelToolResultMessage, ParsedCitation, ParsedPdfCitation, ParsedTextCitation, TextModelMessage, ValidateAnswerCitationsInput } from "./agent/index.js";
|
|
16
|
+
export type { EmbeddingCacheKeyInput, CreateEmbeddingProviderOptions, EmbeddingInput, EmbeddingVector, EmbeddingVectorMetadata, EmbeddingVectorProvider, FetchLike as EmbeddingFetchLike } from "./embeddings/index.js";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { ConfigValidationError, DEFAULT_CONFIG_FILENAMES, defaultAthenaConfig, defineConfig, discoverConfigFile, loadConfig, resolveConfig } from "./config/index.js";
|
|
2
|
+
export { DEFAULT_MAX_AGENT_STEPS, FakeModelProvider, OllamaModelProvider, askQuestion, buildModelMessages, createModelToolDefinitions, createConfiguredModelProvider, parseAnswerCitations, parsePdfCitations, parseTextCitations, runAgentTurn, serializePdfCitation, serializeTextCitation, validateAnswerCitations, validateModelProviderConfig, renderTerminalCitations } from "./agent/index.js";
|
|
3
|
+
export { AthenaError, ExitCode, InternalFailure, UserFacingError } from "./errors.js";
|
|
4
|
+
export { DEFAULT_EMBEDDING_REVISION, DeterministicEmbeddingProvider, OllamaEmbeddingProvider, RemoteRestEmbeddingProvider, createEmbeddingCacheKey, createEmbeddingProvider, decodeVector, encodeVector, validateEmbeddingProviderConfig } from "./embeddings/index.js";
|
|
5
|
+
export { createLogger } from "./logging/logger.js";
|
|
6
|
+
export { RetrievalToolRuntime, toolSchemas } from "./retrieval/index.js";
|
|
7
|
+
export { startAthenaServer } from "./server/index.js";
|
|
8
|
+
export { SCHEMA_VERSION, countAvailable, getCacheState, getSchemaVersion, initializeDatabase, inspectDatabase, inspectSchema, migrateDatabase, openDatabase, requiredIndexes, requiredTables, resolveAthenaPaths, withTransaction } from "./storage/index.js";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,0BAA0B,EAC1B,6BAA6B,EAC7B,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,WAAW,EACX,QAAQ,EACR,eAAe,EACf,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,uBAAuB,EACvB,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,EACZ,YAAY,EACZ,+BAA+B,EAChC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,eAAe,EAChB,MAAM,oBAAoB,CAAC"}
|