opencode-bridge 2.9.0-beta
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 +131 -0
- package/LICENSE +674 -0
- package/README.md +1195 -0
- package/bin/opencode-bridge.js +31 -0
- package/dist/commands/effort.d.ts +9 -0
- package/dist/commands/effort.d.ts.map +1 -0
- package/dist/commands/effort.js +56 -0
- package/dist/commands/effort.js.map +1 -0
- package/dist/commands/parser.d.ts +37 -0
- package/dist/commands/parser.d.ts.map +1 -0
- package/dist/commands/parser.js +355 -0
- package/dist/commands/parser.js.map +1 -0
- package/dist/config.d.ts +91 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +340 -0
- package/dist/config.js.map +1 -0
- package/dist/feishu/cards-stream.d.ts +65 -0
- package/dist/feishu/cards-stream.d.ts.map +1 -0
- package/dist/feishu/cards-stream.js +448 -0
- package/dist/feishu/cards-stream.js.map +1 -0
- package/dist/feishu/cards.d.ts +81 -0
- package/dist/feishu/cards.d.ts.map +1 -0
- package/dist/feishu/cards.js +560 -0
- package/dist/feishu/cards.js.map +1 -0
- package/dist/feishu/client.d.ts +132 -0
- package/dist/feishu/client.d.ts.map +1 -0
- package/dist/feishu/client.js +952 -0
- package/dist/feishu/client.js.map +1 -0
- package/dist/feishu/streamer.d.ts +30 -0
- package/dist/feishu/streamer.d.ts.map +1 -0
- package/dist/feishu/streamer.js +95 -0
- package/dist/feishu/streamer.js.map +1 -0
- package/dist/handlers/card-action.d.ts +12 -0
- package/dist/handlers/card-action.d.ts.map +1 -0
- package/dist/handlers/card-action.js +154 -0
- package/dist/handlers/card-action.js.map +1 -0
- package/dist/handlers/command.d.ts +76 -0
- package/dist/handlers/command.d.ts.map +1 -0
- package/dist/handlers/command.js +1773 -0
- package/dist/handlers/command.js.map +1 -0
- package/dist/handlers/discord.d.ts +78 -0
- package/dist/handlers/discord.d.ts.map +1 -0
- package/dist/handlers/discord.js +1832 -0
- package/dist/handlers/discord.js.map +1 -0
- package/dist/handlers/file-sender.d.ts +22 -0
- package/dist/handlers/file-sender.d.ts.map +1 -0
- package/dist/handlers/file-sender.js +183 -0
- package/dist/handlers/file-sender.js.map +1 -0
- package/dist/handlers/group.d.ts +21 -0
- package/dist/handlers/group.d.ts.map +1 -0
- package/dist/handlers/group.js +414 -0
- package/dist/handlers/group.js.map +1 -0
- package/dist/handlers/lifecycle.d.ts +17 -0
- package/dist/handlers/lifecycle.d.ts.map +1 -0
- package/dist/handlers/lifecycle.js +129 -0
- package/dist/handlers/lifecycle.js.map +1 -0
- package/dist/handlers/p2p.d.ts +44 -0
- package/dist/handlers/p2p.d.ts.map +1 -0
- package/dist/handlers/p2p.js +625 -0
- package/dist/handlers/p2p.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1562 -0
- package/dist/index.js.map +1 -0
- package/dist/opencode/client.d.ts +176 -0
- package/dist/opencode/client.d.ts.map +1 -0
- package/dist/opencode/client.js +1126 -0
- package/dist/opencode/client.js.map +1 -0
- package/dist/opencode/delayed-handler.d.ts +33 -0
- package/dist/opencode/delayed-handler.d.ts.map +1 -0
- package/dist/opencode/delayed-handler.js +74 -0
- package/dist/opencode/delayed-handler.js.map +1 -0
- package/dist/opencode/output-buffer.d.ts +56 -0
- package/dist/opencode/output-buffer.d.ts.map +1 -0
- package/dist/opencode/output-buffer.js +202 -0
- package/dist/opencode/output-buffer.js.map +1 -0
- package/dist/opencode/question-handler.d.ts +61 -0
- package/dist/opencode/question-handler.d.ts.map +1 -0
- package/dist/opencode/question-handler.js +183 -0
- package/dist/opencode/question-handler.js.map +1 -0
- package/dist/opencode/question-parser.d.ts +9 -0
- package/dist/opencode/question-parser.d.ts.map +1 -0
- package/dist/opencode/question-parser.js +69 -0
- package/dist/opencode/question-parser.js.map +1 -0
- package/dist/opencode/session-queue.d.ts +16 -0
- package/dist/opencode/session-queue.d.ts.map +1 -0
- package/dist/opencode/session-queue.js +41 -0
- package/dist/opencode/session-queue.js.map +1 -0
- package/dist/permissions/handler.d.ts +36 -0
- package/dist/permissions/handler.d.ts.map +1 -0
- package/dist/permissions/handler.js +141 -0
- package/dist/permissions/handler.js.map +1 -0
- package/dist/platform/adapters/discord-adapter.d.ts +45 -0
- package/dist/platform/adapters/discord-adapter.d.ts.map +1 -0
- package/dist/platform/adapters/discord-adapter.js +497 -0
- package/dist/platform/adapters/discord-adapter.js.map +1 -0
- package/dist/platform/adapters/feishu-adapter.d.ts +29 -0
- package/dist/platform/adapters/feishu-adapter.d.ts.map +1 -0
- package/dist/platform/adapters/feishu-adapter.js +150 -0
- package/dist/platform/adapters/feishu-adapter.js.map +1 -0
- package/dist/platform/registry.d.ts +41 -0
- package/dist/platform/registry.d.ts.map +1 -0
- package/dist/platform/registry.js +87 -0
- package/dist/platform/registry.js.map +1 -0
- package/dist/platform/types.d.ts +92 -0
- package/dist/platform/types.d.ts.map +1 -0
- package/dist/platform/types.js +4 -0
- package/dist/platform/types.js.map +1 -0
- package/dist/reliability/audit-log.d.ts +93 -0
- package/dist/reliability/audit-log.d.ts.map +1 -0
- package/dist/reliability/audit-log.js +248 -0
- package/dist/reliability/audit-log.js.map +1 -0
- package/dist/reliability/config-guard.d.ts +42 -0
- package/dist/reliability/config-guard.d.ts.map +1 -0
- package/dist/reliability/config-guard.js +264 -0
- package/dist/reliability/config-guard.js.map +1 -0
- package/dist/reliability/conversation-heartbeat.d.ts +37 -0
- package/dist/reliability/conversation-heartbeat.d.ts.map +1 -0
- package/dist/reliability/conversation-heartbeat.js +179 -0
- package/dist/reliability/conversation-heartbeat.js.map +1 -0
- package/dist/reliability/cron-api-server.d.ts +13 -0
- package/dist/reliability/cron-api-server.d.ts.map +1 -0
- package/dist/reliability/cron-api-server.js +247 -0
- package/dist/reliability/cron-api-server.js.map +1 -0
- package/dist/reliability/cron-control.d.ts +34 -0
- package/dist/reliability/cron-control.d.ts.map +1 -0
- package/dist/reliability/cron-control.js +864 -0
- package/dist/reliability/cron-control.js.map +1 -0
- package/dist/reliability/cron-semantic.d.ts +9 -0
- package/dist/reliability/cron-semantic.d.ts.map +1 -0
- package/dist/reliability/cron-semantic.js +208 -0
- package/dist/reliability/cron-semantic.js.map +1 -0
- package/dist/reliability/environment-doctor.d.ts +56 -0
- package/dist/reliability/environment-doctor.d.ts.map +1 -0
- package/dist/reliability/environment-doctor.js +213 -0
- package/dist/reliability/environment-doctor.js.map +1 -0
- package/dist/reliability/job-registry.d.ts +26 -0
- package/dist/reliability/job-registry.d.ts.map +1 -0
- package/dist/reliability/job-registry.js +77 -0
- package/dist/reliability/job-registry.js.map +1 -0
- package/dist/reliability/opencode-probe.d.ts +37 -0
- package/dist/reliability/opencode-probe.d.ts.map +1 -0
- package/dist/reliability/opencode-probe.js +195 -0
- package/dist/reliability/opencode-probe.js.map +1 -0
- package/dist/reliability/opencode-restart.d.ts +42 -0
- package/dist/reliability/opencode-restart.d.ts.map +1 -0
- package/dist/reliability/opencode-restart.js +155 -0
- package/dist/reliability/opencode-restart.js.map +1 -0
- package/dist/reliability/proactive-heartbeat.d.ts +39 -0
- package/dist/reliability/proactive-heartbeat.d.ts.map +1 -0
- package/dist/reliability/proactive-heartbeat.js +147 -0
- package/dist/reliability/proactive-heartbeat.js.map +1 -0
- package/dist/reliability/process-check-job.d.ts +73 -0
- package/dist/reliability/process-check-job.d.ts.map +1 -0
- package/dist/reliability/process-check-job.js +254 -0
- package/dist/reliability/process-check-job.js.map +1 -0
- package/dist/reliability/process-guard.d.ts +53 -0
- package/dist/reliability/process-guard.d.ts.map +1 -0
- package/dist/reliability/process-guard.js +344 -0
- package/dist/reliability/process-guard.js.map +1 -0
- package/dist/reliability/recovery-reporter.d.ts +37 -0
- package/dist/reliability/recovery-reporter.d.ts.map +1 -0
- package/dist/reliability/recovery-reporter.js +161 -0
- package/dist/reliability/recovery-reporter.js.map +1 -0
- package/dist/reliability/rescue-executor.d.ts +52 -0
- package/dist/reliability/rescue-executor.d.ts.map +1 -0
- package/dist/reliability/rescue-executor.js +244 -0
- package/dist/reliability/rescue-executor.js.map +1 -0
- package/dist/reliability/rescue-policy.d.ts +39 -0
- package/dist/reliability/rescue-policy.d.ts.map +1 -0
- package/dist/reliability/rescue-policy.js +85 -0
- package/dist/reliability/rescue-policy.js.map +1 -0
- package/dist/reliability/runtime-cron-dispatcher.d.ts +30 -0
- package/dist/reliability/runtime-cron-dispatcher.d.ts.map +1 -0
- package/dist/reliability/runtime-cron-dispatcher.js +100 -0
- package/dist/reliability/runtime-cron-dispatcher.js.map +1 -0
- package/dist/reliability/runtime-cron-orphan.d.ts +18 -0
- package/dist/reliability/runtime-cron-orphan.d.ts.map +1 -0
- package/dist/reliability/runtime-cron-orphan.js +87 -0
- package/dist/reliability/runtime-cron-orphan.js.map +1 -0
- package/dist/reliability/runtime-cron-registry.d.ts +4 -0
- package/dist/reliability/runtime-cron-registry.d.ts.map +1 -0
- package/dist/reliability/runtime-cron-registry.js +8 -0
- package/dist/reliability/runtime-cron-registry.js.map +1 -0
- package/dist/reliability/runtime-cron.d.ts +75 -0
- package/dist/reliability/runtime-cron.d.ts.map +1 -0
- package/dist/reliability/runtime-cron.js +309 -0
- package/dist/reliability/runtime-cron.js.map +1 -0
- package/dist/reliability/scheduler.d.ts +38 -0
- package/dist/reliability/scheduler.d.ts.map +1 -0
- package/dist/reliability/scheduler.js +174 -0
- package/dist/reliability/scheduler.js.map +1 -0
- package/dist/reliability/types.d.ts +151 -0
- package/dist/reliability/types.d.ts.map +1 -0
- package/dist/reliability/types.js +178 -0
- package/dist/reliability/types.js.map +1 -0
- package/dist/router/action-handlers.d.ts +27 -0
- package/dist/router/action-handlers.d.ts.map +1 -0
- package/dist/router/action-handlers.js +226 -0
- package/dist/router/action-handlers.js.map +1 -0
- package/dist/router/opencode-event-hub.d.ts +159 -0
- package/dist/router/opencode-event-hub.d.ts.map +1 -0
- package/dist/router/opencode-event-hub.js +589 -0
- package/dist/router/opencode-event-hub.js.map +1 -0
- package/dist/router/root-router.d.ts +94 -0
- package/dist/router/root-router.d.ts.map +1 -0
- package/dist/router/root-router.js +214 -0
- package/dist/router/root-router.js.map +1 -0
- package/dist/store/chat-session.d.ts +150 -0
- package/dist/store/chat-session.d.ts.map +1 -0
- package/dist/store/chat-session.js +640 -0
- package/dist/store/chat-session.js.map +1 -0
- package/dist/store/session-directory.d.ts +12 -0
- package/dist/store/session-directory.d.ts.map +1 -0
- package/dist/store/session-directory.js +47 -0
- package/dist/store/session-directory.js.map +1 -0
- package/dist/store/session-group.d.ts +19 -0
- package/dist/store/session-group.d.ts.map +1 -0
- package/dist/store/session-group.js +92 -0
- package/dist/store/session-group.js.map +1 -0
- package/dist/store/user-session.d.ts +19 -0
- package/dist/store/user-session.d.ts.map +1 -0
- package/dist/store/user-session.js +112 -0
- package/dist/store/user-session.js.map +1 -0
- package/dist/utils/async-queue.d.ts +12 -0
- package/dist/utils/async-queue.d.ts.map +1 -0
- package/dist/utils/async-queue.js +51 -0
- package/dist/utils/async-queue.js.map +1 -0
- package/dist/utils/directory-policy.d.ts +50 -0
- package/dist/utils/directory-policy.d.ts.map +1 -0
- package/dist/utils/directory-policy.js +379 -0
- package/dist/utils/directory-policy.js.map +1 -0
- package/dist/utils/session-title.d.ts +2 -0
- package/dist/utils/session-title.d.ts.map +1 -0
- package/dist/utils/session-title.js +10 -0
- package/dist/utils/session-title.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenCode 事件分发中心
|
|
3
|
+
*
|
|
4
|
+
* 职责:
|
|
5
|
+
* - 统一管理 OpenCode 事件监听(保持单监听器模式)
|
|
6
|
+
* - 通过上下文注入接收 index.ts 中的闭包状态
|
|
7
|
+
* - 事件分发到内部处理器
|
|
8
|
+
*
|
|
9
|
+
* 设计原则:
|
|
10
|
+
* - 单一入口:每种事件类型仅注册一次监听器
|
|
11
|
+
* - 依赖注入:所有状态通过上下文对象传入
|
|
12
|
+
* - 最小修改:保持语义和行为不变
|
|
13
|
+
*/
|
|
14
|
+
import type { PermissionRequestEvent } from '../opencode/client.js';
|
|
15
|
+
/**
|
|
16
|
+
* Timeline 片段类型
|
|
17
|
+
*/
|
|
18
|
+
export type TimelineSegment = {
|
|
19
|
+
type: 'text';
|
|
20
|
+
text: string;
|
|
21
|
+
} | {
|
|
22
|
+
type: 'reasoning';
|
|
23
|
+
text: string;
|
|
24
|
+
} | {
|
|
25
|
+
type: 'tool';
|
|
26
|
+
name: string;
|
|
27
|
+
status: ToolRuntimeState['status'];
|
|
28
|
+
output?: string;
|
|
29
|
+
kind?: 'tool' | 'subtask';
|
|
30
|
+
} | {
|
|
31
|
+
type: 'note';
|
|
32
|
+
text: string;
|
|
33
|
+
variant?: 'retry' | 'compaction' | 'question' | 'error' | 'permission';
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* 流式卡片数据类型(从 cards-stream 导入)
|
|
37
|
+
*/
|
|
38
|
+
import type { StreamCardData } from '../feishu/cards-stream.js';
|
|
39
|
+
/**
|
|
40
|
+
* 流式卡片数据类型(从 cards-stream 导入)
|
|
41
|
+
*/
|
|
42
|
+
export type { StreamCardData } from '../feishu/cards-stream.js';
|
|
43
|
+
/**
|
|
44
|
+
* 工具运行时状态
|
|
45
|
+
*/
|
|
46
|
+
export type ToolRuntimeState = {
|
|
47
|
+
name: string;
|
|
48
|
+
status: 'pending' | 'running' | 'completed' | 'failed';
|
|
49
|
+
output?: string;
|
|
50
|
+
kind?: 'tool' | 'subtask';
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* 权限解析结果
|
|
54
|
+
*/
|
|
55
|
+
export type PermissionChatResolution = {
|
|
56
|
+
chatId?: string;
|
|
57
|
+
source: 'session' | 'parent_session' | 'related_session' | 'tool_call' | 'message' | 'unresolved';
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* 相关性缓存条目
|
|
61
|
+
*/
|
|
62
|
+
export type CorrelationChatRef = {
|
|
63
|
+
chatId: string;
|
|
64
|
+
expiresAt: number;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* OpenCode 事件处理上下文
|
|
68
|
+
* 封装 index.ts 中的所有依赖
|
|
69
|
+
*/
|
|
70
|
+
export interface OpenCodeEventContext {
|
|
71
|
+
CORRELATION_CACHE_TTL_MS: number;
|
|
72
|
+
streamContentMap: Map<string, {
|
|
73
|
+
text: string;
|
|
74
|
+
thinking: string;
|
|
75
|
+
}>;
|
|
76
|
+
reasoningSnapshotMap: Map<string, string>;
|
|
77
|
+
textSnapshotMap: Map<string, string>;
|
|
78
|
+
retryNoticeMap: Map<string, string>;
|
|
79
|
+
errorNoticeMap: Map<string, string>;
|
|
80
|
+
streamCardMessageIdsMap: Map<string, string[]>;
|
|
81
|
+
toolCallChatMap: Map<string, CorrelationChatRef>;
|
|
82
|
+
messageChatMap: Map<string, CorrelationChatRef>;
|
|
83
|
+
streamToolStateMap: Map<string, Map<string, ToolRuntimeState>>;
|
|
84
|
+
streamTimelineMap: Map<string, {
|
|
85
|
+
order: string[];
|
|
86
|
+
segments: Map<string, TimelineSegment>;
|
|
87
|
+
}>;
|
|
88
|
+
toSessionId: (value: unknown) => string;
|
|
89
|
+
toNonEmptyString: (value: unknown) => string | undefined;
|
|
90
|
+
setCorrelationChatRef: (map: Map<string, CorrelationChatRef>, key: unknown, chatId: unknown) => void;
|
|
91
|
+
getCorrelationChatRef: (map: Map<string, CorrelationChatRef>, key: unknown) => string | undefined;
|
|
92
|
+
resolvePermissionChat: (event: PermissionRequestEvent) => PermissionChatResolution;
|
|
93
|
+
normalizeToolStatus: (status: unknown) => 'pending' | 'running' | 'completed' | 'failed';
|
|
94
|
+
getToolStatusText: (status: ToolRuntimeState['status']) => string;
|
|
95
|
+
stringifyToolOutput: (value: unknown) => string | undefined;
|
|
96
|
+
asRecord: (value: unknown) => Record<string, unknown> | null;
|
|
97
|
+
pickFirstDefined: (...values: unknown[]) => unknown;
|
|
98
|
+
buildToolTraceOutput: (part: Record<string, unknown>, status: ToolRuntimeState['status'], withInput: boolean) => string | undefined;
|
|
99
|
+
clipToolTrace: (text: string) => string;
|
|
100
|
+
mergeToolOutput: (previous: string | undefined, incoming: string | undefined) => string | undefined;
|
|
101
|
+
getOrCreateToolStateBucket: (bufferKey: string) => Map<string, ToolRuntimeState>;
|
|
102
|
+
syncToolsToBuffer: (bufferKey: string) => void;
|
|
103
|
+
upsertToolState: (bufferKey: string, toolKey: string, state: ToolRuntimeState, kind?: 'tool' | 'subtask') => void;
|
|
104
|
+
markActiveToolsCompleted: (bufferKey: string) => void;
|
|
105
|
+
appendTextFromPart: (sessionID: string, part: {
|
|
106
|
+
id?: unknown;
|
|
107
|
+
text?: unknown;
|
|
108
|
+
}, bufferKey: string) => void;
|
|
109
|
+
appendReasoningFromPart: (sessionID: string, part: {
|
|
110
|
+
id?: unknown;
|
|
111
|
+
text?: unknown;
|
|
112
|
+
}, bufferKey: string) => void;
|
|
113
|
+
clearPartSnapshotsForSession: (sessionID: string) => void;
|
|
114
|
+
formatProviderError: (raw: unknown) => string;
|
|
115
|
+
upsertLiveCardInteraction: (chatId: string, replyMessageId: string | null, cardData: StreamCardData, bodyMessageIds: string[], thinkingMessageId: string | null, openCodeMsgId: string) => void;
|
|
116
|
+
getTimelineSegments: (bufferKey: string) => TimelineSegment[];
|
|
117
|
+
getPendingPermissionForChat: (chatId: string) => unknown;
|
|
118
|
+
getPendingQuestionForBuffer: (sessionId: string, chatId: string) => unknown;
|
|
119
|
+
applyFailureToSession: (sessionID: string, errorText: string) => Promise<void>;
|
|
120
|
+
upsertTimelineNote: (bufferKey: string, noteKey: string, text: string, variant?: 'retry' | 'compaction' | 'question' | 'error' | 'permission') => void;
|
|
121
|
+
appendTimelineText: (bufferKey: string, segmentKey: string, type: 'text' | 'reasoning', deltaText: string) => void;
|
|
122
|
+
setTimelineText: (bufferKey: string, segmentKey: string, type: 'text' | 'reasoning', text: string) => void;
|
|
123
|
+
upsertTimelineTool: (bufferKey: string, toolKey: string, state: ToolRuntimeState, kind?: 'tool' | 'subtask') => void;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* OpenCode 事件中心
|
|
127
|
+
*/
|
|
128
|
+
export declare class OpenCodeEventHub {
|
|
129
|
+
private context;
|
|
130
|
+
private registered;
|
|
131
|
+
private userMessageIdsBySession;
|
|
132
|
+
private resolveConversationRoute;
|
|
133
|
+
private rememberUserMessageId;
|
|
134
|
+
private isUserMessagePart;
|
|
135
|
+
private clearUserMessageIds;
|
|
136
|
+
/**
|
|
137
|
+
* 注入事件处理上下文
|
|
138
|
+
*/
|
|
139
|
+
setContext(context: OpenCodeEventContext): void;
|
|
140
|
+
/**
|
|
141
|
+
* 注册所有 OpenCode 事件监听器
|
|
142
|
+
* 确保每种事件类型仅注册一次
|
|
143
|
+
*/
|
|
144
|
+
register(): void;
|
|
145
|
+
private handlePermissionRequest;
|
|
146
|
+
private handleSessionStatus;
|
|
147
|
+
private handleSessionIdle;
|
|
148
|
+
private handleMessageUpdated;
|
|
149
|
+
private handleSessionError;
|
|
150
|
+
private handleMessagePartUpdated;
|
|
151
|
+
private handleQuestionAsked;
|
|
152
|
+
/**
|
|
153
|
+
* 获取注入的外部依赖
|
|
154
|
+
* 这些依赖不通过 context 传递,因为它们是模块级别的单例
|
|
155
|
+
*/
|
|
156
|
+
private injectedDependencies;
|
|
157
|
+
}
|
|
158
|
+
export declare const openCodeEventHub: OpenCodeEventHub;
|
|
159
|
+
//# sourceMappingURL=opencode-event-hub.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-event-hub.d.ts","sourceRoot":"","sources":["../../src/router/opencode-event-hub.ts"],"names":[],"mappings":"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"}
|