@4via6/relay 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/.env.example +50 -0
- package/README.md +253 -0
- package/dist/auth.d.ts +3 -0
- package/dist/auth.js +32 -0
- package/dist/auth.js.map +1 -0
- package/dist/bot.d.ts +2 -0
- package/dist/bot.js +14 -0
- package/dist/bot.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/admin.d.ts +2 -0
- package/dist/commands/admin.js +420 -0
- package/dist/commands/admin.js.map +1 -0
- package/dist/commands/chat.d.ts +2 -0
- package/dist/commands/chat.js +80 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/files.d.ts +2 -0
- package/dist/commands/files.js +162 -0
- package/dist/commands/files.js.map +1 -0
- package/dist/commands/history.d.ts +2 -0
- package/dist/commands/history.js +152 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/index.d.ts +2 -0
- package/dist/commands/index.js +21 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/mcp.d.ts +2 -0
- package/dist/commands/mcp.js +105 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/media.d.ts +2 -0
- package/dist/commands/media.js +248 -0
- package/dist/commands/media.js.map +1 -0
- package/dist/commands/monitor.d.ts +2 -0
- package/dist/commands/monitor.js +136 -0
- package/dist/commands/monitor.js.map +1 -0
- package/dist/commands/session.d.ts +2 -0
- package/dist/commands/session.js +114 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/shell.d.ts +2 -0
- package/dist/commands/shell.js +90 -0
- package/dist/commands/shell.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/claude.d.ts +52 -0
- package/dist/providers/claude.js +449 -0
- package/dist/providers/claude.js.map +1 -0
- package/dist/providers/codex.d.ts +45 -0
- package/dist/providers/codex.js +400 -0
- package/dist/providers/codex.js.map +1 -0
- package/dist/providers/index.d.ts +6 -0
- package/dist/providers/index.js +40 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/opencode.d.ts +40 -0
- package/dist/providers/opencode.js +498 -0
- package/dist/providers/opencode.js.map +1 -0
- package/dist/providers/types.d.ts +173 -0
- package/dist/providers/types.js +6 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/session.d.ts +10 -0
- package/dist/session.js +65 -0
- package/dist/session.js.map +1 -0
- package/dist/utils/chunker.d.ts +1 -0
- package/dist/utils/chunker.js +24 -0
- package/dist/utils/chunker.js.map +1 -0
- package/dist/utils/errors.d.ts +12 -0
- package/dist/utils/errors.js +85 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/files.d.ts +15 -0
- package/dist/utils/files.js +81 -0
- package/dist/utils/files.js.map +1 -0
- package/dist/utils/html.d.ts +4 -0
- package/dist/utils/html.js +10 -0
- package/dist/utils/html.js.map +1 -0
- package/dist/utils/media.d.ts +15 -0
- package/dist/utils/media.js +103 -0
- package/dist/utils/media.js.map +1 -0
- package/dist/utils/store.d.ts +15 -0
- package/dist/utils/store.js +44 -0
- package/dist/utils/store.js.map +1 -0
- package/dist/utils/stream.d.ts +21 -0
- package/dist/utils/stream.js +149 -0
- package/dist/utils/stream.js.map +1 -0
- package/dist/utils/stt.d.ts +7 -0
- package/dist/utils/stt.js +118 -0
- package/dist/utils/stt.js.map +1 -0
- package/dist/utils/system-prompt.d.ts +5 -0
- package/dist/utils/system-prompt.js +64 -0
- package/dist/utils/system-prompt.js.map +1 -0
- package/dist/utils/timeout.d.ts +2 -0
- package/dist/utils/timeout.js +18 -0
- package/dist/utils/timeout.js.map +1 -0
- package/docs/commands.md +351 -0
- package/docs/configuration.md +160 -0
- package/docs/features.md +443 -0
- package/docs/getting-started.md +102 -0
- package/docs/providers.md +236 -0
- package/docs/troubleshooting.md +287 -0
- package/package.json +54 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { initProvider, shutdownProvider, getProviderName } from "./providers/index.js";
|
|
2
|
+
import { createBot } from "./bot.js";
|
|
3
|
+
import { isAuthConfigured } from "./auth.js";
|
|
4
|
+
import { startUploadCleanup, stopUploadCleanup } from "./utils/media.js";
|
|
5
|
+
import { unwatchSystemPrompt } from "./utils/system-prompt.js";
|
|
6
|
+
async function main() {
|
|
7
|
+
const botToken = process.env.BOT_TOKEN;
|
|
8
|
+
if (!botToken) {
|
|
9
|
+
console.error("BOT_TOKEN environment variable is required.");
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
if (!isAuthConfigured()) {
|
|
13
|
+
console.error("ALLOWED_USER_ID environment variable is required (must be a valid Telegram user ID).");
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
const providerName = getProviderName();
|
|
17
|
+
console.log(`Initializing ${providerName} provider...`);
|
|
18
|
+
await initProvider();
|
|
19
|
+
console.log(`${providerName} provider ready.`);
|
|
20
|
+
// Clean up old uploads every 30 minutes
|
|
21
|
+
startUploadCleanup();
|
|
22
|
+
const bot = createBot(botToken);
|
|
23
|
+
const botMode = (process.env.BOT_MODE ?? "polling").toLowerCase();
|
|
24
|
+
let httpServer = null;
|
|
25
|
+
async function gracefulShutdown(signal) {
|
|
26
|
+
console.log(`\n${signal} received. Shutting down...`);
|
|
27
|
+
if (httpServer) {
|
|
28
|
+
httpServer.close();
|
|
29
|
+
try {
|
|
30
|
+
await bot.api.deleteWebhook();
|
|
31
|
+
}
|
|
32
|
+
catch { }
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
bot.stop();
|
|
36
|
+
}
|
|
37
|
+
shutdownProvider();
|
|
38
|
+
stopUploadCleanup();
|
|
39
|
+
unwatchSystemPrompt();
|
|
40
|
+
process.exit(0);
|
|
41
|
+
}
|
|
42
|
+
process.on("SIGINT", () => gracefulShutdown("SIGINT"));
|
|
43
|
+
process.on("SIGTERM", () => gracefulShutdown("SIGTERM"));
|
|
44
|
+
if (botMode === "webhook") {
|
|
45
|
+
const webhookUrl = process.env.WEBHOOK_URL;
|
|
46
|
+
if (!webhookUrl) {
|
|
47
|
+
console.error("WEBHOOK_URL is required when BOT_MODE=webhook.");
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
const webhookPort = Number(process.env.WEBHOOK_PORT ?? "3000");
|
|
51
|
+
const webhookSecret = process.env.WEBHOOK_SECRET;
|
|
52
|
+
const { createServer } = await import("http");
|
|
53
|
+
const { webhookCallback } = await import("grammy");
|
|
54
|
+
await bot.api.setWebhook(webhookUrl, {
|
|
55
|
+
...(webhookSecret && { secret_token: webhookSecret }),
|
|
56
|
+
});
|
|
57
|
+
const handler = webhookCallback(bot, "http", {
|
|
58
|
+
...(webhookSecret && { secretToken: webhookSecret }),
|
|
59
|
+
});
|
|
60
|
+
httpServer = createServer(handler);
|
|
61
|
+
httpServer.listen(webhookPort, () => {
|
|
62
|
+
console.log(`Webhook server listening on port ${webhookPort}`);
|
|
63
|
+
console.log(`Webhook URL: ${webhookUrl}`);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// Clear any stale webhook before starting long-polling
|
|
68
|
+
try {
|
|
69
|
+
await bot.api.deleteWebhook();
|
|
70
|
+
}
|
|
71
|
+
catch { }
|
|
72
|
+
console.log("Starting Telegram bot (long polling)...");
|
|
73
|
+
await bot.start({
|
|
74
|
+
onStart: (info) => console.log(`Bot @${info.username} is running!`),
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
main().catch((err) => {
|
|
79
|
+
console.error("Fatal error:", err);
|
|
80
|
+
process.exit(1);
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Provider, ProviderCapabilities, Session, SessionInfo, PromptOptions, PromptResult, StreamChunk, Todo, FileDiff, SearchResult, FileStatus, ProjectInfo, CommandInfo, HealthInfo, ModelDetail, McpServerConfig, McpServerStatus } from "./types.js";
|
|
2
|
+
export declare class ClaudeProvider implements Provider {
|
|
3
|
+
readonly name: "claude";
|
|
4
|
+
readonly capabilities: ProviderCapabilities;
|
|
5
|
+
private model;
|
|
6
|
+
private permissionMode;
|
|
7
|
+
private cwd;
|
|
8
|
+
private mcpServers;
|
|
9
|
+
private mcpStore;
|
|
10
|
+
constructor();
|
|
11
|
+
init(): Promise<void>;
|
|
12
|
+
shutdown(): void;
|
|
13
|
+
createSession(title?: string): Promise<Session>;
|
|
14
|
+
listSessions(): Promise<SessionInfo[]>;
|
|
15
|
+
getSession(id: string): Promise<Session | null>;
|
|
16
|
+
deleteSession(_id: string): Promise<boolean>;
|
|
17
|
+
private buildQueryOpts;
|
|
18
|
+
prompt(sessionId: string, text: string, options?: PromptOptions): Promise<PromptResult>;
|
|
19
|
+
promptStream(sessionId: string, text: string, options?: PromptOptions): AsyncGenerator<StreamChunk>;
|
|
20
|
+
abort(sessionId: string): Promise<void>;
|
|
21
|
+
getTodos(): Promise<Todo[] | null>;
|
|
22
|
+
getDiff(sessionId: string): Promise<FileDiff[] | null>;
|
|
23
|
+
forkSession(sessionId: string): Promise<Session | null>;
|
|
24
|
+
revert(): Promise<boolean>;
|
|
25
|
+
unrevert(): Promise<boolean>;
|
|
26
|
+
share(): Promise<string | null>;
|
|
27
|
+
summarize(): Promise<boolean>;
|
|
28
|
+
getHistory(sessionId: string): Promise<unknown[] | null>;
|
|
29
|
+
/**
|
|
30
|
+
* Delegate a task to Claude with maxTurns: 1 and extract the text result.
|
|
31
|
+
*/
|
|
32
|
+
private delegatePrompt;
|
|
33
|
+
readFile(path: string): Promise<string | null>;
|
|
34
|
+
findFiles(query: string): Promise<string[] | null>;
|
|
35
|
+
searchText(pattern: string): Promise<SearchResult[] | null>;
|
|
36
|
+
findSymbols(): Promise<unknown[] | null>;
|
|
37
|
+
getFileStatus(): Promise<FileStatus[] | null>;
|
|
38
|
+
shell(sessionId: string, command: string): Promise<string | null>;
|
|
39
|
+
runCommand(): Promise<PromptResult | null>;
|
|
40
|
+
getProjectInfo(): Promise<ProjectInfo | null>;
|
|
41
|
+
getTools(): Promise<string[] | null>;
|
|
42
|
+
getCommands(): Promise<CommandInfo[] | null>;
|
|
43
|
+
getHealth(): Promise<HealthInfo>;
|
|
44
|
+
getConfig(): Promise<unknown>;
|
|
45
|
+
getProviders(): Promise<unknown>;
|
|
46
|
+
getAgents(): Promise<unknown[] | null>;
|
|
47
|
+
listModels(): Promise<ModelDetail[]>;
|
|
48
|
+
getMcpStatus(): Promise<McpServerStatus[] | null>;
|
|
49
|
+
addMcpServer(name: string, config: McpServerConfig): Promise<boolean>;
|
|
50
|
+
removeMcpServer(name: string): Promise<boolean>;
|
|
51
|
+
private persistMcp;
|
|
52
|
+
}
|
|
@@ -0,0 +1,449 @@
|
|
|
1
|
+
import { JsonStore } from "../utils/store.js";
|
|
2
|
+
// Dynamic import — only loads when PROVIDER=claude
|
|
3
|
+
let queryFn;
|
|
4
|
+
let listSessionsFn;
|
|
5
|
+
// Per-session active query tracking (keyed by session ID)
|
|
6
|
+
const activeQueries = new Map();
|
|
7
|
+
export class ClaudeProvider {
|
|
8
|
+
name = "claude";
|
|
9
|
+
capabilities = {
|
|
10
|
+
streaming: true,
|
|
11
|
+
todos: false,
|
|
12
|
+
diff: true,
|
|
13
|
+
fork: true,
|
|
14
|
+
revert: false,
|
|
15
|
+
share: false,
|
|
16
|
+
summarize: false,
|
|
17
|
+
history: true,
|
|
18
|
+
fileOps: true,
|
|
19
|
+
shell: true,
|
|
20
|
+
commands: false,
|
|
21
|
+
fileOutput: false,
|
|
22
|
+
mcp: true,
|
|
23
|
+
};
|
|
24
|
+
model;
|
|
25
|
+
permissionMode;
|
|
26
|
+
cwd;
|
|
27
|
+
mcpServers = new Map();
|
|
28
|
+
mcpStore = new JsonStore("claude-mcp.json", {});
|
|
29
|
+
constructor() {
|
|
30
|
+
this.model = process.env.CLAUDE_MODEL ?? "sonnet";
|
|
31
|
+
this.permissionMode = process.env.CLAUDE_PERMISSION_MODE ?? "acceptEdits";
|
|
32
|
+
this.cwd = process.env.CLAUDE_CWD ?? process.cwd();
|
|
33
|
+
}
|
|
34
|
+
async init() {
|
|
35
|
+
if (!process.env.ANTHROPIC_API_KEY) {
|
|
36
|
+
throw new Error("ANTHROPIC_API_KEY is required for Claude provider. Set it in your environment.");
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const sdk = await import("@anthropic-ai/claude-code");
|
|
40
|
+
queryFn = sdk.query;
|
|
41
|
+
listSessionsFn = sdk.listSessions;
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
throw new Error(`Failed to load @anthropic-ai/claude-code: ${err.message}\n` +
|
|
45
|
+
`Install it: bun add @anthropic-ai/claude-code`);
|
|
46
|
+
}
|
|
47
|
+
// Load persisted MCP configs
|
|
48
|
+
const saved = this.mcpStore.load();
|
|
49
|
+
for (const [name, config] of Object.entries(saved)) {
|
|
50
|
+
this.mcpServers.set(name, config);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
shutdown() {
|
|
54
|
+
for (const query of activeQueries.values()) {
|
|
55
|
+
try {
|
|
56
|
+
query.abort?.();
|
|
57
|
+
}
|
|
58
|
+
catch { }
|
|
59
|
+
}
|
|
60
|
+
activeQueries.clear();
|
|
61
|
+
}
|
|
62
|
+
// --- Sessions ---
|
|
63
|
+
async createSession(title) {
|
|
64
|
+
// Generate a local ID. Claude will create the actual session
|
|
65
|
+
// implicitly on the first prompt() call via the resume option.
|
|
66
|
+
const sessionId = `claude-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
67
|
+
return { id: sessionId, title: title ?? "Claude Session" };
|
|
68
|
+
}
|
|
69
|
+
async listSessions() {
|
|
70
|
+
if (!listSessionsFn)
|
|
71
|
+
return [];
|
|
72
|
+
try {
|
|
73
|
+
const sessions = await listSessionsFn();
|
|
74
|
+
return (sessions ?? []).map((s) => ({
|
|
75
|
+
id: s.sessionId ?? s.id,
|
|
76
|
+
title: s.title ?? s.sessionId ?? s.id,
|
|
77
|
+
lastModified: s.timestamp ? new Date(s.timestamp).getTime() : undefined,
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return [];
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async getSession(id) {
|
|
85
|
+
const sessions = await this.listSessions();
|
|
86
|
+
const found = sessions.find((s) => s.id === id);
|
|
87
|
+
return found ? { id: found.id, title: found.title } : null;
|
|
88
|
+
}
|
|
89
|
+
async deleteSession(_id) {
|
|
90
|
+
// SDK doesn't expose a direct delete — acknowledge locally
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
// --- Messaging ---
|
|
94
|
+
buildQueryOpts(sessionId, options) {
|
|
95
|
+
const queryOpts = {
|
|
96
|
+
model: options?.model?.modelID ?? this.model,
|
|
97
|
+
permissionMode: this.permissionMode,
|
|
98
|
+
cwd: this.cwd,
|
|
99
|
+
resume: sessionId,
|
|
100
|
+
};
|
|
101
|
+
if (options?.system) {
|
|
102
|
+
queryOpts.systemPrompt = options.system;
|
|
103
|
+
}
|
|
104
|
+
if (this.mcpServers.size > 0) {
|
|
105
|
+
queryOpts.mcpServers = Object.fromEntries(this.mcpServers);
|
|
106
|
+
}
|
|
107
|
+
return queryOpts;
|
|
108
|
+
}
|
|
109
|
+
async prompt(sessionId, text, options) {
|
|
110
|
+
let resultText = "";
|
|
111
|
+
const queryOpts = this.buildQueryOpts(sessionId, options);
|
|
112
|
+
const messages = queryFn({
|
|
113
|
+
prompt: text,
|
|
114
|
+
options: queryOpts,
|
|
115
|
+
});
|
|
116
|
+
activeQueries.set(sessionId, messages);
|
|
117
|
+
try {
|
|
118
|
+
for await (const msg of messages) {
|
|
119
|
+
if (msg.type === "assistant" && msg.message?.content) {
|
|
120
|
+
for (const block of msg.message.content) {
|
|
121
|
+
if (block.type === "text") {
|
|
122
|
+
resultText += block.text;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
else if (msg.type === "result") {
|
|
127
|
+
if (msg.result)
|
|
128
|
+
resultText = msg.result;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
finally {
|
|
133
|
+
activeQueries.delete(sessionId);
|
|
134
|
+
}
|
|
135
|
+
return { text: resultText || "(empty response)" };
|
|
136
|
+
}
|
|
137
|
+
async *promptStream(sessionId, text, options) {
|
|
138
|
+
const queryOpts = this.buildQueryOpts(sessionId, options);
|
|
139
|
+
const messages = queryFn({
|
|
140
|
+
prompt: text,
|
|
141
|
+
options: queryOpts,
|
|
142
|
+
});
|
|
143
|
+
activeQueries.set(sessionId, messages);
|
|
144
|
+
try {
|
|
145
|
+
for await (const msg of messages) {
|
|
146
|
+
if (msg.type === "assistant" && msg.message?.content) {
|
|
147
|
+
for (const block of msg.message.content) {
|
|
148
|
+
if (block.type === "text") {
|
|
149
|
+
yield { type: "text", content: block.text };
|
|
150
|
+
}
|
|
151
|
+
else if (block.type === "tool_use") {
|
|
152
|
+
yield {
|
|
153
|
+
type: "tool_use",
|
|
154
|
+
content: `[${block.name}]`,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
else if (msg.type === "result") {
|
|
160
|
+
if (msg.result) {
|
|
161
|
+
yield { type: "text", content: msg.result };
|
|
162
|
+
}
|
|
163
|
+
yield { type: "done", content: "" };
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
finally {
|
|
168
|
+
activeQueries.delete(sessionId);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
async abort(sessionId) {
|
|
172
|
+
const query = activeQueries.get(sessionId);
|
|
173
|
+
if (query) {
|
|
174
|
+
try {
|
|
175
|
+
query.abort?.();
|
|
176
|
+
}
|
|
177
|
+
catch { }
|
|
178
|
+
activeQueries.delete(sessionId);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// --- Session features ---
|
|
182
|
+
async getTodos() {
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
async getDiff(sessionId) {
|
|
186
|
+
try {
|
|
187
|
+
const result = await this.delegatePrompt(sessionId, "Run `git diff` and return the output. Show the raw diff output only, no commentary.");
|
|
188
|
+
if (!result)
|
|
189
|
+
return null;
|
|
190
|
+
return [{ file: "(git diff)", additions: 0, deletions: 0, after: result }];
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
async forkSession(sessionId) {
|
|
197
|
+
try {
|
|
198
|
+
let newSessionId;
|
|
199
|
+
const messages = queryFn({
|
|
200
|
+
prompt: "Session forked. Acknowledge briefly.",
|
|
201
|
+
options: {
|
|
202
|
+
model: this.model,
|
|
203
|
+
permissionMode: this.permissionMode,
|
|
204
|
+
cwd: this.cwd,
|
|
205
|
+
resume: sessionId,
|
|
206
|
+
forkSession: true,
|
|
207
|
+
maxTurns: 1,
|
|
208
|
+
},
|
|
209
|
+
});
|
|
210
|
+
for await (const msg of messages) {
|
|
211
|
+
if (msg.type === "system" && msg.session_id) {
|
|
212
|
+
newSessionId = msg.session_id;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
if (newSessionId) {
|
|
216
|
+
return { id: newSessionId, title: "Forked Session" };
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
// Fall through
|
|
221
|
+
}
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
async revert() {
|
|
225
|
+
return false;
|
|
226
|
+
}
|
|
227
|
+
async unrevert() {
|
|
228
|
+
return false;
|
|
229
|
+
}
|
|
230
|
+
async share() {
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
async summarize() {
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
async getHistory(sessionId) {
|
|
237
|
+
try {
|
|
238
|
+
const history = [];
|
|
239
|
+
const messages = queryFn({
|
|
240
|
+
prompt: "",
|
|
241
|
+
options: {
|
|
242
|
+
model: this.model,
|
|
243
|
+
permissionMode: this.permissionMode,
|
|
244
|
+
cwd: this.cwd,
|
|
245
|
+
resume: sessionId,
|
|
246
|
+
maxTurns: 0,
|
|
247
|
+
},
|
|
248
|
+
});
|
|
249
|
+
for await (const msg of messages) {
|
|
250
|
+
if (msg.type === "assistant" || msg.type === "user") {
|
|
251
|
+
history.push(msg);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
return history.length > 0 ? history : null;
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
// --- File operations (via prompt delegation) ---
|
|
261
|
+
/**
|
|
262
|
+
* Delegate a task to Claude with maxTurns: 1 and extract the text result.
|
|
263
|
+
*/
|
|
264
|
+
async delegatePrompt(sessionId, instruction) {
|
|
265
|
+
let resultText = "";
|
|
266
|
+
const messages = queryFn({
|
|
267
|
+
prompt: instruction,
|
|
268
|
+
options: {
|
|
269
|
+
model: this.model,
|
|
270
|
+
permissionMode: this.permissionMode,
|
|
271
|
+
cwd: this.cwd,
|
|
272
|
+
resume: sessionId,
|
|
273
|
+
maxTurns: 1,
|
|
274
|
+
},
|
|
275
|
+
});
|
|
276
|
+
try {
|
|
277
|
+
for await (const msg of messages) {
|
|
278
|
+
if (msg.type === "assistant" && msg.message?.content) {
|
|
279
|
+
for (const block of msg.message.content) {
|
|
280
|
+
if (block.type === "text")
|
|
281
|
+
resultText += block.text;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
else if (msg.type === "result") {
|
|
285
|
+
if (msg.result)
|
|
286
|
+
resultText = msg.result;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
catch {
|
|
291
|
+
return null;
|
|
292
|
+
}
|
|
293
|
+
return resultText || null;
|
|
294
|
+
}
|
|
295
|
+
async readFile(path) {
|
|
296
|
+
const sessionId = `claude-fileop-${Date.now()}`;
|
|
297
|
+
return this.delegatePrompt(sessionId, `Read the file at "${path}" and return its contents verbatim. Output ONLY the file content, nothing else.`);
|
|
298
|
+
}
|
|
299
|
+
async findFiles(query) {
|
|
300
|
+
const sessionId = `claude-fileop-${Date.now()}`;
|
|
301
|
+
const result = await this.delegatePrompt(sessionId, `Find files matching the pattern "${query}" using Glob. List each matching file path on its own line. Output ONLY the file paths, nothing else.`);
|
|
302
|
+
if (!result)
|
|
303
|
+
return null;
|
|
304
|
+
return result.split("\n").map((l) => l.trim()).filter(Boolean);
|
|
305
|
+
}
|
|
306
|
+
async searchText(pattern) {
|
|
307
|
+
const sessionId = `claude-fileop-${Date.now()}`;
|
|
308
|
+
const result = await this.delegatePrompt(sessionId, `Search the codebase for the pattern "${pattern}" using Grep. For each match, output the file path, line number, and matching text separated by colons (file:line:text). Output ONLY the matches, nothing else.`);
|
|
309
|
+
if (!result)
|
|
310
|
+
return null;
|
|
311
|
+
return result
|
|
312
|
+
.split("\n")
|
|
313
|
+
.map((l) => l.trim())
|
|
314
|
+
.filter(Boolean)
|
|
315
|
+
.map((line) => {
|
|
316
|
+
const [file, lineStr, ...rest] = line.split(":");
|
|
317
|
+
return { file: file ?? line, line: Number(lineStr) || undefined, text: rest.join(":") || undefined };
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
async findSymbols() {
|
|
321
|
+
return null;
|
|
322
|
+
}
|
|
323
|
+
async getFileStatus() {
|
|
324
|
+
const sessionId = `claude-fileop-${Date.now()}`;
|
|
325
|
+
const result = await this.delegatePrompt(sessionId, `Run "git status --porcelain" and return the output. Output ONLY the raw git status output, nothing else.`);
|
|
326
|
+
if (!result)
|
|
327
|
+
return null;
|
|
328
|
+
return result
|
|
329
|
+
.split("\n")
|
|
330
|
+
.map((l) => l.trim())
|
|
331
|
+
.filter(Boolean)
|
|
332
|
+
.map((line) => {
|
|
333
|
+
const status = line.slice(0, 2).trim();
|
|
334
|
+
const path = line.slice(3).trim();
|
|
335
|
+
return { path, status };
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
// --- Shell ---
|
|
339
|
+
async shell(sessionId, command) {
|
|
340
|
+
const result = await this.prompt(sessionId, `Run this shell command and show the output: ${command}`);
|
|
341
|
+
return result.text;
|
|
342
|
+
}
|
|
343
|
+
async runCommand() {
|
|
344
|
+
return null;
|
|
345
|
+
}
|
|
346
|
+
// --- Info ---
|
|
347
|
+
async getProjectInfo() {
|
|
348
|
+
return {
|
|
349
|
+
directory: this.cwd,
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
async getTools() {
|
|
353
|
+
return [
|
|
354
|
+
"Read", "Write", "Edit", "Bash", "Glob", "Grep",
|
|
355
|
+
"WebSearch", "WebFetch", "NotebookEdit",
|
|
356
|
+
];
|
|
357
|
+
}
|
|
358
|
+
async getCommands() {
|
|
359
|
+
return null;
|
|
360
|
+
}
|
|
361
|
+
async getHealth() {
|
|
362
|
+
return {
|
|
363
|
+
status: "Healthy",
|
|
364
|
+
provider: "claude",
|
|
365
|
+
model: this.model,
|
|
366
|
+
extra: {
|
|
367
|
+
permissionMode: this.permissionMode,
|
|
368
|
+
cwd: this.cwd,
|
|
369
|
+
},
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
async getConfig() {
|
|
373
|
+
return {
|
|
374
|
+
provider: "claude",
|
|
375
|
+
model: this.model,
|
|
376
|
+
permissionMode: this.permissionMode,
|
|
377
|
+
cwd: this.cwd,
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
async getProviders() {
|
|
381
|
+
return { anthropic: { models: [this.model] } };
|
|
382
|
+
}
|
|
383
|
+
async getAgents() {
|
|
384
|
+
return null;
|
|
385
|
+
}
|
|
386
|
+
// --- Models ---
|
|
387
|
+
async listModels() {
|
|
388
|
+
const apiKey = process.env.ANTHROPIC_API_KEY;
|
|
389
|
+
if (!apiKey) {
|
|
390
|
+
throw new Error("ANTHROPIC_API_KEY is required to list models.");
|
|
391
|
+
}
|
|
392
|
+
const res = await fetch("https://api.anthropic.com/v1/models?limit=100", {
|
|
393
|
+
headers: {
|
|
394
|
+
"x-api-key": apiKey,
|
|
395
|
+
"anthropic-version": "2023-06-01",
|
|
396
|
+
},
|
|
397
|
+
});
|
|
398
|
+
if (!res.ok) {
|
|
399
|
+
throw new Error(`Failed to fetch models from Anthropic API (HTTP ${res.status}). Check your ANTHROPIC_API_KEY.`);
|
|
400
|
+
}
|
|
401
|
+
const body = await res.json();
|
|
402
|
+
const models = (body.data ?? []).map((m) => ({
|
|
403
|
+
id: m.id,
|
|
404
|
+
name: m.display_name ?? m.id,
|
|
405
|
+
provider: "anthropic",
|
|
406
|
+
reasoning: /opus|sonnet-4/i.test(m.id),
|
|
407
|
+
attachment: false,
|
|
408
|
+
active: this.model === m.id,
|
|
409
|
+
}));
|
|
410
|
+
if (models.length === 0) {
|
|
411
|
+
throw new Error("No models returned from Anthropic API. Check your ANTHROPIC_API_KEY permissions.");
|
|
412
|
+
}
|
|
413
|
+
return models;
|
|
414
|
+
}
|
|
415
|
+
// --- MCP ---
|
|
416
|
+
async getMcpStatus() {
|
|
417
|
+
return Array.from(this.mcpServers.entries()).map(([name]) => ({
|
|
418
|
+
name,
|
|
419
|
+
status: "connected",
|
|
420
|
+
}));
|
|
421
|
+
}
|
|
422
|
+
async addMcpServer(name, config) {
|
|
423
|
+
if (config.type === "local") {
|
|
424
|
+
this.mcpServers.set(name, {
|
|
425
|
+
command: config.command?.[0] ?? "",
|
|
426
|
+
args: config.command?.slice(1) ?? [],
|
|
427
|
+
env: config.environment ?? {},
|
|
428
|
+
});
|
|
429
|
+
}
|
|
430
|
+
else {
|
|
431
|
+
this.mcpServers.set(name, {
|
|
432
|
+
url: config.url ?? "",
|
|
433
|
+
headers: config.headers ?? {},
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
this.persistMcp();
|
|
437
|
+
return true;
|
|
438
|
+
}
|
|
439
|
+
async removeMcpServer(name) {
|
|
440
|
+
const deleted = this.mcpServers.delete(name);
|
|
441
|
+
if (deleted)
|
|
442
|
+
this.persistMcp();
|
|
443
|
+
return deleted;
|
|
444
|
+
}
|
|
445
|
+
persistMcp() {
|
|
446
|
+
this.mcpStore.save(Object.fromEntries(this.mcpServers));
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
//# sourceMappingURL=claude.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Provider, ProviderCapabilities, Session, SessionInfo, PromptOptions, PromptResult, StreamChunk, Todo, FileDiff, SearchResult, FileStatus, ProjectInfo, CommandInfo, HealthInfo, ModelDetail, McpServerStatus } from "./types.js";
|
|
2
|
+
export declare class CodexProvider implements Provider {
|
|
3
|
+
readonly name: "codex";
|
|
4
|
+
readonly capabilities: ProviderCapabilities;
|
|
5
|
+
private model;
|
|
6
|
+
private cwd;
|
|
7
|
+
constructor();
|
|
8
|
+
init(): Promise<void>;
|
|
9
|
+
shutdown(): void;
|
|
10
|
+
createSession(title?: string): Promise<Session>;
|
|
11
|
+
listSessions(): Promise<SessionInfo[]>;
|
|
12
|
+
getSession(id: string): Promise<Session | null>;
|
|
13
|
+
deleteSession(id: string): Promise<boolean>;
|
|
14
|
+
private getOrResumeThread;
|
|
15
|
+
prompt(sessionId: string, text: string, options?: PromptOptions): Promise<PromptResult>;
|
|
16
|
+
promptStream(sessionId: string, text: string, options?: PromptOptions): AsyncGenerator<StreamChunk>;
|
|
17
|
+
abort(sessionId: string): Promise<void>;
|
|
18
|
+
getTodos(): Promise<Todo[] | null>;
|
|
19
|
+
getDiff(sessionId: string): Promise<FileDiff[] | null>;
|
|
20
|
+
forkSession(): Promise<Session | null>;
|
|
21
|
+
revert(): Promise<boolean>;
|
|
22
|
+
unrevert(): Promise<boolean>;
|
|
23
|
+
share(): Promise<string | null>;
|
|
24
|
+
summarize(): Promise<boolean>;
|
|
25
|
+
getHistory(): Promise<unknown[] | null>;
|
|
26
|
+
readFile(path: string): Promise<string | null>;
|
|
27
|
+
findFiles(query: string): Promise<string[] | null>;
|
|
28
|
+
searchText(pattern: string): Promise<SearchResult[] | null>;
|
|
29
|
+
findSymbols(): Promise<unknown[] | null>;
|
|
30
|
+
getFileStatus(): Promise<FileStatus[] | null>;
|
|
31
|
+
shell(sessionId: string, command: string): Promise<string | null>;
|
|
32
|
+
runCommand(): Promise<PromptResult | null>;
|
|
33
|
+
getProjectInfo(): Promise<ProjectInfo | null>;
|
|
34
|
+
getTools(): Promise<string[] | null>;
|
|
35
|
+
getCommands(): Promise<CommandInfo[] | null>;
|
|
36
|
+
getHealth(): Promise<HealthInfo>;
|
|
37
|
+
getConfig(): Promise<unknown>;
|
|
38
|
+
getProviders(): Promise<unknown>;
|
|
39
|
+
getAgents(): Promise<unknown[] | null>;
|
|
40
|
+
listModels(): Promise<ModelDetail[]>;
|
|
41
|
+
getMcpStatus(): Promise<McpServerStatus[] | null>;
|
|
42
|
+
addMcpServer(): Promise<boolean>;
|
|
43
|
+
removeMcpServer(): Promise<boolean>;
|
|
44
|
+
private persistThreadIds;
|
|
45
|
+
}
|