@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.
Files changed (201) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +147 -0
  3. package/dist/agent/ask.d.ts +7 -0
  4. package/dist/agent/ask.d.ts.map +1 -0
  5. package/dist/agent/ask.js +35 -0
  6. package/dist/agent/ask.js.map +1 -0
  7. package/dist/agent/citations.d.ts +27 -0
  8. package/dist/agent/citations.d.ts.map +1 -0
  9. package/dist/agent/citations.js +190 -0
  10. package/dist/agent/citations.js.map +1 -0
  11. package/dist/agent/fake-provider.d.ts +9 -0
  12. package/dist/agent/fake-provider.d.ts.map +1 -0
  13. package/dist/agent/fake-provider.js +51 -0
  14. package/dist/agent/fake-provider.js.map +1 -0
  15. package/dist/agent/index.d.ts +10 -0
  16. package/dist/agent/index.d.ts.map +1 -0
  17. package/dist/agent/index.js +6 -0
  18. package/dist/agent/index.js.map +1 -0
  19. package/dist/agent/loop.d.ts +11 -0
  20. package/dist/agent/loop.d.ts.map +1 -0
  21. package/dist/agent/loop.js +156 -0
  22. package/dist/agent/loop.js.map +1 -0
  23. package/dist/agent/providers.d.ts +17 -0
  24. package/dist/agent/providers.d.ts.map +1 -0
  25. package/dist/agent/providers.js +171 -0
  26. package/dist/agent/providers.js.map +1 -0
  27. package/dist/agent/tools.d.ts +8 -0
  28. package/dist/agent/tools.d.ts.map +1 -0
  29. package/dist/agent/tools.js +233 -0
  30. package/dist/agent/tools.js.map +1 -0
  31. package/dist/agent/types.d.ts +84 -0
  32. package/dist/agent/types.d.ts.map +1 -0
  33. package/dist/agent/types.js +2 -0
  34. package/dist/agent/types.js.map +1 -0
  35. package/dist/cli/help.d.ts +2 -0
  36. package/dist/cli/help.d.ts.map +1 -0
  37. package/dist/cli/help.js +28 -0
  38. package/dist/cli/help.js.map +1 -0
  39. package/dist/cli/main.d.ts +3 -0
  40. package/dist/cli/main.d.ts.map +1 -0
  41. package/dist/cli/main.js +5 -0
  42. package/dist/cli/main.js.map +1 -0
  43. package/dist/cli/options.d.ts +21 -0
  44. package/dist/cli/options.d.ts.map +1 -0
  45. package/dist/cli/options.js +97 -0
  46. package/dist/cli/options.js.map +1 -0
  47. package/dist/cli/run.d.ts +21 -0
  48. package/dist/cli/run.d.ts.map +1 -0
  49. package/dist/cli/run.js +144 -0
  50. package/dist/cli/run.js.map +1 -0
  51. package/dist/config/index.d.ts +4 -0
  52. package/dist/config/index.d.ts.map +1 -0
  53. package/dist/config/index.js +3 -0
  54. package/dist/config/index.js.map +1 -0
  55. package/dist/config/loader.d.ts +14 -0
  56. package/dist/config/loader.d.ts.map +1 -0
  57. package/dist/config/loader.js +352 -0
  58. package/dist/config/loader.js.map +1 -0
  59. package/dist/config/schema.d.ts +6 -0
  60. package/dist/config/schema.d.ts.map +1 -0
  61. package/dist/config/schema.js +72 -0
  62. package/dist/config/schema.js.map +1 -0
  63. package/dist/config/types.d.ts +53 -0
  64. package/dist/config/types.d.ts.map +1 -0
  65. package/dist/config/types.js +2 -0
  66. package/dist/config/types.js.map +1 -0
  67. package/dist/doctor/doctor.d.ts +47 -0
  68. package/dist/doctor/doctor.d.ts.map +1 -0
  69. package/dist/doctor/doctor.js +159 -0
  70. package/dist/doctor/doctor.js.map +1 -0
  71. package/dist/embeddings/index.d.ts +117 -0
  72. package/dist/embeddings/index.d.ts.map +1 -0
  73. package/dist/embeddings/index.js +515 -0
  74. package/dist/embeddings/index.js.map +1 -0
  75. package/dist/errors.d.ts +19 -0
  76. package/dist/errors.d.ts.map +1 -0
  77. package/dist/errors.js +37 -0
  78. package/dist/errors.js.map +1 -0
  79. package/dist/index.d.ts +17 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +9 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/indexer/discovery.d.ts +10 -0
  84. package/dist/indexer/discovery.d.ts.map +1 -0
  85. package/dist/indexer/discovery.js +38 -0
  86. package/dist/indexer/discovery.js.map +1 -0
  87. package/dist/indexer/hash.d.ts +3 -0
  88. package/dist/indexer/hash.d.ts.map +1 -0
  89. package/dist/indexer/hash.js +11 -0
  90. package/dist/indexer/hash.js.map +1 -0
  91. package/dist/indexer/index.d.ts +7 -0
  92. package/dist/indexer/index.d.ts.map +1 -0
  93. package/dist/indexer/index.js +5 -0
  94. package/dist/indexer/index.js.map +1 -0
  95. package/dist/indexer/kinds.d.ts +4 -0
  96. package/dist/indexer/kinds.d.ts.map +1 -0
  97. package/dist/indexer/kinds.js +38 -0
  98. package/dist/indexer/kinds.js.map +1 -0
  99. package/dist/indexer/run.d.ts +42 -0
  100. package/dist/indexer/run.d.ts.map +1 -0
  101. package/dist/indexer/run.js +563 -0
  102. package/dist/indexer/run.js.map +1 -0
  103. package/dist/logging/logger.d.ts +11 -0
  104. package/dist/logging/logger.d.ts.map +1 -0
  105. package/dist/logging/logger.js +18 -0
  106. package/dist/logging/logger.js.map +1 -0
  107. package/dist/mcp/index.d.ts +35 -0
  108. package/dist/mcp/index.d.ts.map +1 -0
  109. package/dist/mcp/index.js +392 -0
  110. package/dist/mcp/index.js.map +1 -0
  111. package/dist/parsers/chunking.d.ts +4 -0
  112. package/dist/parsers/chunking.d.ts.map +1 -0
  113. package/dist/parsers/chunking.js +112 -0
  114. package/dist/parsers/chunking.js.map +1 -0
  115. package/dist/parsers/index.d.ts +8 -0
  116. package/dist/parsers/index.d.ts.map +1 -0
  117. package/dist/parsers/index.js +5 -0
  118. package/dist/parsers/index.js.map +1 -0
  119. package/dist/parsers/line-parser.d.ts +13 -0
  120. package/dist/parsers/line-parser.d.ts.map +1 -0
  121. package/dist/parsers/line-parser.js +242 -0
  122. package/dist/parsers/line-parser.js.map +1 -0
  123. package/dist/parsers/normalize.d.ts +4 -0
  124. package/dist/parsers/normalize.d.ts.map +1 -0
  125. package/dist/parsers/normalize.js +17 -0
  126. package/dist/parsers/normalize.js.map +1 -0
  127. package/dist/parsers/parser.d.ts +14 -0
  128. package/dist/parsers/parser.d.ts.map +1 -0
  129. package/dist/parsers/parser.js +77 -0
  130. package/dist/parsers/parser.js.map +1 -0
  131. package/dist/parsers/pdf2llm.d.ts +14 -0
  132. package/dist/parsers/pdf2llm.d.ts.map +1 -0
  133. package/dist/parsers/pdf2llm.js +215 -0
  134. package/dist/parsers/pdf2llm.js.map +1 -0
  135. package/dist/parsers/types.d.ts +48 -0
  136. package/dist/parsers/types.d.ts.map +1 -0
  137. package/dist/parsers/types.js +2 -0
  138. package/dist/parsers/types.js.map +1 -0
  139. package/dist/retrieval/index.d.ts +4 -0
  140. package/dist/retrieval/index.d.ts.map +1 -0
  141. package/dist/retrieval/index.js +3 -0
  142. package/dist/retrieval/index.js.map +1 -0
  143. package/dist/retrieval/schemas.d.ts +127 -0
  144. package/dist/retrieval/schemas.d.ts.map +1 -0
  145. package/dist/retrieval/schemas.js +65 -0
  146. package/dist/retrieval/schemas.js.map +1 -0
  147. package/dist/retrieval/tools.d.ts +31 -0
  148. package/dist/retrieval/tools.d.ts.map +1 -0
  149. package/dist/retrieval/tools.js +803 -0
  150. package/dist/retrieval/tools.js.map +1 -0
  151. package/dist/retrieval/types.d.ts +104 -0
  152. package/dist/retrieval/types.d.ts.map +1 -0
  153. package/dist/retrieval/types.js +2 -0
  154. package/dist/retrieval/types.js.map +1 -0
  155. package/dist/server/index.d.ts +3 -0
  156. package/dist/server/index.d.ts.map +1 -0
  157. package/dist/server/index.js +2 -0
  158. package/dist/server/index.js.map +1 -0
  159. package/dist/server/server.d.ts +49 -0
  160. package/dist/server/server.d.ts.map +1 -0
  161. package/dist/server/server.js +517 -0
  162. package/dist/server/server.js.map +1 -0
  163. package/dist/shared/types.d.ts +98 -0
  164. package/dist/shared/types.d.ts.map +1 -0
  165. package/dist/shared/types.js +2 -0
  166. package/dist/shared/types.js.map +1 -0
  167. package/dist/storage/database.d.ts +18 -0
  168. package/dist/storage/database.d.ts.map +1 -0
  169. package/dist/storage/database.js +66 -0
  170. package/dist/storage/database.js.map +1 -0
  171. package/dist/storage/index.d.ts +8 -0
  172. package/dist/storage/index.d.ts.map +1 -0
  173. package/dist/storage/index.js +5 -0
  174. package/dist/storage/index.js.map +1 -0
  175. package/dist/storage/migrations.d.ts +15 -0
  176. package/dist/storage/migrations.d.ts.map +1 -0
  177. package/dist/storage/migrations.js +170 -0
  178. package/dist/storage/migrations.js.map +1 -0
  179. package/dist/storage/paths.d.ts +15 -0
  180. package/dist/storage/paths.d.ts.map +1 -0
  181. package/dist/storage/paths.js +27 -0
  182. package/dist/storage/paths.js.map +1 -0
  183. package/dist/storage/schema.d.ts +11 -0
  184. package/dist/storage/schema.d.ts.map +1 -0
  185. package/dist/storage/schema.js +40 -0
  186. package/dist/storage/schema.js.map +1 -0
  187. package/dist/ui/index.d.ts +2 -0
  188. package/dist/ui/index.d.ts.map +1 -0
  189. package/dist/ui/index.js +2 -0
  190. package/dist/ui/index.js.map +1 -0
  191. package/dist/ui/static-app.d.ts +2 -0
  192. package/dist/ui/static-app.d.ts.map +1 -0
  193. package/dist/ui/static-app.js +735 -0
  194. package/dist/ui/static-app.js.map +1 -0
  195. package/docs/adr/0001-sqlite-driver.md +23 -0
  196. package/docs/agentic-rag-specifications.md +659 -0
  197. package/docs/agentic-rag-study.md +1056 -0
  198. package/docs/implementation-plan.md +1425 -0
  199. package/docs/mcp-integration.md +154 -0
  200. package/docs/validation-corpus.md +71 -0
  201. package/package.json +79 -0
@@ -0,0 +1,352 @@
1
+ import { existsSync } from "node:fs";
2
+ import { readFile } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import { createJiti } from "jiti";
6
+ import { UserFacingError } from "../errors.js";
7
+ import { DEFAULT_CONFIG_FILENAMES, cloneDefaultConfig } from "./schema.js";
8
+ export class ConfigValidationError extends UserFacingError {
9
+ diagnostics;
10
+ constructor(diagnostics) {
11
+ super([
12
+ "Invalid Athena config:",
13
+ ...diagnostics.map((diagnostic) => `- ${diagnostic.path}: ${diagnostic.message}`)
14
+ ].join("\n"));
15
+ this.diagnostics = diagnostics;
16
+ }
17
+ }
18
+ const remoteEmbeddingProviders = new Set([
19
+ "openai",
20
+ "voyage",
21
+ "cohere",
22
+ "gemini"
23
+ ]);
24
+ const remoteChatProviders = new Set([
25
+ "openai",
26
+ "anthropic",
27
+ "gemini"
28
+ ]);
29
+ export async function loadConfig(options) {
30
+ const configPath = discoverConfigFile(options.root, options.configPath);
31
+ const rawConfig = configPath === null ? {} : await loadConfigModule(configPath);
32
+ return {
33
+ config: resolveConfig(rawConfig),
34
+ configPath
35
+ };
36
+ }
37
+ export function discoverConfigFile(root, explicitConfigPath) {
38
+ const absoluteRoot = path.resolve(root);
39
+ if (explicitConfigPath !== undefined) {
40
+ const explicitPath = path.isAbsolute(explicitConfigPath)
41
+ ? explicitConfigPath
42
+ : path.resolve(absoluteRoot, explicitConfigPath);
43
+ if (!existsSync(explicitPath)) {
44
+ throw new UserFacingError(`Config file not found: ${explicitPath}`);
45
+ }
46
+ return explicitPath;
47
+ }
48
+ for (const filename of DEFAULT_CONFIG_FILENAMES) {
49
+ const candidate = path.join(absoluteRoot, filename);
50
+ if (existsSync(candidate)) {
51
+ return candidate;
52
+ }
53
+ }
54
+ return null;
55
+ }
56
+ export function resolveConfig(rawConfig) {
57
+ const diagnostics = [];
58
+ const config = cloneDefaultConfig();
59
+ if (!isRecord(rawConfig)) {
60
+ throw new ConfigValidationError([
61
+ { path: "config", message: "expected an object export" }
62
+ ]);
63
+ }
64
+ applyIndexConfig(config, rawConfig, diagnostics);
65
+ applyEmbeddingConfig(config, rawConfig, diagnostics);
66
+ applyChatConfig(config, rawConfig, diagnostics);
67
+ applyPdfConfig(config, rawConfig, diagnostics);
68
+ applyServerConfig(config, rawConfig, diagnostics);
69
+ applyRemoteProviderGuards(config, diagnostics);
70
+ if (diagnostics.length > 0) {
71
+ throw new ConfigValidationError(diagnostics);
72
+ }
73
+ return config;
74
+ }
75
+ async function loadConfigModule(configPath) {
76
+ if (configPath.endsWith(".json")) {
77
+ try {
78
+ return JSON.parse(await readFile(configPath, "utf8"));
79
+ }
80
+ catch (error) {
81
+ throw new UserFacingError(`Could not parse config JSON: ${configPath}`, error);
82
+ }
83
+ }
84
+ const jiti = createJiti(configPath, {
85
+ alias: {
86
+ "@alextis59/athena": resolveAthenaEntrypoint(),
87
+ athena: resolveAthenaEntrypoint()
88
+ },
89
+ fsCache: false,
90
+ moduleCache: false
91
+ });
92
+ try {
93
+ return await jiti.import(configPath, { default: true });
94
+ }
95
+ catch (error) {
96
+ throw new UserFacingError(`Could not load config file: ${configPath}`, error);
97
+ }
98
+ }
99
+ function resolveAthenaEntrypoint() {
100
+ const sourceEntrypoint = fileURLToPath(new URL("../index.ts", import.meta.url));
101
+ if (existsSync(sourceEntrypoint)) {
102
+ return sourceEntrypoint;
103
+ }
104
+ return fileURLToPath(new URL("../index.js", import.meta.url));
105
+ }
106
+ function applyIndexConfig(config, rawConfig, diagnostics) {
107
+ const index = readSection(rawConfig, "index", diagnostics);
108
+ if (index === undefined) {
109
+ return;
110
+ }
111
+ readStringArray(index, "index.include", diagnostics, (value) => {
112
+ config.index.include = value;
113
+ });
114
+ readStringArray(index, "index.exclude", diagnostics, (value) => {
115
+ config.index.exclude = value;
116
+ });
117
+ }
118
+ function applyEmbeddingConfig(config, rawConfig, diagnostics) {
119
+ const embeddings = readSection(rawConfig, "embeddings", diagnostics);
120
+ if (embeddings === undefined) {
121
+ return;
122
+ }
123
+ readEnum(embeddings, "embeddings.provider", [
124
+ "transformers-js",
125
+ "ollama",
126
+ "openai",
127
+ "voyage",
128
+ "cohere",
129
+ "gemini",
130
+ "none"
131
+ ], diagnostics, (value) => {
132
+ config.embeddings.provider = value;
133
+ });
134
+ readString(embeddings, "embeddings.model", diagnostics, (value) => {
135
+ config.embeddings.model = value;
136
+ });
137
+ readPositiveInteger(embeddings, "embeddings.dimensions", diagnostics, (value) => {
138
+ config.embeddings.dimensions = value;
139
+ });
140
+ readEnum(embeddings, "embeddings.pooling", ["mean", "cls"], diagnostics, (value) => {
141
+ config.embeddings.pooling = value;
142
+ });
143
+ readBoolean(embeddings, "embeddings.normalize", diagnostics, (value) => {
144
+ config.embeddings.normalize = value;
145
+ });
146
+ readBoolean(embeddings, "embeddings.allowRemoteDocumentText", diagnostics, (value) => {
147
+ config.embeddings.allowRemoteDocumentText = value;
148
+ });
149
+ }
150
+ function applyChatConfig(config, rawConfig, diagnostics) {
151
+ const chat = readSection(rawConfig, "chat", diagnostics);
152
+ if (chat === undefined) {
153
+ return;
154
+ }
155
+ readEnum(chat, "chat.provider", ["none", "ollama", "openai", "anthropic", "gemini"], diagnostics, (value) => {
156
+ config.chat.provider = value;
157
+ });
158
+ readNullableString(chat, "chat.model", diagnostics, (value) => {
159
+ config.chat.model = value;
160
+ });
161
+ readBoolean(chat, "chat.allowRemoteDocumentText", diagnostics, (value) => {
162
+ config.chat.allowRemoteDocumentText = value;
163
+ });
164
+ }
165
+ function applyPdfConfig(config, rawConfig, diagnostics) {
166
+ const pdf = readSection(rawConfig, "pdf", diagnostics);
167
+ if (pdf === undefined) {
168
+ return;
169
+ }
170
+ readEnum(pdf, "pdf.parser", ["pdf-2-llm"], diagnostics, (value) => {
171
+ config.pdf.parser = value;
172
+ });
173
+ readBoolean(pdf, "pdf.pageAnchors", diagnostics, (value) => {
174
+ config.pdf.pageAnchors = value;
175
+ });
176
+ readBoolean(pdf, "pdf.csvSidecars", diagnostics, (value) => {
177
+ config.pdf.csvSidecars = value;
178
+ });
179
+ readPositiveInteger(pdf, "pdf.timeoutMs", diagnostics, (value) => {
180
+ config.pdf.timeoutMs = value;
181
+ });
182
+ readNumberRange(pdf, "pdf.minConfidenceForAutoCitation", 0, 1, diagnostics, (value) => {
183
+ config.pdf.minConfidenceForAutoCitation = value;
184
+ });
185
+ }
186
+ function applyServerConfig(config, rawConfig, diagnostics) {
187
+ const server = readSection(rawConfig, "server", diagnostics);
188
+ if (server === undefined) {
189
+ return;
190
+ }
191
+ readString(server, "server.host", diagnostics, (value) => {
192
+ config.server.host = value;
193
+ });
194
+ readPort(server, "server.port", diagnostics, (value) => {
195
+ config.server.port = value;
196
+ });
197
+ }
198
+ function applyRemoteProviderGuards(config, diagnostics) {
199
+ if (remoteEmbeddingProviders.has(config.embeddings.provider) &&
200
+ !config.embeddings.allowRemoteDocumentText) {
201
+ diagnostics.push({
202
+ path: "embeddings.allowRemoteDocumentText",
203
+ message: `must be true before documents can be sent to ${config.embeddings.provider}`
204
+ });
205
+ }
206
+ if (remoteChatProviders.has(config.chat.provider) &&
207
+ !config.chat.allowRemoteDocumentText) {
208
+ diagnostics.push({
209
+ path: "chat.allowRemoteDocumentText",
210
+ message: `must be true before document context can be sent to ${config.chat.provider}`
211
+ });
212
+ }
213
+ }
214
+ function readSection(rawConfig, pathName, diagnostics) {
215
+ const value = rawConfig[pathName];
216
+ if (value === undefined) {
217
+ return undefined;
218
+ }
219
+ if (!isRecord(value)) {
220
+ diagnostics.push({ path: pathName, message: "expected an object" });
221
+ return undefined;
222
+ }
223
+ return value;
224
+ }
225
+ function readStringArray(section, pathName, diagnostics, setValue) {
226
+ const value = readField(section, pathName);
227
+ if (value === undefined) {
228
+ return;
229
+ }
230
+ if (!isStringArray(value)) {
231
+ diagnostics.push({
232
+ path: pathName,
233
+ message: "expected an array of strings"
234
+ });
235
+ return;
236
+ }
237
+ setValue([...value]);
238
+ }
239
+ function readString(section, pathName, diagnostics, setValue) {
240
+ const value = readField(section, pathName);
241
+ if (value === undefined) {
242
+ return;
243
+ }
244
+ if (typeof value !== "string" || value.trim() === "") {
245
+ diagnostics.push({
246
+ path: pathName,
247
+ message: "expected a non-empty string"
248
+ });
249
+ return;
250
+ }
251
+ setValue(value);
252
+ }
253
+ function readNullableString(section, pathName, diagnostics, setValue) {
254
+ const value = readField(section, pathName);
255
+ if (value === undefined) {
256
+ return;
257
+ }
258
+ if (value === null) {
259
+ setValue(null);
260
+ return;
261
+ }
262
+ if (typeof value !== "string" || value.trim() === "") {
263
+ diagnostics.push({
264
+ path: pathName,
265
+ message: "expected a non-empty string or null"
266
+ });
267
+ return;
268
+ }
269
+ setValue(value);
270
+ }
271
+ function readBoolean(section, pathName, diagnostics, setValue) {
272
+ const value = readField(section, pathName);
273
+ if (value === undefined) {
274
+ return;
275
+ }
276
+ if (typeof value !== "boolean") {
277
+ diagnostics.push({ path: pathName, message: "expected a boolean" });
278
+ return;
279
+ }
280
+ setValue(value);
281
+ }
282
+ function readPositiveInteger(section, pathName, diagnostics, setValue) {
283
+ const value = readField(section, pathName);
284
+ if (value === undefined) {
285
+ return;
286
+ }
287
+ if (typeof value !== "number" || !Number.isInteger(value) || value <= 0) {
288
+ diagnostics.push({
289
+ path: pathName,
290
+ message: "expected a positive integer"
291
+ });
292
+ return;
293
+ }
294
+ setValue(value);
295
+ }
296
+ function readPort(section, pathName, diagnostics, setValue) {
297
+ const value = readField(section, pathName);
298
+ if (value === undefined) {
299
+ return;
300
+ }
301
+ if (typeof value !== "number" ||
302
+ !Number.isInteger(value) ||
303
+ value < 1 ||
304
+ value > 65535) {
305
+ diagnostics.push({
306
+ path: pathName,
307
+ message: "expected an integer between 1 and 65535"
308
+ });
309
+ return;
310
+ }
311
+ setValue(value);
312
+ }
313
+ function readNumberRange(section, pathName, min, max, diagnostics, setValue) {
314
+ const value = readField(section, pathName);
315
+ if (value === undefined) {
316
+ return;
317
+ }
318
+ if (typeof value !== "number" || value < min || value > max) {
319
+ diagnostics.push({
320
+ path: pathName,
321
+ message: `expected a number between ${String(min)} and ${String(max)}`
322
+ });
323
+ return;
324
+ }
325
+ setValue(value);
326
+ }
327
+ function readEnum(section, pathName, allowedValues, diagnostics, setValue) {
328
+ const value = readField(section, pathName);
329
+ if (value === undefined) {
330
+ return;
331
+ }
332
+ if (typeof value !== "string" || !allowedValues.includes(value)) {
333
+ diagnostics.push({
334
+ path: pathName,
335
+ message: `expected one of ${allowedValues.join(", ")}`
336
+ });
337
+ return;
338
+ }
339
+ setValue(value);
340
+ }
341
+ function readField(section, pathName) {
342
+ const separatorIndex = pathName.lastIndexOf(".");
343
+ const fieldName = separatorIndex === -1 ? pathName : pathName.slice(separatorIndex + 1);
344
+ return section[fieldName];
345
+ }
346
+ function isRecord(value) {
347
+ return typeof value === "object" && value !== null && !Array.isArray(value);
348
+ }
349
+ function isStringArray(value) {
350
+ return (Array.isArray(value) && value.every((item) => typeof item === "string"));
351
+ }
352
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { AthenaConfig, AthenaUserConfig } from "./types.js";
2
+ export declare const DEFAULT_CONFIG_FILENAMES: readonly ["athena.config.ts", "athena.config.mjs", "athena.config.json"];
3
+ export declare const defaultAthenaConfig: AthenaConfig;
4
+ export declare function defineConfig<TConfig extends AthenaUserConfig>(config: TConfig): TConfig;
5
+ export declare function cloneDefaultConfig(): AthenaConfig;
6
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE,eAAO,MAAM,wBAAwB,0EAI3B,CAAC;AAEX,eAAO,MAAM,mBAAmB,EAAE,YAkDjC,CAAC;AAEF,wBAAgB,YAAY,CAAC,OAAO,SAAS,gBAAgB,EAC3D,MAAM,EAAE,OAAO,GACd,OAAO,CAET;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAWjD"}
@@ -0,0 +1,72 @@
1
+ export const DEFAULT_CONFIG_FILENAMES = [
2
+ "athena.config.ts",
3
+ "athena.config.mjs",
4
+ "athena.config.json"
5
+ ];
6
+ export const defaultAthenaConfig = {
7
+ index: {
8
+ include: [
9
+ "**/*.md",
10
+ "**/*.mdx",
11
+ "**/*.txt",
12
+ "**/*.rst",
13
+ "**/*.adoc",
14
+ "**/*.html",
15
+ "**/*.htm",
16
+ "**/*.pdf",
17
+ "**/README",
18
+ "**/CHANGELOG",
19
+ "**/CONTRIBUTING",
20
+ "**/LICENSE",
21
+ "**/NOTICE"
22
+ ],
23
+ exclude: [
24
+ ".git/**",
25
+ "node_modules/**",
26
+ ".athena/**",
27
+ "dist/**",
28
+ "build/**",
29
+ "coverage/**"
30
+ ]
31
+ },
32
+ embeddings: {
33
+ provider: "transformers-js",
34
+ model: "mixedbread-ai/mxbai-embed-xsmall-v1",
35
+ dimensions: 384,
36
+ pooling: "mean",
37
+ normalize: true,
38
+ allowRemoteDocumentText: false
39
+ },
40
+ chat: {
41
+ provider: "none",
42
+ model: null,
43
+ allowRemoteDocumentText: false
44
+ },
45
+ pdf: {
46
+ parser: "pdf-2-llm",
47
+ pageAnchors: true,
48
+ csvSidecars: true,
49
+ timeoutMs: 30_000,
50
+ minConfidenceForAutoCitation: 0.65
51
+ },
52
+ server: {
53
+ host: "127.0.0.1",
54
+ port: 4317
55
+ }
56
+ };
57
+ export function defineConfig(config) {
58
+ return config;
59
+ }
60
+ export function cloneDefaultConfig() {
61
+ return {
62
+ index: {
63
+ include: [...defaultAthenaConfig.index.include],
64
+ exclude: [...defaultAthenaConfig.index.exclude]
65
+ },
66
+ embeddings: { ...defaultAthenaConfig.embeddings },
67
+ chat: { ...defaultAthenaConfig.chat },
68
+ pdf: { ...defaultAthenaConfig.pdf },
69
+ server: { ...defaultAthenaConfig.server }
70
+ };
71
+ }
72
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;CACZ,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAiB;IAC/C,KAAK,EAAE;QACL,OAAO,EAAE;YACP,SAAS;YACT,UAAU;YACV,UAAU;YACV,UAAU;YACV,WAAW;YACX,WAAW;YACX,UAAU;YACV,UAAU;YACV,WAAW;YACX,cAAc;YACd,iBAAiB;YACjB,YAAY;YACZ,WAAW;SACZ;QACD,OAAO,EAAE;YACP,SAAS;YACT,iBAAiB;YACjB,YAAY;YACZ,SAAS;YACT,UAAU;YACV,aAAa;SACd;KACF;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,iBAAiB;QAC3B,KAAK,EAAE,qCAAqC;QAC5C,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,IAAI;QACf,uBAAuB,EAAE,KAAK;KAC/B;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,IAAI;QACX,uBAAuB,EAAE,KAAK;KAC/B;IACD,GAAG,EAAE;QACH,MAAM,EAAE,WAAW;QACnB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,MAAM;QACjB,4BAA4B,EAAE,IAAI;KACnC;IACD,MAAM,EAAE;QACN,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,IAAI;KACX;CACF,CAAC;AAEF,MAAM,UAAU,YAAY,CAC1B,MAAe;IAEf,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC;YAC/C,OAAO,EAAE,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC;SAChD;QACD,UAAU,EAAE,EAAE,GAAG,mBAAmB,CAAC,UAAU,EAAE;QACjD,IAAI,EAAE,EAAE,GAAG,mBAAmB,CAAC,IAAI,EAAE;QACrC,GAAG,EAAE,EAAE,GAAG,mBAAmB,CAAC,GAAG,EAAE;QACnC,MAAM,EAAE,EAAE,GAAG,mBAAmB,CAAC,MAAM,EAAE;KAC1C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,53 @@
1
+ export interface IndexConfig {
2
+ include: string[];
3
+ exclude: string[];
4
+ }
5
+ export type EmbeddingProvider = "transformers-js" | "ollama" | "openai" | "voyage" | "cohere" | "gemini" | "none";
6
+ export interface EmbeddingProviderConfig {
7
+ provider: EmbeddingProvider;
8
+ model: string;
9
+ dimensions: number;
10
+ pooling: "mean" | "cls";
11
+ normalize: boolean;
12
+ allowRemoteDocumentText: boolean;
13
+ }
14
+ export type ChatProvider = "none" | "ollama" | "openai" | "anthropic" | "gemini";
15
+ export interface ChatProviderConfig {
16
+ provider: ChatProvider;
17
+ model: string | null;
18
+ allowRemoteDocumentText: boolean;
19
+ }
20
+ export interface PdfConfig {
21
+ parser: "pdf-2-llm";
22
+ pageAnchors: boolean;
23
+ csvSidecars: boolean;
24
+ timeoutMs: number;
25
+ minConfidenceForAutoCitation: number;
26
+ }
27
+ export interface ServerConfig {
28
+ host: string;
29
+ port: number;
30
+ }
31
+ export interface AthenaConfig {
32
+ index: IndexConfig;
33
+ embeddings: EmbeddingProviderConfig;
34
+ chat: ChatProviderConfig;
35
+ pdf: PdfConfig;
36
+ server: ServerConfig;
37
+ }
38
+ export interface AthenaUserConfig {
39
+ index?: Partial<IndexConfig>;
40
+ embeddings?: Partial<EmbeddingProviderConfig>;
41
+ chat?: Partial<ChatProviderConfig>;
42
+ pdf?: Partial<PdfConfig>;
43
+ server?: Partial<ServerConfig>;
44
+ }
45
+ export interface ConfigDiagnostic {
46
+ path: string;
47
+ message: string;
48
+ }
49
+ export interface LoadedConfig {
50
+ config: AthenaConfig;
51
+ configPath: string | null;
52
+ }
53
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GACzB,iBAAiB,GACjB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,MAAM,CAAC;AAEX,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,YAAY,GACtB,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,uBAAuB,CAAC;IACpC,IAAI,EAAE,kBAAkB,CAAC;IACzB,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnC,GAAG,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ import type { CliOptions } from "../cli/options.js";
2
+ import type { CliWritable } from "../cli/run.js";
3
+ import type { DatabaseHealthReport } from "../storage/index.js";
4
+ export interface DoctorReport {
5
+ root: string;
6
+ config: {
7
+ path: string | null;
8
+ server: {
9
+ host: string;
10
+ port: number;
11
+ };
12
+ };
13
+ database: DatabaseHealthReport;
14
+ index: {
15
+ sources: number;
16
+ documents: number;
17
+ chunks: number;
18
+ warnings: number;
19
+ };
20
+ parsers: {
21
+ pdf2llm: PackageAvailability;
22
+ };
23
+ embeddings: {
24
+ provider: string;
25
+ model: string;
26
+ modelCacheDir: string;
27
+ modelCacheState: "present" | "missing";
28
+ };
29
+ server: {
30
+ host: string;
31
+ port: number;
32
+ available: boolean;
33
+ error: string | null;
34
+ };
35
+ }
36
+ export interface PackageAvailability {
37
+ available: boolean;
38
+ resolvedPath: string | null;
39
+ }
40
+ export interface RunDoctorOptions {
41
+ options: CliOptions;
42
+ stdout: CliWritable;
43
+ }
44
+ export declare function runDoctor(runOptions: RunDoctorOptions): Promise<void>;
45
+ export declare function collectDoctorReport(options: CliOptions): Promise<DoctorReport>;
46
+ export declare function renderDoctorReport(report: DoctorReport): string;
47
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/doctor/doctor.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;IACF,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,OAAO,EAAE;QACP,OAAO,EAAE,mBAAmB,CAAC;KAC9B,CAAC;IACF,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,SAAS,GAAG,SAAS,CAAC;KACxC,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACrB;AAID,wBAAsB,SAAS,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3E;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,YAAY,CAAC,CAsCvB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAiC/D"}