botmux 2.104.0 → 2.105.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.en.md +10 -10
- package/README.md +10 -10
- package/dist/adapters/backend/sandbox.d.ts +5 -1
- package/dist/adapters/backend/sandbox.d.ts.map +1 -1
- package/dist/adapters/backend/sandbox.js +54 -5
- package/dist/adapters/backend/sandbox.js.map +1 -1
- package/dist/adapters/backend/tmux-pipe-backend.d.ts +1 -1
- package/dist/adapters/backend/tmux-pipe-backend.js +1 -1
- package/dist/adapters/backend/zellij-observe-backend.d.ts +1 -1
- package/dist/adapters/backend/zellij-observe-backend.js +1 -1
- package/dist/adapters/cli/claude-code.d.ts +1 -1
- package/dist/adapters/cli/relay.d.ts +2 -2
- package/dist/adapters/cli/relay.js +2 -2
- package/dist/adapters/cli/seed.d.ts +2 -2
- package/dist/adapters/cli/seed.js +2 -2
- package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
- package/dist/adapters/cli/shared-hints.js +1 -0
- package/dist/adapters/cli/shared-hints.js.map +1 -1
- package/dist/bot-registry.d.ts +65 -1
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +145 -0
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli/send-dispatch.d.ts +44 -0
- package/dist/cli/send-dispatch.d.ts.map +1 -1
- package/dist/cli/send-dispatch.js +79 -0
- package/dist/cli/send-dispatch.js.map +1 -1
- package/dist/cli/vc-agent.d.ts +2 -0
- package/dist/cli/vc-agent.d.ts.map +1 -0
- package/dist/cli/vc-agent.js +331 -0
- package/dist/cli/vc-agent.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +106 -24
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -1
- package/dist/config.js.map +1 -1
- package/dist/core/auto-start.d.ts +2 -2
- package/dist/core/auto-start.js +2 -2
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +2 -1
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/dashboard-events.d.ts +5 -0
- package/dist/core/dashboard-events.d.ts.map +1 -1
- package/dist/core/dashboard-events.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +47 -2
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/idle-worker-sweeper.d.ts +1 -1
- package/dist/core/idle-worker-sweeper.js +1 -1
- package/dist/core/passthrough-commands.d.ts.map +1 -1
- package/dist/core/passthrough-commands.js +1 -0
- package/dist/core/passthrough-commands.js.map +1 -1
- package/dist/core/scheduler.d.ts +12 -0
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +67 -7
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/session-discovery.js +1 -1
- package/dist/core/session-discovery.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +33 -7
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/trigger-session.d.ts.map +1 -1
- package/dist/core/trigger-session.js +78 -23
- package/dist/core/trigger-session.js.map +1 -1
- package/dist/core/worker-pool.d.ts +4 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +4 -0
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/core/zellij-adopt-discovery.js +1 -1
- package/dist/core/zellij-adopt-discovery.js.map +1 -1
- package/dist/daemon.d.ts +121 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +2644 -2
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/federated-group-core.js +1 -1
- package/dist/dashboard/federated-group-core.js.map +1 -1
- package/dist/dashboard/federation-api.js +1 -1
- package/dist/dashboard/schedule-card-model.d.ts +4 -3
- package/dist/dashboard/schedule-card-model.d.ts.map +1 -1
- package/dist/dashboard/schedule-card-model.js +5 -4
- package/dist/dashboard/schedule-card-model.js.map +1 -1
- package/dist/dashboard/settings-write-applier.d.ts +37 -3
- package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
- package/dist/dashboard/settings-write-applier.js +63 -0
- package/dist/dashboard/settings-write-applier.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +28 -0
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/insights.js +19 -19
- package/dist/dashboard/web/insights.js.map +1 -1
- package/dist/dashboard/web/overview-page.d.ts.map +1 -1
- package/dist/dashboard/web/overview-page.js +7 -4
- package/dist/dashboard/web/overview-page.js.map +1 -1
- package/dist/dashboard/web/schedules-page.d.ts +1 -1
- package/dist/dashboard/web/schedules-page.d.ts.map +1 -1
- package/dist/dashboard/web/schedules-page.js +7 -3
- package/dist/dashboard/web/schedules-page.js.map +1 -1
- package/dist/dashboard/web/sessions.js +2 -2
- package/dist/dashboard/web/settings-page.d.ts +9 -0
- package/dist/dashboard/web/settings-page.d.ts.map +1 -1
- package/dist/dashboard/web/settings-page.js +132 -43
- package/dist/dashboard/web/settings-page.js.map +1 -1
- package/dist/dashboard/web/store.d.ts +6 -0
- package/dist/dashboard/web/store.d.ts.map +1 -1
- package/dist/dashboard/web/store.js +18 -1
- package/dist/dashboard/web/store.js.map +1 -1
- package/dist/dashboard/webhook-routes.d.ts.map +1 -1
- package/dist/dashboard/webhook-routes.js +24 -0
- package/dist/dashboard/webhook-routes.js.map +1 -1
- package/dist/dashboard-web/app.js +3 -3
- package/dist/dashboard-web/chunks/{bot-defaults-page-Z36I5CKM.js → bot-defaults-page-3OIY7N76.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-2BBCKWNO.js → chunk-BNEXMNQD.js} +3 -3
- package/dist/dashboard-web/chunks/{chunk-QDKIUULH.js → chunk-DKKOGZCG.js} +1 -1
- package/dist/dashboard-web/chunks/chunk-LXIK7OUJ.js +1 -0
- package/dist/dashboard-web/chunks/{chunk-BAMNP73K.js → chunk-VFCACTRF.js} +1 -1
- package/dist/dashboard-web/chunks/{connectors-I3MGERCM.js → connectors-VDOAKUW3.js} +1 -1
- package/dist/dashboard-web/chunks/{groups-page-DTP2L4FQ.js → groups-page-CX5AN4XG.js} +1 -1
- package/dist/dashboard-web/chunks/{insights-page-FNI24WYF.js → insights-page-DOMRL4S6.js} +1 -1
- package/dist/dashboard-web/chunks/overview-page-AZBAXVZ7.js +1 -0
- package/dist/dashboard-web/chunks/{roles-page-A5DZ7Q6U.js → roles-page-3FEAH6S4.js} +1 -1
- package/dist/dashboard-web/chunks/schedules-CTQEA7IE.js +1 -0
- package/dist/dashboard-web/chunks/{sessions-YJ735IH4.js → sessions-LVZCXO2Z.js} +1 -1
- package/dist/dashboard-web/chunks/{sessions-page-2REIJ56C.js → sessions-page-NHBJDSBC.js} +1 -1
- package/dist/dashboard-web/chunks/settings-page-CRDIHRNE.js +2 -0
- package/dist/dashboard-web/chunks/{skills-page-ZCCLHWMJ.js → skills-page-VUG3EPWX.js} +1 -1
- package/dist/dashboard-web/chunks/{team-federation-page-4FCGO3WW.js → team-federation-page-ZKL3YMGN.js} +1 -1
- package/dist/dashboard-web/chunks/{workflows-KFJ7O57L.js → workflows-4BYQQBFP.js} +1 -1
- package/dist/dashboard-web/index.html +1 -1
- package/dist/dashboard-web/style.css +111 -16
- package/dist/dashboard.js +196 -2
- package/dist/dashboard.js.map +1 -1
- package/dist/global-config.d.ts +30 -0
- package/dist/global-config.d.ts.map +1 -1
- package/dist/global-config.js +64 -1
- package/dist/global-config.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +10 -7
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +10 -7
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts +1 -1
- package/dist/im/lark/card-builder.js +1 -1
- package/dist/im/lark/card-handler.d.ts +3 -0
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +8 -0
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/client.d.ts +1 -0
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +19 -0
- package/dist/im/lark/client.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts +10 -0
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +100 -21
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/grant-command.d.ts +1 -1
- package/dist/im/lark/grant-command.js +1 -1
- package/dist/im/lark/workflow-slash-command.js +4 -0
- package/dist/im/lark/workflow-slash-command.js.map +1 -1
- package/dist/mir-prompt.d.ts +16 -0
- package/dist/mir-prompt.d.ts.map +1 -0
- package/dist/mir-prompt.js +170 -0
- package/dist/mir-prompt.js.map +1 -0
- package/dist/mir-runner.js +1 -149
- package/dist/mir-runner.js.map +1 -1
- package/dist/platform/bind.d.ts.map +1 -1
- package/dist/platform/bind.js +3 -11
- package/dist/platform/bind.js.map +1 -1
- package/dist/platform/binding.d.ts +4 -5
- package/dist/platform/binding.d.ts.map +1 -1
- package/dist/platform/binding.js +0 -11
- package/dist/platform/binding.js.map +1 -1
- package/dist/platform/tunnel-client.d.ts.map +1 -1
- package/dist/platform/tunnel-client.js +37 -28
- package/dist/platform/tunnel-client.js.map +1 -1
- package/dist/services/deployment-identity.d.ts +1 -1
- package/dist/services/deployment-identity.d.ts.map +1 -1
- package/dist/services/deployment-identity.js +1 -1
- package/dist/services/deployment-identity.js.map +1 -1
- package/dist/services/doc-subs-store.js +1 -1
- package/dist/services/team-board-store.js +1 -1
- package/dist/services/team-board-store.js.map +1 -1
- package/dist/services/trigger-types.d.ts +2 -1
- package/dist/services/trigger-types.d.ts.map +1 -1
- package/dist/services/trigger-types.js +11 -2
- package/dist/services/trigger-types.js.map +1 -1
- package/dist/services/vc-meeting-runtime-store.d.ts +55 -0
- package/dist/services/vc-meeting-runtime-store.d.ts.map +1 -0
- package/dist/services/vc-meeting-runtime-store.js +313 -0
- package/dist/services/vc-meeting-runtime-store.js.map +1 -0
- package/dist/services/voice/index.d.ts +6 -1
- package/dist/services/voice/index.d.ts.map +1 -1
- package/dist/services/voice/index.js +12 -5
- package/dist/services/voice/index.js.map +1 -1
- package/dist/services/voice/sami.js +1 -1
- package/dist/setup/lark-scopes.json +5 -0
- package/dist/setup/verify-permissions.d.ts +6 -0
- package/dist/setup/verify-permissions.d.ts.map +1 -1
- package/dist/setup/verify-permissions.js +17 -0
- package/dist/setup/verify-permissions.js.map +1 -1
- package/dist/skills/definitions.d.ts.map +1 -1
- package/dist/skills/definitions.js +10 -0
- package/dist/skills/definitions.js.map +1 -1
- package/dist/utils/daemon-discovery.d.ts +2 -0
- package/dist/utils/daemon-discovery.d.ts.map +1 -1
- package/dist/utils/daemon-discovery.js +2 -0
- package/dist/utils/daemon-discovery.js.map +1 -1
- package/dist/utils/timezone.d.ts +51 -0
- package/dist/utils/timezone.d.ts.map +1 -0
- package/dist/utils/timezone.js +110 -0
- package/dist/utils/timezone.js.map +1 -0
- package/dist/vc-agent/cards.d.ts +47 -0
- package/dist/vc-agent/cards.d.ts.map +1 -0
- package/dist/vc-agent/cards.js +489 -0
- package/dist/vc-agent/cards.js.map +1 -0
- package/dist/vc-agent/meeting-state.d.ts +39 -0
- package/dist/vc-agent/meeting-state.d.ts.map +1 -0
- package/dist/vc-agent/meeting-state.js +186 -0
- package/dist/vc-agent/meeting-state.js.map +1 -0
- package/dist/vc-agent/normalizer.d.ts +13 -0
- package/dist/vc-agent/normalizer.d.ts.map +1 -0
- package/dist/vc-agent/normalizer.js +411 -0
- package/dist/vc-agent/normalizer.js.map +1 -0
- package/dist/vc-agent/polling-source.d.ts +36 -0
- package/dist/vc-agent/polling-source.d.ts.map +1 -0
- package/dist/vc-agent/polling-source.js +129 -0
- package/dist/vc-agent/polling-source.js.map +1 -0
- package/dist/vc-agent/push-source.d.ts +13 -0
- package/dist/vc-agent/push-source.d.ts.map +1 -0
- package/dist/vc-agent/push-source.js +109 -0
- package/dist/vc-agent/push-source.js.map +1 -0
- package/dist/vc-agent/realtime/audio-source.d.ts +6 -0
- package/dist/vc-agent/realtime/audio-source.d.ts.map +1 -0
- package/dist/vc-agent/realtime/audio-source.js +17 -0
- package/dist/vc-agent/realtime/audio-source.js.map +1 -0
- package/dist/vc-agent/realtime/endpoint.d.ts +6 -0
- package/dist/vc-agent/realtime/endpoint.d.ts.map +1 -0
- package/dist/vc-agent/realtime/endpoint.js +25 -0
- package/dist/vc-agent/realtime/endpoint.js.map +1 -0
- package/dist/vc-agent/realtime/errors.d.ts +9 -0
- package/dist/vc-agent/realtime/errors.d.ts.map +1 -0
- package/dist/vc-agent/realtime/errors.js +17 -0
- package/dist/vc-agent/realtime/errors.js.map +1 -0
- package/dist/vc-agent/realtime/events.d.ts +24 -0
- package/dist/vc-agent/realtime/events.d.ts.map +1 -0
- package/dist/vc-agent/realtime/events.js +190 -0
- package/dist/vc-agent/realtime/events.js.map +1 -0
- package/dist/vc-agent/realtime/frontier.d.ts +34 -0
- package/dist/vc-agent/realtime/frontier.d.ts.map +1 -0
- package/dist/vc-agent/realtime/frontier.js +40 -0
- package/dist/vc-agent/realtime/frontier.js.map +1 -0
- package/dist/vc-agent/realtime/index.d.ts +11 -0
- package/dist/vc-agent/realtime/index.d.ts.map +1 -0
- package/dist/vc-agent/realtime/index.js +11 -0
- package/dist/vc-agent/realtime/index.js.map +1 -0
- package/dist/vc-agent/realtime/pacer.d.ts +21 -0
- package/dist/vc-agent/realtime/pacer.d.ts.map +1 -0
- package/dist/vc-agent/realtime/pacer.js +80 -0
- package/dist/vc-agent/realtime/pacer.js.map +1 -0
- package/dist/vc-agent/realtime/protobuf.d.ts +33 -0
- package/dist/vc-agent/realtime/protobuf.d.ts.map +1 -0
- package/dist/vc-agent/realtime/protobuf.js +159 -0
- package/dist/vc-agent/realtime/protobuf.js.map +1 -0
- package/dist/vc-agent/realtime/protocol.d.ts +4 -0
- package/dist/vc-agent/realtime/protocol.d.ts.map +1 -0
- package/dist/vc-agent/realtime/protocol.js +59 -0
- package/dist/vc-agent/realtime/protocol.js.map +1 -0
- package/dist/vc-agent/realtime/session.d.ts +39 -0
- package/dist/vc-agent/realtime/session.d.ts.map +1 -0
- package/dist/vc-agent/realtime/session.js +221 -0
- package/dist/vc-agent/realtime/session.js.map +1 -0
- package/dist/vc-agent/realtime/transport.d.ts +23 -0
- package/dist/vc-agent/realtime/transport.d.ts.map +1 -0
- package/dist/vc-agent/realtime/transport.js +112 -0
- package/dist/vc-agent/realtime/transport.js.map +1 -0
- package/dist/vc-agent/realtime/types.d.ts +84 -0
- package/dist/vc-agent/realtime/types.d.ts.map +1 -0
- package/dist/vc-agent/realtime/types.js +5 -0
- package/dist/vc-agent/realtime/types.js.map +1 -0
- package/dist/vc-agent/types.d.ts +142 -0
- package/dist/vc-agent/types.d.ts.map +1 -0
- package/dist/vc-agent/types.js +2 -0
- package/dist/vc-agent/types.js.map +1 -0
- package/dist/worker.js +3 -3
- package/dist/worker.js.map +1 -1
- package/dist/workflows/attempt-resume.d.ts +4 -0
- package/dist/workflows/attempt-resume.d.ts.map +1 -1
- package/dist/workflows/attempt-resume.js +2 -0
- package/dist/workflows/attempt-resume.js.map +1 -1
- package/dist/workflows/attempt-terminal.d.ts +4 -0
- package/dist/workflows/attempt-terminal.d.ts.map +1 -1
- package/dist/workflows/attempt-terminal.js.map +1 -1
- package/dist/workflows/daemon-spawn.d.ts.map +1 -1
- package/dist/workflows/daemon-spawn.js +7 -0
- package/dist/workflows/daemon-spawn.js.map +1 -1
- package/dist/workflows/events/payloads.d.ts +32 -0
- package/dist/workflows/events/payloads.d.ts.map +1 -1
- package/dist/workflows/events/payloads.js +4 -0
- package/dist/workflows/events/payloads.js.map +1 -1
- package/dist/workflows/events/schema.d.ts +56 -0
- package/dist/workflows/events/schema.d.ts.map +1 -1
- package/dist/workflows/runtime.d.ts +4 -0
- package/dist/workflows/runtime.d.ts.map +1 -1
- package/dist/workflows/runtime.js.map +1 -1
- package/dist/workflows/spawn-policy.d.ts +14 -0
- package/dist/workflows/spawn-policy.d.ts.map +1 -0
- package/dist/workflows/spawn-policy.js +9 -0
- package/dist/workflows/spawn-policy.js.map +1 -0
- package/dist/workflows/v3/bot-resolve.d.ts.map +1 -1
- package/dist/workflows/v3/bot-resolve.js +4 -0
- package/dist/workflows/v3/bot-resolve.js.map +1 -1
- package/dist/workflows/v3/cli-run.d.ts.map +1 -1
- package/dist/workflows/v3/cli-run.js +4 -0
- package/dist/workflows/v3/cli-run.js.map +1 -1
- package/dist/workflows/v3/contract.d.ts +9 -3
- package/dist/workflows/v3/contract.d.ts.map +1 -1
- package/dist/workflows/v3/contract.js +3 -3
- package/dist/workflows/v3/contract.js.map +1 -1
- package/dist/workflows/v3/ephemeral-pool.d.ts.map +1 -1
- package/dist/workflows/v3/ephemeral-pool.js +2 -0
- package/dist/workflows/v3/ephemeral-pool.js.map +1 -1
- package/dist/workflows/v3/runtime.js +1 -1
- package/dist/workflows/v3/runtime.js.map +1 -1
- package/package.json +1 -1
- package/dist/dashboard-web/chunks/chunk-76J7PNZI.js +0 -1
- package/dist/dashboard-web/chunks/overview-page-EHCZJBWY.js +0 -1
- package/dist/dashboard-web/chunks/schedules-RSXALJU4.js +0 -1
- package/dist/dashboard-web/chunks/settings-page-XKFTXTDE.js +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../../src/vc-agent/normalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { NormalizedVcMeetingBatch } from './types.js';
|
|
2
|
+
export interface LarkCliRunOptions {
|
|
3
|
+
profile?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface FetchMeetingEventsOptions extends LarkCliRunOptions {
|
|
6
|
+
meetingId: string;
|
|
7
|
+
pageToken?: string;
|
|
8
|
+
pageSize?: number;
|
|
9
|
+
pageAll?: boolean;
|
|
10
|
+
start?: string;
|
|
11
|
+
end?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface JoinMeetingOptions extends LarkCliRunOptions {
|
|
14
|
+
meetingNumber: string;
|
|
15
|
+
password?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface SendMeetingMessageOptions extends LarkCliRunOptions {
|
|
18
|
+
meetingId: string;
|
|
19
|
+
text: string;
|
|
20
|
+
uuid?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function runLarkCliJson(args: string[]): unknown;
|
|
23
|
+
export declare function assertLarkCliJsonOk(raw: unknown, context: string): void;
|
|
24
|
+
export declare function extractMeetingIdFromJoin(raw: unknown): string | undefined;
|
|
25
|
+
export declare function joinMeetingAsBot(opts: JoinMeetingOptions): {
|
|
26
|
+
meetingId: string;
|
|
27
|
+
raw: unknown;
|
|
28
|
+
};
|
|
29
|
+
export declare function fetchMeetingEventsAsBot(opts: FetchMeetingEventsOptions): {
|
|
30
|
+
raw: unknown;
|
|
31
|
+
batch: NormalizedVcMeetingBatch;
|
|
32
|
+
};
|
|
33
|
+
export declare function sendMeetingTextMessageAsBot(opts: SendMeetingMessageOptions): {
|
|
34
|
+
raw: unknown;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=polling-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polling-source.d.ts","sourceRoot":"","sources":["../../src/vc-agent/polling-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAcD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAWtD;AAUD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAavE;AAuBD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAQzE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAgB9F;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,yBAAyB,GAAG;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,wBAAwB,CAAA;CAAE,CAmB1H;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,yBAAyB,GAAG;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAmB7F"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { spawnSync } from 'node:child_process';
|
|
2
|
+
import { normalizeVcMeetingEvents } from './normalizer.js';
|
|
3
|
+
function parseCliJson(stdout) {
|
|
4
|
+
const trimmed = stdout.trim();
|
|
5
|
+
if (!trimmed)
|
|
6
|
+
return {};
|
|
7
|
+
try {
|
|
8
|
+
return JSON.parse(trimmed);
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
const objectStart = trimmed.search(/[\[{]/);
|
|
12
|
+
if (objectStart >= 0)
|
|
13
|
+
return JSON.parse(trimmed.slice(objectStart));
|
|
14
|
+
throw new Error('lark-cli returned non-JSON output');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function runLarkCliJson(args) {
|
|
18
|
+
const result = spawnSync('lark-cli', args, {
|
|
19
|
+
encoding: 'utf-8',
|
|
20
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
21
|
+
});
|
|
22
|
+
if (result.status !== 0) {
|
|
23
|
+
const stderr = result.stderr?.trim();
|
|
24
|
+
const stdout = result.stdout?.trim();
|
|
25
|
+
throw new Error(`lark-cli ${args.join(' ')} failed: ${stderr || stdout || `exit ${result.status}`}`);
|
|
26
|
+
}
|
|
27
|
+
return parseCliJson(result.stdout ?? '');
|
|
28
|
+
}
|
|
29
|
+
function firstErrorString(...values) {
|
|
30
|
+
for (const v of values) {
|
|
31
|
+
if (typeof v === 'string' && v.trim())
|
|
32
|
+
return v.trim();
|
|
33
|
+
if (typeof v === 'number' && Number.isFinite(v))
|
|
34
|
+
return String(v);
|
|
35
|
+
}
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
export function assertLarkCliJsonOk(raw, context) {
|
|
39
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw))
|
|
40
|
+
return;
|
|
41
|
+
const obj = raw;
|
|
42
|
+
if (obj.ok !== false)
|
|
43
|
+
return;
|
|
44
|
+
const message = firstErrorString(obj.error, obj.message, obj.msg, obj.error_msg, obj.code, obj.error_code);
|
|
45
|
+
throw new Error(`${context} failed: ${message ?? 'lark-cli returned ok=false'}`);
|
|
46
|
+
}
|
|
47
|
+
function withProfile(args, profile) {
|
|
48
|
+
return profile ? [...args, '--profile', profile] : args;
|
|
49
|
+
}
|
|
50
|
+
function getPath(obj, path) {
|
|
51
|
+
let cur = obj;
|
|
52
|
+
for (const part of path.split('.')) {
|
|
53
|
+
if (!cur || typeof cur !== 'object' || Array.isArray(cur))
|
|
54
|
+
return undefined;
|
|
55
|
+
cur = cur[part];
|
|
56
|
+
}
|
|
57
|
+
return cur;
|
|
58
|
+
}
|
|
59
|
+
function firstString(...values) {
|
|
60
|
+
for (const v of values) {
|
|
61
|
+
if (typeof v === 'string' && v.trim())
|
|
62
|
+
return v.trim();
|
|
63
|
+
if (typeof v === 'number' && Number.isFinite(v))
|
|
64
|
+
return String(v);
|
|
65
|
+
}
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
export function extractMeetingIdFromJoin(raw) {
|
|
69
|
+
return firstString(getPath(raw, 'meeting.id'), getPath(raw, 'data.meeting.id'), getPath(raw, 'data.id'), getPath(raw, 'id'), getPath(raw, 'meeting_id'));
|
|
70
|
+
}
|
|
71
|
+
export function joinMeetingAsBot(opts) {
|
|
72
|
+
const args = withProfile([
|
|
73
|
+
'vc',
|
|
74
|
+
'+meeting-join',
|
|
75
|
+
'--as',
|
|
76
|
+
'bot',
|
|
77
|
+
'--meeting-number',
|
|
78
|
+
opts.meetingNumber,
|
|
79
|
+
'--format',
|
|
80
|
+
'json',
|
|
81
|
+
...(opts.password ? ['--password', opts.password] : []),
|
|
82
|
+
], opts.profile);
|
|
83
|
+
const raw = runLarkCliJson(args);
|
|
84
|
+
const meetingId = extractMeetingIdFromJoin(raw);
|
|
85
|
+
if (!meetingId)
|
|
86
|
+
throw new Error('meeting join succeeded but response did not contain meeting.id');
|
|
87
|
+
return { meetingId, raw };
|
|
88
|
+
}
|
|
89
|
+
export function fetchMeetingEventsAsBot(opts) {
|
|
90
|
+
const args = withProfile([
|
|
91
|
+
'vc',
|
|
92
|
+
'+meeting-events',
|
|
93
|
+
'--as',
|
|
94
|
+
'bot',
|
|
95
|
+
'--meeting-id',
|
|
96
|
+
opts.meetingId,
|
|
97
|
+
'--page-size',
|
|
98
|
+
String(opts.pageSize ?? 100),
|
|
99
|
+
...(opts.pageToken ? ['--page-token', opts.pageToken] : []),
|
|
100
|
+
...(opts.start ? ['--start', opts.start] : []),
|
|
101
|
+
...(opts.end ? ['--end', opts.end] : []),
|
|
102
|
+
...(opts.pageAll ?? true ? ['--page-all'] : []),
|
|
103
|
+
'--format',
|
|
104
|
+
'json',
|
|
105
|
+
], opts.profile);
|
|
106
|
+
const raw = runLarkCliJson(args);
|
|
107
|
+
return { raw, batch: normalizeVcMeetingEvents(raw, { meetingId: opts.meetingId, source: 'polling' }) };
|
|
108
|
+
}
|
|
109
|
+
export function sendMeetingTextMessageAsBot(opts) {
|
|
110
|
+
const args = withProfile([
|
|
111
|
+
'vc',
|
|
112
|
+
'+meeting-message-send',
|
|
113
|
+
'--as',
|
|
114
|
+
'bot',
|
|
115
|
+
'--meeting-id',
|
|
116
|
+
opts.meetingId,
|
|
117
|
+
'--msg-type',
|
|
118
|
+
'text',
|
|
119
|
+
'--text',
|
|
120
|
+
opts.text,
|
|
121
|
+
...(opts.uuid ? ['--uuid', opts.uuid] : []),
|
|
122
|
+
'--format',
|
|
123
|
+
'json',
|
|
124
|
+
], opts.profile);
|
|
125
|
+
const raw = runLarkCliJson(args);
|
|
126
|
+
assertLarkCliJsonOk(raw, 'meeting text message send');
|
|
127
|
+
return { raw };
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=polling-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polling-source.js","sourceRoot":"","sources":["../../src/vc-agent/polling-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { VcMeetingPushContext, VcMeetingPushEventKind } from './types.js';
|
|
2
|
+
export declare const VC_BOT_MEETING_INVITED_EVENT = "vc.bot.meeting_invited_v1";
|
|
3
|
+
export declare const VC_BOT_MEETING_ACTIVITY_EVENT = "vc.bot.meeting_activity_v1";
|
|
4
|
+
export declare const VC_BOT_MEETING_ENDED_EVENT = "vc.bot.meeting_ended_v1";
|
|
5
|
+
export declare const VC_PARTICIPANT_MEETING_JOINED_EVENT = "vc.meeting.participant_meeting_joined_v1";
|
|
6
|
+
export type VcMeetingPushEventType = typeof VC_BOT_MEETING_INVITED_EVENT | typeof VC_BOT_MEETING_ACTIVITY_EVENT | typeof VC_BOT_MEETING_ENDED_EVENT | typeof VC_PARTICIPANT_MEETING_JOINED_EVENT;
|
|
7
|
+
export declare function parseVcMeetingPushEvent(input: {
|
|
8
|
+
data: unknown;
|
|
9
|
+
larkAppId: string;
|
|
10
|
+
kind: VcMeetingPushEventKind;
|
|
11
|
+
eventType: VcMeetingPushEventType;
|
|
12
|
+
}): VcMeetingPushContext;
|
|
13
|
+
//# sourceMappingURL=push-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push-source.d.ts","sourceRoot":"","sources":["../../src/vc-agent/push-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAgB,MAAM,YAAY,CAAC;AAE7F,eAAO,MAAM,4BAA4B,8BAA8B,CAAC;AACxE,eAAO,MAAM,6BAA6B,+BAA+B,CAAC;AAC1E,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AACpE,eAAO,MAAM,mCAAmC,6CAA6C,CAAC;AAE9F,MAAM,MAAM,sBAAsB,GAC9B,OAAO,4BAA4B,GACnC,OAAO,6BAA6B,GACpC,OAAO,0BAA0B,GACjC,OAAO,mCAAmC,CAAC;AAqH/C,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,sBAAsB,CAAC;IAC7B,SAAS,EAAE,sBAAsB,CAAC;CACnC,GAAG,oBAAoB,CAUvB"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
export const VC_BOT_MEETING_INVITED_EVENT = 'vc.bot.meeting_invited_v1';
|
|
2
|
+
export const VC_BOT_MEETING_ACTIVITY_EVENT = 'vc.bot.meeting_activity_v1';
|
|
3
|
+
export const VC_BOT_MEETING_ENDED_EVENT = 'vc.bot.meeting_ended_v1';
|
|
4
|
+
export const VC_PARTICIPANT_MEETING_JOINED_EVENT = 'vc.meeting.participant_meeting_joined_v1';
|
|
5
|
+
function isRecord(v) {
|
|
6
|
+
return !!v && typeof v === 'object' && !Array.isArray(v);
|
|
7
|
+
}
|
|
8
|
+
function getPath(obj, path) {
|
|
9
|
+
let cur = obj;
|
|
10
|
+
for (const part of path.split('.')) {
|
|
11
|
+
if (!isRecord(cur))
|
|
12
|
+
return undefined;
|
|
13
|
+
cur = cur[part];
|
|
14
|
+
}
|
|
15
|
+
return cur;
|
|
16
|
+
}
|
|
17
|
+
function firstString(...values) {
|
|
18
|
+
for (const v of values) {
|
|
19
|
+
if (typeof v === 'string' && v.trim())
|
|
20
|
+
return v.trim();
|
|
21
|
+
if (typeof v === 'number' && Number.isFinite(v))
|
|
22
|
+
return String(v);
|
|
23
|
+
}
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
function parseTimeMs(...values) {
|
|
27
|
+
for (const v of values) {
|
|
28
|
+
if (typeof v === 'number' && Number.isFinite(v)) {
|
|
29
|
+
return v < 10_000_000_000 ? Math.floor(v * 1000) : Math.floor(v);
|
|
30
|
+
}
|
|
31
|
+
if (typeof v === 'string' && v.trim()) {
|
|
32
|
+
const s = v.trim();
|
|
33
|
+
if (/^\d+$/.test(s)) {
|
|
34
|
+
const n = Number(s);
|
|
35
|
+
if (Number.isFinite(n))
|
|
36
|
+
return n < 10_000_000_000 ? Math.floor(n * 1000) : Math.floor(n);
|
|
37
|
+
}
|
|
38
|
+
const parsed = Date.parse(s);
|
|
39
|
+
if (Number.isFinite(parsed))
|
|
40
|
+
return parsed;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
function eventBody(data) {
|
|
46
|
+
return getPath(data, 'event') ?? getPath(data, 'data.event') ?? data;
|
|
47
|
+
}
|
|
48
|
+
function firstActivityMeeting(data) {
|
|
49
|
+
const candidates = [
|
|
50
|
+
getPath(data, 'event.meeting_actitivty_items'),
|
|
51
|
+
getPath(data, 'event.meeting_activity_items'),
|
|
52
|
+
getPath(data, 'data.event.meeting_actitivty_items'),
|
|
53
|
+
getPath(data, 'data.event.meeting_activity_items'),
|
|
54
|
+
getPath(data, 'meeting_actitivty_items'),
|
|
55
|
+
getPath(data, 'meeting_activity_items'),
|
|
56
|
+
];
|
|
57
|
+
for (const c of candidates) {
|
|
58
|
+
if (!Array.isArray(c))
|
|
59
|
+
continue;
|
|
60
|
+
for (const item of c) {
|
|
61
|
+
const meeting = getPath(item, 'meeting');
|
|
62
|
+
if (isRecord(meeting))
|
|
63
|
+
return meeting;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
function meetingRefFromPush(data) {
|
|
69
|
+
const body = eventBody(data);
|
|
70
|
+
const meeting = getPath(body, 'meeting') ?? getPath(data, 'meeting') ?? firstActivityMeeting(data) ?? body;
|
|
71
|
+
const id = firstString(getPath(meeting, 'id'), getPath(meeting, 'meeting_id'), getPath(body, 'meeting_id'), getPath(data, 'meeting_id'), getPath(data, 'event.meeting_id'), getPath(data, 'data.event.meeting_id'));
|
|
72
|
+
return {
|
|
73
|
+
id: id ?? '',
|
|
74
|
+
...(firstString(getPath(meeting, 'meeting_no'), getPath(meeting, 'meetingNo'), getPath(body, 'meeting_no')) ? {
|
|
75
|
+
meetingNo: firstString(getPath(meeting, 'meeting_no'), getPath(meeting, 'meetingNo'), getPath(body, 'meeting_no')),
|
|
76
|
+
} : {}),
|
|
77
|
+
...(firstString(getPath(meeting, 'topic'), getPath(meeting, 'title'), getPath(meeting, 'meeting_title')) ? {
|
|
78
|
+
topic: firstString(getPath(meeting, 'topic'), getPath(meeting, 'title'), getPath(meeting, 'meeting_title')),
|
|
79
|
+
} : {}),
|
|
80
|
+
...(parseTimeMs(getPath(meeting, 'start_time'), getPath(meeting, 'startTime'), getPath(meeting, 'start_time_ms')) !== undefined ? {
|
|
81
|
+
startTimeMs: parseTimeMs(getPath(meeting, 'start_time'), getPath(meeting, 'startTime'), getPath(meeting, 'start_time_ms')),
|
|
82
|
+
} : {}),
|
|
83
|
+
...(firstString(getPath(meeting, 'host_user.open_id'), getPath(meeting, 'host.open_id')) ? {
|
|
84
|
+
hostOpenId: firstString(getPath(meeting, 'host_user.open_id'), getPath(meeting, 'host.open_id')),
|
|
85
|
+
} : {}),
|
|
86
|
+
...(firstString(getPath(meeting, 'host_user.user_name'), getPath(meeting, 'host_user.name'), getPath(meeting, 'host.name')) ? {
|
|
87
|
+
hostName: firstString(getPath(meeting, 'host_user.user_name'), getPath(meeting, 'host_user.name'), getPath(meeting, 'host.name')),
|
|
88
|
+
} : {}),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function eventIdFromPush(data) {
|
|
92
|
+
return firstString(getPath(data, 'header.event_id'), getPath(data, 'event_id'), getPath(data, 'uuid'), getPath(data, 'event.event_id'), getPath(data, 'data.event.event_id'));
|
|
93
|
+
}
|
|
94
|
+
function occurredAtFromPush(data) {
|
|
95
|
+
const body = eventBody(data);
|
|
96
|
+
return parseTimeMs(getPath(data, 'header.create_time'), getPath(data, 'header.event_time'), getPath(body, 'event_time'), getPath(body, 'timestamp'), getPath(body, 'time'), getPath(body, 'create_time'));
|
|
97
|
+
}
|
|
98
|
+
export function parseVcMeetingPushEvent(input) {
|
|
99
|
+
return {
|
|
100
|
+
larkAppId: input.larkAppId,
|
|
101
|
+
kind: input.kind,
|
|
102
|
+
eventType: input.eventType,
|
|
103
|
+
...(eventIdFromPush(input.data) ? { eventId: eventIdFromPush(input.data) } : {}),
|
|
104
|
+
meeting: meetingRefFromPush(input.data),
|
|
105
|
+
...(occurredAtFromPush(input.data) !== undefined ? { occurredAtMs: occurredAtFromPush(input.data) } : {}),
|
|
106
|
+
raw: input.data,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=push-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push-source.js","sourceRoot":"","sources":["../../src/vc-agent/push-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type Pcm } from '../../services/voice/audio.js';
|
|
2
|
+
import { type SplitPcmFrameOptions } from './pacer.js';
|
|
3
|
+
import type { RealtimeVoiceFrameBatch } from './types.js';
|
|
4
|
+
export declare function pcmToRealtimeVoiceFrameBatch(pcm: Pcm, opts?: SplitPcmFrameOptions): RealtimeVoiceFrameBatch;
|
|
5
|
+
export declare function synthesizeRealtimeVoiceFrameBatch(larkAppId: string | undefined, text: string, opts?: SplitPcmFrameOptions): Promise<RealtimeVoiceFrameBatch>;
|
|
6
|
+
//# sourceMappingURL=audio-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-source.d.ts","sourceRoot":"","sources":["../../../src/vc-agent/realtime/audio-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,GAAG,EACR,IAAI,GAAE,oBAAyB,GAC9B,uBAAuB,CAQzB;AAED,wBAAsB,iCAAiC,CACrD,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CAGlC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { pcmDurationMs } from '../../services/voice/audio.js';
|
|
2
|
+
import { synthesizeVoicePcmForMessage } from '../../services/voice/index.js';
|
|
3
|
+
import { splitPcmIntoRealtimeFrames } from './pacer.js';
|
|
4
|
+
export function pcmToRealtimeVoiceFrameBatch(pcm, opts = {}) {
|
|
5
|
+
const split = splitPcmIntoRealtimeFrames(pcm, opts);
|
|
6
|
+
return {
|
|
7
|
+
pcm,
|
|
8
|
+
format: split.format,
|
|
9
|
+
frames: split.frames,
|
|
10
|
+
durationMs: pcmDurationMs(pcm),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export async function synthesizeRealtimeVoiceFrameBatch(larkAppId, text, opts = {}) {
|
|
14
|
+
const pcm = await synthesizeVoicePcmForMessage(larkAppId, text);
|
|
15
|
+
return pcmToRealtimeVoiceFrameBatch(pcm, opts);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=audio-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-source.js","sourceRoot":"","sources":["../../../src/vc-agent/realtime/audio-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAY,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAA6B,MAAM,YAAY,CAAC;AAGnF,MAAM,UAAU,4BAA4B,CAC1C,GAAQ,EACR,OAA6B,EAAE;IAE/B,MAAM,KAAK,GAAG,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO;QACL,GAAG;QACH,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACrD,SAA6B,EAC7B,IAAY,EACZ,OAA6B,EAAE;IAE/B,MAAM,GAAG,GAAG,MAAM,4BAA4B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAChE,OAAO,4BAA4B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../../src/vc-agent/realtime/endpoint.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,OAAO,CAAC;CACd;AASD,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,CAAC,CAiBjC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { getBotClient } from '../../bot-registry.js';
|
|
2
|
+
import { larkGet } from '../../im/lark/client.js';
|
|
3
|
+
function firstString(...values) {
|
|
4
|
+
for (const value of values) {
|
|
5
|
+
if (typeof value === 'string' && value.trim())
|
|
6
|
+
return value.trim();
|
|
7
|
+
}
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
export async function fetchRealtimeVoiceEndpoint(larkAppId, meetingId) {
|
|
11
|
+
if (!meetingId.trim())
|
|
12
|
+
throw new Error('meetingId is required for VC realtime endpoint');
|
|
13
|
+
const client = getBotClient(larkAppId);
|
|
14
|
+
const res = await larkGet(client, '/open-apis/vc/v1/realtime/endpoint', {
|
|
15
|
+
meeting_id: meetingId,
|
|
16
|
+
});
|
|
17
|
+
if (res?.code !== 0) {
|
|
18
|
+
throw new Error(`failed to fetch VC realtime endpoint: ${res?.msg ?? 'unknown'} (code=${res?.code ?? '?'})`);
|
|
19
|
+
}
|
|
20
|
+
const websocketUrl = firstString(res?.data?.websocket_url, res?.data?.websocketUrl, res?.data?.ws_url, res?.data?.url);
|
|
21
|
+
if (!websocketUrl)
|
|
22
|
+
throw new Error('VC realtime endpoint response did not contain websocket_url');
|
|
23
|
+
return { websocketUrl, raw: res };
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/vc-agent/realtime/endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAOlD,SAAS,WAAW,CAAC,GAAG,MAAiB;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACrE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,SAAiB,EACjB,SAAiB;IAEjB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACzF,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,oCAAoC,EAAE;QACtE,UAAU,EAAE,SAAS;KACtB,CAAC,CAAC;IACH,IAAI,GAAG,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,EAAE,GAAG,IAAI,SAAS,UAAU,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;IAC/G,CAAC;IACD,MAAM,YAAY,GAAG,WAAW,CAC9B,GAAG,EAAE,IAAI,EAAE,aAAa,EACxB,GAAG,EAAE,IAAI,EAAE,YAAY,EACvB,GAAG,EAAE,IAAI,EAAE,MAAM,EACjB,GAAG,EAAE,IAAI,EAAE,GAAG,CACf,CAAC;IACF,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAClG,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const REALTIME_VOICE_PROTO_NOT_CONFIGURED = "proto_not_configured";
|
|
2
|
+
export declare const REALTIME_VOICE_TRANSPORT_NOT_CONFIGURED = "transport_not_configured";
|
|
3
|
+
export declare class RealtimeVoiceNotConfiguredError extends Error {
|
|
4
|
+
readonly code: string;
|
|
5
|
+
constructor(code: string, message: string);
|
|
6
|
+
}
|
|
7
|
+
export declare function protoNotConfigured(detail: string): never;
|
|
8
|
+
export declare function transportNotConfigured(): never;
|
|
9
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/vc-agent/realtime/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mCAAmC,yBAAyB,CAAC;AAC1E,eAAO,MAAM,uCAAuC,6BAA6B,CAAC;AAElF,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK1C;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAKxD;AAED,wBAAgB,sBAAsB,IAAI,KAAK,CAK9C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const REALTIME_VOICE_PROTO_NOT_CONFIGURED = 'proto_not_configured';
|
|
2
|
+
export const REALTIME_VOICE_TRANSPORT_NOT_CONFIGURED = 'transport_not_configured';
|
|
3
|
+
export class RealtimeVoiceNotConfiguredError extends Error {
|
|
4
|
+
code;
|
|
5
|
+
constructor(code, message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'RealtimeVoiceNotConfiguredError';
|
|
8
|
+
this.code = code;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function protoNotConfigured(detail) {
|
|
12
|
+
throw new RealtimeVoiceNotConfiguredError(REALTIME_VOICE_PROTO_NOT_CONFIGURED, `VC realtime voice protobuf is not configured: ${detail}`);
|
|
13
|
+
}
|
|
14
|
+
export function transportNotConfigured() {
|
|
15
|
+
throw new RealtimeVoiceNotConfiguredError(REALTIME_VOICE_TRANSPORT_NOT_CONFIGURED, 'VC realtime voice WebSocket transport is not configured.');
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/vc-agent/realtime/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mCAAmC,GAAG,sBAAsB,CAAC;AAC1E,MAAM,CAAC,MAAM,uCAAuC,GAAG,0BAA0B,CAAC;AAElF,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IAC/C,IAAI,CAAS;IAEtB,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,IAAI,+BAA+B,CACvC,mCAAmC,EACnC,iDAAiD,MAAM,EAAE,CAC1D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,MAAM,IAAI,+BAA+B,CACvC,uCAAuC,EACvC,0DAA0D,CAC3D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { DecodedRealtimeServerEvent, RealtimeVoiceAudioFormat, RealtimeVoiceFrame } from './types.js';
|
|
2
|
+
export declare const CLIENT_EVENT_SESSION_CREATE = "session.create";
|
|
3
|
+
export declare const CLIENT_EVENT_AUDIO_UPSTREAM_APPEND = "audio.upstream.append";
|
|
4
|
+
export declare const CLIENT_EVENT_AUDIO_UPSTREAM_CLEAR = "audio.upstream.clear";
|
|
5
|
+
export declare const CLIENT_EVENT_SESSION_CLOSE = "session.close";
|
|
6
|
+
export declare const SERVER_EVENT_SESSION_CREATED = "session.created";
|
|
7
|
+
export declare const SERVER_EVENT_AUDIO_DOWNSTREAM_DELTA = "audio.downstream.delta";
|
|
8
|
+
export declare const SERVER_EVENT_SESSION_CLOSED = "session.closed";
|
|
9
|
+
export declare const SERVER_EVENT_ERROR = "error";
|
|
10
|
+
export declare const CLIENT_CLOSE_REASON_USER_LEFT = 1;
|
|
11
|
+
export interface EncodedRealtimeClientEvent {
|
|
12
|
+
eventId: string;
|
|
13
|
+
payload: Buffer;
|
|
14
|
+
}
|
|
15
|
+
export interface EncodeClientEventOptions {
|
|
16
|
+
eventId?: string;
|
|
17
|
+
createdAt?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function encodeSessionCreateEvent(format: RealtimeVoiceAudioFormat, opts?: EncodeClientEventOptions): EncodedRealtimeClientEvent;
|
|
20
|
+
export declare function encodeAudioFrameEvent(frame: RealtimeVoiceFrame, sessionId: bigint, opts?: EncodeClientEventOptions): EncodedRealtimeClientEvent;
|
|
21
|
+
export declare function encodeAudioUpstreamClearEvent(sessionId: bigint, opts?: EncodeClientEventOptions): EncodedRealtimeClientEvent;
|
|
22
|
+
export declare function encodeSessionCloseEvent(sessionId: bigint, opts?: EncodeClientEventOptions): EncodedRealtimeClientEvent;
|
|
23
|
+
export declare function decodeServerEvent(data: Buffer): DecodedRealtimeServerEvent;
|
|
24
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/vc-agent/realtime/events.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,2BAA2B,mBAAmB,CAAC;AAC5D,eAAO,MAAM,kCAAkC,0BAA0B,CAAC;AAC1E,eAAO,MAAM,iCAAiC,yBAAyB,CAAC;AACxE,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAE1D,eAAO,MAAM,4BAA4B,oBAAoB,CAAC;AAC9D,eAAO,MAAM,mCAAmC,2BAA2B,CAAC;AAC5E,eAAO,MAAM,2BAA2B,mBAAmB,CAAC;AAC5D,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA2DD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,wBAAwB,EAChC,IAAI,GAAE,wBAA6B,GAClC,0BAA0B,CAY5B;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,wBAA6B,GAClC,0BAA0B,CAY5B;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,wBAA6B,GAClC,0BAA0B,CAS5B;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,wBAA6B,GAClC,0BAA0B,CAY5B;AA+CD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,0BAA0B,CAuD1E"}
|