@arizeai/phoenix-client 6.9.1 → 6.9.3
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/esm/__generated__/api/v1.d.ts +1809 -18
- package/dist/esm/__generated__/api/v1.d.ts.map +1 -1
- package/dist/esm/client.d.ts +1 -0
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/prompts/sdks/toAI.d.ts.map +1 -1
- package/dist/esm/prompts/sdks/toAI.js +31 -11
- package/dist/esm/prompts/sdks/toAI.js.map +1 -1
- package/dist/esm/prompts/sdks/toAnthropic.d.ts.map +1 -1
- package/dist/esm/prompts/sdks/toAnthropic.js +23 -13
- package/dist/esm/prompts/sdks/toAnthropic.js.map +1 -1
- package/dist/esm/prompts/sdks/toOpenAI.d.ts.map +1 -1
- package/dist/esm/prompts/sdks/toOpenAI.js +62 -20
- package/dist/esm/prompts/sdks/toOpenAI.js.map +1 -1
- package/dist/esm/schemas/llm/constants.d.ts +1 -1
- package/dist/esm/schemas/llm/converters.d.ts +4 -4
- package/dist/esm/schemas/llm/openai/converters.d.ts +1 -1
- package/dist/esm/schemas/llm/openai/messageSchemas.d.ts +1 -1
- package/dist/esm/schemas/llm/phoenixPrompt/converters.d.ts +2 -2
- package/dist/esm/schemas/llm/phoenixPrompt/converters.js +2 -2
- package/dist/esm/schemas/llm/phoenixPrompt/converters.js.map +1 -1
- package/dist/esm/schemas/llm/phoenixPrompt/messageSchemas.d.ts +3 -3
- package/dist/esm/schemas/llm/phoenixPrompt/toolSchemas.d.ts +2 -2
- package/dist/esm/schemas/llm/phoenixPrompt/toolSchemas.d.ts.map +1 -1
- package/dist/esm/schemas/llm/phoenixPrompt/toolSchemas.js +1 -1
- package/dist/esm/schemas/llm/phoenixPrompt/toolSchemas.js.map +1 -1
- package/dist/esm/schemas/llm/schemas.d.ts +1 -1
- package/dist/esm/schemas/llm/schemas.js +2 -2
- package/dist/esm/schemas/llm/schemas.js.map +1 -1
- package/dist/esm/schemas/llm/utils.js +2 -2
- package/dist/esm/schemas/llm/utils.js.map +1 -1
- package/dist/esm/schemas/llm/vercel/messageSchemas.d.ts +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/types/prompts.d.ts +4 -0
- package/dist/esm/types/prompts.d.ts.map +1 -1
- package/dist/esm/types/prompts.js +6 -1
- package/dist/esm/types/prompts.js.map +1 -1
- package/dist/esm/utils/formatPromptMessages.d.ts.map +1 -1
- package/dist/esm/utils/getPromptBySelector.d.ts +294 -5
- package/dist/esm/utils/getPromptBySelector.d.ts.map +1 -1
- package/dist/src/__generated__/api/v1.d.ts +1809 -18
- package/dist/src/__generated__/api/v1.d.ts.map +1 -1
- package/dist/src/client.d.ts +11 -10
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/prompts/sdks/toAI.d.ts.map +1 -1
- package/dist/src/prompts/sdks/toAI.js +35 -15
- package/dist/src/prompts/sdks/toAI.js.map +1 -1
- package/dist/src/prompts/sdks/toAnthropic.d.ts.map +1 -1
- package/dist/src/prompts/sdks/toAnthropic.js +24 -14
- package/dist/src/prompts/sdks/toAnthropic.js.map +1 -1
- package/dist/src/prompts/sdks/toOpenAI.d.ts.map +1 -1
- package/dist/src/prompts/sdks/toOpenAI.js +63 -21
- package/dist/src/prompts/sdks/toOpenAI.js.map +1 -1
- package/dist/src/schemas/llm/constants.d.ts +1 -1
- package/dist/src/schemas/llm/converters.d.ts +4 -4
- package/dist/src/schemas/llm/openai/converters.d.ts +1 -1
- package/dist/src/schemas/llm/openai/messageSchemas.d.ts +1 -1
- package/dist/src/schemas/llm/phoenixPrompt/converters.d.ts +2 -2
- package/dist/src/schemas/llm/phoenixPrompt/converters.js +1 -1
- package/dist/src/schemas/llm/phoenixPrompt/converters.js.map +1 -1
- package/dist/src/schemas/llm/phoenixPrompt/messageSchemas.d.ts +3 -3
- package/dist/src/schemas/llm/phoenixPrompt/toolSchemas.d.ts +2 -2
- package/dist/src/schemas/llm/phoenixPrompt/toolSchemas.d.ts.map +1 -1
- package/dist/src/schemas/llm/phoenixPrompt/toolSchemas.js +2 -2
- package/dist/src/schemas/llm/phoenixPrompt/toolSchemas.js.map +1 -1
- package/dist/src/schemas/llm/schemas.d.ts +1 -1
- package/dist/src/schemas/llm/schemas.js +1 -1
- package/dist/src/schemas/llm/schemas.js.map +1 -1
- package/dist/src/schemas/llm/utils.js +1 -1
- package/dist/src/schemas/llm/utils.js.map +1 -1
- package/dist/src/schemas/llm/vercel/messageSchemas.d.ts +1 -1
- package/dist/src/types/prompts.d.ts +4 -0
- package/dist/src/types/prompts.d.ts.map +1 -1
- package/dist/src/types/prompts.js +8 -0
- package/dist/src/types/prompts.js.map +1 -1
- package/dist/src/utils/formatPromptMessages.d.ts.map +1 -1
- package/dist/src/utils/getPromptBySelector.d.ts +294 -5
- package/dist/src/utils/getPromptBySelector.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/annotations.mdx +7 -3
- package/docs/overview.mdx +1 -1
- package/docs/sessions.mdx +20 -0
- package/docs/traces.mdx +76 -5
- package/package.json +3 -3
- package/src/__generated__/api/v1.ts +1809 -18
- package/src/prompts/sdks/toAI.ts +33 -11
- package/src/prompts/sdks/toAnthropic.ts +26 -15
- package/src/prompts/sdks/toOpenAI.ts +66 -23
- package/src/schemas/llm/phoenixPrompt/converters.ts +2 -2
- package/src/schemas/llm/phoenixPrompt/toolSchemas.ts +16 -13
- package/src/schemas/llm/schemas.ts +2 -2
- package/src/schemas/llm/utils.ts +2 -2
- package/src/types/prompts.ts +13 -0
package/src/prompts/sdks/toAI.ts
CHANGED
|
@@ -7,9 +7,27 @@ import {
|
|
|
7
7
|
safelyConvertToolDefinitionToProvider,
|
|
8
8
|
} from "../../schemas/llm/converters";
|
|
9
9
|
import { findToolDefinitionName } from "../../schemas/llm/utils";
|
|
10
|
+
import type { PromptToolRaw } from "../../types/prompts";
|
|
11
|
+
import { isPromptToolRaw } from "../../types/prompts";
|
|
10
12
|
import { formatPromptMessages } from "../../utils/formatPromptMessages";
|
|
11
13
|
import type { Variables, toSDKParamsBase } from "./types";
|
|
12
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Best-effort name for a vendor-passthrough (raw) tool. Vercel AI SDK keys its
|
|
17
|
+
* `tools` record by tool name, so we need a stable string identifier even when
|
|
18
|
+
* the raw payload doesn't carry a conventional `name` field — fall back to
|
|
19
|
+
* `type` (e.g. "web_search") which the Responses-style SDKs use as the key.
|
|
20
|
+
*/
|
|
21
|
+
const getRawToolName = (tool: PromptToolRaw): string | null => {
|
|
22
|
+
if (typeof tool.raw.name === "string") {
|
|
23
|
+
return tool.raw.name;
|
|
24
|
+
}
|
|
25
|
+
if (typeof tool.raw.type === "string") {
|
|
26
|
+
return tool.raw.type;
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
};
|
|
30
|
+
|
|
13
31
|
export type PartialAIParams = {
|
|
14
32
|
messages: ModelMessage[];
|
|
15
33
|
/**
|
|
@@ -67,23 +85,27 @@ export const toAI = <V extends Variables>({
|
|
|
67
85
|
return vercelAIMessage;
|
|
68
86
|
});
|
|
69
87
|
|
|
88
|
+
const toolsList = prompt.tools?.tools ?? [];
|
|
70
89
|
let tools: ToolSet | undefined;
|
|
71
|
-
if (
|
|
90
|
+
if (toolsList.length > 0) {
|
|
72
91
|
const toolsRecord: Record<string, unknown> = {};
|
|
73
|
-
for (const tool of
|
|
74
|
-
const name =
|
|
92
|
+
for (const tool of toolsList) {
|
|
93
|
+
const name = isPromptToolRaw(tool)
|
|
94
|
+
? getRawToolName(tool)
|
|
95
|
+
: findToolDefinitionName(tool);
|
|
75
96
|
invariant(name, "Tool definition name is not valid");
|
|
76
|
-
const converted =
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
97
|
+
const converted = isPromptToolRaw(tool)
|
|
98
|
+
? tool.raw
|
|
99
|
+
: safelyConvertToolDefinitionToProvider({
|
|
100
|
+
toolDefinition: tool,
|
|
101
|
+
targetProvider: "VERCEL_AI",
|
|
102
|
+
});
|
|
80
103
|
invariant(converted, "Tool definition is not valid");
|
|
81
104
|
toolsRecord[name] = converted;
|
|
82
105
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
: undefined;
|
|
106
|
+
if (Object.keys(toolsRecord).length > 0) {
|
|
107
|
+
tools = toolsRecord as ToolSet;
|
|
108
|
+
}
|
|
87
109
|
}
|
|
88
110
|
|
|
89
111
|
let toolChoice: PartialAIParams["toolChoice"];
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
safelyConvertToolChoiceToProvider,
|
|
8
8
|
safelyConvertToolDefinitionToProvider,
|
|
9
9
|
} from "../../schemas/llm/converters";
|
|
10
|
+
import { isPromptToolRaw } from "../../types/prompts";
|
|
10
11
|
import { formatPromptMessages } from "../../utils/formatPromptMessages";
|
|
11
12
|
import type { toSDKParamsBase, Variables } from "./types";
|
|
12
13
|
|
|
@@ -62,22 +63,32 @@ export const toAnthropic = <V extends Variables = Variables>({
|
|
|
62
63
|
return anthropicMessage;
|
|
63
64
|
});
|
|
64
65
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
66
|
+
const toolsList = prompt.tools?.tools ?? [];
|
|
67
|
+
// Cast: raw tools are `Record<string, unknown>` straight from the prompt
|
|
68
|
+
// store. We trust the upstream caller to have stored a shape Anthropic's
|
|
69
|
+
// SDK accepts; no validation here.
|
|
70
|
+
const tools =
|
|
71
|
+
toolsList.length === 0
|
|
72
|
+
? undefined
|
|
73
|
+
: (toolsList.map((tool) => {
|
|
74
|
+
if (isPromptToolRaw(tool)) {
|
|
75
|
+
return tool.raw;
|
|
76
|
+
}
|
|
77
|
+
const anthropicToolDefinition =
|
|
78
|
+
safelyConvertToolDefinitionToProvider({
|
|
79
|
+
toolDefinition: tool,
|
|
80
|
+
targetProvider: "ANTHROPIC",
|
|
81
|
+
});
|
|
82
|
+
invariant(anthropicToolDefinition, "Tool definition is not valid");
|
|
83
|
+
return anthropicToolDefinition;
|
|
84
|
+
}) as MessageCreateParams["tools"]);
|
|
74
85
|
|
|
75
|
-
|
|
76
|
-
safelyConvertToolChoiceToProvider({
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
86
|
+
const tool_choice: AnthropicToolChoice | undefined = tools
|
|
87
|
+
? (safelyConvertToolChoiceToProvider({
|
|
88
|
+
toolChoice: prompt?.tools?.tool_choice,
|
|
89
|
+
targetProvider: "ANTHROPIC",
|
|
90
|
+
}) ?? undefined)
|
|
91
|
+
: undefined;
|
|
81
92
|
|
|
82
93
|
// combine base and computed params
|
|
83
94
|
const completionParams = {
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
} from "../../schemas/llm/converters";
|
|
13
13
|
import type { OpenaiToolChoice } from "../../schemas/llm/openai/toolChoiceSchemas";
|
|
14
14
|
import { phoenixResponseFormatToOpenAI } from "../../schemas/llm/phoenixPrompt/converters";
|
|
15
|
+
import { isPromptToolRaw } from "../../types/prompts";
|
|
15
16
|
import { formatPromptMessages } from "../../utils/formatPromptMessages";
|
|
16
17
|
import type { toSDKParamsBase, Variables } from "./types";
|
|
17
18
|
|
|
@@ -35,14 +36,47 @@ export const toOpenAI = <V extends Variables = Variables>({
|
|
|
35
36
|
}: ToOpenAIParams<V>): ChatCompletionCreateParams | null => {
|
|
36
37
|
try {
|
|
37
38
|
let invocationParameters: Partial<ChatCompletionCreateParams>;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
switch (prompt.invocation_parameters.type) {
|
|
40
|
+
case "openai":
|
|
41
|
+
invocationParameters = prompt.invocation_parameters.openai;
|
|
42
|
+
break;
|
|
43
|
+
case "azure_openai":
|
|
44
|
+
invocationParameters = prompt.invocation_parameters.azure_openai;
|
|
45
|
+
break;
|
|
46
|
+
case "deepseek":
|
|
47
|
+
invocationParameters = prompt.invocation_parameters.deepseek;
|
|
48
|
+
break;
|
|
49
|
+
case "xai":
|
|
50
|
+
invocationParameters = prompt.invocation_parameters.xai;
|
|
51
|
+
break;
|
|
52
|
+
case "ollama":
|
|
53
|
+
invocationParameters = prompt.invocation_parameters.ollama;
|
|
54
|
+
break;
|
|
55
|
+
case "cerebras":
|
|
56
|
+
invocationParameters = prompt.invocation_parameters.cerebras;
|
|
57
|
+
break;
|
|
58
|
+
case "fireworks":
|
|
59
|
+
invocationParameters = prompt.invocation_parameters.fireworks;
|
|
60
|
+
break;
|
|
61
|
+
case "groq":
|
|
62
|
+
invocationParameters = prompt.invocation_parameters.groq;
|
|
63
|
+
break;
|
|
64
|
+
case "moonshot":
|
|
65
|
+
invocationParameters = prompt.invocation_parameters.moonshot;
|
|
66
|
+
break;
|
|
67
|
+
case "perplexity":
|
|
68
|
+
invocationParameters = prompt.invocation_parameters.perplexity;
|
|
69
|
+
break;
|
|
70
|
+
case "together":
|
|
71
|
+
invocationParameters = prompt.invocation_parameters.together;
|
|
72
|
+
break;
|
|
73
|
+
default:
|
|
74
|
+
// eslint-disable-next-line no-console
|
|
75
|
+
console.warn(
|
|
76
|
+
"Prompt is not an OpenAI-family prompt, falling back to default OpenAI invocation parameters"
|
|
77
|
+
);
|
|
78
|
+
invocationParameters = {};
|
|
79
|
+
break;
|
|
46
80
|
}
|
|
47
81
|
// parts of the prompt that can be directly converted to OpenAI params
|
|
48
82
|
const baseCompletionParams = {
|
|
@@ -74,22 +108,31 @@ export const toOpenAI = <V extends Variables = Variables>({
|
|
|
74
108
|
return openAIMessage;
|
|
75
109
|
});
|
|
76
110
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
111
|
+
const toolsList = prompt.tools?.tools ?? [];
|
|
112
|
+
// Cast: raw tools are `Record<string, unknown>` straight from the prompt
|
|
113
|
+
// store. We trust the upstream caller to have stored a shape OpenAI's
|
|
114
|
+
// SDK accepts; no validation here.
|
|
115
|
+
const tools =
|
|
116
|
+
toolsList.length === 0
|
|
117
|
+
? undefined
|
|
118
|
+
: (toolsList.map((tool) => {
|
|
119
|
+
if (isPromptToolRaw(tool)) {
|
|
120
|
+
return tool.raw;
|
|
121
|
+
}
|
|
122
|
+
const openAIToolDefinition = safelyConvertToolDefinitionToProvider({
|
|
123
|
+
toolDefinition: tool,
|
|
124
|
+
targetProvider: "OPENAI",
|
|
125
|
+
});
|
|
126
|
+
invariant(openAIToolDefinition, "Tool definition is not valid");
|
|
127
|
+
return openAIToolDefinition;
|
|
128
|
+
}) as unknown as ChatCompletionCreateParams["tools"]);
|
|
86
129
|
|
|
87
|
-
|
|
88
|
-
safelyConvertToolChoiceToProvider({
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
130
|
+
const tool_choice: OpenaiToolChoice | undefined = tools
|
|
131
|
+
? (safelyConvertToolChoiceToProvider({
|
|
132
|
+
toolChoice: prompt?.tools?.tool_choice,
|
|
133
|
+
targetProvider: "OPENAI",
|
|
134
|
+
}) ?? undefined)
|
|
135
|
+
: undefined;
|
|
93
136
|
|
|
94
137
|
const response_format = prompt.response_format
|
|
95
138
|
? phoenixResponseFormatToOpenAI.parse(prompt.response_format)
|
|
@@ -16,7 +16,7 @@ import { phoenixMessageSchema } from "./messageSchemas";
|
|
|
16
16
|
import { phoenixResponseFormatSchema } from "./responseFormatSchema";
|
|
17
17
|
import { phoenixToolCallSchema } from "./toolCallSchemas";
|
|
18
18
|
import { phoenixToolChoiceSchema } from "./toolChoiceSchemas";
|
|
19
|
-
import {
|
|
19
|
+
import { phoenixToolFunctionDefinitionSchema } from "./toolSchemas";
|
|
20
20
|
|
|
21
21
|
/*
|
|
22
22
|
* Conversion Functions
|
|
@@ -150,7 +150,7 @@ export const phoenixToolCallToOpenAI = phoenixToolCallSchema.transform(
|
|
|
150
150
|
);
|
|
151
151
|
|
|
152
152
|
export const phoenixToolDefinitionToOpenAI =
|
|
153
|
-
|
|
153
|
+
phoenixToolFunctionDefinitionSchema.transform(
|
|
154
154
|
(phoenix): OpenAIToolDefinition => ({
|
|
155
155
|
type: "function",
|
|
156
156
|
function: {
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import z from "zod";
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { PromptToolFunction } from "../../../types/prompts";
|
|
4
4
|
import { schemaMatches } from "../../../utils/schemaMatches";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* The Phoenix tool definition schema
|
|
8
8
|
*/
|
|
9
|
-
export const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
)
|
|
9
|
+
export const phoenixToolFunctionDefinitionSchema =
|
|
10
|
+
schemaMatches<PromptToolFunction>()(
|
|
11
|
+
z.object({
|
|
12
|
+
type: z.literal("function"),
|
|
13
|
+
function: z.object({
|
|
14
|
+
name: z.string(),
|
|
15
|
+
description: z.string().optional(),
|
|
16
|
+
parameters: z.record(z.string(), z.unknown()).optional(),
|
|
17
|
+
strict: z.boolean().optional(),
|
|
18
|
+
}),
|
|
19
|
+
})
|
|
20
|
+
);
|
|
20
21
|
|
|
21
|
-
export type PhoenixToolDefinition = z.infer<
|
|
22
|
+
export type PhoenixToolDefinition = z.infer<
|
|
23
|
+
typeof phoenixToolFunctionDefinitionSchema
|
|
24
|
+
>;
|
|
@@ -11,7 +11,7 @@ import { openAIToolDefinitionSchema } from "./openai/toolSchemas";
|
|
|
11
11
|
import { phoenixMessageSchema } from "./phoenixPrompt/messageSchemas";
|
|
12
12
|
import { phoenixToolCallSchema } from "./phoenixPrompt/toolCallSchemas";
|
|
13
13
|
import { phoenixToolChoiceSchema } from "./phoenixPrompt/toolChoiceSchemas";
|
|
14
|
-
import {
|
|
14
|
+
import { phoenixToolFunctionDefinitionSchema } from "./phoenixPrompt/toolSchemas";
|
|
15
15
|
import { vercelAIChatPartToolCallSchema } from "./vercel/messagePartSchemas";
|
|
16
16
|
import { vercelAIMessageSchema } from "./vercel/messageSchemas";
|
|
17
17
|
import { vercelAIToolChoiceSchema } from "./vercel/toolChoiceSchemas";
|
|
@@ -87,7 +87,7 @@ export type LlmProviderToolChoice = z.infer<typeof llmProviderToolChoiceSchema>;
|
|
|
87
87
|
export const llmProviderToolDefinitionSchema = z.union([
|
|
88
88
|
openAIToolDefinitionSchema,
|
|
89
89
|
anthropicToolDefinitionSchema,
|
|
90
|
-
|
|
90
|
+
phoenixToolFunctionDefinitionSchema,
|
|
91
91
|
]);
|
|
92
92
|
|
|
93
93
|
export type LlmProviderToolDefinition = z.infer<
|
package/src/schemas/llm/utils.ts
CHANGED
|
@@ -15,7 +15,7 @@ import { phoenixContentPartSchema } from "./phoenixPrompt/messagePartSchemas";
|
|
|
15
15
|
import { phoenixMessageSchema } from "./phoenixPrompt/messageSchemas";
|
|
16
16
|
import { phoenixToolCallSchema } from "./phoenixPrompt/toolCallSchemas";
|
|
17
17
|
import { phoenixToolChoiceSchema } from "./phoenixPrompt/toolChoiceSchemas";
|
|
18
|
-
import {
|
|
18
|
+
import { phoenixToolFunctionDefinitionSchema } from "./phoenixPrompt/toolSchemas";
|
|
19
19
|
import { llmProviderToolDefinitionSchema } from "./schemas";
|
|
20
20
|
import type {
|
|
21
21
|
LLMMessagePart,
|
|
@@ -206,7 +206,7 @@ export const detectToolDefinitionProvider = (
|
|
|
206
206
|
};
|
|
207
207
|
}
|
|
208
208
|
const { success: phoenixSuccess, data: phoenixData } =
|
|
209
|
-
|
|
209
|
+
phoenixToolFunctionDefinitionSchema.safeParse(toolDefinition);
|
|
210
210
|
if (phoenixSuccess) {
|
|
211
211
|
return { provider: "PHOENIX", validatedToolDefinition: phoenixData };
|
|
212
212
|
}
|
package/src/types/prompts.ts
CHANGED
|
@@ -161,11 +161,24 @@ export type PromptChatMessagePart =
|
|
|
161
161
|
| components["schemas"]["ToolCallContentPart"]
|
|
162
162
|
| components["schemas"]["ToolResultContentPart"];
|
|
163
163
|
|
|
164
|
+
export type PromptToolFunction = components["schemas"]["PromptToolFunction"];
|
|
165
|
+
export type PromptToolRaw = components["schemas"]["PromptToolRaw"];
|
|
166
|
+
|
|
164
167
|
/**
|
|
165
168
|
* The Phoenix prompt tool type from the API.
|
|
166
169
|
*/
|
|
167
170
|
export type PromptTool = components["schemas"]["PromptTools"]["tools"][number];
|
|
168
171
|
|
|
172
|
+
export function isPromptToolRaw(tool: PromptTool): tool is PromptToolRaw {
|
|
173
|
+
return tool.type === "raw";
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
export function isPromptToolFunction(
|
|
177
|
+
tool: PromptTool
|
|
178
|
+
): tool is PromptToolFunction {
|
|
179
|
+
return tool.type === "function";
|
|
180
|
+
}
|
|
181
|
+
|
|
169
182
|
/**
|
|
170
183
|
* The Phoenix prompt tool choice type from the API.
|
|
171
184
|
*/
|