@jingyi0605/codingns 0.6.5 → 0.7.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/dist/public/assets/AdaptiveButlerPage-B8mg25ze.js +3 -0
- package/dist/public/assets/{App-B9HcTkMT.js → App-C2lNmeKL.js} +6 -6
- package/dist/public/assets/{BootstrapPage-BgLdZEKQ.js → BootstrapPage-CAVA-a8h.js} +1 -1
- package/dist/public/assets/ConversationPage-B6BGOX4C.js +6 -0
- package/dist/public/assets/{DesktopDetachPreviewPage-YCBnyC58.js → DesktopDetachPreviewPage-B37DUL15.js} +1 -1
- package/dist/public/assets/{DesktopWindowPage-CrvndE23.js → DesktopWindowPage-CDA6l7lm.js} +1 -1
- package/dist/public/assets/{FileContextPanel-CdC7GGw5.js → FileContextPanel-CMGTtAB6.js} +1 -1
- package/dist/public/assets/{GitSidebar-z2SBinQh.js → GitSidebar--DCqBiGL.js} +1 -1
- package/dist/public/assets/{MobileCreateSessionSheet-Cb2HM-y3.js → MobileCreateSessionSheet-THIrIzJ3.js} +1 -1
- package/dist/public/assets/{MobileTopHeaderFrame-etF2HKlm.js → MobileTopHeaderFrame-D-X7pVnV.js} +1 -1
- package/dist/public/assets/{MobileWorkspaceSwitcherHeader-CuGJ31kb.js → MobileWorkspaceSwitcherHeader-Cczi7RYu.js} +1 -1
- package/dist/public/assets/{RelayConnectEntryPage-BB6DbGtP.js → RelayConnectEntryPage-D417tgWj.js} +1 -1
- package/dist/public/assets/{ServerSettingsModal-Bl1sacZg.js → ServerSettingsModal-BdTxbRbU.js} +1 -1
- package/dist/public/assets/SessionIndexPage-D5iefVcc.js +1 -0
- package/dist/public/assets/SettingsPage-iCFe_DHP.js +2 -0
- package/dist/public/assets/{TerminalManagerPanel-BOm8Hi_v.js → TerminalManagerPanel-CtldwWz8.js} +1 -1
- package/dist/public/assets/{TerminalPage-B5JNFU6w.js → TerminalPage-DAzQTmQC.js} +18 -18
- package/dist/public/assets/{TerminalRuntimeFallbackModal-CM3LRKOJ.js → TerminalRuntimeFallbackModal-DLOhAvaq.js} +1 -1
- package/dist/public/assets/{ToolFilesPage-GSqKQsj_.js → ToolFilesPage-D7thcDEv.js} +1 -1
- package/dist/public/assets/{ToolGitPage-BVFWMMQp.js → ToolGitPage-uPRsxdcn.js} +1 -1
- package/dist/public/assets/{ToolProcessesPage-DZ456fYz.js → ToolProcessesPage-B1uOk0Ef.js} +1 -1
- package/dist/public/assets/{ToolsHomePage-DsJp0y8A.js → ToolsHomePage-rU3V8mmh.js} +1 -1
- package/dist/public/assets/{WorkbenchLandingPage-DyPei0e-.js → WorkbenchLandingPage-BudM2C69.js} +1 -1
- package/dist/public/assets/WorkbenchLayout-Dybarc1V.js +244 -0
- package/dist/public/assets/{WorkbenchModal-LNfB69qx.js → WorkbenchModal-DMQutm1x.js} +1 -1
- package/dist/public/assets/WorkbenchShellRoute-Cy4WBbzq.js +1 -0
- package/dist/public/assets/{WorkspaceDebugDetailPage-CaXj5zVI.js → WorkspaceDebugDetailPage-CHqo-uDf.js} +1 -1
- package/dist/public/assets/{WorkspaceDetailPage-DOexuuaw.js → WorkspaceDetailPage-CGkAH1W-.js} +1 -1
- package/dist/public/assets/{WorkspaceHomePage-DkCHNjKD.js → WorkspaceHomePage-CfuPVITd.js} +1 -1
- package/dist/public/assets/{client-runtime-manager-6OoYHXGd.js → client-runtime-manager-CKbtaemV.js} +1 -1
- package/dist/public/assets/file-tree-icon-Bc0KADEl.js +3 -0
- package/dist/public/assets/index-DNRyROOG.css +1 -0
- package/dist/public/assets/index-oGylLBIX.js +42 -0
- package/dist/public/assets/{login-direct-candidate-resolver-CLlYtBRq.js → login-direct-candidate-resolver-DjJMbqB7.js} +1 -1
- package/dist/public/assets/model-switch-api-T55eW6D4.js +1 -0
- package/dist/public/assets/{preferences-service-BCcfYP_d.js → preferences-service-BTKBl5xM.js} +1 -1
- package/dist/public/assets/realtime-client-ww7MnbTD.js +1 -0
- package/dist/public/assets/{relay-entry-BmLkMKuq.js → relay-entry-sdeFnTbY.js} +1 -1
- package/dist/public/assets/styles-BjPytabP.css +1 -0
- package/dist/public/assets/{terminal-runtime-meta-0h-75uRy.js → terminal-runtime-meta-Cvt1ID92.js} +1 -1
- package/dist/public/assets/{useRegisteredDebugTemplates-rBVmAqh3.js → useRegisteredDebugTemplates-O-ymgLd9.js} +1 -1
- package/dist/public/index.html +2 -2
- package/dist/server/config/env.js +21 -1
- package/dist/server/config/env.js.map +1 -1
- package/dist/server/config/opencode-base-url-resolver.d.ts +16 -0
- package/dist/server/config/opencode-base-url-resolver.js +154 -0
- package/dist/server/config/opencode-base-url-resolver.js.map +1 -1
- package/dist/server/helpers/wechat-claw-runtime/main.d.ts +1 -0
- package/dist/server/helpers/wechat-claw-runtime/main.js +38 -0
- package/dist/server/helpers/wechat-claw-runtime/main.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/errors.d.ts +5 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/errors.js +32 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/errors.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/login-service.d.ts +16 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/login-service.js +209 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/login-service.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/poll-service.d.ts +18 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/poll-service.js +135 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/poll-service.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/runtime-state-store.d.ts +34 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/runtime-state-store.js +394 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/runtime-state-store.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/send-service.d.ts +9 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/send-service.js +64 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/send-service.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/types.d.ts +167 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/types.js +3 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/types.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/wechat-api-client.d.ts +34 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/wechat-api-client.js +160 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/wechat-api-client.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/routes/accounts.d.ts +9 -0
- package/dist/server/helpers/wechat-claw-runtime/routes/accounts.js +24 -0
- package/dist/server/helpers/wechat-claw-runtime/routes/accounts.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/server.d.ts +5 -0
- package/dist/server/helpers/wechat-claw-runtime/server.js +36 -0
- package/dist/server/helpers/wechat-claw-runtime/server.js.map +1 -0
- package/dist/server/middlewares/auth-guard.js +4 -1
- package/dist/server/middlewares/auth-guard.js.map +1 -1
- package/dist/server/modules/butler/butler-control-session-service.d.ts +16 -1
- package/dist/server/modules/butler/butler-control-session-service.js +106 -75
- package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
- package/dist/server/modules/butler/butler-session-service.js +44 -15
- package/dist/server/modules/butler/butler-session-service.js.map +1 -1
- package/dist/server/modules/channels/channel-bridge-service.d.ts +55 -0
- package/dist/server/modules/channels/channel-bridge-service.js +340 -0
- package/dist/server/modules/channels/channel-bridge-service.js.map +1 -0
- package/dist/server/modules/channels/channel-controller.d.ts +52 -0
- package/dist/server/modules/channels/channel-controller.js +54 -0
- package/dist/server/modules/channels/channel-controller.js.map +1 -0
- package/dist/server/modules/channels/channel-delivery-service.d.ts +63 -0
- package/dist/server/modules/channels/channel-delivery-service.js +429 -0
- package/dist/server/modules/channels/channel-delivery-service.js.map +1 -0
- package/dist/server/modules/channels/channel-gateway-controller.d.ts +15 -0
- package/dist/server/modules/channels/channel-gateway-controller.js +16 -0
- package/dist/server/modules/channels/channel-gateway-controller.js.map +1 -0
- package/dist/server/modules/channels/channel-gateway-service.d.ts +24 -0
- package/dist/server/modules/channels/channel-gateway-service.js +56 -0
- package/dist/server/modules/channels/channel-gateway-service.js.map +1 -0
- package/dist/server/modules/channels/channel-platform-adapters.d.ts +46 -0
- package/dist/server/modules/channels/channel-platform-adapters.js +315 -0
- package/dist/server/modules/channels/channel-platform-adapters.js.map +1 -0
- package/dist/server/modules/channels/channel-platform-catalog.d.ts +3 -0
- package/dist/server/modules/channels/channel-platform-catalog.js +42 -0
- package/dist/server/modules/channels/channel-platform-catalog.js.map +1 -0
- package/dist/server/modules/channels/channel-polling-scheduler.d.ts +31 -0
- package/dist/server/modules/channels/channel-polling-scheduler.js +93 -0
- package/dist/server/modules/channels/channel-polling-scheduler.js.map +1 -0
- package/dist/server/modules/channels/channel-polling-service.d.ts +46 -0
- package/dist/server/modules/channels/channel-polling-service.js +176 -0
- package/dist/server/modules/channels/channel-polling-service.js.map +1 -0
- package/dist/server/modules/channels/channel-service.d.ts +108 -0
- package/dist/server/modules/channels/channel-service.js +397 -0
- package/dist/server/modules/channels/channel-service.js.map +1 -0
- package/dist/server/modules/channels/wechat-claw-client.d.ts +51 -0
- package/dist/server/modules/channels/wechat-claw-client.js +245 -0
- package/dist/server/modules/channels/wechat-claw-client.js.map +1 -0
- package/dist/server/modules/channels/wechat-claw-runtime-boundary.d.ts +4 -0
- package/dist/server/modules/channels/wechat-claw-runtime-boundary.js +13 -0
- package/dist/server/modules/channels/wechat-claw-runtime-boundary.js.map +1 -0
- package/dist/server/modules/channels/wechat-claw-runtime-client.d.ts +14 -0
- package/dist/server/modules/channels/wechat-claw-runtime-client.js +95 -0
- package/dist/server/modules/channels/wechat-claw-runtime-client.js.map +1 -0
- package/dist/server/modules/channels/wechat-claw-runtime-manager.d.ts +16 -0
- package/dist/server/modules/channels/wechat-claw-runtime-manager.js +133 -0
- package/dist/server/modules/channels/wechat-claw-runtime-manager.js.map +1 -0
- package/dist/server/modules/channels/wechat-claw-runtime-types.d.ts +1 -0
- package/dist/server/modules/channels/wechat-claw-runtime-types.js +2 -0
- package/dist/server/modules/channels/wechat-claw-runtime-types.js.map +1 -0
- package/dist/server/modules/opencli/opencli-bridge-skill-service.js +2 -1
- package/dist/server/modules/opencli/opencli-bridge-skill-service.js.map +1 -1
- package/dist/server/modules/provider/provider-catalog-service.d.ts +5 -6
- package/dist/server/modules/provider/provider-catalog-service.js +12 -57
- package/dist/server/modules/provider/provider-catalog-service.js.map +1 -1
- package/dist/server/modules/provider/provider-controller.d.ts +1 -0
- package/dist/server/modules/provider/provider-controller.js +5 -0
- package/dist/server/modules/provider/provider-controller.js.map +1 -1
- package/dist/server/modules/provider/provider-runtime-state-service.d.ts +24 -0
- package/dist/server/modules/provider/provider-runtime-state-service.js +141 -0
- package/dist/server/modules/provider/provider-runtime-state-service.js.map +1 -0
- package/dist/server/modules/sessions/session-history-service.d.ts +3 -3
- package/dist/server/modules/sessions/session-history-service.js +150 -47
- package/dist/server/modules/sessions/session-history-service.js.map +1 -1
- package/dist/server/modules/sessions/session-live-runtime-service.js +9 -11
- package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
- package/dist/server/modules/sessions/session-provider-config-service.d.ts +1 -0
- package/dist/server/modules/sessions/session-provider-config-service.js +28 -7
- package/dist/server/modules/sessions/session-provider-config-service.js.map +1 -1
- package/dist/server/modules/sessions/session-provider-error-mapper.js +7 -0
- package/dist/server/modules/sessions/session-provider-error-mapper.js.map +1 -1
- package/dist/server/modules/tasks/task-types.d.ts +2 -0
- package/dist/server/modules/tasks/task-types.js +2 -0
- package/dist/server/modules/tasks/task-types.js.map +1 -1
- package/dist/server/routes/channels.d.ts +3 -0
- package/dist/server/routes/channels.js +16 -0
- package/dist/server/routes/channels.js.map +1 -0
- package/dist/server/routes/providers.js +1 -0
- package/dist/server/routes/providers.js.map +1 -1
- package/dist/server/routes/public.d.ts +2 -1
- package/dist/server/routes/public.js +3 -1
- package/dist/server/routes/public.js.map +1 -1
- package/dist/server/server/create-server.d.ts +22 -0
- package/dist/server/server/create-server.js +62 -3
- package/dist/server/server/create-server.js.map +1 -1
- package/dist/server/shared/http/error-handler.js +59 -3
- package/dist/server/shared/http/error-handler.js.map +1 -1
- package/dist/server/storage/repositories/channel-account-repository.d.ts +12 -0
- package/dist/server/storage/repositories/channel-account-repository.js +153 -0
- package/dist/server/storage/repositories/channel-account-repository.js.map +1 -0
- package/dist/server/storage/repositories/channel-delivery-repository.d.ts +13 -0
- package/dist/server/storage/repositories/channel-delivery-repository.js +156 -0
- package/dist/server/storage/repositories/channel-delivery-repository.js.map +1 -0
- package/dist/server/storage/repositories/channel-inbound-event-repository.d.ts +12 -0
- package/dist/server/storage/repositories/channel-inbound-event-repository.js +144 -0
- package/dist/server/storage/repositories/channel-inbound-event-repository.js.map +1 -0
- package/dist/server/storage/repositories/channel-thread-repository.d.ts +12 -0
- package/dist/server/storage/repositories/channel-thread-repository.js +152 -0
- package/dist/server/storage/repositories/channel-thread-repository.js.map +1 -0
- package/dist/server/storage/repositories/provider-runtime-state-repository.d.ts +9 -0
- package/dist/server/storage/repositories/provider-runtime-state-repository.js +50 -0
- package/dist/server/storage/repositories/provider-runtime-state-repository.js.map +1 -0
- package/dist/server/storage/sqlite/schema.sql +114 -0
- package/dist/server/types/domain.d.ts +82 -0
- package/dist/server/ws/workbench-ws-hub.js +8 -2
- package/dist/server/ws/workbench-ws-hub.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +28 -11
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +61 -8
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.d.ts +3 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js +94 -21
- package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js.map +1 -1
- package/package.json +1 -1
- package/dist/public/assets/AdaptiveButlerPage-CfsUVZKl.js +0 -3
- package/dist/public/assets/ConversationPage-Cj8go7L0.js +0 -4
- package/dist/public/assets/SessionIndexPage-NbF9gJnp.js +0 -1
- package/dist/public/assets/SettingsPage-DGsmQpLv.js +0 -1
- package/dist/public/assets/WorkbenchLayout-DlbgBT3n.js +0 -4
- package/dist/public/assets/WorkbenchShellRoute-BsxumYx5.js +0 -1
- package/dist/public/assets/file-tree-icon-9pt1OStn.js +0 -31
- package/dist/public/assets/index-BwlbvwaA.css +0 -1
- package/dist/public/assets/index-DSw-TkQL.js +0 -42
- package/dist/public/assets/model-switch-api-C-l8-E1S.js +0 -1
- package/dist/public/assets/session-runtime-machine-DgtvREca.js +0 -21
- package/dist/public/assets/styles-CsEMfdaS.css +0 -1
- /package/dist/public/assets/{styles-DRVvx_kv.js → styles-lhQGDlPF.js} +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type WechatClawGetConfigResponse, type WechatClawGetUpdatesResponse, type WechatClawQrCodeResponse, type WechatClawQrStatusResponse } from "./types.js";
|
|
2
|
+
export declare class WechatClawApiClient {
|
|
3
|
+
getBotQrCode(input: {
|
|
4
|
+
apiBaseUrl?: string | null;
|
|
5
|
+
botType: string;
|
|
6
|
+
routeTag?: string;
|
|
7
|
+
}): Promise<WechatClawQrCodeResponse>;
|
|
8
|
+
getQrCodeStatus(input: {
|
|
9
|
+
apiBaseUrl?: string | null;
|
|
10
|
+
qrcode: string;
|
|
11
|
+
routeTag?: string;
|
|
12
|
+
}): Promise<WechatClawQrStatusResponse>;
|
|
13
|
+
renderQrCodeDataUrl(input: {
|
|
14
|
+
text: string;
|
|
15
|
+
}): Promise<string>;
|
|
16
|
+
getUpdates(input: {
|
|
17
|
+
apiBaseUrl?: string | null;
|
|
18
|
+
token: string;
|
|
19
|
+
cursor: string | null;
|
|
20
|
+
}): Promise<WechatClawGetUpdatesResponse>;
|
|
21
|
+
sendMessage(input: {
|
|
22
|
+
apiBaseUrl?: string | null;
|
|
23
|
+
token: string;
|
|
24
|
+
message: Record<string, unknown>;
|
|
25
|
+
}): Promise<Record<string, unknown>>;
|
|
26
|
+
getConfig(input: {
|
|
27
|
+
apiBaseUrl?: string | null;
|
|
28
|
+
token: string;
|
|
29
|
+
userId: string;
|
|
30
|
+
contextToken?: string | null;
|
|
31
|
+
}): Promise<WechatClawGetConfigResponse>;
|
|
32
|
+
private requestAuthorizedJson;
|
|
33
|
+
private requestJson;
|
|
34
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import crypto from "node:crypto";
|
|
2
|
+
import QRCode from "qrcode";
|
|
3
|
+
import { AppError } from "../../../shared/errors/app-error.js";
|
|
4
|
+
import { DEFAULT_WECHAT_CLAW_API_BASE_URL } from "./types.js";
|
|
5
|
+
import { wechatClawUpstreamError } from "./errors.js";
|
|
6
|
+
export class WechatClawApiClient {
|
|
7
|
+
async getBotQrCode(input) {
|
|
8
|
+
const url = new URL("/ilink/bot/get_bot_qrcode", normalizeBaseUrl(input.apiBaseUrl));
|
|
9
|
+
url.searchParams.set("bot_type", input.botType);
|
|
10
|
+
return await this.requestJson(url.toString(), {
|
|
11
|
+
method: "GET",
|
|
12
|
+
headers: buildLoginHeaders(input.routeTag)
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
async getQrCodeStatus(input) {
|
|
16
|
+
const url = new URL("/ilink/bot/get_qrcode_status", normalizeBaseUrl(input.apiBaseUrl));
|
|
17
|
+
url.searchParams.set("qrcode", input.qrcode);
|
|
18
|
+
return await this.requestJson(url.toString(), {
|
|
19
|
+
method: "GET",
|
|
20
|
+
headers: buildLoginHeaders(input.routeTag),
|
|
21
|
+
timeoutMs: 35_000
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
async renderQrCodeDataUrl(input) {
|
|
25
|
+
const qrText = input.text.trim();
|
|
26
|
+
if (!qrText) {
|
|
27
|
+
throw wechatClawUpstreamError("微信二维码内容不能为空");
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const svg = await QRCode.toString(qrText, {
|
|
31
|
+
type: "svg",
|
|
32
|
+
margin: 2,
|
|
33
|
+
width: 280,
|
|
34
|
+
errorCorrectionLevel: "M"
|
|
35
|
+
});
|
|
36
|
+
return `data:image/svg+xml;base64,${Buffer.from(svg, "utf8").toString("base64")}`;
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
if (error instanceof AppError) {
|
|
40
|
+
throw error;
|
|
41
|
+
}
|
|
42
|
+
throw wechatClawUpstreamError(error instanceof Error ? `微信二维码本地生成失败:${error.message}` : "微信二维码本地生成失败", {
|
|
43
|
+
qrText
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async getUpdates(input) {
|
|
48
|
+
return await this.requestAuthorizedJson({
|
|
49
|
+
apiBaseUrl: input.apiBaseUrl,
|
|
50
|
+
token: input.token,
|
|
51
|
+
path: "/ilink/bot/getupdates",
|
|
52
|
+
body: {
|
|
53
|
+
get_updates_buf: input.cursor ?? "",
|
|
54
|
+
base_info: {
|
|
55
|
+
channel_version: "codingns-wechat-claw-helper"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
timeoutMs: 35_000
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
async sendMessage(input) {
|
|
62
|
+
return await this.requestAuthorizedJson({
|
|
63
|
+
apiBaseUrl: input.apiBaseUrl,
|
|
64
|
+
token: input.token,
|
|
65
|
+
path: "/ilink/bot/sendmessage",
|
|
66
|
+
body: {
|
|
67
|
+
msg: input.message,
|
|
68
|
+
base_info: {
|
|
69
|
+
channel_version: "codingns-wechat-claw-helper"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
async getConfig(input) {
|
|
75
|
+
return await this.requestAuthorizedJson({
|
|
76
|
+
apiBaseUrl: input.apiBaseUrl,
|
|
77
|
+
token: input.token,
|
|
78
|
+
path: "/ilink/bot/getconfig",
|
|
79
|
+
body: {
|
|
80
|
+
ilink_user_id: input.userId,
|
|
81
|
+
context_token: input.contextToken ?? undefined,
|
|
82
|
+
base_info: {
|
|
83
|
+
channel_version: "codingns-wechat-claw-helper"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
async requestAuthorizedJson(input) {
|
|
89
|
+
const url = new URL(input.path, normalizeBaseUrl(input.apiBaseUrl));
|
|
90
|
+
const serialized = JSON.stringify(input.body);
|
|
91
|
+
return await this.requestJson(url.toString(), {
|
|
92
|
+
method: "POST",
|
|
93
|
+
headers: {
|
|
94
|
+
"content-type": "application/json",
|
|
95
|
+
authorizationtype: "ilink_bot_token",
|
|
96
|
+
authorization: `Bearer ${input.token}`,
|
|
97
|
+
"x-wechat-uin": Buffer.from(String(crypto.randomInt(0, 2 ** 32))).toString("base64")
|
|
98
|
+
},
|
|
99
|
+
body: serialized,
|
|
100
|
+
timeoutMs: input.timeoutMs
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
async requestJson(url, input) {
|
|
104
|
+
const controller = new AbortController();
|
|
105
|
+
const timeout = setTimeout(() => {
|
|
106
|
+
controller.abort();
|
|
107
|
+
}, input.timeoutMs ?? 20_000);
|
|
108
|
+
try {
|
|
109
|
+
const response = await fetch(url, {
|
|
110
|
+
method: input.method,
|
|
111
|
+
headers: input.headers,
|
|
112
|
+
body: input.body,
|
|
113
|
+
signal: controller.signal
|
|
114
|
+
});
|
|
115
|
+
const text = await response.text();
|
|
116
|
+
if (!response.ok) {
|
|
117
|
+
throw wechatClawUpstreamError(`微信接口请求失败:${response.status} ${response.statusText}`, {
|
|
118
|
+
status: response.status,
|
|
119
|
+
body: text.slice(0, 200)
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
if (!text.trim()) {
|
|
123
|
+
return {};
|
|
124
|
+
}
|
|
125
|
+
try {
|
|
126
|
+
return JSON.parse(text);
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
throw wechatClawUpstreamError("微信接口返回了无法解析的 JSON", {
|
|
130
|
+
body: text.slice(0, 200),
|
|
131
|
+
error: error instanceof Error ? error.message : String(error)
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
if (error instanceof AppError) {
|
|
137
|
+
throw error;
|
|
138
|
+
}
|
|
139
|
+
throw wechatClawUpstreamError(error instanceof Error ? `微信接口请求失败:${error.message}` : "微信接口请求失败");
|
|
140
|
+
}
|
|
141
|
+
finally {
|
|
142
|
+
clearTimeout(timeout);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
function normalizeBaseUrl(value) {
|
|
147
|
+
const normalized = value?.trim();
|
|
148
|
+
return normalized && normalized.length > 0 ? normalized : DEFAULT_WECHAT_CLAW_API_BASE_URL;
|
|
149
|
+
}
|
|
150
|
+
function buildLoginHeaders(routeTag) {
|
|
151
|
+
return routeTag?.trim()
|
|
152
|
+
? {
|
|
153
|
+
"iLink-App-ClientVersion": "1",
|
|
154
|
+
SKRouteTag: routeTag.trim()
|
|
155
|
+
}
|
|
156
|
+
: {
|
|
157
|
+
"iLink-App-ClientVersion": "1"
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=wechat-api-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wechat-api-client.js","sourceRoot":"","sources":["../../../../../src/helpers/wechat-claw-runtime/modules/wechat-api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FastifyInstance } from "fastify";
|
|
2
|
+
import type { WechatClawLoginService } from "../modules/login-service.js";
|
|
3
|
+
import type { WechatClawPollService } from "../modules/poll-service.js";
|
|
4
|
+
import type { WechatClawSendService } from "../modules/send-service.js";
|
|
5
|
+
export declare function registerWechatClawRuntimeRoutes(app: FastifyInstance, services: {
|
|
6
|
+
loginService: WechatClawLoginService;
|
|
7
|
+
pollService: WechatClawPollService;
|
|
8
|
+
sendService: WechatClawSendService;
|
|
9
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export async function registerWechatClawRuntimeRoutes(app, services) {
|
|
2
|
+
app.post("/accounts/:accountId/start-login", async (request, reply) => {
|
|
3
|
+
reply.send(await services.loginService.startLogin(request.params.accountId, request.body?.config ?? {}));
|
|
4
|
+
});
|
|
5
|
+
app.get("/accounts/:accountId/login-status", async (request, reply) => {
|
|
6
|
+
reply.send(await services.loginService.refreshLoginStatus(request.params.accountId));
|
|
7
|
+
});
|
|
8
|
+
app.post("/accounts/:accountId/probe", async (request, reply) => {
|
|
9
|
+
reply.send(await services.pollService.probe(request.params.accountId, request.body?.config ?? {}));
|
|
10
|
+
});
|
|
11
|
+
app.post("/accounts/:accountId/poll", async (request, reply) => {
|
|
12
|
+
reply.send(await services.pollService.poll(request.params.accountId, request.body?.config ?? {}));
|
|
13
|
+
});
|
|
14
|
+
app.post("/accounts/:accountId/send", async (request, reply) => {
|
|
15
|
+
reply.send(await services.sendService.sendText(request.params.accountId, request.body?.config ?? {}, request.body.thread, request.body.text));
|
|
16
|
+
});
|
|
17
|
+
app.post("/accounts/:accountId/logout", async (request, reply) => {
|
|
18
|
+
reply.send(services.loginService.logout(request.params.accountId));
|
|
19
|
+
});
|
|
20
|
+
app.post("/accounts/:accountId/purge-runtime-state", async (request, reply) => {
|
|
21
|
+
reply.send(services.loginService.logout(request.params.accountId));
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=accounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../../../src/helpers/wechat-claw-runtime/routes/accounts.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,GAAoB,EACpB,QAIC;IAED,GAAG,CAAC,IAAI,CACN,kCAAkC,EAClC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,KAAK,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3G,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,mCAAmC,EACnC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,KAAK,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACvF,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,4BAA4B,EAC5B,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,KAAK,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IACrG,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,2BAA2B,EAC3B,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,KAAK,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IACpG,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,2BAA2B,EAC3B,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,KAAK,CAAC,IAAI,CACR,MAAM,QAAQ,CAAC,WAAW,CAAC,QAAQ,CACjC,OAAO,CAAC,MAAM,CAAC,SAAS,EACxB,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,EAC1B,OAAO,CAAC,IAAI,CAAC,MAAM,EACnB,OAAO,CAAC,IAAI,CAAC,IAAI,CAClB,CACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,6BAA6B,EAC7B,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,0CAA0C,EAC1C,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACrE,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import Fastify from "fastify";
|
|
2
|
+
export declare function createWechatClawRuntimeServer(input: {
|
|
3
|
+
runtimeRootDir: string;
|
|
4
|
+
authToken: string;
|
|
5
|
+
}): Promise<Fastify.FastifyInstance<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, Fastify.FastifyBaseLogger, Fastify.FastifyTypeProviderDefault>>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import Fastify from "fastify";
|
|
2
|
+
import { setErrorHandler } from "../../shared/http/error-handler.js";
|
|
3
|
+
import { wechatClawAuthError } from "./modules/errors.js";
|
|
4
|
+
import { WechatClawLoginService } from "./modules/login-service.js";
|
|
5
|
+
import { WechatClawPollService } from "./modules/poll-service.js";
|
|
6
|
+
import { WechatClawRuntimeStateStore } from "./modules/runtime-state-store.js";
|
|
7
|
+
import { WechatClawSendService } from "./modules/send-service.js";
|
|
8
|
+
import { WechatClawApiClient } from "./modules/wechat-api-client.js";
|
|
9
|
+
import { registerWechatClawRuntimeRoutes } from "./routes/accounts.js";
|
|
10
|
+
export async function createWechatClawRuntimeServer(input) {
|
|
11
|
+
const app = Fastify({
|
|
12
|
+
logger: false
|
|
13
|
+
});
|
|
14
|
+
const stateStore = new WechatClawRuntimeStateStore(input.runtimeRootDir);
|
|
15
|
+
const apiClient = new WechatClawApiClient();
|
|
16
|
+
const loginService = new WechatClawLoginService(stateStore, apiClient);
|
|
17
|
+
const pollService = new WechatClawPollService(stateStore, apiClient);
|
|
18
|
+
const sendService = new WechatClawSendService(stateStore, apiClient);
|
|
19
|
+
app.addHook("onRequest", async (request) => {
|
|
20
|
+
const token = request.headers["x-codingns-helper-token"];
|
|
21
|
+
if (token !== input.authToken) {
|
|
22
|
+
throw wechatClawAuthError("无效的 helper token");
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
app.setErrorHandler(setErrorHandler);
|
|
26
|
+
await registerWechatClawRuntimeRoutes(app, {
|
|
27
|
+
loginService,
|
|
28
|
+
pollService,
|
|
29
|
+
sendService
|
|
30
|
+
});
|
|
31
|
+
app.addHook("onClose", async () => {
|
|
32
|
+
stateStore.dispose();
|
|
33
|
+
});
|
|
34
|
+
return app;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../src/helpers/wechat-claw-runtime/server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,KAGnD;IACC,MAAM,GAAG,GAAG,OAAO,CAAC;QAClB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,2BAA2B,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAC5C,MAAM,YAAY,GAAG,IAAI,sBAAsB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,IAAI,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,IAAI,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAErE,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACzD,IAAI,KAAK,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;YAC9B,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IACrC,MAAM,+BAA+B,CAAC,GAAG,EAAE;QACzC,YAAY;QACZ,WAAW;QACX,WAAW;KACZ,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAChC,UAAU,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -13,6 +13,9 @@ export const BUTLER_UI_REQUEST_SOURCE = "butler-ui";
|
|
|
13
13
|
export function isPublicRoute(method, routePath) {
|
|
14
14
|
return PUBLIC_ROUTE_RULES.has(`${method.toUpperCase()}:${routePath}`);
|
|
15
15
|
}
|
|
16
|
+
function isPublicRoutePrefix(routePath) {
|
|
17
|
+
return routePath.startsWith("/api/public/channel-gateways/");
|
|
18
|
+
}
|
|
16
19
|
function isAssistantRoute(routePath) {
|
|
17
20
|
return routePath.startsWith("/api/assistant/");
|
|
18
21
|
}
|
|
@@ -45,7 +48,7 @@ export function createAuthGuard(authService) {
|
|
|
45
48
|
if (!routePath.startsWith("/api/")) {
|
|
46
49
|
return;
|
|
47
50
|
}
|
|
48
|
-
if (isPublicRoute(request.method, routePath)) {
|
|
51
|
+
if (isPublicRoute(request.method, routePath) || isPublicRoutePrefix(routePath)) {
|
|
49
52
|
return;
|
|
50
53
|
}
|
|
51
54
|
authService.ensureInitialized();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-guard.js","sourceRoot":"","sources":["../../../src/middlewares/auth-guard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,kCAAkC;IAClC,wBAAwB;IACxB,sBAAsB;IACtB,wBAAwB;IACxB,oDAAoD;CACrD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,6BAA6B,CAAC;AAC7E,MAAM,CAAC,MAAM,4BAA4B,GAAG,kCAAkC,CAAC;AAC/E,MAAM,CAAC,MAAM,4BAA4B,GAAG,eAAe,CAAC;AAC5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,WAAW,CAAC;AAEpD,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,SAAiB;IAC7D,OAAO,kBAAkB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,SAAS,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB;IACzC,OAAO,SAAS,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAuB;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEzD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAc;IAC/C,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrD,OAAO,gBAAgB,KAAK,KAAK,IAAI,gBAAgB,KAAK,MAAM,CAAC;AACnE,CAAC;AAED,SAAS,wBAAwB,CAC/B,UAA0B,EAC1B,aAA4B,EAC5B,MAAc;IAEd,IAAI,UAAU,KAAK,mBAAmB,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,KAAK,kBAAkB,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,aAAa,KAAK,wBAAwB,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAwB;IACtD,OAAO,KAAK,UAAU,SAAS,CAAC,OAAuB,EAAE,KAAmB;QAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC;QAE3D,qCAAqC;QACrC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-guard.js","sourceRoot":"","sources":["../../../src/middlewares/auth-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ButlerControlSession, ButlerControlSessionPurpose, SessionListItem } from "../../types/domain.js";
|
|
1
|
+
import type { ButlerControlSession, ButlerControlSessionPurpose, ButlerProfileProviderId, SessionListItem } from "../../types/domain.js";
|
|
2
2
|
import type { ButlerControlSessionRepository } from "../../storage/repositories/butler-control-session-repository.js";
|
|
3
3
|
import { type ButlerProfileService } from "./butler-profile-service.js";
|
|
4
4
|
import type { ButlerAuthService } from "./butler-auth-service.js";
|
|
@@ -51,6 +51,7 @@ export declare class ButlerControlSessionService {
|
|
|
51
51
|
listSessions(userId: string): ButlerControlSessionView[];
|
|
52
52
|
resetCurrentSession(): void;
|
|
53
53
|
startSession(userId: string, input?: StartButlerControlSessionInput): Promise<ButlerControlSessionView>;
|
|
54
|
+
startSessionForProvider(userId: string, providerId: ButlerProfileProviderId, input?: StartButlerControlSessionInput): Promise<ButlerControlSessionView>;
|
|
54
55
|
private assertProviderEnabled;
|
|
55
56
|
resumeCurrentSession(userId: string): Promise<ButlerControlSessionView & {
|
|
56
57
|
resumedAt: string;
|
|
@@ -66,8 +67,22 @@ export declare class ButlerControlSessionService {
|
|
|
66
67
|
clientRequestId: string | null;
|
|
67
68
|
message: Awaited<ReturnType<SessionLiveRuntimeService["sendLiveMessage"]>>["message"];
|
|
68
69
|
}>;
|
|
70
|
+
sendMessageToSession(userId: string, input: SendButlerControlMessageInput & {
|
|
71
|
+
controlSessionId: string;
|
|
72
|
+
}): Promise<{
|
|
73
|
+
controlSession: ButlerControlSessionView;
|
|
74
|
+
sessionId: string;
|
|
75
|
+
provider: string;
|
|
76
|
+
providerSessionId: string;
|
|
77
|
+
acceptedAt: string;
|
|
78
|
+
clientRequestId: string | null;
|
|
79
|
+
message: Awaited<ReturnType<SessionLiveRuntimeService["sendLiveMessage"]>>["message"];
|
|
80
|
+
}>;
|
|
81
|
+
private sendMessageInternal;
|
|
82
|
+
private startSessionInternal;
|
|
69
83
|
private requireCurrentSession;
|
|
70
84
|
private requireSessionById;
|
|
85
|
+
private requireSessionByIdAnyProvider;
|
|
71
86
|
private toView;
|
|
72
87
|
private ensureSessionCanStartWork;
|
|
73
88
|
private prepareWorkspace;
|
|
@@ -80,81 +80,14 @@ export class ButlerControlSessionService {
|
|
|
80
80
|
}
|
|
81
81
|
async startSession(userId, input = {}) {
|
|
82
82
|
const profile = this.butlerProfileService.ensureInitialized();
|
|
83
|
-
this.
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
const promptContext = await this.butlerContextAggregator.resolvePromptContext(userId, input.content ?? null);
|
|
91
|
-
const preparedWorkspace = await this.prepareWorkspace(profile, promptContext, userId, {
|
|
92
|
-
title: normalizeNullableText(input.title),
|
|
93
|
-
content
|
|
83
|
+
return this.startSessionInternal(userId, profile.providerId, input, {
|
|
84
|
+
closeExistingCurrent: true
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
async startSessionForProvider(userId, providerId, input = {}) {
|
|
88
|
+
return this.startSessionInternal(userId, providerId, input, {
|
|
89
|
+
closeExistingCurrent: false
|
|
94
90
|
});
|
|
95
|
-
const current = this.butlerControlSessionRepository.findLatestOpenByProvider(profile.providerId);
|
|
96
|
-
if (current && current.status !== "closed") {
|
|
97
|
-
this.butlerControlSessionRepository.update({
|
|
98
|
-
...current,
|
|
99
|
-
status: "closed",
|
|
100
|
-
updatedAt: nowIso()
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
try {
|
|
104
|
-
const started = await this.sessionLiveRuntimeService.startLiveSession({
|
|
105
|
-
workspaceId: preparedWorkspace.workspaceId,
|
|
106
|
-
userId,
|
|
107
|
-
provider: profile.providerId,
|
|
108
|
-
content,
|
|
109
|
-
clientRequestId,
|
|
110
|
-
runtimeOptions: {
|
|
111
|
-
model,
|
|
112
|
-
reasoningLevel,
|
|
113
|
-
permissionMode,
|
|
114
|
-
attachments: []
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
recordButlerProxyMessageOrigin(this.sessionMessageOriginRepository, {
|
|
118
|
-
sessionId: started.sessionId,
|
|
119
|
-
clientRequestId,
|
|
120
|
-
messageId: started.message?.messageId ?? null,
|
|
121
|
-
content,
|
|
122
|
-
createdAt: started.acceptedAt,
|
|
123
|
-
fallbackKey: `butler-control-start:${started.sessionId}:${started.acceptedAt}`
|
|
124
|
-
});
|
|
125
|
-
const timestamp = started.acceptedAt;
|
|
126
|
-
const created = this.butlerControlSessionRepository.create({
|
|
127
|
-
id: createId(),
|
|
128
|
-
providerId: profile.providerId,
|
|
129
|
-
sessionId: started.sessionId,
|
|
130
|
-
purpose: input.purpose ?? "chat",
|
|
131
|
-
title: normalizeNullableText(input.title),
|
|
132
|
-
sourceItemId: normalizeNullableText(input.sourceItemId),
|
|
133
|
-
model,
|
|
134
|
-
reasoningLevel,
|
|
135
|
-
permissionMode,
|
|
136
|
-
status: "running",
|
|
137
|
-
lastContextVersion: promptContext.version,
|
|
138
|
-
lastSummary: normalizeNullableText(input.title) ?? summarizeMessage(content),
|
|
139
|
-
createdAt: timestamp,
|
|
140
|
-
updatedAt: timestamp
|
|
141
|
-
});
|
|
142
|
-
if (preparedWorkspace.sandboxId && this.assistantSandboxService) {
|
|
143
|
-
this.assistantSandboxService.markSandboxUsedByControlSession(preparedWorkspace.sandboxId, userId, created.id);
|
|
144
|
-
}
|
|
145
|
-
return this.toView(created, userId);
|
|
146
|
-
}
|
|
147
|
-
catch (error) {
|
|
148
|
-
if (preparedWorkspace.sandboxId && this.assistantSandboxService) {
|
|
149
|
-
try {
|
|
150
|
-
this.assistantSandboxService.removeSandbox(preparedWorkspace.sandboxId, userId);
|
|
151
|
-
}
|
|
152
|
-
catch {
|
|
153
|
-
// 控制会话没真正启动成功时,尽量把新建的空白沙箱收口,避免残留无主目录。
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
throw error;
|
|
157
|
-
}
|
|
158
91
|
}
|
|
159
92
|
assertProviderEnabled(providerId) {
|
|
160
93
|
if (this.providerControlRepository.get(providerId).enabled) {
|
|
@@ -193,6 +126,15 @@ export class ButlerControlSessionService {
|
|
|
193
126
|
const current = input.controlSessionId?.trim()
|
|
194
127
|
? this.requireSessionById(input.controlSessionId, profile.providerId)
|
|
195
128
|
: this.requireCurrentSession(profile.providerId);
|
|
129
|
+
return this.sendMessageInternal(userId, current, input);
|
|
130
|
+
}
|
|
131
|
+
async sendMessageToSession(userId, input) {
|
|
132
|
+
const current = this.requireSessionByIdAnyProvider(input.controlSessionId);
|
|
133
|
+
return this.sendMessageInternal(userId, current, input);
|
|
134
|
+
}
|
|
135
|
+
async sendMessageInternal(userId, current, input) {
|
|
136
|
+
const profile = this.butlerProfileService.ensureInitialized();
|
|
137
|
+
this.assertProviderEnabled(current.providerId);
|
|
196
138
|
await this.ensureSessionCanStartWork(current.sessionId, userId, "助手控制会话");
|
|
197
139
|
const content = normalizeControlContent(input.content, "");
|
|
198
140
|
const requestedAt = nowIso();
|
|
@@ -254,6 +196,84 @@ export class ButlerControlSessionService {
|
|
|
254
196
|
throw error;
|
|
255
197
|
}
|
|
256
198
|
}
|
|
199
|
+
async startSessionInternal(userId, providerId, input, options) {
|
|
200
|
+
const profile = this.butlerProfileService.ensureInitialized();
|
|
201
|
+
this.assertProviderEnabled(providerId);
|
|
202
|
+
const content = normalizeControlContent(input.content, "");
|
|
203
|
+
const model = normalizeNullableText(input.model);
|
|
204
|
+
const reasoningLevel = normalizeNullableText(input.reasoningLevel);
|
|
205
|
+
const permissionMode = normalizeNullableText(input.permissionMode);
|
|
206
|
+
const clientRequestId = normalizeNullableText(input.clientRequestId)
|
|
207
|
+
?? `assistant-origin:butler-control-start:${createId()}`;
|
|
208
|
+
const promptContext = await this.butlerContextAggregator.resolvePromptContext(userId, input.content ?? null);
|
|
209
|
+
const preparedWorkspace = await this.prepareWorkspace(profile, promptContext, userId, {
|
|
210
|
+
title: normalizeNullableText(input.title),
|
|
211
|
+
content
|
|
212
|
+
});
|
|
213
|
+
const current = this.butlerControlSessionRepository.findLatestOpenByProvider(providerId);
|
|
214
|
+
if (options.closeExistingCurrent && current && current.status !== "closed") {
|
|
215
|
+
this.butlerControlSessionRepository.update({
|
|
216
|
+
...current,
|
|
217
|
+
status: "closed",
|
|
218
|
+
updatedAt: nowIso()
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
try {
|
|
222
|
+
const started = await this.sessionLiveRuntimeService.startLiveSession({
|
|
223
|
+
workspaceId: preparedWorkspace.workspaceId,
|
|
224
|
+
userId,
|
|
225
|
+
provider: providerId,
|
|
226
|
+
content,
|
|
227
|
+
clientRequestId,
|
|
228
|
+
runtimeOptions: {
|
|
229
|
+
model,
|
|
230
|
+
reasoningLevel,
|
|
231
|
+
permissionMode,
|
|
232
|
+
attachments: []
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
recordButlerProxyMessageOrigin(this.sessionMessageOriginRepository, {
|
|
236
|
+
sessionId: started.sessionId,
|
|
237
|
+
clientRequestId,
|
|
238
|
+
messageId: started.message?.messageId ?? null,
|
|
239
|
+
content,
|
|
240
|
+
createdAt: started.acceptedAt,
|
|
241
|
+
fallbackKey: `butler-control-start:${started.sessionId}:${started.acceptedAt}`
|
|
242
|
+
});
|
|
243
|
+
const timestamp = started.acceptedAt;
|
|
244
|
+
const created = this.butlerControlSessionRepository.create({
|
|
245
|
+
id: createId(),
|
|
246
|
+
providerId,
|
|
247
|
+
sessionId: started.sessionId,
|
|
248
|
+
purpose: input.purpose ?? "chat",
|
|
249
|
+
title: normalizeNullableText(input.title),
|
|
250
|
+
sourceItemId: normalizeNullableText(input.sourceItemId),
|
|
251
|
+
model,
|
|
252
|
+
reasoningLevel,
|
|
253
|
+
permissionMode,
|
|
254
|
+
status: "running",
|
|
255
|
+
lastContextVersion: promptContext.version,
|
|
256
|
+
lastSummary: normalizeNullableText(input.title) ?? summarizeMessage(content),
|
|
257
|
+
createdAt: timestamp,
|
|
258
|
+
updatedAt: timestamp
|
|
259
|
+
});
|
|
260
|
+
if (preparedWorkspace.sandboxId && this.assistantSandboxService) {
|
|
261
|
+
this.assistantSandboxService.markSandboxUsedByControlSession(preparedWorkspace.sandboxId, userId, created.id);
|
|
262
|
+
}
|
|
263
|
+
return this.toView(created, userId);
|
|
264
|
+
}
|
|
265
|
+
catch (error) {
|
|
266
|
+
if (preparedWorkspace.sandboxId && this.assistantSandboxService) {
|
|
267
|
+
try {
|
|
268
|
+
this.assistantSandboxService.removeSandbox(preparedWorkspace.sandboxId, userId);
|
|
269
|
+
}
|
|
270
|
+
catch {
|
|
271
|
+
// 控制会话没真正启动成功时,尽量把新建的空白沙箱收口,避免残留无主目录。
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
throw error;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
257
277
|
requireCurrentSession(providerId) {
|
|
258
278
|
const current = this.butlerControlSessionRepository.findLatestOpenByProvider(providerId);
|
|
259
279
|
if (!current || current.status === "closed") {
|
|
@@ -266,8 +286,19 @@ export class ButlerControlSessionService {
|
|
|
266
286
|
return current;
|
|
267
287
|
}
|
|
268
288
|
requireSessionById(controlSessionId, providerId) {
|
|
289
|
+
const record = this.requireSessionByIdAnyProvider(controlSessionId);
|
|
290
|
+
if (record.providerId !== providerId) {
|
|
291
|
+
throw new AppError({
|
|
292
|
+
statusCode: 404,
|
|
293
|
+
errorCode: "BUTLER_CONTROL_SESSION_NOT_FOUND",
|
|
294
|
+
detail: "指定的助手会话不存在或已经关闭"
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
return record;
|
|
298
|
+
}
|
|
299
|
+
requireSessionByIdAnyProvider(controlSessionId) {
|
|
269
300
|
const record = this.butlerControlSessionRepository.findById(controlSessionId.trim());
|
|
270
|
-
if (!record || record.
|
|
301
|
+
if (!record || record.status === "closed") {
|
|
271
302
|
throw new AppError({
|
|
272
303
|
statusCode: 404,
|
|
273
304
|
errorCode: "BUTLER_CONTROL_SESSION_NOT_FOUND",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"butler-control-session-service.js","sourceRoot":"","sources":["../../../../src/modules/butler/butler-control-session-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"butler-control-session-service.js","sourceRoot":"","sources":["../../../../src/modules/butler/butler-control-session-service.ts"],"names":[],"mappings":"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"}
|