@komaa/standin-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +141 -0
- package/dist/ambient.d.ts +80 -0
- package/dist/ambient.d.ts.map +1 -0
- package/dist/ambient.js +281 -0
- package/dist/ambient.js.map +1 -0
- package/dist/attachments.d.ts +149 -0
- package/dist/attachments.d.ts.map +1 -0
- package/dist/attachments.js +451 -0
- package/dist/attachments.js.map +1 -0
- package/dist/audio.d.ts +80 -0
- package/dist/audio.d.ts.map +1 -0
- package/dist/audio.js +170 -0
- package/dist/audio.js.map +1 -0
- package/dist/avatar.d.ts +111 -0
- package/dist/avatar.d.ts.map +1 -0
- package/dist/avatar.js +201 -0
- package/dist/avatar.js.map +1 -0
- package/dist/callServer.d.ts +151 -0
- package/dist/callServer.d.ts.map +1 -0
- package/dist/callServer.js +1097 -0
- package/dist/callServer.js.map +1 -0
- package/dist/callTools.d.ts +154 -0
- package/dist/callTools.d.ts.map +1 -0
- package/dist/callTools.js +255 -0
- package/dist/callTools.js.map +1 -0
- package/dist/chat.d.ts +226 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +574 -0
- package/dist/chat.js.map +1 -0
- package/dist/config.d.ts +32 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +86 -0
- package/dist/config.js.map +1 -0
- package/dist/consult.d.ts +147 -0
- package/dist/consult.d.ts.map +1 -0
- package/dist/consult.js +388 -0
- package/dist/consult.js.map +1 -0
- package/dist/delivery.d.ts +81 -0
- package/dist/delivery.d.ts.map +1 -0
- package/dist/delivery.js +187 -0
- package/dist/delivery.js.map +1 -0
- package/dist/echoGuard.d.ts +56 -0
- package/dist/echoGuard.d.ts.map +1 -0
- package/dist/echoGuard.js +57 -0
- package/dist/echoGuard.js.map +1 -0
- package/dist/errors.d.ts +5 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +10 -0
- package/dist/errors.js.map +1 -0
- package/dist/fetch.d.ts +40 -0
- package/dist/fetch.d.ts.map +1 -0
- package/dist/fetch.js +240 -0
- package/dist/fetch.js.map +1 -0
- package/dist/gate.d.ts +80 -0
- package/dist/gate.d.ts.map +1 -0
- package/dist/gate.js +249 -0
- package/dist/gate.js.map +1 -0
- package/dist/handler.d.ts +283 -0
- package/dist/handler.d.ts.map +1 -0
- package/dist/handler.js +4 -0
- package/dist/handler.js.map +1 -0
- package/dist/hmac.d.ts +32 -0
- package/dist/hmac.d.ts.map +1 -0
- package/dist/hmac.js +108 -0
- package/dist/hmac.js.map +1 -0
- package/dist/index.d.ts +59 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +60 -0
- package/dist/index.js.map +1 -0
- package/dist/lane.d.ts +92 -0
- package/dist/lane.d.ts.map +1 -0
- package/dist/lane.js +269 -0
- package/dist/lane.js.map +1 -0
- package/dist/lipsync.d.ts +136 -0
- package/dist/lipsync.d.ts.map +1 -0
- package/dist/lipsync.js +310 -0
- package/dist/lipsync.js.map +1 -0
- package/dist/log.d.ts +18 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +20 -0
- package/dist/log.js.map +1 -0
- package/dist/media.d.ts +43 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +190 -0
- package/dist/media.js.map +1 -0
- package/dist/minutes.d.ts +398 -0
- package/dist/minutes.d.ts.map +1 -0
- package/dist/minutes.js +805 -0
- package/dist/minutes.js.map +1 -0
- package/dist/outbound.d.ts +388 -0
- package/dist/outbound.d.ts.map +1 -0
- package/dist/outbound.js +933 -0
- package/dist/outbound.js.map +1 -0
- package/dist/plugins/cartesia/agent.d.ts +58 -0
- package/dist/plugins/cartesia/agent.d.ts.map +1 -0
- package/dist/plugins/cartesia/agent.js +254 -0
- package/dist/plugins/cartesia/agent.js.map +1 -0
- package/dist/plugins/cartesia/cli.d.ts +3 -0
- package/dist/plugins/cartesia/cli.d.ts.map +1 -0
- package/dist/plugins/cartesia/cli.js +10 -0
- package/dist/plugins/cartesia/cli.js.map +1 -0
- package/dist/plugins/cartesia/config.d.ts +30 -0
- package/dist/plugins/cartesia/config.d.ts.map +1 -0
- package/dist/plugins/cartesia/config.js +29 -0
- package/dist/plugins/cartesia/config.js.map +1 -0
- package/dist/plugins/cartesia/handler.d.ts +40 -0
- package/dist/plugins/cartesia/handler.d.ts.map +1 -0
- package/dist/plugins/cartesia/handler.js +142 -0
- package/dist/plugins/cartesia/handler.js.map +1 -0
- package/dist/plugins/cartesia/index.d.ts +6 -0
- package/dist/plugins/cartesia/index.d.ts.map +1 -0
- package/dist/plugins/cartesia/index.js +54 -0
- package/dist/plugins/cartesia/index.js.map +1 -0
- package/dist/plugins/deepgram/agent.d.ts +60 -0
- package/dist/plugins/deepgram/agent.d.ts.map +1 -0
- package/dist/plugins/deepgram/agent.js +302 -0
- package/dist/plugins/deepgram/agent.js.map +1 -0
- package/dist/plugins/deepgram/cli.d.ts +3 -0
- package/dist/plugins/deepgram/cli.d.ts.map +1 -0
- package/dist/plugins/deepgram/cli.js +10 -0
- package/dist/plugins/deepgram/cli.js.map +1 -0
- package/dist/plugins/deepgram/config.d.ts +39 -0
- package/dist/plugins/deepgram/config.d.ts.map +1 -0
- package/dist/plugins/deepgram/config.js +66 -0
- package/dist/plugins/deepgram/config.js.map +1 -0
- package/dist/plugins/deepgram/handler.d.ts +87 -0
- package/dist/plugins/deepgram/handler.d.ts.map +1 -0
- package/dist/plugins/deepgram/handler.js +268 -0
- package/dist/plugins/deepgram/handler.js.map +1 -0
- package/dist/plugins/deepgram/index.d.ts +11 -0
- package/dist/plugins/deepgram/index.d.ts.map +1 -0
- package/dist/plugins/deepgram/index.js +76 -0
- package/dist/plugins/deepgram/index.js.map +1 -0
- package/dist/plugins/echo/cli.d.ts +3 -0
- package/dist/plugins/echo/cli.d.ts.map +1 -0
- package/dist/plugins/echo/cli.js +10 -0
- package/dist/plugins/echo/cli.js.map +1 -0
- package/dist/plugins/echo/index.d.ts +37 -0
- package/dist/plugins/echo/index.d.ts.map +1 -0
- package/dist/plugins/echo/index.js +61 -0
- package/dist/plugins/echo/index.js.map +1 -0
- package/dist/plugins/elevenlabs/agent.d.ts +72 -0
- package/dist/plugins/elevenlabs/agent.d.ts.map +1 -0
- package/dist/plugins/elevenlabs/agent.js +305 -0
- package/dist/plugins/elevenlabs/agent.js.map +1 -0
- package/dist/plugins/elevenlabs/cli.d.ts +3 -0
- package/dist/plugins/elevenlabs/cli.d.ts.map +1 -0
- package/dist/plugins/elevenlabs/cli.js +10 -0
- package/dist/plugins/elevenlabs/cli.js.map +1 -0
- package/dist/plugins/elevenlabs/config.d.ts +27 -0
- package/dist/plugins/elevenlabs/config.d.ts.map +1 -0
- package/dist/plugins/elevenlabs/config.js +42 -0
- package/dist/plugins/elevenlabs/config.js.map +1 -0
- package/dist/plugins/elevenlabs/handler.d.ts +67 -0
- package/dist/plugins/elevenlabs/handler.d.ts.map +1 -0
- package/dist/plugins/elevenlabs/handler.js +419 -0
- package/dist/plugins/elevenlabs/handler.js.map +1 -0
- package/dist/plugins/elevenlabs/index.d.ts +11 -0
- package/dist/plugins/elevenlabs/index.d.ts.map +1 -0
- package/dist/plugins/elevenlabs/index.js +72 -0
- package/dist/plugins/elevenlabs/index.js.map +1 -0
- package/dist/plugins/livekit/cli.d.ts +3 -0
- package/dist/plugins/livekit/cli.d.ts.map +1 -0
- package/dist/plugins/livekit/cli.js +10 -0
- package/dist/plugins/livekit/cli.js.map +1 -0
- package/dist/plugins/livekit/config.d.ts +47 -0
- package/dist/plugins/livekit/config.d.ts.map +1 -0
- package/dist/plugins/livekit/config.js +46 -0
- package/dist/plugins/livekit/config.js.map +1 -0
- package/dist/plugins/livekit/handler.d.ts +59 -0
- package/dist/plugins/livekit/handler.d.ts.map +1 -0
- package/dist/plugins/livekit/handler.js +211 -0
- package/dist/plugins/livekit/handler.js.map +1 -0
- package/dist/plugins/livekit/index.d.ts +6 -0
- package/dist/plugins/livekit/index.d.ts.map +1 -0
- package/dist/plugins/livekit/index.js +68 -0
- package/dist/plugins/livekit/index.js.map +1 -0
- package/dist/plugins/livekit/room.d.ts +117 -0
- package/dist/plugins/livekit/room.d.ts.map +1 -0
- package/dist/plugins/livekit/room.js +449 -0
- package/dist/plugins/livekit/room.js.map +1 -0
- package/dist/plugins/openai/agent.d.ts +74 -0
- package/dist/plugins/openai/agent.d.ts.map +1 -0
- package/dist/plugins/openai/agent.js +264 -0
- package/dist/plugins/openai/agent.js.map +1 -0
- package/dist/plugins/openai/cli.d.ts +3 -0
- package/dist/plugins/openai/cli.d.ts.map +1 -0
- package/dist/plugins/openai/cli.js +10 -0
- package/dist/plugins/openai/cli.js.map +1 -0
- package/dist/plugins/openai/config.d.ts +29 -0
- package/dist/plugins/openai/config.d.ts.map +1 -0
- package/dist/plugins/openai/config.js +37 -0
- package/dist/plugins/openai/config.js.map +1 -0
- package/dist/plugins/openai/handler.d.ts +65 -0
- package/dist/plugins/openai/handler.d.ts.map +1 -0
- package/dist/plugins/openai/handler.js +297 -0
- package/dist/plugins/openai/handler.js.map +1 -0
- package/dist/plugins/openai/index.d.ts +6 -0
- package/dist/plugins/openai/index.d.ts.map +1 -0
- package/dist/plugins/openai/index.js +72 -0
- package/dist/plugins/openai/index.js.map +1 -0
- package/dist/plugins/openclaw/allowlist.d.ts +9 -0
- package/dist/plugins/openclaw/allowlist.d.ts.map +1 -0
- package/dist/plugins/openclaw/allowlist.js +11 -0
- package/dist/plugins/openclaw/allowlist.js.map +1 -0
- package/dist/plugins/openclaw/config.d.ts +50 -0
- package/dist/plugins/openclaw/config.d.ts.map +1 -0
- package/dist/plugins/openclaw/config.js +53 -0
- package/dist/plugins/openclaw/config.js.map +1 -0
- package/dist/plugins/openclaw/handler.d.ts +90 -0
- package/dist/plugins/openclaw/handler.d.ts.map +1 -0
- package/dist/plugins/openclaw/handler.js +146 -0
- package/dist/plugins/openclaw/handler.js.map +1 -0
- package/dist/plugins/openclaw/index.d.ts +55 -0
- package/dist/plugins/openclaw/index.d.ts.map +1 -0
- package/dist/plugins/openclaw/index.js +89 -0
- package/dist/plugins/openclaw/index.js.map +1 -0
- package/dist/plugins/openclaw/openclaw.plugin.json +74 -0
- package/dist/plugins/openclaw/package.json +14 -0
- package/dist/plugins/openclaw/realtime.d.ts +82 -0
- package/dist/plugins/openclaw/realtime.d.ts.map +1 -0
- package/dist/plugins/openclaw/realtime.js +238 -0
- package/dist/plugins/openclaw/realtime.js.map +1 -0
- package/dist/plugins/openclaw/runtime.d.ts +19 -0
- package/dist/plugins/openclaw/runtime.d.ts.map +1 -0
- package/dist/plugins/openclaw/runtime.js +160 -0
- package/dist/plugins/openclaw/runtime.js.map +1 -0
- package/dist/policy.d.ts +38 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +95 -0
- package/dist/policy.js.map +1 -0
- package/dist/protocol.d.ts +44 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +77 -0
- package/dist/protocol.js.map +1 -0
- package/dist/protocolRuntime.d.ts +19 -0
- package/dist/protocolRuntime.d.ts.map +1 -0
- package/dist/protocolRuntime.js +78 -0
- package/dist/protocolRuntime.js.map +1 -0
- package/dist/smoke.d.ts +65 -0
- package/dist/smoke.d.ts.map +1 -0
- package/dist/smoke.js +293 -0
- package/dist/smoke.js.map +1 -0
- package/dist/startup.d.ts +74 -0
- package/dist/startup.d.ts.map +1 -0
- package/dist/startup.js +112 -0
- package/dist/startup.js.map +1 -0
- package/dist/tile.d.ts +101 -0
- package/dist/tile.d.ts.map +1 -0
- package/dist/tile.js +195 -0
- package/dist/tile.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +4 -0
- package/dist/version.js.map +1 -0
- package/dist/vision.d.ts +160 -0
- package/dist/vision.d.ts.map +1 -0
- package/dist/vision.js +301 -0
- package/dist/vision.js.map +1 -0
- package/dist/visionTools.d.ts +237 -0
- package/dist/visionTools.d.ts.map +1 -0
- package/dist/visionTools.js +578 -0
- package/dist/visionTools.js.map +1 -0
- package/dist/voice.d.ts +143 -0
- package/dist/voice.d.ts.map +1 -0
- package/dist/voice.js +403 -0
- package/dist/voice.js.map +1 -0
- package/package.json +129 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callServer.js","sourceRoot":"","sources":["../src/callServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The things an agent can do about the call it is on.
|
|
3
|
+
*
|
|
4
|
+
* A voice model can talk. What it cannot do, unless you tell it, is hang up, put
|
|
5
|
+
* a picture on its own video tile, react with an expression, or look at what the
|
|
6
|
+
* caller is showing. Those are properties of being on a Microsoft Teams call,
|
|
7
|
+
* not of any provider, so they live here and every plugin gets the same set.
|
|
8
|
+
*
|
|
9
|
+
* Two halves, and the split matters:
|
|
10
|
+
*
|
|
11
|
+
* {@link CallTools.schemas} declares the tools, in the shape your provider
|
|
12
|
+
* wants. Every provider invented its own JSON for "here is a function you may
|
|
13
|
+
* call", so the same five capabilities were being written out four times with
|
|
14
|
+
* four sets of wording. One description, rendered per dialect, means a caller
|
|
15
|
+
* gets the same behaviour whichever provider answers.
|
|
16
|
+
*
|
|
17
|
+
* {@link CallTools.dispatch} runs one, and **never throws**. It returns a
|
|
18
|
+
* sentence. The result goes back to a model that will read it out, so "I could
|
|
19
|
+
* not show that because the image was too large" is worth something and a stack
|
|
20
|
+
* trace is not.
|
|
21
|
+
*
|
|
22
|
+
* Adding a fifth capability is one edit here rather than one per plugin, which
|
|
23
|
+
* is the whole reason this is not in a plugin.
|
|
24
|
+
*
|
|
25
|
+
* Identical in shape to the Python SDK's `standin.calltools`.
|
|
26
|
+
*/
|
|
27
|
+
import type { CallSession } from "./handler.js";
|
|
28
|
+
import { VisionTools } from "./visionTools.js";
|
|
29
|
+
/**
|
|
30
|
+
* What a tool did, for the providers that want more than a sentence.
|
|
31
|
+
*
|
|
32
|
+
* `text` is the sentence, and for most callers it is the whole answer. `ok` is
|
|
33
|
+
* for the providers whose tool-result frame carries an error flag (ElevenLabs,
|
|
34
|
+
* OpenAI): it is false only when the SDK KNOWS the tool did not do what it was
|
|
35
|
+
* asked, which is a missing or malformed argument, a rejected value, a handler
|
|
36
|
+
* that threw, or a name no tool answers.
|
|
37
|
+
*
|
|
38
|
+
* It is not a verdict on the vision tools. Those answer in sentences by design,
|
|
39
|
+
* so "there is nothing to look at" comes back as ok, with the reason in the text
|
|
40
|
+
* where the model will actually read it.
|
|
41
|
+
*/
|
|
42
|
+
export interface ToolResult {
|
|
43
|
+
readonly text: string;
|
|
44
|
+
readonly ok: boolean;
|
|
45
|
+
}
|
|
46
|
+
/** One capability, described once, rendered per provider. */
|
|
47
|
+
export interface ToolSpec {
|
|
48
|
+
readonly name: string;
|
|
49
|
+
/** Written FOR A MODEL: when to reach for it, not what the code does. */
|
|
50
|
+
readonly description: string;
|
|
51
|
+
/**
|
|
52
|
+
* JSON Schema for one parameter. `enum` is here because a mode or a choice
|
|
53
|
+
* spelled out in the schema is obeyed far more reliably by a model than the
|
|
54
|
+
* same list written into the description.
|
|
55
|
+
*/
|
|
56
|
+
readonly parameters?: Record<string, {
|
|
57
|
+
type: string;
|
|
58
|
+
description: string;
|
|
59
|
+
enum?: readonly string[];
|
|
60
|
+
}>;
|
|
61
|
+
readonly required?: readonly string[];
|
|
62
|
+
}
|
|
63
|
+
/** Which provider's JSON shape {@link toolSchemas} should emit. */
|
|
64
|
+
export type ToolDialect = "flat" | "openai" | "anthropic";
|
|
65
|
+
/**
|
|
66
|
+
* The capabilities every call has. The descriptions are written FOR A MODEL:
|
|
67
|
+
* they say when to reach for the tool, not what the code does, because that is
|
|
68
|
+
* the only thing the model reads before deciding.
|
|
69
|
+
*/
|
|
70
|
+
/**
|
|
71
|
+
* Deliberately NOT one of the built-ins.
|
|
72
|
+
*
|
|
73
|
+
* The built-in list is declared unconditionally, so a deployment with no
|
|
74
|
+
* renderer would still be telling every model it can show a web page. It would
|
|
75
|
+
* promise the caller and then apologise, on every call, everywhere. An absent
|
|
76
|
+
* tool is honest; a broken one is not. A plugin that actually has a renderer
|
|
77
|
+
* registers this one through {@link CallTools.register}.
|
|
78
|
+
*/
|
|
79
|
+
export declare const SHOW_PAGE_TOOL: ToolSpec;
|
|
80
|
+
export declare const BUILT_IN_TOOLS: readonly ToolSpec[];
|
|
81
|
+
/**
|
|
82
|
+
* Render the tool declarations in one provider's shape.
|
|
83
|
+
*
|
|
84
|
+
* - `flat`: `{name, description, parameters}`. What Deepgram's Settings message
|
|
85
|
+
* and ElevenLabs' client tools both take.
|
|
86
|
+
* - `openai`: the same, tagged `type: "function"`, which the Realtime API wants.
|
|
87
|
+
* - `anthropic`: `{name, description, input_schema}`.
|
|
88
|
+
*
|
|
89
|
+
* An unknown dialect falls back to `flat` rather than throwing, because the
|
|
90
|
+
* consequence of guessing wrong here is a tool a model never sees, and a plugin
|
|
91
|
+
* author is better served by a working default than by a crash at connect time.
|
|
92
|
+
*/
|
|
93
|
+
export declare function toolSchemas(dialect?: ToolDialect | string, extra?: readonly ToolSpec[]): Record<string, unknown>[];
|
|
94
|
+
/**
|
|
95
|
+
* A tool of your own. Returns what the model is told, which it will read out or
|
|
96
|
+
* reason from, so keep it short and keep it fast: the caller is listening to
|
|
97
|
+
* silence while it runs.
|
|
98
|
+
*/
|
|
99
|
+
export type ToolHandler = (params: Record<string, unknown>) => string | Promise<string>;
|
|
100
|
+
/** Options for {@link CallTools}. */
|
|
101
|
+
export interface CallToolsOptions {
|
|
102
|
+
/** The vision tools these dispatch into. One is built if you pass none. */
|
|
103
|
+
vision?: VisionTools;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* The built-in call capabilities, bound to one call.
|
|
107
|
+
*
|
|
108
|
+
* Built once per call by a plugin, which then only has to translate its
|
|
109
|
+
* provider's tool-call frame into a name and an object:
|
|
110
|
+
*
|
|
111
|
+
* ```ts
|
|
112
|
+
* const tools = new CallTools(session, { vision: new VisionTools(session, { describer }) });
|
|
113
|
+
* agent.declare(tools.schemas("flat"));
|
|
114
|
+
* // ...
|
|
115
|
+
* const result = await tools.dispatch(name, params); // never throws
|
|
116
|
+
* ```
|
|
117
|
+
*
|
|
118
|
+
* Your own tools go in the same place, so a model sees one list:
|
|
119
|
+
*
|
|
120
|
+
* ```ts
|
|
121
|
+
* tools.register({ name: "open_ticket", description: "..." }, handler);
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
export declare class CallTools {
|
|
125
|
+
#private;
|
|
126
|
+
readonly vision: VisionTools;
|
|
127
|
+
constructor(session: CallSession, options?: CallToolsOptions);
|
|
128
|
+
/**
|
|
129
|
+
* Add a tool of your own.
|
|
130
|
+
*
|
|
131
|
+
* Refuses a name that shadows a built-in, and refuses it HERE rather than at
|
|
132
|
+
* the first call: a shadowed `end_call` is an agent that has quietly lost the
|
|
133
|
+
* ability to hang up, and that is not something to discover mid-conversation.
|
|
134
|
+
*/
|
|
135
|
+
register(spec: ToolSpec, handler: ToolHandler): void;
|
|
136
|
+
/** Every tool, built-in and yours, in one provider's shape. */
|
|
137
|
+
schemas(dialect?: ToolDialect | string): Record<string, unknown>[];
|
|
138
|
+
/**
|
|
139
|
+
* Run one tool and return the sentence the model should be told.
|
|
140
|
+
*
|
|
141
|
+
* Never throws. The result is read out loud, so a failure has to arrive as a
|
|
142
|
+
* sentence or the agent simply goes quiet and the caller waits. Use
|
|
143
|
+
* {@link run} instead when your provider's tool-result frame also carries an
|
|
144
|
+
* error flag.
|
|
145
|
+
*/
|
|
146
|
+
dispatch(name: string, params?: Record<string, unknown>): Promise<string>;
|
|
147
|
+
/**
|
|
148
|
+
* Run one tool and return the sentence plus whether it worked.
|
|
149
|
+
*
|
|
150
|
+
* Never throws. See {@link ToolResult} for what `ok` does and does not claim.
|
|
151
|
+
*/
|
|
152
|
+
run(name: string, params?: Record<string, unknown>): Promise<ToolResult>;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=callTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callTools.d.ts","sourceRoot":"","sources":["../src/callTools.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACtB;AAED,6DAA6D;AAC7D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAC1B,MAAM,EACN;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAChE,CAAC;IACF,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED,mEAAmE;AACnE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE1D;;;;GAIG;AACH;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,EAAE,QAU5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,QAAQ,EAsE7C,CAAC;AAUF;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,OAAO,GAAE,WAAW,GAAG,MAAe,EACtC,KAAK,GAAE,SAAS,QAAQ,EAAO,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CA2B3B;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE9B,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,SAAS;;IAEpB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;gBAGjB,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,gBAAqB;IAKhE;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IASpD,+DAA+D;IAC/D,OAAO,CAAC,OAAO,GAAE,WAAW,GAAG,MAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAO1E;;;;;;;OAOG;IACG,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,OAAO,CAAC,MAAM,CAAC;IAIlB;;;;OAIG;IACG,GAAG,CACP,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,OAAO,CAAC,UAAU,CAAC;CAmEvB"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
// Copyright (c) 2026 Komaa DigiTech
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
import { logger } from "./log.js";
|
|
4
|
+
import { VisionTools } from "./visionTools.js";
|
|
5
|
+
/**
|
|
6
|
+
* The capabilities every call has. The descriptions are written FOR A MODEL:
|
|
7
|
+
* they say when to reach for the tool, not what the code does, because that is
|
|
8
|
+
* the only thing the model reads before deciding.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Deliberately NOT one of the built-ins.
|
|
12
|
+
*
|
|
13
|
+
* The built-in list is declared unconditionally, so a deployment with no
|
|
14
|
+
* renderer would still be telling every model it can show a web page. It would
|
|
15
|
+
* promise the caller and then apologise, on every call, everywhere. An absent
|
|
16
|
+
* tool is honest; a broken one is not. A plugin that actually has a renderer
|
|
17
|
+
* registers this one through {@link CallTools.register}.
|
|
18
|
+
*/
|
|
19
|
+
export const SHOW_PAGE_TOOL = {
|
|
20
|
+
name: "show_page",
|
|
21
|
+
description: "Open a web page and show the caller a picture of it on your video tile. Use it " +
|
|
22
|
+
"when the caller asks about a page, a dashboard or a document that lives at a URL.",
|
|
23
|
+
parameters: {
|
|
24
|
+
url: { type: "string", description: "Public https URL of the page." },
|
|
25
|
+
caption: { type: "string", description: "Optional short caption." },
|
|
26
|
+
},
|
|
27
|
+
required: ["url"],
|
|
28
|
+
};
|
|
29
|
+
export const BUILT_IN_TOOLS = [
|
|
30
|
+
{
|
|
31
|
+
name: "end_call",
|
|
32
|
+
description: "Hang up. Use this when the conversation is finished, the caller says goodbye, " +
|
|
33
|
+
"or the caller asks you to hang up.",
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: "express",
|
|
37
|
+
description: "Show an emotion on your avatar's face. Use it to react naturally, for example " +
|
|
38
|
+
"happy when greeting someone or surprised at unexpected news.",
|
|
39
|
+
parameters: {
|
|
40
|
+
emotion: {
|
|
41
|
+
type: "string",
|
|
42
|
+
description: "happy, sad, surprised, thinking or neutral.",
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
required: ["emotion"],
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: "show_image",
|
|
49
|
+
description: "Show the caller an image on your video tile. Give a public https URL of a jpeg " +
|
|
50
|
+
"or png. Use it when seeing something would help more than hearing it.",
|
|
51
|
+
parameters: {
|
|
52
|
+
url: {
|
|
53
|
+
type: "string",
|
|
54
|
+
description: "Public https URL of a jpeg or png.",
|
|
55
|
+
},
|
|
56
|
+
caption: { type: "string", description: "Optional short caption." },
|
|
57
|
+
display: {
|
|
58
|
+
type: "string",
|
|
59
|
+
enum: ["fullscreen", "overlay"],
|
|
60
|
+
description: 'How to show it: "fullscreen" for something being read, "overlay" to keep ' +
|
|
61
|
+
"your face beside it. Leave it out to use the default.",
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
required: ["url"],
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: "look",
|
|
68
|
+
description: "Look at the caller's camera or shared screen and find out what is visible. Use " +
|
|
69
|
+
"it when the caller refers to something they are showing you.",
|
|
70
|
+
parameters: {
|
|
71
|
+
source: {
|
|
72
|
+
type: "string",
|
|
73
|
+
description: 'Which video to look at: "camera" or "screenshare".',
|
|
74
|
+
},
|
|
75
|
+
question: {
|
|
76
|
+
type: "string",
|
|
77
|
+
description: "What you want to know about what they are showing.",
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: "look_back",
|
|
83
|
+
description: "Look again at something the caller showed earlier and has already moved past. " +
|
|
84
|
+
"Use it when they ask about a slide or screen that is no longer up. Only works " +
|
|
85
|
+
"while the call is being recorded.",
|
|
86
|
+
parameters: {
|
|
87
|
+
question: {
|
|
88
|
+
type: "string",
|
|
89
|
+
description: "What you want to know about it.",
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
];
|
|
94
|
+
function jsonSchema(spec) {
|
|
95
|
+
return {
|
|
96
|
+
type: "object",
|
|
97
|
+
properties: spec.parameters ?? {},
|
|
98
|
+
required: [...(spec.required ?? [])],
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Render the tool declarations in one provider's shape.
|
|
103
|
+
*
|
|
104
|
+
* - `flat`: `{name, description, parameters}`. What Deepgram's Settings message
|
|
105
|
+
* and ElevenLabs' client tools both take.
|
|
106
|
+
* - `openai`: the same, tagged `type: "function"`, which the Realtime API wants.
|
|
107
|
+
* - `anthropic`: `{name, description, input_schema}`.
|
|
108
|
+
*
|
|
109
|
+
* An unknown dialect falls back to `flat` rather than throwing, because the
|
|
110
|
+
* consequence of guessing wrong here is a tool a model never sees, and a plugin
|
|
111
|
+
* author is better served by a working default than by a crash at connect time.
|
|
112
|
+
*/
|
|
113
|
+
export function toolSchemas(dialect = "flat", extra = []) {
|
|
114
|
+
const specs = [...BUILT_IN_TOOLS, ...extra];
|
|
115
|
+
if (dialect === "openai") {
|
|
116
|
+
return specs.map((spec) => ({
|
|
117
|
+
type: "function",
|
|
118
|
+
name: spec.name,
|
|
119
|
+
description: spec.description,
|
|
120
|
+
parameters: jsonSchema(spec),
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
123
|
+
if (dialect === "anthropic") {
|
|
124
|
+
return specs.map((spec) => ({
|
|
125
|
+
name: spec.name,
|
|
126
|
+
description: spec.description,
|
|
127
|
+
input_schema: jsonSchema(spec),
|
|
128
|
+
}));
|
|
129
|
+
}
|
|
130
|
+
if (dialect !== "flat" && dialect !== "") {
|
|
131
|
+
logger.debug(`standin: unknown tool dialect "${dialect}"; using the flat shape`);
|
|
132
|
+
}
|
|
133
|
+
return specs.map((spec) => ({
|
|
134
|
+
name: spec.name,
|
|
135
|
+
description: spec.description,
|
|
136
|
+
parameters: jsonSchema(spec),
|
|
137
|
+
}));
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* The built-in call capabilities, bound to one call.
|
|
141
|
+
*
|
|
142
|
+
* Built once per call by a plugin, which then only has to translate its
|
|
143
|
+
* provider's tool-call frame into a name and an object:
|
|
144
|
+
*
|
|
145
|
+
* ```ts
|
|
146
|
+
* const tools = new CallTools(session, { vision: new VisionTools(session, { describer }) });
|
|
147
|
+
* agent.declare(tools.schemas("flat"));
|
|
148
|
+
* // ...
|
|
149
|
+
* const result = await tools.dispatch(name, params); // never throws
|
|
150
|
+
* ```
|
|
151
|
+
*
|
|
152
|
+
* Your own tools go in the same place, so a model sees one list:
|
|
153
|
+
*
|
|
154
|
+
* ```ts
|
|
155
|
+
* tools.register({ name: "open_ticket", description: "..." }, handler);
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
export class CallTools {
|
|
159
|
+
#session;
|
|
160
|
+
vision;
|
|
161
|
+
#extra = new Map();
|
|
162
|
+
constructor(session, options = {}) {
|
|
163
|
+
this.#session = session;
|
|
164
|
+
this.vision = options.vision ?? new VisionTools(session);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Add a tool of your own.
|
|
168
|
+
*
|
|
169
|
+
* Refuses a name that shadows a built-in, and refuses it HERE rather than at
|
|
170
|
+
* the first call: a shadowed `end_call` is an agent that has quietly lost the
|
|
171
|
+
* ability to hang up, and that is not something to discover mid-conversation.
|
|
172
|
+
*/
|
|
173
|
+
register(spec, handler) {
|
|
174
|
+
if (BUILT_IN_TOOLS.some((builtIn) => builtIn.name === spec.name)) {
|
|
175
|
+
throw new Error(`"${spec.name}" is a built-in call capability and cannot be replaced`);
|
|
176
|
+
}
|
|
177
|
+
this.#extra.set(spec.name, { spec, handler });
|
|
178
|
+
}
|
|
179
|
+
/** Every tool, built-in and yours, in one provider's shape. */
|
|
180
|
+
schemas(dialect = "flat") {
|
|
181
|
+
return toolSchemas(dialect, [...this.#extra.values()].map((entry) => entry.spec));
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Run one tool and return the sentence the model should be told.
|
|
185
|
+
*
|
|
186
|
+
* Never throws. The result is read out loud, so a failure has to arrive as a
|
|
187
|
+
* sentence or the agent simply goes quiet and the caller waits. Use
|
|
188
|
+
* {@link run} instead when your provider's tool-result frame also carries an
|
|
189
|
+
* error flag.
|
|
190
|
+
*/
|
|
191
|
+
async dispatch(name, params = {}) {
|
|
192
|
+
return (await this.run(name, params)).text;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Run one tool and return the sentence plus whether it worked.
|
|
196
|
+
*
|
|
197
|
+
* Never throws. See {@link ToolResult} for what `ok` does and does not claim.
|
|
198
|
+
*/
|
|
199
|
+
async run(name, params = {}) {
|
|
200
|
+
try {
|
|
201
|
+
return await this.#run(name, params ?? {});
|
|
202
|
+
}
|
|
203
|
+
catch (err) {
|
|
204
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
205
|
+
logger.warn(`standin: the ${name} tool failed: ${reason}`);
|
|
206
|
+
return { text: `${name} failed: ${reason}`, ok: false };
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
async #run(name, params) {
|
|
210
|
+
if (name === "end_call") {
|
|
211
|
+
await this.#session.end("agent-ended-call");
|
|
212
|
+
return { text: "the call is ending", ok: true };
|
|
213
|
+
}
|
|
214
|
+
if (name === "express") {
|
|
215
|
+
const raw = params.emotion;
|
|
216
|
+
const emotion = typeof raw === "string" ? raw.trim() : "";
|
|
217
|
+
if (emotion === "")
|
|
218
|
+
return { text: "express needs an 'emotion'", ok: false };
|
|
219
|
+
try {
|
|
220
|
+
await this.#session.express(emotion);
|
|
221
|
+
}
|
|
222
|
+
catch (err) {
|
|
223
|
+
return {
|
|
224
|
+
text: err instanceof Error ? err.message : String(err),
|
|
225
|
+
ok: false,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
return { text: `expressing ${emotion}`, ok: true };
|
|
229
|
+
}
|
|
230
|
+
if (name === "show_image") {
|
|
231
|
+
const url = typeof params.url === "string" ? params.url : "";
|
|
232
|
+
const caption = typeof params.caption === "string" ? params.caption : undefined;
|
|
233
|
+
const display = typeof params.display === "string" ? params.display : undefined;
|
|
234
|
+
return {
|
|
235
|
+
text: await this.vision.showUrl(url, caption, display),
|
|
236
|
+
ok: true,
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
if (name === "look") {
|
|
240
|
+
const question = typeof params.question === "string" ? params.question : "";
|
|
241
|
+
const source = typeof params.source === "string" ? params.source : undefined;
|
|
242
|
+
return { text: await this.vision.look(question, source), ok: true };
|
|
243
|
+
}
|
|
244
|
+
if (name === "look_back") {
|
|
245
|
+
const question = typeof params.question === "string" ? params.question : "";
|
|
246
|
+
return { text: await this.vision.lookBack(question), ok: true };
|
|
247
|
+
}
|
|
248
|
+
const entry = this.#extra.get(name);
|
|
249
|
+
if (entry === undefined) {
|
|
250
|
+
return { text: `"${name}" is not a tool this agent has`, ok: false };
|
|
251
|
+
}
|
|
252
|
+
return { text: String(await entry.handler(params)), ok: true };
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=callTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callTools.js","sourceRoot":"","sources":["../src/callTools.ts"],"names":[],"mappings":"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"}
|