phonic 0.32.19 → 0.32.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/BaseClient.js +2 -2
- package/dist/cjs/Client.d.ts +3 -0
- package/dist/cjs/Client.js +13 -8
- package/dist/cjs/api/errors/BadGatewayError.d.ts +6 -0
- package/dist/cjs/api/errors/BadGatewayError.js +54 -0
- package/dist/cjs/api/errors/index.d.ts +1 -0
- package/dist/cjs/api/errors/index.js +1 -0
- package/dist/cjs/api/resources/conversations/client/Client.d.ts +3 -0
- package/dist/cjs/api/resources/conversations/client/Client.js +9 -0
- package/dist/cjs/api/resources/conversations/client/requests/ConversationsSipOutboundCallRequest.d.ts +2 -0
- package/dist/cjs/api/resources/index.d.ts +2 -0
- package/dist/cjs/api/resources/index.js +3 -1
- package/dist/cjs/api/resources/responses/client/Client.d.ts +72 -0
- package/dist/cjs/api/resources/responses/client/Client.js +169 -0
- package/dist/cjs/api/resources/responses/client/index.d.ts +1 -0
- package/dist/cjs/api/resources/responses/client/index.js +17 -0
- package/dist/cjs/api/resources/responses/client/requests/GenerateResponsesRequest.d.ts +46 -0
- package/dist/cjs/api/resources/responses/client/requests/GenerateResponsesRequest.js +3 -0
- package/dist/cjs/api/resources/responses/client/requests/index.d.ts +1 -0
- package/dist/cjs/api/resources/responses/client/requests/index.js +2 -0
- package/dist/cjs/api/resources/responses/exports.d.ts +2 -0
- package/dist/cjs/api/resources/responses/exports.js +21 -0
- package/dist/cjs/api/resources/responses/index.d.ts +1 -0
- package/dist/cjs/api/resources/responses/index.js +17 -0
- package/dist/cjs/api/resources/tools/client/requests/CreateToolRequest.d.ts +3 -1
- package/dist/cjs/api/resources/tools/client/requests/UpdateToolRequest.d.ts +3 -1
- package/dist/cjs/api/types/ConflictErrorBody.d.ts +2 -0
- package/dist/cjs/api/types/ConflictErrorBody.js +3 -0
- package/dist/cjs/api/types/GenerateResponsesResponse.d.ts +5 -0
- package/dist/cjs/api/types/GenerateResponsesResponse.js +3 -0
- package/dist/cjs/api/types/GeneratedResponse.d.ts +7 -0
- package/dist/cjs/api/types/GeneratedResponse.js +3 -0
- package/dist/cjs/api/types/GeneratedToolCall.d.ts +10 -0
- package/dist/cjs/api/types/GeneratedToolCall.js +3 -0
- package/dist/cjs/api/types/ResponsesAssistantMessage.d.ts +11 -0
- package/dist/cjs/api/types/ResponsesAssistantMessage.js +3 -0
- package/dist/cjs/api/types/ResponsesInputItem.d.ts +5 -0
- package/dist/cjs/api/types/ResponsesInputItem.js +3 -0
- package/dist/cjs/api/types/ResponsesToolCall.d.ts +13 -0
- package/dist/cjs/api/types/ResponsesToolCall.js +3 -0
- package/dist/cjs/api/types/ResponsesToolCallOutput.d.ts +24 -0
- package/dist/cjs/api/types/ResponsesToolCallOutput.js +3 -0
- package/dist/cjs/api/types/ResponsesToolDefinition.d.ts +11 -0
- package/dist/cjs/api/types/ResponsesToolDefinition.js +3 -0
- package/dist/cjs/api/types/ResponsesUserMessage.d.ts +8 -0
- package/dist/cjs/api/types/ResponsesUserMessage.js +3 -0
- package/dist/cjs/api/types/Tool.d.ts +3 -1
- package/dist/cjs/api/types/index.d.ts +10 -0
- package/dist/cjs/api/types/index.js +10 -0
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/BaseClient.mjs +2 -2
- package/dist/esm/Client.d.mts +3 -0
- package/dist/esm/Client.mjs +5 -0
- package/dist/esm/api/errors/BadGatewayError.d.mts +6 -0
- package/dist/esm/api/errors/BadGatewayError.mjs +17 -0
- package/dist/esm/api/errors/index.d.mts +1 -0
- package/dist/esm/api/errors/index.mjs +1 -0
- package/dist/esm/api/resources/conversations/client/Client.d.mts +3 -0
- package/dist/esm/api/resources/conversations/client/Client.mjs +9 -0
- package/dist/esm/api/resources/conversations/client/requests/ConversationsSipOutboundCallRequest.d.mts +2 -0
- package/dist/esm/api/resources/index.d.mts +2 -0
- package/dist/esm/api/resources/index.mjs +2 -0
- package/dist/esm/api/resources/responses/client/Client.d.mts +72 -0
- package/dist/esm/api/resources/responses/client/Client.mjs +132 -0
- package/dist/esm/api/resources/responses/client/index.d.mts +1 -0
- package/dist/esm/api/resources/responses/client/index.mjs +1 -0
- package/dist/esm/api/resources/responses/client/requests/GenerateResponsesRequest.d.mts +46 -0
- package/dist/esm/api/resources/responses/client/requests/GenerateResponsesRequest.mjs +2 -0
- package/dist/esm/api/resources/responses/client/requests/index.d.mts +1 -0
- package/dist/esm/api/resources/responses/client/requests/index.mjs +1 -0
- package/dist/esm/api/resources/responses/exports.d.mts +2 -0
- package/dist/esm/api/resources/responses/exports.mjs +3 -0
- package/dist/esm/api/resources/responses/index.d.mts +1 -0
- package/dist/esm/api/resources/responses/index.mjs +1 -0
- package/dist/esm/api/resources/tools/client/requests/CreateToolRequest.d.mts +3 -1
- package/dist/esm/api/resources/tools/client/requests/UpdateToolRequest.d.mts +3 -1
- package/dist/esm/api/types/ConflictErrorBody.d.mts +2 -0
- package/dist/esm/api/types/ConflictErrorBody.mjs +2 -0
- package/dist/esm/api/types/GenerateResponsesResponse.d.mts +5 -0
- package/dist/esm/api/types/GenerateResponsesResponse.mjs +2 -0
- package/dist/esm/api/types/GeneratedResponse.d.mts +7 -0
- package/dist/esm/api/types/GeneratedResponse.mjs +2 -0
- package/dist/esm/api/types/GeneratedToolCall.d.mts +10 -0
- package/dist/esm/api/types/GeneratedToolCall.mjs +2 -0
- package/dist/esm/api/types/ResponsesAssistantMessage.d.mts +11 -0
- package/dist/esm/api/types/ResponsesAssistantMessage.mjs +2 -0
- package/dist/esm/api/types/ResponsesInputItem.d.mts +5 -0
- package/dist/esm/api/types/ResponsesInputItem.mjs +2 -0
- package/dist/esm/api/types/ResponsesToolCall.d.mts +13 -0
- package/dist/esm/api/types/ResponsesToolCall.mjs +2 -0
- package/dist/esm/api/types/ResponsesToolCallOutput.d.mts +24 -0
- package/dist/esm/api/types/ResponsesToolCallOutput.mjs +2 -0
- package/dist/esm/api/types/ResponsesToolDefinition.d.mts +11 -0
- package/dist/esm/api/types/ResponsesToolDefinition.mjs +2 -0
- package/dist/esm/api/types/ResponsesUserMessage.d.mts +8 -0
- package/dist/esm/api/types/ResponsesUserMessage.mjs +2 -0
- package/dist/esm/api/types/Tool.d.mts +3 -1
- package/dist/esm/api/types/index.d.mts +10 -0
- package/dist/esm/api/types/index.mjs +10 -0
- package/dist/esm/version.d.mts +1 -1
- package/dist/esm/version.mjs +1 -1
- package/package.json +12 -1
- package/reference.md +104 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
import { normalizeClientOptionsWithAuth } from "../../../../BaseClient.mjs";
|
|
12
|
+
import { mergeHeaders } from "../../../../core/headers.mjs";
|
|
13
|
+
import * as core from "../../../../core/index.mjs";
|
|
14
|
+
import * as environments from "../../../../environments.mjs";
|
|
15
|
+
import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.mjs";
|
|
16
|
+
import * as errors from "../../../../errors/index.mjs";
|
|
17
|
+
import * as Phonic from "../../../index.mjs";
|
|
18
|
+
export class ResponsesClient {
|
|
19
|
+
constructor(options = {}) {
|
|
20
|
+
this._options = normalizeClientOptionsWithAuth(options);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Generates one or more alternative assistant responses for a conversation
|
|
24
|
+
* you supply inline to simulate Phonic agent behavior.
|
|
25
|
+
*
|
|
26
|
+
* This endpoint is stateless, so it does not create a new conversation or
|
|
27
|
+
* store anything. The request carries the system prompt, a conversation so
|
|
28
|
+
* far as `input`, and the tools the assistant may call as
|
|
29
|
+
* `tool_definitions`.
|
|
30
|
+
*
|
|
31
|
+
* Each item in `input` is a user message, an assistant message (with
|
|
32
|
+
* optional `tool_calls`), or a `tool_call_output`. Every assistant tool
|
|
33
|
+
* call must be followed immediately by the `tool_call_output` item that
|
|
34
|
+
* carries its result.
|
|
35
|
+
*
|
|
36
|
+
* This is an experimental feature and must be enabled for your workspace;
|
|
37
|
+
* otherwise, it returns `404`. Please contact our team if you would like
|
|
38
|
+
* access.
|
|
39
|
+
*
|
|
40
|
+
* @param {Phonic.GenerateResponsesRequest} request
|
|
41
|
+
* @param {ResponsesClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
42
|
+
*
|
|
43
|
+
* @throws {@link Phonic.BadRequestError}
|
|
44
|
+
* @throws {@link Phonic.UnauthorizedError}
|
|
45
|
+
* @throws {@link Phonic.NotFoundError}
|
|
46
|
+
* @throws {@link Phonic.TooManyRequestsError}
|
|
47
|
+
* @throws {@link Phonic.InternalServerError}
|
|
48
|
+
* @throws {@link Phonic.BadGatewayError}
|
|
49
|
+
* @throws {@link Phonic.ServiceUnavailableError}
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* await client.responses.create({
|
|
53
|
+
* system_prompt: "You help callers find a pizza shop. Be friendly and concise.",
|
|
54
|
+
* voice_id: "sabrina",
|
|
55
|
+
* default_language: "en",
|
|
56
|
+
* additional_languages: ["es"],
|
|
57
|
+
* input: [{
|
|
58
|
+
* role: "user",
|
|
59
|
+
* text: "Where should I get pizza near Union Square?"
|
|
60
|
+
* }],
|
|
61
|
+
* tool_definitions: [{
|
|
62
|
+
* name: "search_pizza_shop_recs",
|
|
63
|
+
* description: "Search for pizza shop recommendations.",
|
|
64
|
+
* parameters: {
|
|
65
|
+
* type: "object",
|
|
66
|
+
* properties: {
|
|
67
|
+
* "location": {
|
|
68
|
+
* "type": "string",
|
|
69
|
+
* "description": "The neighborhood to search in."
|
|
70
|
+
* }
|
|
71
|
+
* },
|
|
72
|
+
* required: ["location"],
|
|
73
|
+
* additionalProperties: false
|
|
74
|
+
* }
|
|
75
|
+
* }],
|
|
76
|
+
* num_responses: 2
|
|
77
|
+
* })
|
|
78
|
+
*/
|
|
79
|
+
create(request, requestOptions) {
|
|
80
|
+
return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions));
|
|
81
|
+
}
|
|
82
|
+
__create(request, requestOptions) {
|
|
83
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
84
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
85
|
+
const _authRequest = yield this._options.authProvider.getAuthRequest();
|
|
86
|
+
const _headers = mergeHeaders(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
|
|
87
|
+
const _response = yield ((_b = this._options.fetcher) !== null && _b !== void 0 ? _b : core.fetcher)({
|
|
88
|
+
url: core.url.join((_c = (yield core.Supplier.get(this._options.baseUrl))) !== null && _c !== void 0 ? _c : ((_d = (yield core.Supplier.get(this._options.environment))) !== null && _d !== void 0 ? _d : environments.PhonicEnvironment.Default)
|
|
89
|
+
.base, "responses"),
|
|
90
|
+
method: "POST",
|
|
91
|
+
headers: _headers,
|
|
92
|
+
contentType: "application/json",
|
|
93
|
+
queryParameters: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams,
|
|
94
|
+
requestType: "json",
|
|
95
|
+
body: request,
|
|
96
|
+
timeoutMs: ((_g = (_e = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _e !== void 0 ? _e : (_f = this._options) === null || _f === void 0 ? void 0 : _f.timeoutInSeconds) !== null && _g !== void 0 ? _g : 60) * 1000,
|
|
97
|
+
maxRetries: (_h = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _h !== void 0 ? _h : (_j = this._options) === null || _j === void 0 ? void 0 : _j.maxRetries,
|
|
98
|
+
abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
|
|
99
|
+
fetchFn: (_k = this._options) === null || _k === void 0 ? void 0 : _k.fetch,
|
|
100
|
+
logging: this._options.logging,
|
|
101
|
+
});
|
|
102
|
+
if (_response.ok) {
|
|
103
|
+
return { data: _response.body, rawResponse: _response.rawResponse };
|
|
104
|
+
}
|
|
105
|
+
if (_response.error.reason === "status-code") {
|
|
106
|
+
switch (_response.error.statusCode) {
|
|
107
|
+
case 400:
|
|
108
|
+
throw new Phonic.BadRequestError(_response.error.body, _response.rawResponse);
|
|
109
|
+
case 401:
|
|
110
|
+
throw new Phonic.UnauthorizedError(_response.error.body, _response.rawResponse);
|
|
111
|
+
case 404:
|
|
112
|
+
throw new Phonic.NotFoundError(_response.error.body, _response.rawResponse);
|
|
113
|
+
case 429:
|
|
114
|
+
throw new Phonic.TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
115
|
+
case 500:
|
|
116
|
+
throw new Phonic.InternalServerError(_response.error.body, _response.rawResponse);
|
|
117
|
+
case 502:
|
|
118
|
+
throw new Phonic.BadGatewayError(_response.error.body, _response.rawResponse);
|
|
119
|
+
case 503:
|
|
120
|
+
throw new Phonic.ServiceUnavailableError(_response.error.body, _response.rawResponse);
|
|
121
|
+
default:
|
|
122
|
+
throw new errors.PhonicError({
|
|
123
|
+
statusCode: _response.error.statusCode,
|
|
124
|
+
body: _response.error.body,
|
|
125
|
+
rawResponse: _response.rawResponse,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/responses");
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./requests/index.mjs";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./requests/index.mjs";
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type * as Phonic from "../../../../index.mjs";
|
|
2
|
+
/**
|
|
3
|
+
* @example
|
|
4
|
+
* {
|
|
5
|
+
* system_prompt: "You help callers find a pizza shop. Be friendly and concise.",
|
|
6
|
+
* voice_id: "sabrina",
|
|
7
|
+
* default_language: "en",
|
|
8
|
+
* additional_languages: ["es"],
|
|
9
|
+
* input: [{
|
|
10
|
+
* role: "user",
|
|
11
|
+
* text: "Where should I get pizza near Union Square?"
|
|
12
|
+
* }],
|
|
13
|
+
* tool_definitions: [{
|
|
14
|
+
* name: "search_pizza_shop_recs",
|
|
15
|
+
* description: "Search for pizza shop recommendations.",
|
|
16
|
+
* parameters: {
|
|
17
|
+
* type: "object",
|
|
18
|
+
* properties: {
|
|
19
|
+
* "location": {
|
|
20
|
+
* "type": "string",
|
|
21
|
+
* "description": "The neighborhood to search in."
|
|
22
|
+
* }
|
|
23
|
+
* },
|
|
24
|
+
* required: ["location"],
|
|
25
|
+
* additionalProperties: false
|
|
26
|
+
* }
|
|
27
|
+
* }],
|
|
28
|
+
* num_responses: 2
|
|
29
|
+
* }
|
|
30
|
+
*/
|
|
31
|
+
export interface GenerateResponsesRequest {
|
|
32
|
+
/** The system prompt the assistant should follow. */
|
|
33
|
+
system_prompt: string;
|
|
34
|
+
/** ID of the voice the assistant would speak with. It shapes how the responses are worded. */
|
|
35
|
+
voice_id?: string;
|
|
36
|
+
/** ISO 639-1 language code that sets the assistant's default language to recognize and speak. */
|
|
37
|
+
default_language?: Phonic.LanguageCode;
|
|
38
|
+
/** Array of additional ISO 639-1 language codes that the assistant should be able to recognize and speak. Should not include `default_language`. */
|
|
39
|
+
additional_languages?: Phonic.LanguageCode[];
|
|
40
|
+
/** The conversation so far, in order. Must contain at least one item. */
|
|
41
|
+
input: Phonic.ResponsesInputItem[];
|
|
42
|
+
/** The tools the assistant may call, defined inline. Names must be unique and cannot be one of the names Phonic reserves for its built-in tools. */
|
|
43
|
+
tool_definitions?: Phonic.ResponsesToolDefinition[];
|
|
44
|
+
/** Number of alternative responses to generate. */
|
|
45
|
+
num_responses?: number;
|
|
46
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { GenerateResponsesRequest } from "./GenerateResponsesRequest.mjs";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./client/index.mjs";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./client/index.mjs";
|
|
@@ -211,6 +211,8 @@ export interface CreateToolRequest {
|
|
|
211
211
|
use_agent_phone_number?: boolean;
|
|
212
212
|
/** When true, Phonic will listen in and tell the user if the transfer hits voicemail. This is only available for built_in_transfer_to_phone_number tools when use_agent_phone_number is true. */
|
|
213
213
|
detect_voicemail?: boolean;
|
|
214
|
+
/** When true, Phonic bridges the transfer and stays on the call. When false, the call is handed off with a SIP REFER and Phonic drops out, which requires use_agent_phone_number and detect_voicemail to be false, dtmf to be null and dynamic_dtmf to be false. Only available for built_in_transfer_to_phone_number tools. Defaults to the value of use_agent_phone_number. */
|
|
215
|
+
keep_listening?: boolean;
|
|
214
216
|
/** Array of agent names that the LLM can choose from when transferring. Required for built_in_transfer_to_agent tools. All agents must exist in the same project as the tool. */
|
|
215
217
|
agents_to_transfer_to?: string[];
|
|
216
218
|
/** When true, forces the agent to speak before executing the tool. */
|
|
@@ -227,7 +229,7 @@ export interface CreateToolRequest {
|
|
|
227
229
|
forbid_tool_call_after_speech?: boolean;
|
|
228
230
|
/** When true, allows the agent to chain and execute other tools after executing the tool. Available for custom_context, custom_webhook and custom_websocket tools. */
|
|
229
231
|
allow_tool_chaining?: boolean;
|
|
230
|
-
/** The agent doesn't typically wait for the response of async
|
|
232
|
+
/** The agent doesn't typically wait for the response of async tools. When true, makes the agent wait for a response, not call other tools and inform the user of the result. Only available for async custom_webhook and custom_websocket tools, and cannot be combined with allow_tool_chaining set to true. */
|
|
231
233
|
wait_for_response?: boolean;
|
|
232
234
|
/** The static context returned to the agent. Required for custom_context tools. */
|
|
233
235
|
context?: string;
|
|
@@ -51,6 +51,8 @@ export interface UpdateToolRequest {
|
|
|
51
51
|
use_agent_phone_number?: boolean;
|
|
52
52
|
/** When true, Phonic will listen in and tell the user if the transfer hits voicemail. This is only available for built_in_transfer_to_phone_number tools when use_agent_phone_number is true. */
|
|
53
53
|
detect_voicemail?: boolean;
|
|
54
|
+
/** When true, Phonic bridges the transfer and stays on the call. When false, the call is handed off with a SIP REFER and Phonic drops out, which requires the resulting use_agent_phone_number and detect_voicemail to be false, dtmf to be null and dynamic_dtmf to be false. Only applicable to built_in_transfer_to_phone_number tools. */
|
|
55
|
+
keep_listening?: boolean;
|
|
54
56
|
/** Array of agent names that the LLM can choose from when transferring. All agents must exist in the same project as the tool. */
|
|
55
57
|
agents_to_transfer_to?: string[];
|
|
56
58
|
/** When true, forces the agent to speak before executing the tool. */
|
|
@@ -67,7 +69,7 @@ export interface UpdateToolRequest {
|
|
|
67
69
|
forbid_tool_call_after_speech?: boolean;
|
|
68
70
|
/** When true, allows the agent to chain and execute other tools after executing the tool. Available for custom_context, custom_webhook and custom_websocket tools. */
|
|
69
71
|
allow_tool_chaining?: boolean;
|
|
70
|
-
/** The agent doesn't typically wait for the response of async
|
|
72
|
+
/** The agent doesn't typically wait for the response of async tools. When true, makes the agent wait for a response, not call other tools and inform the user of the result. Only available for async custom_webhook and custom_websocket tools, and cannot be combined with allow_tool_chaining set to true. */
|
|
71
73
|
wait_for_response?: boolean;
|
|
72
74
|
}
|
|
73
75
|
export declare namespace UpdateToolRequest {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type * as Phonic from "../index.mjs";
|
|
2
|
+
export interface GeneratedResponse {
|
|
3
|
+
/** The text the assistant would say. Empty when the response only makes tool calls. */
|
|
4
|
+
text: string;
|
|
5
|
+
/** Tool calls the assistant would make - note that the tools are not actually called. */
|
|
6
|
+
tool_calls: Phonic.GeneratedToolCall[];
|
|
7
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface GeneratedToolCall {
|
|
2
|
+
/** Identifier for this tool call. Send it back as the `tool_call_id` of the matching `tool_call_output` input item. */
|
|
3
|
+
tool_call_id: string;
|
|
4
|
+
/** Name of the tool to call. Always one of the `tool_definitions` from the request. */
|
|
5
|
+
tool_name: string;
|
|
6
|
+
/** Arguments the assistant produced for the request body. */
|
|
7
|
+
request_body?: Record<string, unknown> | undefined;
|
|
8
|
+
/** Arguments the assistant produced as query parameters. */
|
|
9
|
+
query_params?: Record<string, string> | undefined;
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type * as Phonic from "../index.mjs";
|
|
2
|
+
/**
|
|
3
|
+
* An assistant turn. Must carry `text`, `tool_calls`, or both.
|
|
4
|
+
*/
|
|
5
|
+
export interface ResponsesAssistantMessage {
|
|
6
|
+
role: "assistant";
|
|
7
|
+
/** What the assistant said. Empty when the turn only made tool calls. */
|
|
8
|
+
text: string;
|
|
9
|
+
/** Tool calls the assistant made on this turn. Each one must be followed immediately by its matching `tool_call_output` item. */
|
|
10
|
+
tool_calls?: Phonic.ResponsesToolCall[] | undefined;
|
|
11
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type * as Phonic from "../index.mjs";
|
|
2
|
+
/**
|
|
3
|
+
* One item of conversation history - a user message, an assistant message, or the output of an assistant tool call.
|
|
4
|
+
*/
|
|
5
|
+
export type ResponsesInputItem = Phonic.ResponsesUserMessage | Phonic.ResponsesAssistantMessage | Phonic.ResponsesToolCallOutput;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A tool call the assistant made earlier in the conversation.
|
|
3
|
+
*/
|
|
4
|
+
export interface ResponsesToolCall {
|
|
5
|
+
/** Identifier for this tool call, unique within `input`. */
|
|
6
|
+
tool_call_id: string;
|
|
7
|
+
/** Name of the called tool. */
|
|
8
|
+
tool_name: string;
|
|
9
|
+
/** Arguments the assistant passed in the request body. */
|
|
10
|
+
request_body?: (Record<string, unknown> | null) | undefined;
|
|
11
|
+
/** Arguments the assistant passed as query parameters. An argument cannot appear in both `request_body` and `query_params`. */
|
|
12
|
+
query_params?: (Record<string, string | null> | null) | undefined;
|
|
13
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The result of an assistant tool call. Must record an outcome through `response_body`, `response_status_code`, `error_message`, `timed_out`, or `interrupted`.
|
|
3
|
+
*/
|
|
4
|
+
export interface ResponsesToolCallOutput {
|
|
5
|
+
type: "tool_call_output";
|
|
6
|
+
/** The `tool_call_id` of the assistant tool call this output belongs to. */
|
|
7
|
+
tool_call_id: string;
|
|
8
|
+
/** The value the tool returned. Can be any JSON-serializable value. */
|
|
9
|
+
response_body?: (ResponsesToolCallOutput.ResponseBody | null) | undefined;
|
|
10
|
+
/** HTTP status code the tool returned, for tools called over HTTP. */
|
|
11
|
+
response_status_code?: (number | null) | undefined;
|
|
12
|
+
/** Whether the tool call timed out. */
|
|
13
|
+
timed_out?: boolean | undefined;
|
|
14
|
+
/** The error the tool call failed with. */
|
|
15
|
+
error_message?: (string | null) | undefined;
|
|
16
|
+
/** Whether the tool call was interrupted before it finished. */
|
|
17
|
+
interrupted?: boolean | undefined;
|
|
18
|
+
}
|
|
19
|
+
export declare namespace ResponsesToolCallOutput {
|
|
20
|
+
/**
|
|
21
|
+
* The value the tool returned. Can be any JSON-serializable value.
|
|
22
|
+
*/
|
|
23
|
+
type ResponseBody = Record<string, unknown> | unknown[] | string | number | boolean;
|
|
24
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type * as Phonic from "../index.mjs";
|
|
2
|
+
/**
|
|
3
|
+
* A tool the assistant may call, defined inline for this request only.
|
|
4
|
+
*/
|
|
5
|
+
export interface ResponsesToolDefinition {
|
|
6
|
+
/** The tool name. */
|
|
7
|
+
name: string;
|
|
8
|
+
/** What the tool does. The model uses this to decide when to call it. */
|
|
9
|
+
description: string;
|
|
10
|
+
parameters: Phonic.ToolParametersJsonSchema;
|
|
11
|
+
}
|
|
@@ -42,6 +42,8 @@ export interface Tool {
|
|
|
42
42
|
use_agent_phone_number?: boolean | undefined;
|
|
43
43
|
/** When true, Phonic will listen in and tell the user if the transfer hits voicemail. This is only available for built_in_transfer_to_phone_number tools when use_agent_phone_number is true. */
|
|
44
44
|
detect_voicemail?: boolean | undefined;
|
|
45
|
+
/** When true, Phonic bridges the transfer and stays on the call. When false, the call is handed off with a SIP REFER and Phonic drops out, so use_agent_phone_number, detect_voicemail and dynamic_dtmf are false and dtmf is null. Only returned for built_in_transfer_to_phone_number tools. */
|
|
46
|
+
keep_listening?: boolean | undefined;
|
|
45
47
|
/** Array of agent names that the LLM can choose from when transferring. Required for built_in_transfer_to_agent tools. */
|
|
46
48
|
agents_to_transfer_to?: string[] | undefined;
|
|
47
49
|
/** When true, forces the agent to speak before executing the tool. */
|
|
@@ -58,7 +60,7 @@ export interface Tool {
|
|
|
58
60
|
forbid_tool_call_after_speech?: boolean | undefined;
|
|
59
61
|
/** When true, allows the agent to chain and execute other tools after executing the tool. Available for custom_context, custom_webhook and custom_websocket tools. */
|
|
60
62
|
allow_tool_chaining?: boolean | undefined;
|
|
61
|
-
/** The agent doesn't typically wait for the response of async
|
|
63
|
+
/** The agent doesn't typically wait for the response of async tools. When true, makes the agent wait for a response, not call other tools and inform the user of the result. Only returned for custom_webhook and custom_websocket tools. */
|
|
62
64
|
wait_for_response?: boolean | undefined;
|
|
63
65
|
/** The static context returned to the agent. Only present for custom_context tools. */
|
|
64
66
|
context?: string | undefined;
|
|
@@ -16,6 +16,7 @@ export * from "./BuiltInToolDefinition.mjs";
|
|
|
16
16
|
export * from "./ChooseNotToRespondToolConfig.mjs";
|
|
17
17
|
export * from "./ConfigOptions.mjs";
|
|
18
18
|
export * from "./ConfigPayload.mjs";
|
|
19
|
+
export * from "./ConflictErrorBody.mjs";
|
|
19
20
|
export * from "./Conversation.mjs";
|
|
20
21
|
export * from "./ConversationAnalysis.mjs";
|
|
21
22
|
export * from "./ConversationCreatedPayload.mjs";
|
|
@@ -37,7 +38,10 @@ export * from "./ErrorPayload.mjs";
|
|
|
37
38
|
export * from "./ExternalStoragePolicy.mjs";
|
|
38
39
|
export * from "./ExtractionField.mjs";
|
|
39
40
|
export * from "./ExtractionSchema.mjs";
|
|
41
|
+
export * from "./GeneratedResponse.mjs";
|
|
42
|
+
export * from "./GeneratedToolCall.mjs";
|
|
40
43
|
export * from "./GenerateReplyPayload.mjs";
|
|
44
|
+
export * from "./GenerateResponsesResponse.mjs";
|
|
41
45
|
export * from "./InlineWebSocketTool.mjs";
|
|
42
46
|
export * from "./InputCancelledPayload.mjs";
|
|
43
47
|
export * from "./InputTextPayload.mjs";
|
|
@@ -55,6 +59,12 @@ export * from "./ReadyToStartConversationPayload.mjs";
|
|
|
55
59
|
export * from "./ReplayConversationItemResponse.mjs";
|
|
56
60
|
export * from "./ReplayToolCall.mjs";
|
|
57
61
|
export * from "./ResetPayload.mjs";
|
|
62
|
+
export * from "./ResponsesAssistantMessage.mjs";
|
|
63
|
+
export * from "./ResponsesInputItem.mjs";
|
|
64
|
+
export * from "./ResponsesToolCall.mjs";
|
|
65
|
+
export * from "./ResponsesToolCallOutput.mjs";
|
|
66
|
+
export * from "./ResponsesToolDefinition.mjs";
|
|
67
|
+
export * from "./ResponsesUserMessage.mjs";
|
|
58
68
|
export * from "./SayPayload.mjs";
|
|
59
69
|
export * from "./SetExternalIdPayload.mjs";
|
|
60
70
|
export * from "./SipCallError.mjs";
|
|
@@ -16,6 +16,7 @@ export * from "./BuiltInToolDefinition.mjs";
|
|
|
16
16
|
export * from "./ChooseNotToRespondToolConfig.mjs";
|
|
17
17
|
export * from "./ConfigOptions.mjs";
|
|
18
18
|
export * from "./ConfigPayload.mjs";
|
|
19
|
+
export * from "./ConflictErrorBody.mjs";
|
|
19
20
|
export * from "./Conversation.mjs";
|
|
20
21
|
export * from "./ConversationAnalysis.mjs";
|
|
21
22
|
export * from "./ConversationCreatedPayload.mjs";
|
|
@@ -37,7 +38,10 @@ export * from "./ErrorPayload.mjs";
|
|
|
37
38
|
export * from "./ExternalStoragePolicy.mjs";
|
|
38
39
|
export * from "./ExtractionField.mjs";
|
|
39
40
|
export * from "./ExtractionSchema.mjs";
|
|
41
|
+
export * from "./GeneratedResponse.mjs";
|
|
42
|
+
export * from "./GeneratedToolCall.mjs";
|
|
40
43
|
export * from "./GenerateReplyPayload.mjs";
|
|
44
|
+
export * from "./GenerateResponsesResponse.mjs";
|
|
41
45
|
export * from "./InlineWebSocketTool.mjs";
|
|
42
46
|
export * from "./InputCancelledPayload.mjs";
|
|
43
47
|
export * from "./InputTextPayload.mjs";
|
|
@@ -55,6 +59,12 @@ export * from "./ReadyToStartConversationPayload.mjs";
|
|
|
55
59
|
export * from "./ReplayConversationItemResponse.mjs";
|
|
56
60
|
export * from "./ReplayToolCall.mjs";
|
|
57
61
|
export * from "./ResetPayload.mjs";
|
|
62
|
+
export * from "./ResponsesAssistantMessage.mjs";
|
|
63
|
+
export * from "./ResponsesInputItem.mjs";
|
|
64
|
+
export * from "./ResponsesToolCall.mjs";
|
|
65
|
+
export * from "./ResponsesToolCallOutput.mjs";
|
|
66
|
+
export * from "./ResponsesToolDefinition.mjs";
|
|
67
|
+
export * from "./ResponsesUserMessage.mjs";
|
|
58
68
|
export * from "./SayPayload.mjs";
|
|
59
69
|
export * from "./SetExternalIdPayload.mjs";
|
|
60
70
|
export * from "./SipCallError.mjs";
|
package/dist/esm/version.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "0.32.
|
|
1
|
+
export declare const SDK_VERSION = "0.32.21";
|
package/dist/esm/version.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const SDK_VERSION = "0.32.
|
|
1
|
+
export const SDK_VERSION = "0.32.21";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "phonic",
|
|
3
|
-
"version": "0.32.
|
|
3
|
+
"version": "0.32.21",
|
|
4
4
|
"private": false,
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -155,6 +155,17 @@
|
|
|
155
155
|
},
|
|
156
156
|
"default": "./dist/cjs/api/resources/projects/exports.js"
|
|
157
157
|
},
|
|
158
|
+
"./responses": {
|
|
159
|
+
"import": {
|
|
160
|
+
"types": "./dist/esm/api/resources/responses/exports.d.mts",
|
|
161
|
+
"default": "./dist/esm/api/resources/responses/exports.mjs"
|
|
162
|
+
},
|
|
163
|
+
"require": {
|
|
164
|
+
"types": "./dist/cjs/api/resources/responses/exports.d.ts",
|
|
165
|
+
"default": "./dist/cjs/api/resources/responses/exports.js"
|
|
166
|
+
},
|
|
167
|
+
"default": "./dist/cjs/api/resources/responses/exports.js"
|
|
168
|
+
},
|
|
158
169
|
"./package.json": "./package.json"
|
|
159
170
|
},
|
|
160
171
|
"files": [
|
package/reference.md
CHANGED
|
@@ -4020,3 +4020,107 @@ await client.projects.listEvals("id");
|
|
|
4020
4020
|
</dl>
|
|
4021
4021
|
</details>
|
|
4022
4022
|
|
|
4023
|
+
## Responses
|
|
4024
|
+
<details><summary><code>client.responses.<a href="/src/api/resources/responses/client/Client.ts">create</a>({ ...params }) -> Phonic.GenerateResponsesResponse</code></summary>
|
|
4025
|
+
<dl>
|
|
4026
|
+
<dd>
|
|
4027
|
+
|
|
4028
|
+
#### 📝 Description
|
|
4029
|
+
|
|
4030
|
+
<dl>
|
|
4031
|
+
<dd>
|
|
4032
|
+
|
|
4033
|
+
<dl>
|
|
4034
|
+
<dd>
|
|
4035
|
+
|
|
4036
|
+
Generates one or more alternative assistant responses for a conversation
|
|
4037
|
+
you supply inline to simulate Phonic agent behavior.
|
|
4038
|
+
|
|
4039
|
+
This endpoint is stateless, so it does not create a new conversation or
|
|
4040
|
+
store anything. The request carries the system prompt, a conversation so
|
|
4041
|
+
far as `input`, and the tools the assistant may call as
|
|
4042
|
+
`tool_definitions`.
|
|
4043
|
+
|
|
4044
|
+
Each item in `input` is a user message, an assistant message (with
|
|
4045
|
+
optional `tool_calls`), or a `tool_call_output`. Every assistant tool
|
|
4046
|
+
call must be followed immediately by the `tool_call_output` item that
|
|
4047
|
+
carries its result.
|
|
4048
|
+
|
|
4049
|
+
This is an experimental feature and must be enabled for your workspace;
|
|
4050
|
+
otherwise, it returns `404`. Please contact our team if you would like
|
|
4051
|
+
access.
|
|
4052
|
+
</dd>
|
|
4053
|
+
</dl>
|
|
4054
|
+
</dd>
|
|
4055
|
+
</dl>
|
|
4056
|
+
|
|
4057
|
+
#### 🔌 Usage
|
|
4058
|
+
|
|
4059
|
+
<dl>
|
|
4060
|
+
<dd>
|
|
4061
|
+
|
|
4062
|
+
<dl>
|
|
4063
|
+
<dd>
|
|
4064
|
+
|
|
4065
|
+
```typescript
|
|
4066
|
+
await client.responses.create({
|
|
4067
|
+
system_prompt: "You help callers find a pizza shop. Be friendly and concise.",
|
|
4068
|
+
voice_id: "sabrina",
|
|
4069
|
+
default_language: "en",
|
|
4070
|
+
additional_languages: ["es"],
|
|
4071
|
+
input: [{
|
|
4072
|
+
role: "user",
|
|
4073
|
+
text: "Where should I get pizza near Union Square?"
|
|
4074
|
+
}],
|
|
4075
|
+
tool_definitions: [{
|
|
4076
|
+
name: "search_pizza_shop_recs",
|
|
4077
|
+
description: "Search for pizza shop recommendations.",
|
|
4078
|
+
parameters: {
|
|
4079
|
+
type: "object",
|
|
4080
|
+
properties: {
|
|
4081
|
+
"location": {
|
|
4082
|
+
"type": "string",
|
|
4083
|
+
"description": "The neighborhood to search in."
|
|
4084
|
+
}
|
|
4085
|
+
},
|
|
4086
|
+
required: ["location"],
|
|
4087
|
+
additionalProperties: false
|
|
4088
|
+
}
|
|
4089
|
+
}],
|
|
4090
|
+
num_responses: 2
|
|
4091
|
+
});
|
|
4092
|
+
|
|
4093
|
+
```
|
|
4094
|
+
</dd>
|
|
4095
|
+
</dl>
|
|
4096
|
+
</dd>
|
|
4097
|
+
</dl>
|
|
4098
|
+
|
|
4099
|
+
#### ⚙️ Parameters
|
|
4100
|
+
|
|
4101
|
+
<dl>
|
|
4102
|
+
<dd>
|
|
4103
|
+
|
|
4104
|
+
<dl>
|
|
4105
|
+
<dd>
|
|
4106
|
+
|
|
4107
|
+
**request:** `Phonic.GenerateResponsesRequest`
|
|
4108
|
+
|
|
4109
|
+
</dd>
|
|
4110
|
+
</dl>
|
|
4111
|
+
|
|
4112
|
+
<dl>
|
|
4113
|
+
<dd>
|
|
4114
|
+
|
|
4115
|
+
**requestOptions:** `ResponsesClient.RequestOptions`
|
|
4116
|
+
|
|
4117
|
+
</dd>
|
|
4118
|
+
</dl>
|
|
4119
|
+
</dd>
|
|
4120
|
+
</dl>
|
|
4121
|
+
|
|
4122
|
+
|
|
4123
|
+
</dd>
|
|
4124
|
+
</dl>
|
|
4125
|
+
</details>
|
|
4126
|
+
|