opencode-channels 0.1.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/README.md +187 -0
- package/bin/cli.js +24 -0
- package/bin/cli.ts +62 -0
- package/dist/bot/auto-binding.d.ts +6 -0
- package/dist/bot/auto-binding.d.ts.map +1 -0
- package/dist/bot/auto-binding.js +81 -0
- package/dist/bot/auto-binding.js.map +1 -0
- package/dist/bot/commands/agents.d.ts +9 -0
- package/dist/bot/commands/agents.d.ts.map +1 -0
- package/dist/bot/commands/agents.js +53 -0
- package/dist/bot/commands/agents.js.map +1 -0
- package/dist/bot/commands/base.d.ts +4 -0
- package/dist/bot/commands/base.d.ts.map +1 -0
- package/dist/bot/commands/base.js +241 -0
- package/dist/bot/commands/base.js.map +1 -0
- package/dist/bot/commands/dynamic.d.ts +8 -0
- package/dist/bot/commands/dynamic.d.ts.map +1 -0
- package/dist/bot/commands/dynamic.js +82 -0
- package/dist/bot/commands/dynamic.js.map +1 -0
- package/dist/bot/commands/index.d.ts +15 -0
- package/dist/bot/commands/index.d.ts.map +1 -0
- package/dist/bot/commands/index.js +25 -0
- package/dist/bot/commands/index.js.map +1 -0
- package/dist/bot/commands/models.d.ts +7 -0
- package/dist/bot/commands/models.d.ts.map +1 -0
- package/dist/bot/commands/models.js +60 -0
- package/dist/bot/commands/models.js.map +1 -0
- package/dist/bot/commands/sdk-commands.d.ts +5 -0
- package/dist/bot/commands/sdk-commands.d.ts.map +1 -0
- package/dist/bot/commands/sdk-commands.js +135 -0
- package/dist/bot/commands/sdk-commands.js.map +1 -0
- package/dist/bot/handlers/callback.d.ts +3 -0
- package/dist/bot/handlers/callback.d.ts.map +1 -0
- package/dist/bot/handlers/callback.js +52 -0
- package/dist/bot/handlers/callback.js.map +1 -0
- package/dist/bot/handlers/file.d.ts +3 -0
- package/dist/bot/handlers/file.d.ts.map +1 -0
- package/dist/bot/handlers/file.js +121 -0
- package/dist/bot/handlers/file.js.map +1 -0
- package/dist/bot/handlers/group.d.ts +3 -0
- package/dist/bot/handlers/group.d.ts.map +1 -0
- package/dist/bot/handlers/group.js +41 -0
- package/dist/bot/handlers/group.js.map +1 -0
- package/dist/bot/handlers/index.d.ts +4 -0
- package/dist/bot/handlers/index.d.ts.map +1 -0
- package/dist/bot/handlers/index.js +13 -0
- package/dist/bot/handlers/index.js.map +1 -0
- package/dist/bot/handlers/message.d.ts +15 -0
- package/dist/bot/handlers/message.d.ts.map +1 -0
- package/dist/bot/handlers/message.js +183 -0
- package/dist/bot/handlers/message.js.map +1 -0
- package/dist/bot/handlers/topic.d.ts +3 -0
- package/dist/bot/handlers/topic.d.ts.map +1 -0
- package/dist/bot/handlers/topic.js +43 -0
- package/dist/bot/handlers/topic.js.map +1 -0
- package/dist/bot/index.d.ts +5 -0
- package/dist/bot/index.d.ts.map +1 -0
- package/dist/bot/index.js +66 -0
- package/dist/bot/index.js.map +1 -0
- package/dist/cli/daemon.d.ts +6 -0
- package/dist/cli/daemon.d.ts.map +1 -0
- package/dist/cli/daemon.js +255 -0
- package/dist/cli/daemon.js.map +1 -0
- package/dist/cli/init.d.ts +19 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +235 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/logs.d.ts +6 -0
- package/dist/cli/logs.d.ts.map +1 -0
- package/dist/cli/logs.js +42 -0
- package/dist/cli/logs.js.map +1 -0
- package/dist/cli/start.d.ts +4 -0
- package/dist/cli/start.d.ts.map +1 -0
- package/dist/cli/start.js +254 -0
- package/dist/cli/start.js.map +1 -0
- package/dist/plugin/index.d.ts +4 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +73 -0
- package/dist/plugin/index.js.map +1 -0
- package/dist/server/api.d.ts +3 -0
- package/dist/server/api.d.ts.map +1 -0
- package/dist/server/api.js +30 -0
- package/dist/server/api.js.map +1 -0
- package/dist/server/events.d.ts +18 -0
- package/dist/server/events.d.ts.map +1 -0
- package/dist/server/events.js +131 -0
- package/dist/server/events.js.map +1 -0
- package/dist/server/filters.d.ts +19 -0
- package/dist/server/filters.d.ts.map +1 -0
- package/dist/server/filters.js +149 -0
- package/dist/server/filters.js.map +1 -0
- package/dist/server/index.d.ts +4 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +10 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/sdk.d.ts +36 -0
- package/dist/server/sdk.d.ts.map +1 -0
- package/dist/server/sdk.js +485 -0
- package/dist/server/sdk.js.map +1 -0
- package/dist/shared/config.d.ts +34 -0
- package/dist/shared/config.d.ts.map +1 -0
- package/dist/shared/config.js +163 -0
- package/dist/shared/config.js.map +1 -0
- package/dist/shared/logger.d.ts +5 -0
- package/dist/shared/logger.d.ts.map +1 -0
- package/dist/shared/logger.js +114 -0
- package/dist/shared/logger.js.map +1 -0
- package/dist/shared/mapping.d.ts +90 -0
- package/dist/shared/mapping.d.ts.map +1 -0
- package/dist/shared/mapping.js +234 -0
- package/dist/shared/mapping.js.map +1 -0
- package/dist/shared/message-queue.d.ts +64 -0
- package/dist/shared/message-queue.d.ts.map +1 -0
- package/dist/shared/message-queue.js +138 -0
- package/dist/shared/message-queue.js.map +1 -0
- package/dist/shared/types.d.ts +284 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +7 -0
- package/dist/shared/types.js.map +1 -0
- package/index.js +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/server/filters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAK7E,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,QAAQ,EAAE,YAAY,CAAC;CACxB;AAMD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,iBAAiB,EAAE,CAmDlF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAKpE;AAMD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAa3F;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAU7D;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAOnG;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAenE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAO3D;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG9E;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5D;AAMD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMjG;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIhE"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { DateTime } from 'luxon';
|
|
2
|
+
const POPULAR_PROVIDERS = ['opencode', 'anthropic', 'github-copilot', 'openai', 'google', 'openrouter', 'vercel'];
|
|
3
|
+
function mkKey(providerID, modelID) {
|
|
4
|
+
return `${providerID}:${modelID}`;
|
|
5
|
+
}
|
|
6
|
+
export function filterVisibleModels(providers) {
|
|
7
|
+
const allModels = providers.flatMap((p) => p.models.map((m) => ({ ...m, provider: p })));
|
|
8
|
+
const releaseMap = new Map();
|
|
9
|
+
for (const m of allModels) {
|
|
10
|
+
if (m.release_date) {
|
|
11
|
+
releaseMap.set(mkKey(m.provider.id, m.id), DateTime.fromISO(m.release_date));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
const recentModels = allModels.filter((m) => {
|
|
15
|
+
const date = releaseMap.get(mkKey(m.provider.id, m.id));
|
|
16
|
+
if (!date || !date.isValid)
|
|
17
|
+
return false;
|
|
18
|
+
return Math.abs(date.diffNow().as('months')) < 6;
|
|
19
|
+
});
|
|
20
|
+
const byProvider = new Map();
|
|
21
|
+
for (const m of recentModels) {
|
|
22
|
+
if (!byProvider.has(m.provider.id))
|
|
23
|
+
byProvider.set(m.provider.id, []);
|
|
24
|
+
byProvider.get(m.provider.id).push(m);
|
|
25
|
+
}
|
|
26
|
+
const latestSet = new Set();
|
|
27
|
+
for (const models of byProvider.values()) {
|
|
28
|
+
const byFamily = new Map();
|
|
29
|
+
for (const m of models) {
|
|
30
|
+
const fam = m.family || 'default';
|
|
31
|
+
if (!byFamily.has(fam))
|
|
32
|
+
byFamily.set(fam, []);
|
|
33
|
+
byFamily.get(fam).push(m);
|
|
34
|
+
}
|
|
35
|
+
for (const group of byFamily.values()) {
|
|
36
|
+
group.sort((a, b) => {
|
|
37
|
+
const da = a.release_date ? DateTime.fromISO(a.release_date) : DateTime.invalid('none');
|
|
38
|
+
const db = b.release_date ? DateTime.fromISO(b.release_date) : DateTime.invalid('none');
|
|
39
|
+
return db.toMillis() - da.toMillis();
|
|
40
|
+
});
|
|
41
|
+
if (group[0]) {
|
|
42
|
+
latestSet.add(mkKey(group[0].provider.id, group[0].id));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return allModels.filter((m) => {
|
|
47
|
+
const key = mkKey(m.provider.id, m.id);
|
|
48
|
+
if (latestSet.has(key))
|
|
49
|
+
return true;
|
|
50
|
+
const date = releaseMap.get(key);
|
|
51
|
+
if (!date || !date.isValid)
|
|
52
|
+
return true;
|
|
53
|
+
return false;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
export function filterVisibleAgents(agents) {
|
|
57
|
+
return agents.filter((agent) => {
|
|
58
|
+
const hidden = agent.hidden;
|
|
59
|
+
return !hidden;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
function normalizeAgentName(name) {
|
|
63
|
+
return name.toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
64
|
+
}
|
|
65
|
+
export function findMatchingAgent(agents, searchName) {
|
|
66
|
+
const normalizedSearch = normalizeAgentName(searchName);
|
|
67
|
+
const exactMatch = agents.find(a => a.name.toLowerCase() === searchName.toLowerCase());
|
|
68
|
+
if (exactMatch)
|
|
69
|
+
return exactMatch;
|
|
70
|
+
const normalizedMatch = agents.find(a => normalizeAgentName(a.name) === normalizedSearch);
|
|
71
|
+
if (normalizedMatch)
|
|
72
|
+
return normalizedMatch;
|
|
73
|
+
const containsMatch = agents.find(a => normalizeAgentName(a.name).includes(normalizedSearch));
|
|
74
|
+
if (containsMatch)
|
|
75
|
+
return containsMatch;
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
export function sortProviders(providerIds) {
|
|
79
|
+
const popularSet = new Set(POPULAR_PROVIDERS);
|
|
80
|
+
return [...providerIds].sort((a, b) => {
|
|
81
|
+
const aP = popularSet.has(a);
|
|
82
|
+
const bP = popularSet.has(b);
|
|
83
|
+
if (aP && !bP)
|
|
84
|
+
return -1;
|
|
85
|
+
if (!aP && bP)
|
|
86
|
+
return 1;
|
|
87
|
+
if (aP && bP)
|
|
88
|
+
return POPULAR_PROVIDERS.indexOf(a) - POPULAR_PROVIDERS.indexOf(b);
|
|
89
|
+
return a.localeCompare(b);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
export function groupModelsByProvider(models) {
|
|
93
|
+
const grouped = new Map();
|
|
94
|
+
for (const model of models) {
|
|
95
|
+
if (!grouped.has(model.provider.id))
|
|
96
|
+
grouped.set(model.provider.id, []);
|
|
97
|
+
grouped.get(model.provider.id).push(model);
|
|
98
|
+
}
|
|
99
|
+
return grouped;
|
|
100
|
+
}
|
|
101
|
+
export function formatModelList(models) {
|
|
102
|
+
const grouped = groupModelsByProvider(models);
|
|
103
|
+
const sortedIds = sortProviders([...grouped.keys()]);
|
|
104
|
+
const lines = [];
|
|
105
|
+
for (const pid of sortedIds) {
|
|
106
|
+
const providerModels = grouped.get(pid);
|
|
107
|
+
const providerName = providerModels[0].provider.name;
|
|
108
|
+
lines.push(`\n<b>${escapeHtml(providerName)}</b>`);
|
|
109
|
+
for (const model of providerModels) {
|
|
110
|
+
lines.push(` /${formatModelCommand(model.provider.id, model.id)} - ${escapeHtml(model.name)}`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return lines.join('\n');
|
|
114
|
+
}
|
|
115
|
+
export function formatAgentList(agents) {
|
|
116
|
+
return agents
|
|
117
|
+
.map((agent) => {
|
|
118
|
+
const desc = agent.description ? ` - ${escapeHtml(agent.description.substring(0, 50))}` : '';
|
|
119
|
+
return `/${formatAgentCommand(agent.name)}${desc}`;
|
|
120
|
+
})
|
|
121
|
+
.join('\n');
|
|
122
|
+
}
|
|
123
|
+
export function formatModelCommand(providerID, modelID) {
|
|
124
|
+
const encode = (s) => s.toLowerCase().replace(/\./g, '0dot0').replace(/[^a-z0-9_]/g, '_');
|
|
125
|
+
return `model_${encode(providerID)}__${encode(modelID)}`;
|
|
126
|
+
}
|
|
127
|
+
export function formatAgentCommand(agentName) {
|
|
128
|
+
return `agent_${agentName}`.toLowerCase().replace(/[^a-z0-9_]/g, '_');
|
|
129
|
+
}
|
|
130
|
+
function stripBotMention(command) {
|
|
131
|
+
return command.replace(/@\S+$/, '');
|
|
132
|
+
}
|
|
133
|
+
export function parseModelCommand(command) {
|
|
134
|
+
const clean = stripBotMention(command);
|
|
135
|
+
const match = clean.match(/^model_(.+?)__(.+)$/);
|
|
136
|
+
if (!match)
|
|
137
|
+
return null;
|
|
138
|
+
const decode = (s) => s.replace(/0dot0/g, '.').replace(/_/g, '-');
|
|
139
|
+
return { providerID: decode(match[1]), modelID: decode(match[2]) };
|
|
140
|
+
}
|
|
141
|
+
export function parseAgentCommand(command) {
|
|
142
|
+
const clean = stripBotMention(command);
|
|
143
|
+
const match = clean.match(/^agent_(.+)$/);
|
|
144
|
+
return match ? match[1].replace(/_/g, '-') : null;
|
|
145
|
+
}
|
|
146
|
+
function escapeHtml(text) {
|
|
147
|
+
return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=filters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/server/filters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,8EAO1C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Hono } from 'hono';
|
|
2
|
+
import { logger } from 'hono/logger';
|
|
3
|
+
import { registerRoutes } from './api.js';
|
|
4
|
+
export function createServer(config) {
|
|
5
|
+
const app = new Hono();
|
|
6
|
+
app.use('*', logger());
|
|
7
|
+
registerRoutes(app);
|
|
8
|
+
return app;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IACvB,cAAc,CAAC,GAAG,CAAC,CAAC;IAEpB,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { OpencodeClient } from '@opencode-ai/sdk/v2/client';
|
|
2
|
+
import type { AgentInfo, ProviderInfo, SessionInfo, CommandInfo } from '../shared/types.js';
|
|
3
|
+
export type { AgentInfo, ProviderInfo, SessionInfo, CommandInfo } from '../shared/types.js';
|
|
4
|
+
export declare function initSDK(): OpencodeClient;
|
|
5
|
+
/** 重置 SDK 客户端(用于测试或重连) */
|
|
6
|
+
export declare function resetSDK(): void;
|
|
7
|
+
export declare function getAgents(projectPath: string): Promise<AgentInfo[]>;
|
|
8
|
+
export declare function extractTextFromParts(parts: Array<any>): string;
|
|
9
|
+
export declare function createSession(projectPath: string, title: string): Promise<string>;
|
|
10
|
+
export declare function createSessionWithInfo(projectPath: string, title: string): Promise<SessionInfo>;
|
|
11
|
+
export declare function getProviders(projectPath: string): Promise<ProviderInfo[]>;
|
|
12
|
+
export declare function updateConfig(projectPath: string, updates: {
|
|
13
|
+
agent?: string;
|
|
14
|
+
model?: string;
|
|
15
|
+
}): Promise<boolean>;
|
|
16
|
+
export declare function sendMessage(sessionId: string, message: string, agent?: string, projectPath?: string, model?: string, noReply?: boolean): Promise<{
|
|
17
|
+
text: string;
|
|
18
|
+
agent: string;
|
|
19
|
+
modelId?: string;
|
|
20
|
+
}>;
|
|
21
|
+
export declare function sendMessageAsync(sessionId: string, message: string, agent?: string, projectPath?: string, model?: string): Promise<void>;
|
|
22
|
+
export declare function replyPermission(requestId: string, reply: 'once' | 'always' | 'reject', projectPath?: string): Promise<void>;
|
|
23
|
+
export declare function replyQuestion(requestId: string, answers: Array<Array<string>>, projectPath?: string): Promise<void>;
|
|
24
|
+
export declare function getLatestAssistantMessage(sessionId: string, projectPath?: string): Promise<{
|
|
25
|
+
text: string;
|
|
26
|
+
agent: string;
|
|
27
|
+
modelId?: string;
|
|
28
|
+
} | null>;
|
|
29
|
+
export declare function getCommands(projectPath: string): Promise<CommandInfo[]>;
|
|
30
|
+
export declare function executeCommand(sessionId: string, commandName: string, args: string, projectPath?: string, agent?: string, model?: string): Promise<{
|
|
31
|
+
text: string;
|
|
32
|
+
agent: string;
|
|
33
|
+
modelId?: string;
|
|
34
|
+
}>;
|
|
35
|
+
export declare function compactSession(sessionId: string, projectPath?: string, model?: string): Promise<boolean>;
|
|
36
|
+
//# sourceMappingURL=sdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/server/sdk.ts"],"names":[],"mappings":"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"}
|