UNPKG

@arizeai/phoenix-client

Version:
59 lines 2.26 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.listSessions = listSessions; const tiny_invariant_1 = __importDefault(require("tiny-invariant")); const client_1 = require("../client"); const serverRequirements_1 = require("../constants/serverRequirements"); const projects_1 = require("../types/projects"); const serverVersionUtils_1 = require("../utils/serverVersionUtils"); const sessionUtils_1 = require("./sessionUtils"); const DEFAULT_PAGE_SIZE = 100; /** * List all sessions for a project with automatic pagination handling. * * @requires Phoenix server >= 13.5.0 * * @example * ```ts * import { listSessions } from "@arizeai/phoenix-client/sessions"; * * const sessions = await listSessions({ * project: "my-project", * }); * * for (const session of sessions) { * console.log(`Session: ${session.sessionId}, Traces: ${session.traces.length}`); * } * ``` */ async function listSessions(params) { var _a, _b; const client = params.client || (0, client_1.createClient)(); await (0, serverVersionUtils_1.ensureServerCapability)({ client, requirement: serverRequirements_1.LIST_PROJECT_SESSIONS }); const projectIdentifier = (0, projects_1.resolveProjectIdentifier)(params); const sessions = []; let cursor = null; do { const response = await client.GET("/v1/projects/{project_identifier}/sessions", { params: { path: { project_identifier: projectIdentifier, }, query: { cursor, limit: DEFAULT_PAGE_SIZE, }, }, }); if (response.error) throw response.error; (0, tiny_invariant_1.default)((_a = response.data) === null || _a === void 0 ? void 0 : _a.data, "Failed to list sessions"); cursor = (_b = response.data.next_cursor) !== null && _b !== void 0 ? _b : null; sessions.push(...response.data.data.map(sessionUtils_1.toSession)); } while (cursor != null); return sessions; } //# sourceMappingURL=listSessions.js.map