UNPKG

@yuzumican/jules-api

Version:

Official Node.js client for the Jules API

108 lines 3.65 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.JulesClient = void 0; const axios_1 = __importDefault(require("axios")); class JulesClient { constructor(options) { const { apiKey, baseUrl = 'https://jules.googleapis.com/v1alpha' } = options; this.apiKey = apiKey; this.httpClient = axios_1.default.create({ baseURL: baseUrl, headers: { 'X-Goog-Api-Key': apiKey, 'Content-Type': 'application/json', }, }); } /** * List all available sources * @param nextPageToken - Token for pagination * @returns Promise<ListSourcesResponse> */ async listSources(nextPageToken) { const params = nextPageToken ? { nextPageToken } : {}; const response = await this.httpClient.get('/sources', { params }); return response.data; } /** * Create a new session * @param request - Session creation parameters * @returns Promise<Session> */ async createSession(request) { const response = await this.httpClient.post('/sessions', request); return response.data; } /** * List sessions * @param pageSize - Maximum number of sessions to return * @param nextPageToken - Token for pagination * @returns Promise<ListSessionsResponse> */ async listSessions(pageSize, nextPageToken) { const params = {}; if (pageSize) params.pageSize = pageSize; if (nextPageToken) params.nextPageToken = nextPageToken; const response = await this.httpClient.get('/sessions', { params }); return response.data; } /** * Approve the latest plan for a session * @param sessionId - The session ID * @returns Promise<void> */ async approvePlan(sessionId) { await this.httpClient.post(`/sessions/${sessionId}:approvePlan`); } /** * List activities for a session * @param sessionId - The session ID * @param pageSize - Maximum number of activities to return * @param nextPageToken - Token for pagination * @returns Promise<ListActivitiesResponse> */ async listActivities(sessionId, pageSize, nextPageToken) { const params = {}; if (pageSize) params.pageSize = pageSize; if (nextPageToken) params.nextPageToken = nextPageToken; const response = await this.httpClient.get(`/sessions/${sessionId}/activities`, { params }); return response.data; } /** * Send a message to the agent * @param sessionId - The session ID * @param request - Message parameters * @returns Promise<void> */ async sendMessage(sessionId, request) { await this.httpClient.post(`/sessions/${sessionId}:sendMessage`, request); } /** * Get a specific session * @param sessionId - The session ID * @returns Promise<Session> */ async getSession(sessionId) { const response = await this.httpClient.get(`/sessions/${sessionId}`); return response.data; } /** * Get a specific source * @param sourceId - The source ID * @returns Promise<Source> */ async getSource(sourceId) { const response = await this.httpClient.get(`/sources/${sourceId}`); return response.data; } } exports.JulesClient = JulesClient; exports.default = JulesClient; //# sourceMappingURL=client.js.map