@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,84 @@
|
|
|
1
|
+
import type { Citation, ToolResult } from "../shared/types.js";
|
|
2
|
+
export type ModelRole = "system" | "user" | "assistant" | "tool";
|
|
3
|
+
export interface TextModelMessage {
|
|
4
|
+
role: "system" | "user";
|
|
5
|
+
content: string;
|
|
6
|
+
}
|
|
7
|
+
export interface AssistantModelMessage {
|
|
8
|
+
role: "assistant";
|
|
9
|
+
content: string;
|
|
10
|
+
toolCalls?: ModelToolCall[];
|
|
11
|
+
}
|
|
12
|
+
export interface ModelToolResultMessage {
|
|
13
|
+
role: "tool";
|
|
14
|
+
toolCallId: string;
|
|
15
|
+
name: string;
|
|
16
|
+
content: string;
|
|
17
|
+
}
|
|
18
|
+
export type ModelMessage = TextModelMessage | AssistantModelMessage | ModelToolResultMessage;
|
|
19
|
+
export interface ModelToolDefinition {
|
|
20
|
+
name: string;
|
|
21
|
+
description: string;
|
|
22
|
+
inputSchema: Record<string, unknown>;
|
|
23
|
+
}
|
|
24
|
+
export interface ModelProviderRequest {
|
|
25
|
+
model: string;
|
|
26
|
+
messages: ModelMessage[];
|
|
27
|
+
tools: ModelToolDefinition[];
|
|
28
|
+
temperature?: number;
|
|
29
|
+
}
|
|
30
|
+
export type ModelFinishReason = "stop" | "length" | "tool_budget";
|
|
31
|
+
export interface ModelToolCall {
|
|
32
|
+
id: string;
|
|
33
|
+
name: string;
|
|
34
|
+
input: unknown;
|
|
35
|
+
}
|
|
36
|
+
export interface ModelToolCallEvent {
|
|
37
|
+
type: "tool_call";
|
|
38
|
+
id: string;
|
|
39
|
+
name: string;
|
|
40
|
+
input: unknown;
|
|
41
|
+
}
|
|
42
|
+
export type ModelEvent = {
|
|
43
|
+
type: "message_delta";
|
|
44
|
+
text: string;
|
|
45
|
+
} | ModelToolCallEvent | {
|
|
46
|
+
type: "complete";
|
|
47
|
+
finishReason: ModelFinishReason;
|
|
48
|
+
};
|
|
49
|
+
export interface ModelProvider {
|
|
50
|
+
streamResponse(input: ModelProviderRequest): AsyncIterable<ModelEvent>;
|
|
51
|
+
}
|
|
52
|
+
export interface CompactConversationTurn {
|
|
53
|
+
question: string;
|
|
54
|
+
answerSummary: string;
|
|
55
|
+
citations?: Citation[];
|
|
56
|
+
}
|
|
57
|
+
export interface AgentTurnInput {
|
|
58
|
+
root: string;
|
|
59
|
+
dbPath?: string;
|
|
60
|
+
question: string;
|
|
61
|
+
model: string;
|
|
62
|
+
provider: ModelProvider;
|
|
63
|
+
maxSteps?: number;
|
|
64
|
+
previousTurns?: CompactConversationTurn[];
|
|
65
|
+
pinnedSources?: string[];
|
|
66
|
+
}
|
|
67
|
+
export type AgentEvent = {
|
|
68
|
+
type: "message_delta";
|
|
69
|
+
text: string;
|
|
70
|
+
} | ModelToolCallEvent | {
|
|
71
|
+
type: "tool_result";
|
|
72
|
+
id: string;
|
|
73
|
+
name: string;
|
|
74
|
+
result: ToolResult;
|
|
75
|
+
} | {
|
|
76
|
+
type: "complete";
|
|
77
|
+
finishReason: ModelFinishReason;
|
|
78
|
+
answer: string;
|
|
79
|
+
};
|
|
80
|
+
export interface AgentTurnResult {
|
|
81
|
+
answer: string;
|
|
82
|
+
finishReason: ModelFinishReason;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,IAAI,MAAM,CA0BnC"}
|
package/dist/cli/help.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export function renderHelp() {
|
|
2
|
+
return `Athena - local-first documentation RAG
|
|
3
|
+
|
|
4
|
+
Usage:
|
|
5
|
+
athena [command] [options]
|
|
6
|
+
athena ask "How do I configure auth?"
|
|
7
|
+
|
|
8
|
+
Commands:
|
|
9
|
+
default Build or update the index, then start the local UI
|
|
10
|
+
index Index documentation into .athena/index.sqlite
|
|
11
|
+
serve Start the local Athena HTTP server and chat UI
|
|
12
|
+
ask Ask a question from the command line
|
|
13
|
+
doctor Check local configuration, storage, parsers, and providers
|
|
14
|
+
mcp Start the MCP bridge for external coding agents
|
|
15
|
+
|
|
16
|
+
Options:
|
|
17
|
+
--root <path> Project root to inspect (default: current directory)
|
|
18
|
+
--config <path> Explicit Athena config file
|
|
19
|
+
--db <path> SQLite index path (default: .athena/index.sqlite)
|
|
20
|
+
--host <host> Server bind host (default: 127.0.0.1)
|
|
21
|
+
--port <port> Server port (default: 4317)
|
|
22
|
+
--debug Enable debug logs
|
|
23
|
+
--json Emit machine-readable output where supported
|
|
24
|
+
--build Build the index before serving
|
|
25
|
+
-h, --help Show help
|
|
26
|
+
`;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU;IACxB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;CAwBR,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":""}
|
package/dist/cli/main.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { runCli } from "./run.js";
|
|
3
|
+
const result = await runCli(process.argv.slice(2), { stdin: process.stdin, stdout: process.stdout, stderr: process.stderr }, { cwd: process.cwd() });
|
|
4
|
+
process.exitCode = result.exitCode;
|
|
5
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,MAAM,GAAG,MAAM,MAAM,CACzB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EACxE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CACvB,CAAC;AAEF,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type CliCommand = "default" | "index" | "serve" | "ask" | "doctor" | "mcp";
|
|
2
|
+
export interface CliOptions {
|
|
3
|
+
root: string;
|
|
4
|
+
config?: string;
|
|
5
|
+
db?: string;
|
|
6
|
+
host: string;
|
|
7
|
+
port: number;
|
|
8
|
+
hostProvided: boolean;
|
|
9
|
+
portProvided: boolean;
|
|
10
|
+
debug: boolean;
|
|
11
|
+
json: boolean;
|
|
12
|
+
help: boolean;
|
|
13
|
+
build: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface ParsedCli {
|
|
16
|
+
command: CliCommand;
|
|
17
|
+
options: CliOptions;
|
|
18
|
+
args: string[];
|
|
19
|
+
}
|
|
20
|
+
export declare function parseCliArgs(argv: string[], cwd: string): ParsedCli;
|
|
21
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GACpB,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE3D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAWD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAuEnE"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { UserFacingError } from "../errors.js";
|
|
2
|
+
const commands = new Set([
|
|
3
|
+
"default",
|
|
4
|
+
"index",
|
|
5
|
+
"serve",
|
|
6
|
+
"ask",
|
|
7
|
+
"doctor",
|
|
8
|
+
"mcp"
|
|
9
|
+
]);
|
|
10
|
+
export function parseCliArgs(argv, cwd) {
|
|
11
|
+
const options = {
|
|
12
|
+
root: cwd,
|
|
13
|
+
host: "127.0.0.1",
|
|
14
|
+
port: 4317,
|
|
15
|
+
hostProvided: false,
|
|
16
|
+
portProvided: false,
|
|
17
|
+
debug: false,
|
|
18
|
+
json: false,
|
|
19
|
+
help: false,
|
|
20
|
+
build: false
|
|
21
|
+
};
|
|
22
|
+
const positional = [];
|
|
23
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
24
|
+
const token = argv[index];
|
|
25
|
+
if (token === undefined) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
if (token === "-h" || token === "--help") {
|
|
29
|
+
options.help = true;
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (token === "--debug") {
|
|
33
|
+
options.debug = true;
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (token === "--json") {
|
|
37
|
+
options.json = true;
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
if (token === "--build") {
|
|
41
|
+
options.build = true;
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
if (token.startsWith("--")) {
|
|
45
|
+
const equalsIndex = token.indexOf("=");
|
|
46
|
+
const name = equalsIndex === -1 ? token : token.slice(0, equalsIndex);
|
|
47
|
+
const inlineValue = equalsIndex === -1 ? undefined : token.slice(equalsIndex + 1);
|
|
48
|
+
const value = inlineValue ?? argv[index + 1];
|
|
49
|
+
if (value === undefined || value.startsWith("--")) {
|
|
50
|
+
throw new UserFacingError(`Missing value for ${name}.`);
|
|
51
|
+
}
|
|
52
|
+
if (inlineValue === undefined) {
|
|
53
|
+
index += 1;
|
|
54
|
+
}
|
|
55
|
+
applyOption(options, name, value);
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
positional.push(token);
|
|
59
|
+
}
|
|
60
|
+
const maybeCommand = positional[0];
|
|
61
|
+
const command = maybeCommand !== undefined && commands.has(maybeCommand)
|
|
62
|
+
? maybeCommand
|
|
63
|
+
: "default";
|
|
64
|
+
const args = command === "default" ? positional : positional.slice(1);
|
|
65
|
+
return { command, options, args };
|
|
66
|
+
}
|
|
67
|
+
function applyOption(options, name, value) {
|
|
68
|
+
switch (name) {
|
|
69
|
+
case "--root":
|
|
70
|
+
options.root = value;
|
|
71
|
+
return;
|
|
72
|
+
case "--config":
|
|
73
|
+
options.config = value;
|
|
74
|
+
return;
|
|
75
|
+
case "--db":
|
|
76
|
+
options.db = value;
|
|
77
|
+
return;
|
|
78
|
+
case "--host":
|
|
79
|
+
options.host = value;
|
|
80
|
+
options.hostProvided = true;
|
|
81
|
+
return;
|
|
82
|
+
case "--port":
|
|
83
|
+
options.port = parsePort(value);
|
|
84
|
+
options.portProvided = true;
|
|
85
|
+
return;
|
|
86
|
+
default:
|
|
87
|
+
throw new UserFacingError(`Unknown option ${name}.`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function parsePort(value) {
|
|
91
|
+
const port = Number.parseInt(value, 10);
|
|
92
|
+
if (!Number.isInteger(port) || port < 0 || port > 65535) {
|
|
93
|
+
throw new UserFacingError(`Invalid port: ${value}.`);
|
|
94
|
+
}
|
|
95
|
+
return port;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAyB/C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAa;IACnC,SAAS;IACT,OAAO;IACP,OAAO;IACP,KAAK;IACL,QAAQ;IACR,KAAK;CACN,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,IAAc,EAAE,GAAW;IACtD,MAAM,OAAO,GAAe;QAC1B,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,IAAI;QACV,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;KACb,CAAC;IACF,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;YACrB,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;YACrB,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YACtE,MAAM,WAAW,GACf,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,WAAW,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAE7C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,eAAe,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC;YAC1D,CAAC;YAED,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;YAED,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAClC,SAAS;QACX,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GACX,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,YAA0B,CAAC;QACpE,CAAC,CAAE,YAA2B;QAC9B,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,IAAI,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEtE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,WAAW,CAAC,OAAmB,EAAE,IAAY,EAAE,KAAa;IACnE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;YACrB,OAAO;QACT,KAAK,UAAU;YACb,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;YACvB,OAAO;QACT,KAAK,MAAM;YACT,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC;YACnB,OAAO;QACT,KAAK,QAAQ;YACX,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;YACrB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;YAC5B,OAAO;QACT,KAAK,QAAQ;YACX,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAChC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;YAC5B,OAAO;QACT;YACE,MAAM,IAAI,eAAe,CAAC,kBAAkB,IAAI,GAAG,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACxD,MAAM,IAAI,eAAe,CAAC,iBAAiB,KAAK,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ExitCode } from "../errors.js";
|
|
2
|
+
import type { ModelProvider } from "../agent/index.js";
|
|
3
|
+
export interface CliStreams {
|
|
4
|
+
stdin?: AsyncIterable<string | Uint8Array>;
|
|
5
|
+
stdout: CliWritable;
|
|
6
|
+
stderr: CliWritable;
|
|
7
|
+
}
|
|
8
|
+
export interface CliWritable {
|
|
9
|
+
write(chunk: string | Uint8Array): unknown;
|
|
10
|
+
}
|
|
11
|
+
export interface CliEnvironment {
|
|
12
|
+
cwd: string;
|
|
13
|
+
modelProvider?: ModelProvider;
|
|
14
|
+
model?: string;
|
|
15
|
+
waitForServerShutdown?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface CliResult {
|
|
18
|
+
exitCode: ExitCode;
|
|
19
|
+
}
|
|
20
|
+
export declare function runCli(argv: string[], streams: CliStreams, environment: CliEnvironment): Promise<CliResult>;
|
|
21
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkC,MAAM,cAAc,CAAC;AAexE,OAAO,KAAK,EAAkB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKvE,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAC3C,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,cAAc,GAC1B,OAAO,CAAC,SAAS,CAAC,CAqBpB"}
|
package/dist/cli/run.js
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { ExitCode, toAthenaError, UserFacingError } from "../errors.js";
|
|
2
|
+
import { askQuestion, renderTerminalCitations } from "../agent/index.js";
|
|
3
|
+
import { loadConfig } from "../config/index.js";
|
|
4
|
+
import { createLogger } from "../logging/logger.js";
|
|
5
|
+
import { runDoctor } from "../doctor/doctor.js";
|
|
6
|
+
import { indexFromCliOptions, renderIndexProgress, renderIndexResult } from "../indexer/index.js";
|
|
7
|
+
import { runMcpServer } from "../mcp/index.js";
|
|
8
|
+
import { createConfiguredModelProvider } from "../agent/index.js";
|
|
9
|
+
import { runServeFromCliOptions } from "../server/index.js";
|
|
10
|
+
import { inspectDatabase } from "../storage/index.js";
|
|
11
|
+
import { renderHelp } from "./help.js";
|
|
12
|
+
import { parseCliArgs } from "./options.js";
|
|
13
|
+
export async function runCli(argv, streams, environment) {
|
|
14
|
+
try {
|
|
15
|
+
const parsed = parseCliArgs(argv, environment.cwd);
|
|
16
|
+
const logger = createLogger(parsed.options.debug ? "debug" : "default", streams.stderr);
|
|
17
|
+
if (parsed.options.help) {
|
|
18
|
+
streams.stdout.write(renderHelp());
|
|
19
|
+
return { exitCode: ExitCode.Success };
|
|
20
|
+
}
|
|
21
|
+
logger.debug(`Running athena ${parsed.command}`);
|
|
22
|
+
await runCommand(parsed, streams, environment, logger);
|
|
23
|
+
return { exitCode: ExitCode.Success };
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
const athenaError = toAthenaError(error);
|
|
27
|
+
streams.stderr.write(`athena: ${athenaError.message}\n`);
|
|
28
|
+
return { exitCode: athenaError.exitCode };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
async function runCommand(parsed, streams, environment, logger) {
|
|
32
|
+
const command = parsed.command;
|
|
33
|
+
switch (command) {
|
|
34
|
+
case "index": {
|
|
35
|
+
await runIndexCommand(parsed, streams, logger);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
case "doctor":
|
|
39
|
+
await runDoctor({
|
|
40
|
+
options: parsed.options,
|
|
41
|
+
stdout: streams.stdout
|
|
42
|
+
});
|
|
43
|
+
return;
|
|
44
|
+
case "serve":
|
|
45
|
+
await runServeCommand(parsed, streams, environment, logger);
|
|
46
|
+
return;
|
|
47
|
+
case "ask":
|
|
48
|
+
await runAskCommand(parsed, streams, environment);
|
|
49
|
+
return;
|
|
50
|
+
case "mcp":
|
|
51
|
+
await runMcpCommand(parsed, streams);
|
|
52
|
+
return;
|
|
53
|
+
case "default":
|
|
54
|
+
await runDefaultCommand(parsed, streams, environment, logger);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async function runDefaultCommand(parsed, streams, environment, logger) {
|
|
59
|
+
await runIndexCommand(parsed, streams, logger);
|
|
60
|
+
await runServeFromCliOptions(parsed.options, streams.stdout, {
|
|
61
|
+
waitForShutdown: environment.waitForServerShutdown ?? true
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
async function runServeCommand(parsed, streams, environment, logger) {
|
|
65
|
+
if (parsed.options.build) {
|
|
66
|
+
await runIndexCommand(parsed, streams, logger);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
assertIndexReady(parsed);
|
|
70
|
+
}
|
|
71
|
+
await runServeFromCliOptions(parsed.options, streams.stdout, {
|
|
72
|
+
waitForShutdown: environment.waitForServerShutdown ?? true
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
async function runIndexCommand(parsed, streams, logger) {
|
|
76
|
+
const result = await indexFromCliOptions(parsed.options, parsed.options.json
|
|
77
|
+
? undefined
|
|
78
|
+
: (event) => {
|
|
79
|
+
logger.info(renderIndexProgress(event));
|
|
80
|
+
});
|
|
81
|
+
streams.stdout.write(renderIndexResult(result, parsed.options.json));
|
|
82
|
+
}
|
|
83
|
+
function assertIndexReady(parsed) {
|
|
84
|
+
const database = inspectDatabase(parsed.options.root, parsed.options.db);
|
|
85
|
+
if (database.status === "ready") {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
throw new UserFacingError("Athena index is missing. Run 'athena index' first or use 'athena serve --build'.");
|
|
89
|
+
}
|
|
90
|
+
async function runMcpCommand(parsed, streams) {
|
|
91
|
+
if (streams.stdin === undefined) {
|
|
92
|
+
throw new UserFacingError("The 'mcp' command requires stdin.");
|
|
93
|
+
}
|
|
94
|
+
await runMcpServer({
|
|
95
|
+
root: parsed.options.root,
|
|
96
|
+
...(parsed.options.db === undefined ? {} : { dbPath: parsed.options.db }),
|
|
97
|
+
input: streams.stdin,
|
|
98
|
+
output: streams.stdout
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
async function runAskCommand(parsed, streams, environment) {
|
|
102
|
+
const question = parsed.args.join(" ").trim();
|
|
103
|
+
if (question === "") {
|
|
104
|
+
throw new UserFacingError("The 'ask' command requires a question.");
|
|
105
|
+
}
|
|
106
|
+
const { provider, model } = await resolveAskProvider(parsed, environment);
|
|
107
|
+
const input = {
|
|
108
|
+
root: parsed.options.root,
|
|
109
|
+
question,
|
|
110
|
+
model,
|
|
111
|
+
provider
|
|
112
|
+
};
|
|
113
|
+
if (parsed.options.db !== undefined) {
|
|
114
|
+
input.dbPath = parsed.options.db;
|
|
115
|
+
}
|
|
116
|
+
const result = await askQuestion({
|
|
117
|
+
...input,
|
|
118
|
+
onEvent: (event) => {
|
|
119
|
+
if (event.type === "message_delta") {
|
|
120
|
+
streams.stdout.write(event.text);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
streams.stdout.write(renderTerminalCitations(result.answer));
|
|
125
|
+
if (!result.answer.endsWith("\n")) {
|
|
126
|
+
streams.stdout.write("\n");
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
async function resolveAskProvider(parsed, environment) {
|
|
130
|
+
if (environment.modelProvider !== undefined) {
|
|
131
|
+
return {
|
|
132
|
+
provider: environment.modelProvider,
|
|
133
|
+
model: environment.model ?? "fake"
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
const loadedConfig = await loadConfig(parsed.options.config === undefined
|
|
137
|
+
? { root: parsed.options.root }
|
|
138
|
+
: { root: parsed.options.root, configPath: parsed.options.config });
|
|
139
|
+
return {
|
|
140
|
+
provider: createConfiguredModelProvider(loadedConfig.config.chat),
|
|
141
|
+
model: loadedConfig.config.chat.model ?? ""
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type { AthenaConfig, AthenaUserConfig, ChatProvider, ChatProviderConfig, ConfigDiagnostic, EmbeddingProvider, EmbeddingProviderConfig, IndexConfig, LoadedConfig, PdfConfig, ServerConfig } from "./types.js";
|
|
2
|
+
export { DEFAULT_CONFIG_FILENAMES, defaultAthenaConfig, defineConfig } from "./schema.js";
|
|
3
|
+
export { ConfigValidationError, discoverConfigFile, loadConfig, resolveConfig } from "./loader.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACd,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACd,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { UserFacingError } from "../errors.js";
|
|
2
|
+
import type { AthenaConfig, ConfigDiagnostic, LoadedConfig } from "./types.js";
|
|
3
|
+
export declare class ConfigValidationError extends UserFacingError {
|
|
4
|
+
readonly diagnostics: ConfigDiagnostic[];
|
|
5
|
+
constructor(diagnostics: ConfigDiagnostic[]);
|
|
6
|
+
}
|
|
7
|
+
export interface LoadConfigOptions {
|
|
8
|
+
root: string;
|
|
9
|
+
configPath?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function loadConfig(options: LoadConfigOptions): Promise<LoadedConfig>;
|
|
12
|
+
export declare function discoverConfigFile(root: string, explicitConfigPath?: string): string | null;
|
|
13
|
+
export declare function resolveConfig(rawConfig: unknown): AthenaConfig;
|
|
14
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EACV,YAAY,EAEZ,gBAAgB,EAEhB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,qBAAa,qBAAsB,SAAQ,eAAe;aACrB,WAAW,EAAE,gBAAgB,EAAE;gBAA/B,WAAW,EAAE,gBAAgB,EAAE;CAUnE;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAeD,wBAAsB,UAAU,CAC9B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,YAAY,CAAC,CASvB;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,GAAG,IAAI,CAwBf;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,GAAG,YAAY,CAsB9D"}
|