@arizeai/phoenix-client
Version:
A client for the Phoenix API
71 lines • 3.02 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeToolResultPart = exports.asToolResultPart = exports.asToolCallPart = exports.makeTextPart = exports.asTextPart = exports.phoenixContentPartSchema = exports.toolResultPartSchema = exports.toolCallPartSchema = exports.textPartSchema = void 0;
const schemaMatches_1 = require("../../../utils/schemaMatches");
const zod_1 = __importDefault(require("zod"));
exports.textPartSchema = (0, schemaMatches_1.schemaMatches)()(zod_1.default.object({
type: zod_1.default.literal("text"),
text: zod_1.default.string(),
}));
exports.toolCallPartSchema = (0, schemaMatches_1.schemaMatches)()(zod_1.default.object({
type: zod_1.default.literal("tool_call"),
tool_call_id: zod_1.default.string(),
tool_call: zod_1.default.object({
type: zod_1.default.literal("function"),
name: zod_1.default.string(),
arguments: zod_1.default.string(),
}),
}));
exports.toolResultPartSchema = (0, schemaMatches_1.schemaMatches)()(zod_1.default.object({
type: zod_1.default.literal("tool_result"),
tool_call_id: zod_1.default.string(),
tool_result: zod_1.default.union([
zod_1.default.string(),
zod_1.default.number(),
zod_1.default.boolean(),
zod_1.default.null(),
zod_1.default.record(zod_1.default.unknown()),
zod_1.default.array(zod_1.default.unknown()),
]),
}));
exports.phoenixContentPartSchema = (0, schemaMatches_1.schemaMatches)()(zod_1.default.discriminatedUnion("type", [
exports.textPartSchema,
exports.toolCallPartSchema,
exports.toolResultPartSchema,
]));
/*
*
* Creation helpers
*
*/
const asTextPart = (maybePart) => {
const parsed = exports.textPartSchema.safeParse(maybePart);
return parsed.success ? parsed.data : null;
};
exports.asTextPart = asTextPart;
const makeTextPart = (text) => {
const optimisticTextPart = { text: { text } };
const parsed = exports.textPartSchema.safeParse(optimisticTextPart);
return parsed.success ? parsed.data : null;
};
exports.makeTextPart = makeTextPart;
const asToolCallPart = (maybePart) => {
const parsed = exports.toolCallPartSchema.safeParse(maybePart);
return parsed.success ? parsed.data : null;
};
exports.asToolCallPart = asToolCallPart;
const asToolResultPart = (maybePart) => {
const parsed = exports.toolResultPartSchema.safeParse(maybePart);
return parsed.success ? parsed.data : null;
};
exports.asToolResultPart = asToolResultPart;
const makeToolResultPart = (toolCallId, result) => {
const optimisticToolResultPart = { toolResult: { toolCallId, result } };
const parsed = exports.toolResultPartSchema.safeParse(optimisticToolResultPart);
return parsed.success ? parsed.data : null;
};
exports.makeToolResultPart = makeToolResultPart;
//# sourceMappingURL=messagePartSchemas.js.map