@voicethere/agent 0.4.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/agent.js +84 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/protocol.d.ts +33 -4
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +3 -2
- package/dist/protocol.js.map +1 -1
- package/dist/runtime.d.ts +18 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +94 -2
- package/dist/runtime.js.map +1 -1
- package/dist/templates/echo/agent.js +90 -2
- package/dist/templates/echo-dc/agent.js +90 -2
- package/dist/templates/game-sync/agent.js +90 -2
- package/dist/templates/registry.d.ts.map +1 -1
- package/dist/templates/registry.js +16 -0
- package/dist/templates/registry.js.map +1 -1
- package/dist/templates/voice-starter/agent.js +90 -2
- package/dist/templates/webhooks/agent.js +677 -0
- package/dist/templates/webhooks-redis/agent.js +11449 -0
- package/dist/verify/lib.d.ts +1 -1
- package/dist/verify/lib.d.ts.map +1 -1
- package/dist/verify/lib.js +2 -0
- package/dist/verify/lib.js.map +1 -1
- package/dist/verify/run-verify.d.ts.map +1 -1
- package/dist/verify/run-verify.js +2 -3
- package/dist/verify/run-verify.js.map +1 -1
- package/package.json +1 -1
- package/templates/README.md +9 -1
- package/templates/webhooks-redis.ts +135 -0
- package/templates/webhooks.ts +114 -0
package/README.md
CHANGED
|
@@ -178,9 +178,11 @@ defineAgent({
|
|
|
178
178
|
|
|
179
179
|
On plans that include project Redis, the runner injects **`AGENT_REDIS_URL`** into the child environment and grants scoped `--allow-net` for that host. Add **`ioredis`** as a dependency of your agent, bundle it with the CLI, and open the client in **`onAgentStart`** so it is ready before any `onSessionStart` / session IPC.
|
|
180
180
|
|
|
181
|
+
For inbound HTTP webhooks, configure **`AGENT_WEBHOOK_SIGNING_SECRET`** in project settings. The runner forwards the exact request bytes on process-wide **`onWebhook`** IPC (not session-queued). Verify HMAC on `ctx.body` before `JSON.parse` — VoiceThere does not verify signatures in the SDK. See [`templates/webhooks.ts`](./templates/webhooks.ts).
|
|
182
|
+
|
|
181
183
|
| Export | Purpose |
|
|
182
184
|
| ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
|
|
183
|
-
| `defineAgent` | Register `onAgentStart`, `onSessionStart`, `onSpeechEvent`, `onUserSpeechFinal`, `onSessionEnd` |
|
|
185
|
+
| `defineAgent` | Register `onAgentStart`, `onWebhook`, `onSessionStart`, `onSpeechEvent`, `onUserSpeechFinal`, `onSessionEnd` |
|
|
184
186
|
| `SpeechEvent`, `SpeechEventType` | Re-exported **types** from `@node-webrtc-rust/sdk/voice` |
|
|
185
187
|
| `SPEECH_EVENT_TYPE` | Import from `@node-webrtc-rust/sdk/voice` (runtime constants; not bundled into child) |
|
|
186
188
|
| `speak` | Request parent TTS |
|
package/dist/agent.js
CHANGED
|
@@ -135,10 +135,46 @@ function isRecordingControlAckMessage(value) {
|
|
|
135
135
|
const msg = value;
|
|
136
136
|
return msg.type === "recording_control_ack" && typeof msg.requestId === "string";
|
|
137
137
|
}
|
|
138
|
+
function isWebhookMessage(value) {
|
|
139
|
+
if (!value || typeof value !== "object") return false;
|
|
140
|
+
const msg = value;
|
|
141
|
+
return msg.type === "webhook" && typeof msg.eventId === "string" && typeof msg.projectId === "string";
|
|
142
|
+
}
|
|
143
|
+
function coerceInboundBinary(value) {
|
|
144
|
+
if (!value) return null;
|
|
145
|
+
if (Buffer.isBuffer(value)) return value;
|
|
146
|
+
if (value instanceof Uint8Array) {
|
|
147
|
+
return Buffer.from(value.buffer, value.byteOffset, value.byteLength);
|
|
148
|
+
}
|
|
149
|
+
if (value instanceof ArrayBuffer) return Buffer.from(value);
|
|
150
|
+
if (ArrayBuffer.isView(value)) {
|
|
151
|
+
return Buffer.from(value.buffer, value.byteOffset, value.byteLength);
|
|
152
|
+
}
|
|
153
|
+
if (typeof value === "object") {
|
|
154
|
+
const maybeBufferLike = value;
|
|
155
|
+
if (maybeBufferLike.type === "Buffer" && Array.isArray(maybeBufferLike.data)) {
|
|
156
|
+
return Buffer.from(maybeBufferLike.data);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
function normalizeWebhookHeaders(value) {
|
|
162
|
+
if (!value || typeof value !== "object") return {};
|
|
163
|
+
const out = {};
|
|
164
|
+
for (const [key, raw] of Object.entries(value)) {
|
|
165
|
+
if (typeof raw === "string") {
|
|
166
|
+
out[key] = raw;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return out;
|
|
170
|
+
}
|
|
138
171
|
function isParentMessage(value) {
|
|
139
172
|
if (!value || typeof value !== "object") return false;
|
|
140
173
|
const msg = value;
|
|
141
|
-
return msg.type === "session_start" || msg.type === "speech_event" || msg.type === "session_end" || msg.type === "data_channel_message" || msg.type === "data_channel_binary" || msg.type === "idle_timeout" || msg.type === "recording_control_ack";
|
|
174
|
+
return msg.type === "session_start" || msg.type === "speech_event" || msg.type === "session_end" || msg.type === "data_channel_message" || msg.type === "data_channel_binary" || msg.type === "idle_timeout" || msg.type === "recording_control_ack" || msg.type === "webhook";
|
|
175
|
+
}
|
|
176
|
+
function isSessionScopedParentMessage(value) {
|
|
177
|
+
return isParentMessage(value) && !isWebhookMessage(value);
|
|
142
178
|
}
|
|
143
179
|
function parseDataChannelPayload(raw) {
|
|
144
180
|
try {
|
|
@@ -245,6 +281,48 @@ function resolveSessionStartInitDelayMs() {
|
|
|
245
281
|
DEFAULT_SESSION_START_INIT_DELAY_MS
|
|
246
282
|
);
|
|
247
283
|
}
|
|
284
|
+
async function handleWebhookMessage(message, handlers) {
|
|
285
|
+
if (!handlers.onWebhook) return;
|
|
286
|
+
const body = coerceInboundBinary(message.body);
|
|
287
|
+
if (!body) {
|
|
288
|
+
agentLog("warn", "webhook ipc dropped: body is not binary");
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
const ctx = {
|
|
292
|
+
eventId: message.eventId,
|
|
293
|
+
projectId: message.projectId,
|
|
294
|
+
method: typeof message.method === "string" ? message.method : "POST",
|
|
295
|
+
path: typeof message.path === "string" ? message.path : "",
|
|
296
|
+
headers: normalizeWebhookHeaders(message.headers),
|
|
297
|
+
body,
|
|
298
|
+
contentType: typeof message.contentType === "string" ? message.contentType : null,
|
|
299
|
+
receivedAt: typeof message.receivedAt === "string" ? message.receivedAt : ""
|
|
300
|
+
};
|
|
301
|
+
try {
|
|
302
|
+
const started = Date.now();
|
|
303
|
+
await handlers.onWebhook(ctx);
|
|
304
|
+
sendParentMessage({
|
|
305
|
+
type: "webhook_handled",
|
|
306
|
+
projectId: message.projectId,
|
|
307
|
+
eventId: message.eventId,
|
|
308
|
+
durationMs: Date.now() - started
|
|
309
|
+
});
|
|
310
|
+
} catch (error) {
|
|
311
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
312
|
+
await runErrorHook(handlers, {
|
|
313
|
+
sessionId: "",
|
|
314
|
+
projectId: message.projectId,
|
|
315
|
+
env: process.env,
|
|
316
|
+
error: err
|
|
317
|
+
});
|
|
318
|
+
sendParentMessage({
|
|
319
|
+
type: "agent_error",
|
|
320
|
+
sessionId: "",
|
|
321
|
+
message: err.message,
|
|
322
|
+
stack: err.stack
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
}
|
|
248
326
|
async function handleParentMessage(message, handlers) {
|
|
249
327
|
switch (message.type) {
|
|
250
328
|
case "session_start":
|
|
@@ -318,7 +396,11 @@ function defineAgent(handlers) {
|
|
|
318
396
|
handleRecordingControlAck(message);
|
|
319
397
|
return;
|
|
320
398
|
}
|
|
321
|
-
if (
|
|
399
|
+
if (isWebhookMessage(message)) {
|
|
400
|
+
void agentStartReady.then(() => handleWebhookMessage(message, handlers));
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
if (!isSessionScopedParentMessage(message)) return;
|
|
322
404
|
if (message.type === "session_end") {
|
|
323
405
|
endedSessionIds.add(message.sessionId);
|
|
324
406
|
clearPendingRecordingAcksForSession(message.sessionId, "session_ended");
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export type { SpeechEvent, SpeechEventListener, SpeechEventName, SpeechEventType, } from "@node-webrtc-rust/sdk/voice";
|
|
2
|
-
export { ALLOWED_CHILD_ENV_KEYS, type AgentErrorMessage, type AgentLogLevel, type AgentLogMessage, type AllowedChildEnvKey, type ChildToParentMessage, type ParentToChildMessage, type SessionEndMessage, type SessionStartMessage, type SendToClientMessage, type DataChannelMessageMessage, type DataChannelBinaryMessage, type DataChannelKind, type DisconnectClientMessage, type IdleTimeoutDoneMessage, type IdleTimeoutMessage, type RecordingControlMessage, type RecordingControlAckMessage, type RecordingControlAction, type RecordingControlResult, type SendBinaryToClientMessage, type SpeakMessage, type SpeechEventMessage, } from "./protocol.js";
|
|
3
|
-
export { agentLog, defineAgent, disconnectClient, parseChatText, pauseRecording, resumeRecording, sendToClient, sendBinaryToClient, speak, startRecording, stopRecording, isRecordingAvailable, broadcastToClients, type AgentHandlers, type AgentErrorContext, type AgentStartContext, type DataChannelContext, type IdleTimeoutContext, type SessionContext, type SpeechContext, type SpeechEventContext, } from "./runtime.js";
|
|
2
|
+
export { ALLOWED_CHILD_ENV_KEYS, type AgentErrorMessage, type AgentLogLevel, type AgentLogMessage, type AllowedChildEnvKey, type ChildToParentMessage, type ParentToChildMessage, type SessionEndMessage, type SessionStartMessage, type SendToClientMessage, type DataChannelMessageMessage, type DataChannelBinaryMessage, type DataChannelKind, type DisconnectClientMessage, type IdleTimeoutDoneMessage, type IdleTimeoutMessage, type RecordingControlMessage, type RecordingControlAckMessage, type RecordingControlAction, type RecordingControlResult, type SendBinaryToClientMessage, type SpeakMessage, type SpeechEventMessage, type WebhookMessage, } from "./protocol.js";
|
|
3
|
+
export { agentLog, defineAgent, disconnectClient, parseChatText, pauseRecording, resumeRecording, sendToClient, sendBinaryToClient, speak, startRecording, stopRecording, isRecordingAvailable, broadcastToClients, type AgentHandlers, type AgentErrorContext, type AgentStartContext, type DataChannelContext, type IdleTimeoutContext, type SessionContext, type SpeechContext, type SpeechEventContext, type WebhookContext, } from "./runtime.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,eAAe,GAChB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EACjB,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,eAAe,GAChB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,KAAK,EACL,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,sBAAsB,GAwBvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,KAAK,EACL,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,kBAAkB,GAUnB,MAAM,cAAc,CAAC"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -16,13 +16,13 @@ export type { SpeechEvent } from "@node-webrtc-rust/sdk/voice";
|
|
|
16
16
|
* Register handlers via {@link defineAgent} in `@voicethere/agent` — do not read
|
|
17
17
|
* `process.on('message')` directly in customer bundles.
|
|
18
18
|
*/
|
|
19
|
-
export type ParentToChildMessage = SessionStartMessage | SpeechEventMessage | SessionEndMessage | DataChannelMessageMessage | DataChannelBinaryMessage | IdleTimeoutMessage | RecordingControlAckMessage;
|
|
19
|
+
export type ParentToChildMessage = SessionStartMessage | SpeechEventMessage | SessionEndMessage | DataChannelMessageMessage | DataChannelBinaryMessage | IdleTimeoutMessage | RecordingControlAckMessage | WebhookMessage;
|
|
20
20
|
/**
|
|
21
21
|
* Messages the customer child may send back to the runner parent.
|
|
22
22
|
*
|
|
23
23
|
* Prefer {@link speak}, {@link startRecording}, {@link sendToClient}, {@link sendBinaryToClient}, and {@link agentLog} helpers over raw `process.send`.
|
|
24
24
|
*/
|
|
25
|
-
export type ChildToParentMessage = SessionStartAckMessage | SpeakMessage | RecordingControlMessage | AgentLogMessage | AgentErrorMessage | SendToClientMessage | SendBinaryToClientMessage | IdleTimeoutDoneMessage | DisconnectClientMessage;
|
|
25
|
+
export type ChildToParentMessage = SessionStartAckMessage | SpeakMessage | RecordingControlMessage | AgentLogMessage | AgentErrorMessage | SendToClientMessage | SendBinaryToClientMessage | IdleTimeoutDoneMessage | DisconnectClientMessage | WebhookHandledMessage;
|
|
26
26
|
/** Which WebRTC data channel carried a binary IPC payload. */
|
|
27
27
|
export type DataChannelKind = "control" | "sync";
|
|
28
28
|
/**
|
|
@@ -192,6 +192,34 @@ export interface SendBinaryToClientMessage {
|
|
|
192
192
|
data: Buffer;
|
|
193
193
|
channel?: DataChannelKind;
|
|
194
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Inbound HTTP webhook forwarded from the edge — process-wide, not tied to a session.
|
|
197
|
+
*
|
|
198
|
+
* Delivered to {@link AgentHandlers.onWebhook} on every child in the runner process
|
|
199
|
+
* (not session-queued). {@link WebhookMessage.body} is the exact inbound bytes — verify
|
|
200
|
+
* HMAC/signatures on `body` before `JSON.parse` in customer code.
|
|
201
|
+
*/
|
|
202
|
+
export interface WebhookMessage {
|
|
203
|
+
type: "webhook";
|
|
204
|
+
/** Edge-generated id for idempotency. */
|
|
205
|
+
eventId: string;
|
|
206
|
+
projectId: string;
|
|
207
|
+
method: string;
|
|
208
|
+
path: string;
|
|
209
|
+
/** All inbound request headers (string values). */
|
|
210
|
+
headers: Record<string, string>;
|
|
211
|
+
/** Exact inbound body bytes — do not parse in the SDK before the customer handler. */
|
|
212
|
+
body: Buffer;
|
|
213
|
+
contentType: string | null;
|
|
214
|
+
receivedAt: string;
|
|
215
|
+
}
|
|
216
|
+
/** Child reports onWebhook completion latency (process-wide, not session-scoped). */
|
|
217
|
+
export interface WebhookHandledMessage {
|
|
218
|
+
type: "webhook_handled";
|
|
219
|
+
projectId: string;
|
|
220
|
+
eventId: string;
|
|
221
|
+
durationMs: number;
|
|
222
|
+
}
|
|
195
223
|
/**
|
|
196
224
|
* Idle timeout fired — run {@link AgentHandlers.onIdleTimeout} before disconnect.
|
|
197
225
|
*/
|
|
@@ -224,8 +252,9 @@ export interface DisconnectClientMessage {
|
|
|
224
252
|
* The runner may add more project-specific keys over time; customer bundles must
|
|
225
253
|
* not read `process.env` for session fields — only the `env` object on session start.
|
|
226
254
|
*
|
|
227
|
-
* Process-wide secrets such as `AGENT_REDIS_URL` (when project Redis is enabled)
|
|
228
|
-
*
|
|
255
|
+
* Process-wide secrets such as `AGENT_REDIS_URL` (when project Redis is enabled) and
|
|
256
|
+
* `AGENT_WEBHOOK_SIGNING_SECRET` (for inbound webhook HMAC verification) are still
|
|
257
|
+
* available on `process.env` inside `onAgentStart` / `onWebhook`.
|
|
229
258
|
* Keys prefixed with `AGENT_` may also be forwarded into the child environment.
|
|
230
259
|
*/
|
|
231
260
|
export declare const ALLOWED_CHILD_ENV_KEYS: readonly ["SESSION_ID", "PROJECT_ID", "BUILD_ID", "IDLE_TIMEOUT_SEC", "AGENT_CUSTOMER_CONTEXT"];
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAC5B,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,yBAAyB,GACzB,wBAAwB,GACxB,kBAAkB,GAClB,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.js
CHANGED
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
* The runner may add more project-specific keys over time; customer bundles must
|
|
15
15
|
* not read `process.env` for session fields — only the `env` object on session start.
|
|
16
16
|
*
|
|
17
|
-
* Process-wide secrets such as `AGENT_REDIS_URL` (when project Redis is enabled)
|
|
18
|
-
*
|
|
17
|
+
* Process-wide secrets such as `AGENT_REDIS_URL` (when project Redis is enabled) and
|
|
18
|
+
* `AGENT_WEBHOOK_SIGNING_SECRET` (for inbound webhook HMAC verification) are still
|
|
19
|
+
* available on `process.env` inside `onAgentStart` / `onWebhook`.
|
|
19
20
|
* Keys prefixed with `AGENT_` may also be forwarded into the child environment.
|
|
20
21
|
*/
|
|
21
22
|
export const ALLOWED_CHILD_ENV_KEYS = [
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkSH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,kBAAkB;IAClB,wEAAwE;IACxE,wBAAwB;CAChB,CAAC"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -28,6 +28,18 @@ export interface AgentStartContext {
|
|
|
28
28
|
/** Snapshot of `process.env` at child start (includes `AGENT_REDIS_URL` when set). */
|
|
29
29
|
env: Record<string, string>;
|
|
30
30
|
}
|
|
31
|
+
/** Context for process-wide inbound webhook IPC (`type: "webhook"`). */
|
|
32
|
+
export interface WebhookContext {
|
|
33
|
+
eventId: string;
|
|
34
|
+
projectId: string;
|
|
35
|
+
method: string;
|
|
36
|
+
path: string;
|
|
37
|
+
headers: Record<string, string>;
|
|
38
|
+
/** Exact inbound bytes — verify HMAC on this, then `JSON.parse`. */
|
|
39
|
+
body: Buffer;
|
|
40
|
+
contentType: string | null;
|
|
41
|
+
receivedAt: string;
|
|
42
|
+
}
|
|
31
43
|
export interface AgentHandlers {
|
|
32
44
|
/**
|
|
33
45
|
* Runs once when the child registers handlers — before any session IPC is handled.
|
|
@@ -35,6 +47,12 @@ export interface AgentHandlers {
|
|
|
35
47
|
* Errors are logged and reported; session IPC is still accepted afterward so the child does not hang.
|
|
36
48
|
*/
|
|
37
49
|
onAgentStart?: (ctx: AgentStartContext) => void | Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Process-wide inbound HTTP webhook from the edge (not session-queued).
|
|
52
|
+
* VoiceThere does not verify signatures — use `AGENT_WEBHOOK_SIGNING_SECRET` in
|
|
53
|
+
* `process.env` and verify HMAC on {@link WebhookContext.body} before parsing JSON.
|
|
54
|
+
*/
|
|
55
|
+
onWebhook?: (ctx: WebhookContext) => void | Promise<void>;
|
|
38
56
|
/** Alias for {@link AgentHandlers.onSessionStart}. */
|
|
39
57
|
onClientJoin?: (ctx: SessionContext) => void | Promise<void>;
|
|
40
58
|
onSessionStart?: (ctx: SessionContext) => void | Promise<void>;
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG/D,OAAO,KAAK,EACV,aAAa,EAEb,eAAe,EAIf,sBAAsB,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.js
CHANGED
|
@@ -10,6 +10,46 @@ function isRecordingControlAckMessage(value) {
|
|
|
10
10
|
const msg = value;
|
|
11
11
|
return (msg.type === "recording_control_ack" && typeof msg.requestId === "string");
|
|
12
12
|
}
|
|
13
|
+
function isWebhookMessage(value) {
|
|
14
|
+
if (!value || typeof value !== "object")
|
|
15
|
+
return false;
|
|
16
|
+
const msg = value;
|
|
17
|
+
return (msg.type === "webhook" &&
|
|
18
|
+
typeof msg.eventId === "string" &&
|
|
19
|
+
typeof msg.projectId === "string");
|
|
20
|
+
}
|
|
21
|
+
function coerceInboundBinary(value) {
|
|
22
|
+
if (!value)
|
|
23
|
+
return null;
|
|
24
|
+
if (Buffer.isBuffer(value))
|
|
25
|
+
return value;
|
|
26
|
+
if (value instanceof Uint8Array) {
|
|
27
|
+
return Buffer.from(value.buffer, value.byteOffset, value.byteLength);
|
|
28
|
+
}
|
|
29
|
+
if (value instanceof ArrayBuffer)
|
|
30
|
+
return Buffer.from(value);
|
|
31
|
+
if (ArrayBuffer.isView(value)) {
|
|
32
|
+
return Buffer.from(value.buffer, value.byteOffset, value.byteLength);
|
|
33
|
+
}
|
|
34
|
+
if (typeof value === "object") {
|
|
35
|
+
const maybeBufferLike = value;
|
|
36
|
+
if (maybeBufferLike.type === "Buffer" && Array.isArray(maybeBufferLike.data)) {
|
|
37
|
+
return Buffer.from(maybeBufferLike.data);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
function normalizeWebhookHeaders(value) {
|
|
43
|
+
if (!value || typeof value !== "object")
|
|
44
|
+
return {};
|
|
45
|
+
const out = {};
|
|
46
|
+
for (const [key, raw] of Object.entries(value)) {
|
|
47
|
+
if (typeof raw === "string") {
|
|
48
|
+
out[key] = raw;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return out;
|
|
52
|
+
}
|
|
13
53
|
function isParentMessage(value) {
|
|
14
54
|
if (!value || typeof value !== "object")
|
|
15
55
|
return false;
|
|
@@ -20,7 +60,11 @@ function isParentMessage(value) {
|
|
|
20
60
|
msg.type === "data_channel_message" ||
|
|
21
61
|
msg.type === "data_channel_binary" ||
|
|
22
62
|
msg.type === "idle_timeout" ||
|
|
23
|
-
msg.type === "recording_control_ack"
|
|
63
|
+
msg.type === "recording_control_ack" ||
|
|
64
|
+
msg.type === "webhook");
|
|
65
|
+
}
|
|
66
|
+
function isSessionScopedParentMessage(value) {
|
|
67
|
+
return isParentMessage(value) && !isWebhookMessage(value);
|
|
24
68
|
}
|
|
25
69
|
function parseDataChannelPayload(raw) {
|
|
26
70
|
try {
|
|
@@ -170,6 +214,50 @@ function resolveSessionStartInitDelayMs() {
|
|
|
170
214
|
return 0;
|
|
171
215
|
return parseNonNegativeIntegerEnv(process.env[SESSION_START_INIT_DELAY_MS_ENV], DEFAULT_SESSION_START_INIT_DELAY_MS);
|
|
172
216
|
}
|
|
217
|
+
async function handleWebhookMessage(message, handlers) {
|
|
218
|
+
if (!handlers.onWebhook)
|
|
219
|
+
return;
|
|
220
|
+
const body = coerceInboundBinary(message.body);
|
|
221
|
+
if (!body) {
|
|
222
|
+
agentLog("warn", "webhook ipc dropped: body is not binary");
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
const ctx = {
|
|
226
|
+
eventId: message.eventId,
|
|
227
|
+
projectId: message.projectId,
|
|
228
|
+
method: typeof message.method === "string" ? message.method : "POST",
|
|
229
|
+
path: typeof message.path === "string" ? message.path : "",
|
|
230
|
+
headers: normalizeWebhookHeaders(message.headers),
|
|
231
|
+
body,
|
|
232
|
+
contentType: typeof message.contentType === "string" ? message.contentType : null,
|
|
233
|
+
receivedAt: typeof message.receivedAt === "string" ? message.receivedAt : "",
|
|
234
|
+
};
|
|
235
|
+
try {
|
|
236
|
+
const started = Date.now();
|
|
237
|
+
await handlers.onWebhook(ctx);
|
|
238
|
+
sendParentMessage({
|
|
239
|
+
type: "webhook_handled",
|
|
240
|
+
projectId: message.projectId,
|
|
241
|
+
eventId: message.eventId,
|
|
242
|
+
durationMs: Date.now() - started,
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
247
|
+
await runErrorHook(handlers, {
|
|
248
|
+
sessionId: "",
|
|
249
|
+
projectId: message.projectId,
|
|
250
|
+
env: process.env,
|
|
251
|
+
error: err,
|
|
252
|
+
});
|
|
253
|
+
sendParentMessage({
|
|
254
|
+
type: "agent_error",
|
|
255
|
+
sessionId: "",
|
|
256
|
+
message: err.message,
|
|
257
|
+
stack: err.stack,
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
}
|
|
173
261
|
async function handleParentMessage(message, handlers) {
|
|
174
262
|
switch (message.type) {
|
|
175
263
|
case "session_start":
|
|
@@ -250,7 +338,11 @@ export function defineAgent(handlers) {
|
|
|
250
338
|
handleRecordingControlAck(message);
|
|
251
339
|
return;
|
|
252
340
|
}
|
|
253
|
-
if (
|
|
341
|
+
if (isWebhookMessage(message)) {
|
|
342
|
+
void agentStartReady.then(() => handleWebhookMessage(message, handlers));
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
if (!isSessionScopedParentMessage(message))
|
|
254
346
|
return;
|
|
255
347
|
// Invalidate immediately on arrival — do not wait behind queued work that
|
|
256
348
|
// must be cancelled. session_end then enqueues on a fresh generation for
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -136,11 +136,52 @@ function isRecordingControlAckMessage(value) {
|
|
|
136
136
|
const msg = value;
|
|
137
137
|
return msg.type === "recording_control_ack" && typeof msg.requestId === "string";
|
|
138
138
|
}
|
|
139
|
+
function isWebhookMessage(value) {
|
|
140
|
+
if (!value || typeof value !== "object")
|
|
141
|
+
return false;
|
|
142
|
+
const msg = value;
|
|
143
|
+
return msg.type === "webhook" && typeof msg.eventId === "string" && typeof msg.projectId === "string";
|
|
144
|
+
}
|
|
145
|
+
function coerceInboundBinary(value) {
|
|
146
|
+
if (!value)
|
|
147
|
+
return null;
|
|
148
|
+
if (Buffer.isBuffer(value))
|
|
149
|
+
return value;
|
|
150
|
+
if (value instanceof Uint8Array) {
|
|
151
|
+
return Buffer.from(value.buffer, value.byteOffset, value.byteLength);
|
|
152
|
+
}
|
|
153
|
+
if (value instanceof ArrayBuffer)
|
|
154
|
+
return Buffer.from(value);
|
|
155
|
+
if (ArrayBuffer.isView(value)) {
|
|
156
|
+
return Buffer.from(value.buffer, value.byteOffset, value.byteLength);
|
|
157
|
+
}
|
|
158
|
+
if (typeof value === "object") {
|
|
159
|
+
const maybeBufferLike = value;
|
|
160
|
+
if (maybeBufferLike.type === "Buffer" && Array.isArray(maybeBufferLike.data)) {
|
|
161
|
+
return Buffer.from(maybeBufferLike.data);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
function normalizeWebhookHeaders(value) {
|
|
167
|
+
if (!value || typeof value !== "object")
|
|
168
|
+
return {};
|
|
169
|
+
const out = {};
|
|
170
|
+
for (const [key, raw] of Object.entries(value)) {
|
|
171
|
+
if (typeof raw === "string") {
|
|
172
|
+
out[key] = raw;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return out;
|
|
176
|
+
}
|
|
139
177
|
function isParentMessage(value) {
|
|
140
178
|
if (!value || typeof value !== "object")
|
|
141
179
|
return false;
|
|
142
180
|
const msg = value;
|
|
143
|
-
return msg.type === "session_start" || msg.type === "speech_event" || msg.type === "session_end" || msg.type === "data_channel_message" || msg.type === "data_channel_binary" || msg.type === "idle_timeout" || msg.type === "recording_control_ack";
|
|
181
|
+
return msg.type === "session_start" || msg.type === "speech_event" || msg.type === "session_end" || msg.type === "data_channel_message" || msg.type === "data_channel_binary" || msg.type === "idle_timeout" || msg.type === "recording_control_ack" || msg.type === "webhook";
|
|
182
|
+
}
|
|
183
|
+
function isSessionScopedParentMessage(value) {
|
|
184
|
+
return isParentMessage(value) && !isWebhookMessage(value);
|
|
144
185
|
}
|
|
145
186
|
function parseDataChannelPayload(raw) {
|
|
146
187
|
try {
|
|
@@ -250,6 +291,49 @@ function resolveSessionStartInitDelayMs() {
|
|
|
250
291
|
return 0;
|
|
251
292
|
return parseNonNegativeIntegerEnv(process.env[SESSION_START_INIT_DELAY_MS_ENV], DEFAULT_SESSION_START_INIT_DELAY_MS);
|
|
252
293
|
}
|
|
294
|
+
async function handleWebhookMessage(message, handlers) {
|
|
295
|
+
if (!handlers.onWebhook)
|
|
296
|
+
return;
|
|
297
|
+
const body = coerceInboundBinary(message.body);
|
|
298
|
+
if (!body) {
|
|
299
|
+
agentLog("warn", "webhook ipc dropped: body is not binary");
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
const ctx = {
|
|
303
|
+
eventId: message.eventId,
|
|
304
|
+
projectId: message.projectId,
|
|
305
|
+
method: typeof message.method === "string" ? message.method : "POST",
|
|
306
|
+
path: typeof message.path === "string" ? message.path : "",
|
|
307
|
+
headers: normalizeWebhookHeaders(message.headers),
|
|
308
|
+
body,
|
|
309
|
+
contentType: typeof message.contentType === "string" ? message.contentType : null,
|
|
310
|
+
receivedAt: typeof message.receivedAt === "string" ? message.receivedAt : ""
|
|
311
|
+
};
|
|
312
|
+
try {
|
|
313
|
+
const started = Date.now();
|
|
314
|
+
await handlers.onWebhook(ctx);
|
|
315
|
+
sendParentMessage({
|
|
316
|
+
type: "webhook_handled",
|
|
317
|
+
projectId: message.projectId,
|
|
318
|
+
eventId: message.eventId,
|
|
319
|
+
durationMs: Date.now() - started
|
|
320
|
+
});
|
|
321
|
+
} catch (error) {
|
|
322
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
323
|
+
await runErrorHook(handlers, {
|
|
324
|
+
sessionId: "",
|
|
325
|
+
projectId: message.projectId,
|
|
326
|
+
env: process.env,
|
|
327
|
+
error: err
|
|
328
|
+
});
|
|
329
|
+
sendParentMessage({
|
|
330
|
+
type: "agent_error",
|
|
331
|
+
sessionId: "",
|
|
332
|
+
message: err.message,
|
|
333
|
+
stack: err.stack
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
}
|
|
253
337
|
async function handleParentMessage(message, handlers) {
|
|
254
338
|
switch (message.type) {
|
|
255
339
|
case "session_start":
|
|
@@ -318,7 +402,11 @@ function defineAgent(handlers) {
|
|
|
318
402
|
handleRecordingControlAck(message);
|
|
319
403
|
return;
|
|
320
404
|
}
|
|
321
|
-
if (
|
|
405
|
+
if (isWebhookMessage(message)) {
|
|
406
|
+
void agentStartReady.then(() => handleWebhookMessage(message, handlers));
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
409
|
+
if (!isSessionScopedParentMessage(message))
|
|
322
410
|
return;
|
|
323
411
|
if (message.type === "session_end") {
|
|
324
412
|
endedSessionIds.add(message.sessionId);
|