@applica-software-guru/persona-sdk 0.1.113 → 0.1.114
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/bundle.cjs.js +1 -1
- package/dist/bundle.cjs.js.map +1 -1
- package/dist/bundle.es.js +316 -274
- package/dist/bundle.es.js.map +1 -1
- package/dist/index.d.ts +75 -0
- package/package.json +1 -1
- package/src/index.ts +6 -0
- package/src/workflows/channels-api.ts +61 -0
- package/src/workflows/types.ts +45 -0
- package/src/workflows/workflows-api.ts +5 -0
- package/tests/channels-api.test.mjs +55 -0
package/dist/bundle.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.es.js","sources":["../src/exceptions.ts","../src/auth/api-key-auth.ts","../src/http-api.ts","../src/projects/projects-api.ts","../src/agents/agents-api.ts","../src/knowledges/knowledge-base-documents-api.ts","../src/knowledges/knowledge-bases-api.ts","../src/workflows/workflow-executions-api.ts","../src/workflows/human-tasks-api.ts","../src/workflows/workflows-api.ts","../src/credentials/credentials-api.ts","../src/features/feature-templates-api.ts","../src/features/features-api.ts","../src/triggers/trigger-executions-api.ts","../src/triggers/triggers-api.ts","../src/service-prices/service-prices-api.ts","../src/markup-rules/markup-rules-api.ts","../src/providers/providers-api.ts","../src/sessions/sessions-api.ts","../src/missions/missions-api.ts","../src/billing/billing-client.ts","../src/values/values-api.ts","../src/persona-sdk.ts","../src/auth/bearer-token-auth.ts"],"sourcesContent":["export class ApiException extends Error {\n public readonly statusCode: number;\n public readonly body: string;\n\n constructor(statusCode: number, body: string) {\n super(`API Error: ${statusCode} - ${body}`);\n this.statusCode = statusCode;\n this.body = body;\n }\n}\n","import { AuthenticationProvider } from './authentication-provider';\n\nexport class ApiKeyAuthenticationProvider implements AuthenticationProvider {\n constructor(private readonly apiKey: string) {}\n\n applyHeaders(headers: Headers): void {\n headers.set('x-persona-apikey', this.apiKey);\n }\n\n getCredentials(): string {\n return this.apiKey;\n }\n}\n","import { ApiException } from './exceptions';\nimport { AuthenticationProvider } from './auth/authentication-provider';\nimport { ApiKeyAuthenticationProvider } from './auth/api-key-auth';\n\nexport abstract class HttpApi {\n private readonly baseUrl: string;\n private readonly authProvider: AuthenticationProvider;\n\n constructor(baseUrl: string, apiKey: string | AuthenticationProvider) {\n this.baseUrl = baseUrl;\n this.authProvider = typeof apiKey === 'string' ? new ApiKeyAuthenticationProvider(apiKey) : apiKey;\n }\n\n protected getBaseUrl(): string {\n return this.baseUrl;\n }\n\n protected getAuthProvider(): AuthenticationProvider {\n return this.authProvider;\n }\n\n protected normalizePageParams(page?: number, size?: number): { page: number; size: number } {\n return {\n page: page === undefined || page < 1 ? 1 : page,\n size: size === undefined || size < 1 ? 20 : size,\n };\n }\n\n private buildHeaders(): Headers {\n const headers = new Headers();\n headers.set('Content-Type', 'application/json');\n this.authProvider.applyHeaders(headers);\n return headers;\n }\n\n private buildUrl(path: string, params?: Record<string, unknown>): string {\n const url = new URL(this.baseUrl + path);\n if (params) {\n Object.entries(params).forEach(([key, value]) => {\n if (value !== null && value !== undefined) {\n url.searchParams.set(key, String(value));\n }\n });\n }\n return url.toString();\n }\n\n private async handleResponse<T>(response: Response): Promise<T> {\n if (!response.ok) {\n const body = await response.text();\n throw new ApiException(response.status, body);\n }\n const text = await response.text();\n return text ? JSON.parse(text) : (undefined as T);\n }\n\n protected async httpGet<T>(path: string, params?: Record<string, unknown>): Promise<T> {\n const response = await fetch(this.buildUrl(path, params), {\n method: 'GET',\n headers: this.buildHeaders(),\n });\n return this.handleResponse<T>(response);\n }\n\n protected async httpPost<T>(path: string, body?: unknown, params?: Record<string, unknown>): Promise<T> {\n const response = await fetch(this.buildUrl(path, params), {\n method: 'POST',\n headers: this.buildHeaders(),\n body: body ? JSON.stringify(body) : undefined,\n });\n return this.handleResponse<T>(response);\n }\n\n protected async httpPut<T>(path: string, body: unknown): Promise<T> {\n const response = await fetch(this.baseUrl + path, {\n method: 'PUT',\n headers: this.buildHeaders(),\n body: JSON.stringify(body),\n });\n return this.handleResponse<T>(response);\n }\n\n protected async httpPatch<T>(path: string, body: unknown): Promise<T> {\n const response = await fetch(this.baseUrl + path, {\n method: 'PATCH',\n headers: this.buildHeaders(),\n body: JSON.stringify(body),\n });\n return this.handleResponse<T>(response);\n }\n\n protected async httpDelete(path: string): Promise<void> {\n const response = await fetch(this.baseUrl + path, {\n method: 'DELETE',\n headers: this.buildHeaders(),\n });\n if (!response.ok) {\n const body = await response.text();\n throw new ApiException(response.status, body);\n }\n }\n}\n","import { HttpApi } from '../http-api';\nimport { ApiException } from '../exceptions';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n Project,\n ProjectCreateRequest,\n ProjectUpdateRequest,\n ProjectDuplicateRequest,\n ProjectSubscription,\n ChangeProjectSubscriptionPlanRequest,\n AddProjectSubscriptionCreditsRequest,\n SetProjectSubscriptionInfiniteCreditsRequest,\n} from './types';\n\nexport class ProjectsApi extends HttpApi {\n private readonly billingBaseUrl: string;\n\n constructor(baseUrl: string, auth: string | AuthenticationProvider, billingBaseUrl?: string) {\n super(baseUrl, auth);\n this.billingBaseUrl = (billingBaseUrl || baseUrl).replace(/\\/$/, '');\n }\n\n async list(keyword: string | null, page: number, size: number): Promise<Paginated<Project>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<Project>>('/projects', params);\n }\n\n async get(projectId: string): Promise<Project> {\n return this.httpGet<Project>('/projects/' + projectId);\n }\n\n async getMine(): Promise<Project> {\n return this.httpGet<Project>('/projects/mine');\n }\n\n async create(request: ProjectCreateRequest): Promise<Project> {\n return this.httpPost<Project>('/projects', request);\n }\n\n async update(request: ProjectUpdateRequest): Promise<Project> {\n return this.httpPut<Project>('/projects/' + request.projectId, request);\n }\n\n async remove(projectId: string): Promise<void> {\n await this.httpDelete('/projects/' + projectId);\n }\n\n async duplicate(projectId: string, request: ProjectDuplicateRequest): Promise<Project> {\n return this.httpPost<Project>('/projects/' + projectId + '/actions/duplicate', request);\n }\n\n async getSubscription(projectId: string): Promise<ProjectSubscription> {\n return this.billingRequest<ProjectSubscription>('/projects/' + projectId + '/subscription', 'GET');\n }\n\n async changeSubscriptionPlan(projectId: string, request: ChangeProjectSubscriptionPlanRequest): Promise<ProjectSubscription> {\n return this.billingRequest<ProjectSubscription>('/projects/' + projectId + '/subscription/actions/change-plan', 'POST', request);\n }\n\n async addSubscriptionCredits(projectId: string, request: AddProjectSubscriptionCreditsRequest): Promise<ProjectSubscription> {\n return this.billingRequest<ProjectSubscription>('/projects/' + projectId + '/subscription/actions/add-credits', 'POST', request);\n }\n\n async setInfiniteCredits(projectId: string, request: SetProjectSubscriptionInfiniteCreditsRequest): Promise<ProjectSubscription> {\n return this.billingRequest<ProjectSubscription>('/projects/' + projectId + '/subscription/actions/set-infinite-credits', 'POST', request);\n }\n\n private async billingRequest<T>(path: string, method: string, body?: unknown): Promise<T> {\n const headers = new Headers();\n headers.set('Content-Type', 'application/json');\n this.getAuthProvider().applyHeaders(headers);\n\n const response = await fetch(this.billingBaseUrl + path, {\n method,\n headers,\n body: body ? JSON.stringify(body) : undefined,\n });\n\n if (!response.ok) {\n const text = await response.text();\n throw new ApiException(response.status, text);\n }\n\n const text = await response.text();\n return text ? JSON.parse(text) : (undefined as T);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n Agent,\n AgentCreateRequest,\n AgentUpdateRequest,\n SynthesizerVoice,\n Revision,\n} from './types';\n\nexport class AgentsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number, extraParams?: Record<string, string>): Promise<Paginated<Agent>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s, ...extraParams };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<Agent>>('/agents', params);\n }\n\n async get(agentId: string): Promise<Agent> {\n return this.httpGet<Agent>('/agents/' + agentId);\n }\n\n async create(request: AgentCreateRequest): Promise<Agent> {\n return this.httpPost<Agent>('/agents', request);\n }\n\n async update(request: AgentUpdateRequest): Promise<Agent> {\n return this.httpPut<Agent>('/agents/' + request.id, request);\n }\n\n async remove(agentId: string): Promise<void> {\n await this.httpDelete('/agents/' + agentId);\n }\n\n async getSynthesizerSupportedVoices(synthesizerName: string): Promise<SynthesizerVoice[]> {\n return this.httpGet<SynthesizerVoice[]>('/values/synthesizers/' + synthesizerName + '/voices');\n }\n\n async listRevisions(agentId: string): Promise<Revision[]> {\n return this.httpGet<Revision[]>('/agents/' + agentId + '/revisions');\n }\n\n async getRevision(agentId: string, revisionId: string): Promise<Revision> {\n return this.httpGet<Revision>('/agents/' + agentId + '/revisions/' + revisionId);\n }\n\n async rollback(agentId: string, revisionId: string): Promise<Agent> {\n return this.httpPost<Agent>('/agents/' + agentId + '/revisions/' + revisionId + '/rollback', {});\n }\n\n async generateSystemInstructions(prompt: string, sessionId?: string): Promise<string> {\n const body: Record<string, unknown> = { prompt };\n if (sessionId) body.sessionId = sessionId;\n const result = await this.httpPost<{ instructions: string }>('/agents/system-instructions', body);\n return result.instructions;\n }\n\n async getArchitect(): Promise<Agent> {\n return this.httpGet<Agent>('/agents/architect');\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n KnowledgeBaseDocument,\n KnowledgeBaseDocumentUploadRequest,\n} from './types';\n\nexport class KnowledgeBaseDocumentsApi extends HttpApi {\n private readonly knowledgeBaseId: string;\n\n constructor(baseUrl: string, auth: string | AuthenticationProvider, knowledgeBaseId: string) {\n super(baseUrl, auth);\n this.knowledgeBaseId = knowledgeBaseId;\n }\n\n async list(keyword?: string | null, page?: number, size?: number): Promise<Paginated<KnowledgeBaseDocument>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<KnowledgeBaseDocument>>('/knowledge-bases/' + this.knowledgeBaseId + '/documents', params);\n }\n\n async upload(request: KnowledgeBaseDocumentUploadRequest): Promise<KnowledgeBaseDocument> {\n return this.httpPost<KnowledgeBaseDocument>('/knowledge-bases/' + this.knowledgeBaseId + '/documents', request);\n }\n\n async get(documentId: string): Promise<KnowledgeBaseDocument> {\n return this.httpGet<KnowledgeBaseDocument>('/knowledge-bases/' + this.knowledgeBaseId + '/documents/' + documentId);\n }\n\n async reprocess(documentId: string): Promise<KnowledgeBaseDocument> {\n return this.httpPost<KnowledgeBaseDocument>('/knowledge-bases/' + this.knowledgeBaseId + '/documents', { document_id: documentId });\n }\n\n async remove(documentId: string): Promise<void> {\n await this.httpDelete('/knowledge-bases/' + this.knowledgeBaseId + '/documents/' + documentId);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n KnowledgeBase,\n KnowledgeBaseCreateRequest,\n KnowledgeBaseUpdateRequest,\n ChunkResult,\n SearchChunksRequest,\n} from './types';\nimport { KnowledgeBaseDocumentsApi } from './knowledge-base-documents-api';\n\nexport class KnowledgeBasesApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number, extraParams?: Record<string, string>): Promise<Paginated<KnowledgeBase>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s, ...extraParams };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<KnowledgeBase>>('/knowledge-bases', params);\n }\n\n async get(id: string): Promise<KnowledgeBase> {\n return this.httpGet<KnowledgeBase>('/knowledge-bases/' + id);\n }\n\n async create(request: KnowledgeBaseCreateRequest): Promise<KnowledgeBase> {\n return this.httpPost<KnowledgeBase>('/knowledge-bases', request);\n }\n\n async update(request: KnowledgeBaseUpdateRequest): Promise<KnowledgeBase> {\n return this.httpPut<KnowledgeBase>('/knowledge-bases/' + request.id, request);\n }\n\n async remove(id: string): Promise<void> {\n await this.httpDelete('/knowledge-bases/' + id);\n }\n\n documents(knowledgeBaseId: string): KnowledgeBaseDocumentsApi {\n return new KnowledgeBaseDocumentsApi(this.getBaseUrl(), this.getAuthProvider(), knowledgeBaseId);\n }\n\n async searchChunks(id: string, request: SearchChunksRequest): Promise<ChunkResult[]> {\n return this.httpPost<ChunkResult[]>('/knowledge-bases/' + id + '/search', request);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { Execution, ExecuteRequest } from './types';\n\nexport class WorkflowExecutionsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(workflowId: string, page?: number, size?: number): Promise<Paginated<Execution>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n return this.httpGet<Paginated<Execution>>('/workflows/' + workflowId + '/executions', params);\n }\n\n async get(workflowId: string, executionId: string): Promise<Execution> {\n return this.httpGet<Execution>('/workflows/' + workflowId + '/executions/' + executionId);\n }\n\n async run(workflowId: string, request: ExecuteRequest): Promise<Execution> {\n return this.httpPost<Execution>('/workflows/' + workflowId + '/executions', request);\n }\n\n async queue(workflowId: string, request: ExecuteRequest): Promise<Execution> {\n return this.httpPost<Execution>('/workflows/' + workflowId + '/executions/queue', request);\n }\n\n /** Runs across all workflows in the project (filter by status/workflow/date). */\n async listRuns(filters: {\n status?: string;\n workflowId?: string;\n dateFrom?: string;\n dateTo?: string;\n page?: number;\n size?: number;\n } = {}): Promise<Paginated<Execution>> {\n const { page, size } = this.normalizePageParams(filters.page, filters.size);\n const params: Record<string, unknown> = { page, size };\n if (filters.status) params.status = filters.status;\n if (filters.workflowId) params.workflowId = filters.workflowId;\n if (filters.dateFrom) params.dateFrom = filters.dateFrom;\n if (filters.dateTo) params.dateTo = filters.dateTo;\n return this.httpGet<Paginated<Execution>>('/executions', params);\n }\n\n /** Request cancellation of a running/waiting execution (cascades to sub-workflows). */\n async cancel(workflowId: string, executionId: string): Promise<Execution> {\n return this.httpPost<Execution>(\n '/workflows/' + workflowId + '/executions/' + executionId + '/cancel',\n {},\n );\n }\n\n /** Re-run an execution from a given node. mode: 'reuse_outputs' | 'fresh'. */\n async rerun(\n workflowId: string,\n executionId: string,\n fromNodeId: string,\n mode: 'reuse_outputs' | 'fresh' = 'reuse_outputs',\n ): Promise<Execution> {\n return this.httpPost<Execution>(\n '/workflows/' + workflowId + '/executions/' + executionId + '/rerun',\n { fromNodeId, mode },\n );\n }\n\n /** Execute a single node in isolation with the given inputs (debugging). */\n async dryRunNode(\n workflowId: string,\n nodeId: string,\n inputs: Record<string, unknown> = {},\n ): Promise<Record<string, unknown>> {\n return this.httpPost<Record<string, unknown>>(\n '/workflows/' + workflowId + '/nodes/' + nodeId + '/dry-run',\n { inputs },\n );\n }\n\n /** Normalized action trace of an agent step (reasoning, tool calls, messages). */\n async stepTrace(\n workflowId: string,\n executionId: string,\n stepId: string,\n page?: number,\n size?: number,\n ): Promise<Record<string, unknown>> {\n const { page: p, size: s } = this.normalizePageParams(page, size ?? 200);\n return this.httpGet<Record<string, unknown>>(\n '/workflows/' + workflowId + '/executions/' + executionId + '/steps/' + stepId + '/trace',\n { page: p, size: s },\n );\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { HumanTask } from './types';\n\n/**\n * Human-in-the-loop tasks. A task is created when a workflow step\n * suspends waiting for a human (a declared `human` node or an agent\n * escalation); responding to it resumes the run. Lives on the workflows\n * service.\n */\nexport class HumanTasksApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n /** The project's human-task inbox. */\n async list(\n filters: {\n status?: string;\n assignee?: string;\n workflowId?: string;\n executionId?: string;\n page?: number;\n size?: number;\n } = {},\n ): Promise<Paginated<HumanTask>> {\n const { page, size } = this.normalizePageParams(filters.page, filters.size ?? 50);\n const params: Record<string, unknown> = { page, size };\n if (filters.status ?? 'pending') params.status = filters.status ?? 'pending';\n if (filters.assignee) params.assignee = filters.assignee;\n if (filters.workflowId) params.workflowId = filters.workflowId;\n if (filters.executionId) params.executionId = filters.executionId;\n return this.httpGet<Paginated<HumanTask>>('/human-tasks', params);\n }\n\n /** Answer a pending human task, resuming the suspended workflow execution. */\n async respond(humanTaskId: string, response: unknown, respondedBy?: string): Promise<HumanTask> {\n return this.httpPost<HumanTask>('/human-tasks/' + humanTaskId + '/respond', {\n response,\n respondedBy,\n });\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { Revision } from '../revisions/types';\nimport { Workflow } from './types';\nimport { WorkflowExecutionsApi } from './workflow-executions-api';\nimport { HumanTasksApi } from './human-tasks-api';\n\nexport class WorkflowsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number, extraParams?: Record<string, string>): Promise<Paginated<Workflow>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s, ...extraParams };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<Workflow>>('/workflows', params);\n }\n\n async create(workflow: Workflow): Promise<Workflow> {\n return this.httpPost<Workflow>('/workflows', workflow);\n }\n\n async update(workflowId: string, workflow: Workflow): Promise<Workflow> {\n workflow.id = workflowId;\n return this.httpPut<Workflow>('/workflows/' + workflowId, workflow);\n }\n\n async remove(workflowId: string): Promise<void> {\n await this.httpDelete('/workflows/' + workflowId);\n }\n\n async get(workflowId: string): Promise<Workflow> {\n return this.httpGet<Workflow>('/workflows/' + workflowId);\n }\n\n executions(): WorkflowExecutionsApi {\n return new WorkflowExecutionsApi(this.getBaseUrl(), this.getAuthProvider());\n }\n\n humanTasks(): HumanTasksApi {\n return new HumanTasksApi(this.getBaseUrl(), this.getAuthProvider());\n }\n\n async listRevisions(workflowId: string): Promise<Revision[]> {\n return this.httpGet<Revision[]>('/workflows/' + workflowId + '/revisions');\n }\n\n async getRevision(workflowId: string, revisionId: string): Promise<Revision> {\n return this.httpGet<Revision>('/workflows/' + workflowId + '/revisions/' + revisionId);\n }\n\n async rollback(workflowId: string, revisionId: string): Promise<Workflow> {\n return this.httpPost<Workflow>('/workflows/' + workflowId + '/revisions/' + revisionId + '/rollback', {});\n }\n}\n","import { HttpApi } from '../http-api';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n Credentials,\n AuthorizeRequest,\n AuthorizeResponse,\n OAuth2CallbackResponse,\n} from './types';\n\nexport class CredentialsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async authorize(provider: string, request: AuthorizeRequest): Promise<AuthorizeResponse> {\n return this.httpPost<AuthorizeResponse>('/credentials/' + provider + '/authorize', request);\n }\n\n async handleOAuth2Callback(provider: string, code: string, state: string, scope?: string): Promise<OAuth2CallbackResponse> {\n const params: Record<string, unknown> = { code, state };\n if (scope) params.scope = scope;\n return this.httpGet<OAuth2CallbackResponse>('/credentials/' + provider + '/oauth2/callback', params);\n }\n\n async list(): Promise<Credentials[]> {\n return this.httpGet<Credentials[]>('/credentials');\n }\n\n async getByProvider(provider: string): Promise<Credentials[]> {\n return this.httpGet<Credentials[]>('/credentials/' + provider);\n }\n\n async getById(credentialsId: string): Promise<Credentials> {\n return this.httpGet<Credentials>('/credentials/all/' + credentialsId);\n }\n\n async remove(credentialsId: string): Promise<void> {\n await this.httpDelete('/credentials/all/' + credentialsId);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { FeatureTemplate, McpToolsResponse } from './types';\nimport { McpServerConfiguration } from '../agents/types';\n\nexport class FeatureTemplatesApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number, extraParams?: Record<string, string>): Promise<Paginated<FeatureTemplate>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s, ...extraParams };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<FeatureTemplate>>('/features/templates', params);\n }\n\n async get(templateId: string): Promise<FeatureTemplate> {\n return this.httpGet<FeatureTemplate>('/features/templates/' + templateId);\n }\n\n async create(template: FeatureTemplate): Promise<FeatureTemplate> {\n return this.httpPost<FeatureTemplate>('/features/templates', template);\n }\n\n async update(templateId: string, template: FeatureTemplate): Promise<FeatureTemplate> {\n return this.httpPut<FeatureTemplate>('/features/templates/' + templateId, template);\n }\n\n async patch(templateId: string, template: FeatureTemplate): Promise<FeatureTemplate> {\n return this.httpPatch<FeatureTemplate>('/features/templates/' + templateId, template);\n }\n\n async remove(templateId: string): Promise<void> {\n await this.httpDelete('/features/templates/' + templateId);\n }\n\n async getMcpAvailableTools(configuration: McpServerConfiguration, credentialsId?: string): Promise<McpToolsResponse> {\n const params = credentialsId ? { credentialsId } : undefined;\n return this.httpPost<McpToolsResponse>('/features/templates/mcp/available-tools', configuration, params);\n }\n}\n","import { AuthenticationProvider } from '../auth/authentication-provider';\nimport { FeatureTemplatesApi } from './feature-templates-api';\n\nexport class FeaturesApi {\n private readonly baseUrl: string;\n private readonly auth: string | AuthenticationProvider;\n\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n this.baseUrl = baseUrl;\n this.auth = auth;\n }\n\n templates(): FeatureTemplatesApi {\n return new FeatureTemplatesApi(this.baseUrl, this.auth);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { TriggerExecutionResult } from './types';\n\nexport class TriggerExecutionsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(triggerId: string, page?: number, size?: number): Promise<Paginated<TriggerExecutionResult>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n return this.httpGet<Paginated<TriggerExecutionResult>>('/triggers/' + triggerId + '/executions', params);\n }\n\n async execute(triggerId: string, execution: TriggerExecutionResult): Promise<TriggerExecutionResult> {\n return this.httpPost<TriggerExecutionResult>('/triggers/' + triggerId + '/executions', execution);\n }\n\n async get(executionId: string): Promise<TriggerExecutionResult> {\n return this.httpGet<TriggerExecutionResult>('/triggers/executions/' + executionId);\n }\n\n async remove(executionId: string): Promise<void> {\n await this.httpDelete('/triggers/executions/' + executionId);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { Trigger } from './types';\nimport { TriggerExecutionsApi } from './trigger-executions-api';\n\nexport class TriggersApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number, extraParams?: Record<string, string>): Promise<Paginated<Trigger>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s, ...extraParams };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<Trigger>>('/triggers', params);\n }\n\n async create(trigger: Trigger): Promise<Trigger> {\n return this.httpPost<Trigger>('/triggers', trigger);\n }\n\n async update(triggerId: string, trigger: Trigger): Promise<Trigger> {\n return this.httpPut<Trigger>('/triggers/' + triggerId, trigger);\n }\n\n async remove(triggerId: string): Promise<void> {\n await this.httpDelete('/triggers/' + triggerId);\n }\n\n async get(triggerId: string): Promise<Trigger> {\n return this.httpGet<Trigger>('/triggers/' + triggerId);\n }\n\n executions(): TriggerExecutionsApi {\n return new TriggerExecutionsApi(this.getBaseUrl(), this.getAuthProvider());\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { ServicePrice, ServicePriceListParams, ServicePriceStats, ServicePriceStatsParams } from './types';\n\nexport class ServicePricesApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(\n keyword?: string | null,\n page?: number,\n size?: number,\n extraParams?: ServicePriceListParams\n ): Promise<Paginated<ServicePrice>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s, ...extraParams };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<ServicePrice>>('/service-prices', params);\n }\n\n async getStats(params: ServicePriceStatsParams = {}): Promise<ServicePriceStats> {\n return this.httpGet<ServicePriceStats>('/service-prices/stats', { ...params });\n }\n\n async get(id: string): Promise<ServicePrice> {\n return this.httpGet<ServicePrice>('/service-prices/' + id);\n }\n\n async create(servicePrice: ServicePrice): Promise<ServicePrice> {\n return this.httpPost<ServicePrice>('/service-prices', servicePrice);\n }\n\n async update(id: string, servicePrice: ServicePrice): Promise<ServicePrice> {\n return this.httpPut<ServicePrice>('/service-prices/' + id, servicePrice);\n }\n\n async remove(id: string): Promise<void> {\n await this.httpDelete('/service-prices/' + id);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { MarkupRule } from './types';\n\n/**\n * Markup rules (super admin only). Markup no longer lives on the ServicePrice:\n * rules are {pattern, percentage}, global or per-project, matched against usage\n * service codes (most-specific-wins, \"*\" fallback).\n */\nexport class MarkupRulesApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(projectId?: string | null, keyword?: string | null, page?: number, size?: number): Promise<Paginated<MarkupRule>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n if (projectId) params.projectId = projectId;\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<MarkupRule>>('/markup-rules', params);\n }\n\n async get(id: string): Promise<MarkupRule> {\n return this.httpGet<MarkupRule>('/markup-rules/' + id);\n }\n\n async create(markupRule: MarkupRule): Promise<MarkupRule> {\n return this.httpPost<MarkupRule>('/markup-rules', markupRule);\n }\n\n async update(id: string, markupRule: MarkupRule): Promise<MarkupRule> {\n return this.httpPut<MarkupRule>('/markup-rules/' + id, markupRule);\n }\n\n async remove(id: string): Promise<void> {\n await this.httpDelete('/markup-rules/' + id);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { Provider, ProviderModel } from './types';\n\n/**\n * Managed LLM providers (super admin only). Providers bind a litellm provider\n * name to its credentials; global or per-project (override). API keys are stored\n * encrypted and returned masked.\n */\nexport class ProvidersApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(projectId?: string | null, keyword?: string | null, page?: number, size?: number): Promise<Paginated<Provider>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n if (projectId) params.projectId = projectId;\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<Provider>>('/providers', params);\n }\n\n async get(id: string): Promise<Provider> {\n return this.httpGet<Provider>('/providers/' + id);\n }\n\n async create(provider: Provider): Promise<Provider> {\n return this.httpPost<Provider>('/providers', provider);\n }\n\n async update(id: string, provider: Provider): Promise<Provider> {\n return this.httpPut<Provider>('/providers/' + id, provider);\n }\n\n async remove(id: string): Promise<void> {\n await this.httpDelete('/providers/' + id);\n }\n\n /** Provider names litellm supports (for the \"add provider\" picker). Admin. */\n async available(): Promise<string[]> {\n return this.httpGet<string[]>('/providers/available');\n }\n\n /** Names of providers configured for the caller (global + their project), no\n * credentials. Authenticated (not admin) — for the model selector. */\n async names(): Promise<string[]> {\n return this.httpGet<string[]>('/provider-names');\n }\n\n /** Model suggestions (chat, with capabilities) for a provider, from litellm. */\n async models(provider: string): Promise<ProviderModel[]> {\n return this.httpGet<ProviderModel[]>('/provider-models', { provider });\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n Session,\n GenerationRequest,\n GenerationResponse,\n Message,\n CommittedUsage,\n AgentStateInfo,\n SteerAccepted,\n} from './types';\n\nexport class SessionsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(\n keyword?: string | null,\n status?: string | null,\n agentId?: string | null,\n userId?: string | null,\n page?: number,\n size?: number,\n ): Promise<Paginated<Session>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n if (keyword) params.keyword = keyword;\n if (status) params.status = status;\n if (agentId) params.agentId = agentId;\n if (userId) params.userId = userId;\n return this.httpGet<Paginated<Session>>('/sessions', params);\n }\n\n async get(sessionId: string): Promise<Session> {\n return this.httpGet<Session>('/sessions/' + sessionId);\n }\n\n async getUsage(sessionId: string): Promise<CommittedUsage[]> {\n return this.httpGet<CommittedUsage[]>('/sessions/' + sessionId + '/usage');\n }\n\n async generateMessage(code: string, request: GenerationRequest): Promise<GenerationResponse> {\n return this.httpPost<GenerationResponse>('/sessions/' + code + '/messages', request);\n }\n\n async findMessages(code: string, page?: number, size?: number): Promise<Paginated<Message>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n return this.httpGet<Paginated<Message>>('/sessions/' + code + '/messages', params);\n }\n\n async remove(code: string): Promise<void> {\n await this.httpDelete('/sessions/' + code);\n }\n\n async rename(sessionId: string, name: string): Promise<Session> {\n return this.httpPut<Session>('/sessions/' + sessionId + '/name', { name });\n }\n\n // ─── Agent Execution Lifecycle ────────────────────────────────\n\n /**\n * Get the current state of the agent execution for a session.\n */\n async getAgentState(code: string): Promise<AgentStateInfo> {\n return this.httpGet<AgentStateInfo>('/sessions/' + encodeURIComponent(code) + '/agent-state');\n }\n\n /**\n * Cancel a running agent execution for a session.\n */\n async cancelExecution(code: string): Promise<{ status: string; sessionId: string }> {\n return this.httpPost<{ status: string; sessionId: string }>(\n '/sessions/' + encodeURIComponent(code) + '/cancel',\n {},\n );\n }\n\n /**\n * Steer a running agent execution by injecting an instruction.\n */\n async steerExecution(code: string, text: string): Promise<SteerAccepted> {\n return this.httpPost<SteerAccepted>(\n '/sessions/' + encodeURIComponent(code) + '/steer',\n { text },\n );\n }\n}\n","import { HttpApi } from '../http-api';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { Paginated } from '../paginated';\nimport { Mission } from './types';\n\nexport class MissionsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number, status?: string | null): Promise<Paginated<Mission>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n if (keyword) params.keyword = keyword;\n if (status) params.status = status;\n return this.httpGet<Paginated<Mission>>('/missions', params);\n }\n\n async get(missionId: string): Promise<Mission> {\n return this.httpGet<Mission>('/missions/' + missionId);\n }\n\n async create(mission: Mission): Promise<Mission> {\n return this.httpPost<Mission>('/missions', mission);\n }\n\n async update(missionId: string, mission: Mission): Promise<Mission> {\n return this.httpPut<Mission>('/missions/' + missionId, mission);\n }\n\n async remove(missionId: string): Promise<void> {\n await this.httpDelete('/missions/' + missionId);\n }\n\n async generate(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/generate');\n }\n\n async execute(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/execute');\n }\n\n async retry(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/retry');\n }\n\n async replan(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/replan');\n }\n\n async sendInstruction(missionId: string, instruction: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/instructions', { instruction });\n }\n\n async stop(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/stop');\n }\n\n async resume(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/continue');\n }\n}\n","import { AuthenticationProvider } from '../auth/authentication-provider';\nimport { ApiException } from '../exceptions';\nimport {\n Customer,\n Subscription,\n Invoice,\n CreateCustomerRequest,\n UpdateCustomerRequest,\n CreateSubscriptionRequest,\n UpgradeSubscriptionRequest,\n DowngradeSubscriptionRequest,\n MentorizeSubscriptionRequest,\n UsageStats,\n UsagePage,\n} from './types';\n\nexport class BillingClient {\n private readonly baseUrl: string;\n private readonly authProvider: AuthenticationProvider | string | null;\n\n constructor(baseUrl?: string, auth?: string | AuthenticationProvider | null) {\n this.baseUrl = (baseUrl || 'https://persona.applica.guru/billing').replace(/\\/$/, '');\n this.authProvider = auth ?? null;\n }\n\n private buildHeaders(): Headers {\n const headers = new Headers();\n headers.set('Content-Type', 'application/json');\n if (this.authProvider) {\n if (typeof this.authProvider === 'string') {\n headers.set('x-persona-apikey', this.authProvider);\n } else {\n this.authProvider.applyHeaders(headers);\n }\n }\n return headers;\n }\n\n private async request<T>(path: string, method: string, body?: unknown): Promise<T> {\n const response = await fetch(this.baseUrl + path, {\n method,\n headers: this.buildHeaders(),\n body: body ? JSON.stringify(body) : undefined,\n });\n if (!response.ok) {\n const text = await response.text();\n throw new ApiException(response.status, text);\n }\n const text = await response.text();\n return text ? JSON.parse(text) : (undefined as T);\n }\n\n async createCustomer(request: CreateCustomerRequest): Promise<Customer> {\n return this.request<Customer>('/customers', 'POST', request);\n }\n\n async updateCustomer(owner: string, request: UpdateCustomerRequest): Promise<Customer> {\n return this.request<Customer>('/customers/' + owner, 'PUT', request);\n }\n\n async getCustomer(owner: string): Promise<Customer> {\n return this.request<Customer>('/customers/' + owner, 'GET');\n }\n\n async saveCustomer(customer: Customer): Promise<Customer> {\n return this.request<Customer>('/customers', 'POST', customer);\n }\n\n async deleteCustomer(owner: string): Promise<void> {\n await this.request<void>('/customers/' + owner, 'DELETE');\n }\n\n async createSubscription(request: CreateSubscriptionRequest): Promise<Subscription> {\n return this.request<Subscription>('/customers/' + request.owner + '/subscription', 'POST', request);\n }\n\n async getSubscription(owner: string): Promise<Subscription> {\n return this.request<Subscription>('/customers/' + owner + '/subscription', 'GET');\n }\n\n async getProjectSubscription(projectId: string): Promise<Subscription> {\n return this.request<Subscription>('/projects/' + projectId + '/subscription', 'GET');\n }\n\n async changeProjectSubscriptionPlan(projectId: string, request: { toPlanType: string }): Promise<Subscription> {\n return this.request<Subscription>('/projects/' + projectId + '/subscription/actions/change-plan', 'POST', request);\n }\n\n async addProjectSubscriptionCredits(projectId: string, request: { credits: number }): Promise<Subscription> {\n return this.request<Subscription>('/projects/' + projectId + '/subscription/actions/add-credits', 'POST', request);\n }\n\n async beginUpgrade(owner: string, request: UpgradeSubscriptionRequest): Promise<Subscription> {\n return this.request<Subscription>('/customers/' + owner + '/subscription/actions/upgrade', 'POST', request);\n }\n\n async downgrade(owner: string, request: DowngradeSubscriptionRequest): Promise<Subscription> {\n return this.request<Subscription>('/customers/' + owner + '/subscription/actions/downgrade', 'POST', request);\n }\n\n async mentorize(owner: string, request: MentorizeSubscriptionRequest): Promise<Subscription> {\n return this.request<Subscription>('/customers/' + owner + '/subscription/actions/mentorize', 'POST', request);\n }\n\n async addCredits(owner: string, credits: number): Promise<Subscription> {\n return this.request<Subscription>('/customers/' + owner + '/subscription/credits', 'POST', { credits });\n }\n\n async useCredits(\n owner: string,\n credits: number,\n services: string[],\n referenceId?: string,\n totalCost?: number,\n totalPrice?: number,\n ): Promise<Subscription> {\n const body: Record<string, unknown> = { credits, services };\n if (referenceId) body.referenceId = referenceId;\n if (totalCost !== undefined) body.totalCost = totalCost;\n if (totalPrice !== undefined) body.totalPrice = totalPrice;\n return this.request<Subscription>('/customers/' + owner + '/subscription/credits', 'DELETE', body);\n }\n\n async getCredits(owner: string): Promise<number> {\n try {\n const result = await this.request<{ credits?: number }>('/customers/' + owner + '/subscription/credits', 'GET');\n return result.credits ?? 0;\n } catch {\n return 0;\n }\n }\n\n async isValid(owner: string): Promise<boolean> {\n try {\n const result = await this.request<{ valid?: boolean }>('/customers/' + owner + '/subscription/valid', 'GET');\n return result.valid ?? false;\n } catch {\n return false;\n }\n }\n\n async listInvoices(owner: string, dateFrom?: string, dateTo?: string): Promise<Invoice[]> {\n const params: string[] = [];\n if (dateFrom) params.push('date_from=' + dateFrom);\n if (dateTo) params.push('date_to=' + dateTo);\n const query = params.length > 0 ? '?' + params.join('&') : '';\n return this.request<Invoice[]>('/customers/' + owner + '/invoices' + query, 'GET');\n }\n\n async cancelSubscription(owner: string): Promise<Subscription> {\n return this.request<Subscription>('/customers/' + owner + '/subscription/actions/cancel', 'POST', {});\n }\n\n async getUsageStats(projectId: string, dateFrom?: string, dateTo?: string, models?: string[]): Promise<UsageStats> {\n const params: string[] = [];\n if (dateFrom) params.push('date_from=' + encodeURIComponent(dateFrom));\n if (dateTo) params.push('date_to=' + encodeURIComponent(dateTo));\n if (models?.length) models.forEach(m => params.push('model=' + encodeURIComponent(m)));\n const query = params.length > 0 ? '?' + params.join('&') : '';\n return this.request<UsageStats>('/projects/' + projectId + '/subscription/usage-stats' + query, 'GET');\n }\n\n async listUsages(\n projectId: string,\n dateFrom?: string,\n dateTo?: string,\n models?: string[],\n sessionId?: string,\n page?: number,\n size?: number,\n ): Promise<UsagePage> {\n const params: string[] = [];\n if (dateFrom) params.push('date_from=' + encodeURIComponent(dateFrom));\n if (dateTo) params.push('date_to=' + encodeURIComponent(dateTo));\n if (models?.length) models.forEach(m => params.push('model=' + encodeURIComponent(m)));\n if (sessionId) params.push('session_id=' + encodeURIComponent(sessionId));\n if (page !== undefined) params.push('page=' + encodeURIComponent(String(page)));\n if (size !== undefined) params.push('size=' + encodeURIComponent(String(size)));\n const query = params.length > 0 ? '?' + params.join('&') : '';\n return this.request<UsagePage>('/projects/' + projectId + '/subscription/usages' + query, 'GET');\n }\n}\n","import { HttpApi } from '../http-api';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\n\nexport class ValuesApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async get(category: string): Promise<Record<string, unknown>[]> {\n return this.httpGet<Record<string, unknown>[]>('/values/' + category);\n }\n\n async getLanguageCodes(): Promise<string[]> {\n return this.httpGet<string[]>('/values/language-codes');\n }\n\n async getModelNames(): Promise<string[]> {\n return this.httpGet<string[]>('/values/model-names');\n }\n\n async getModelProviders(): Promise<string[]> {\n return this.httpGet<string[]>('/values/model-providers');\n }\n\n async getKnowledgeTypes(): Promise<string[]> {\n return this.httpGet<string[]>('/values/knowledge-types');\n }\n\n async getCollaborationModes(): Promise<string[]> {\n return this.httpGet<string[]>('/values/collaboration-modes');\n }\n\n async getTranscriberNames(): Promise<string[]> {\n return this.httpGet<string[]>('/values/transcriber-names');\n }\n\n async getSynthesizerNames(): Promise<string[]> {\n return this.httpGet<string[]>('/values/synthesizer-names');\n }\n\n async getSynthesizerVoices(synthesizerName: string): Promise<string[]> {\n return this.httpGet<string[]>('/values/synthesizers/' + synthesizerName + '/voices');\n }\n\n async getDocumentExtractors(): Promise<string[]> {\n return this.httpGet<string[]>('/values/document-extractors');\n }\n\n async getEmbeddingModels(): Promise<string[]> {\n return this.httpGet<string[]>('/values/embedding-models');\n }\n\n async getQualityOptions(): Promise<string[]> {\n return this.httpGet<string[]>('/values/quality');\n }\n\n async getChunkSizeOptions(): Promise<string[]> {\n return this.httpGet<string[]>('/values/chunk-size');\n }\n\n async getFeatureTypes(): Promise<string[]> {\n return this.httpGet<string[]>('/values/feature-types');\n }\n\n async getRoles(): Promise<string[]> {\n return this.httpGet<string[]>('/values/roles');\n }\n\n async getServiceUnits(): Promise<string[]> {\n return this.httpGet<string[]>('/values/service-units');\n }\n\n async getTriggerSourceTypes(): Promise<string[]> {\n return this.httpGet<string[]>('/values/trigger-source-types');\n }\n\n async getTriggerDestinationTypes(): Promise<string[]> {\n return this.httpGet<string[]>('/values/trigger-destination-types');\n }\n}\n","import { AuthenticationProvider } from './auth/authentication-provider';\nimport { ProjectsApi } from './projects/projects-api';\nimport { AgentsApi } from './agents/agents-api';\nimport { KnowledgeBasesApi } from './knowledges/knowledge-bases-api';\nimport { WorkflowsApi } from './workflows/workflows-api';\nimport { CredentialsApi } from './credentials/credentials-api';\nimport { FeaturesApi } from './features/features-api';\nimport { TriggersApi } from './triggers/triggers-api';\nimport { ServicePricesApi } from './service-prices/service-prices-api';\nimport { MarkupRulesApi } from './markup-rules/markup-rules-api';\nimport { ProvidersApi } from './providers/providers-api';\nimport { SessionsApi } from './sessions/sessions-api';\nimport { MissionsApi } from './missions/missions-api';\nimport { BillingClient } from './billing/billing-client';\nimport { ValuesApi } from './values/values-api';\n\nexport class PersonaSdk {\n private readonly baseUrl: string;\n private readonly workflowsBaseUrl: string;\n private readonly billingBaseUrl: string;\n\n constructor(baseUrl: string, workflowsBaseUrl: string, billingBaseUrl?: string) {\n this.baseUrl = baseUrl;\n this.workflowsBaseUrl = workflowsBaseUrl;\n this.billingBaseUrl = billingBaseUrl || 'https://persona.applica.guru/billing';\n }\n\n projects(apiKey: string): ProjectsApi;\n projects(authProvider: AuthenticationProvider): ProjectsApi;\n projects(auth: string | AuthenticationProvider): ProjectsApi {\n return new ProjectsApi(this.baseUrl, auth, this.billingBaseUrl);\n }\n\n agents(apiKey: string): AgentsApi;\n agents(authProvider: AuthenticationProvider): AgentsApi;\n agents(auth: string | AuthenticationProvider): AgentsApi {\n return new AgentsApi(this.baseUrl, auth);\n }\n\n knowledgeBases(apiKey: string): KnowledgeBasesApi;\n knowledgeBases(authProvider: AuthenticationProvider): KnowledgeBasesApi;\n knowledgeBases(auth: string | AuthenticationProvider): KnowledgeBasesApi {\n return new KnowledgeBasesApi(this.baseUrl, auth);\n }\n\n workflows(apiKey: string): WorkflowsApi;\n workflows(authProvider: AuthenticationProvider): WorkflowsApi;\n workflows(auth: string | AuthenticationProvider): WorkflowsApi {\n return new WorkflowsApi(this.workflowsBaseUrl, auth);\n }\n\n credentials(apiKey: string): CredentialsApi;\n credentials(authProvider: AuthenticationProvider): CredentialsApi;\n credentials(auth: string | AuthenticationProvider): CredentialsApi {\n return new CredentialsApi(this.baseUrl, auth);\n }\n\n features(apiKey: string): FeaturesApi;\n features(authProvider: AuthenticationProvider): FeaturesApi;\n features(auth: string | AuthenticationProvider): FeaturesApi {\n return new FeaturesApi(this.baseUrl, auth);\n }\n\n triggers(apiKey: string): TriggersApi;\n triggers(authProvider: AuthenticationProvider): TriggersApi;\n triggers(auth: string | AuthenticationProvider): TriggersApi {\n return new TriggersApi(this.baseUrl, auth);\n }\n\n servicePrices(apiKey: string): ServicePricesApi;\n servicePrices(authProvider: AuthenticationProvider): ServicePricesApi;\n servicePrices(auth: string | AuthenticationProvider): ServicePricesApi {\n return new ServicePricesApi(this.baseUrl, auth);\n }\n\n markupRules(apiKey: string): MarkupRulesApi;\n markupRules(authProvider: AuthenticationProvider): MarkupRulesApi;\n markupRules(auth: string | AuthenticationProvider): MarkupRulesApi {\n return new MarkupRulesApi(this.baseUrl, auth);\n }\n\n providers(apiKey: string): ProvidersApi;\n providers(authProvider: AuthenticationProvider): ProvidersApi;\n providers(auth: string | AuthenticationProvider): ProvidersApi {\n return new ProvidersApi(this.baseUrl, auth);\n }\n\n sessions(apiKey: string): SessionsApi;\n sessions(authProvider: AuthenticationProvider): SessionsApi;\n sessions(auth: string | AuthenticationProvider): SessionsApi {\n return new SessionsApi(this.baseUrl, auth);\n }\n\n missions(apiKey: string): MissionsApi;\n missions(authProvider: AuthenticationProvider): MissionsApi;\n missions(auth: string | AuthenticationProvider): MissionsApi {\n return new MissionsApi(this.baseUrl, auth);\n }\n\n billing(apiKey: string): BillingClient;\n billing(authProvider: AuthenticationProvider): BillingClient;\n billing(auth: string | AuthenticationProvider): BillingClient {\n return new BillingClient(this.billingBaseUrl, auth);\n }\n\n values(apiKey: string): ValuesApi;\n values(authProvider: AuthenticationProvider): ValuesApi;\n values(auth: string | AuthenticationProvider): ValuesApi {\n return new ValuesApi(this.baseUrl, auth);\n }\n}\n","import { AuthenticationProvider } from './authentication-provider';\n\nexport class BearerTokenAuthenticationProvider implements AuthenticationProvider {\n constructor(private readonly token: string) {}\n\n applyHeaders(headers: Headers): void {\n headers.set('Authorization', `Bearer ${this.token}`);\n }\n\n getCredentials(): string {\n return this.token;\n }\n}\n"],"names":["ApiException","statusCode","body","__publicField","ApiKeyAuthenticationProvider","apiKey","headers","HttpApi","baseUrl","page","size","path","params","url","key","value","response","text","ProjectsApi","auth","billingBaseUrl","keyword","p","s","projectId","request","method","AgentsApi","extraParams","agentId","synthesizerName","revisionId","prompt","sessionId","KnowledgeBaseDocumentsApi","knowledgeBaseId","documentId","KnowledgeBasesApi","id","WorkflowExecutionsApi","workflowId","executionId","filters","fromNodeId","mode","nodeId","inputs","stepId","HumanTasksApi","humanTaskId","respondedBy","WorkflowsApi","workflow","CredentialsApi","provider","code","state","scope","credentialsId","FeatureTemplatesApi","templateId","template","configuration","FeaturesApi","TriggerExecutionsApi","triggerId","execution","TriggersApi","trigger","ServicePricesApi","servicePrice","MarkupRulesApi","markupRule","ProvidersApi","SessionsApi","status","userId","name","MissionsApi","missionId","mission","instruction","BillingClient","owner","customer","credits","services","referenceId","totalCost","totalPrice","dateFrom","dateTo","query","models","m","ValuesApi","category","PersonaSdk","workflowsBaseUrl","BearerTokenAuthenticationProvider","token"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bundle.es.js","sources":["../src/exceptions.ts","../src/auth/api-key-auth.ts","../src/http-api.ts","../src/projects/projects-api.ts","../src/agents/agents-api.ts","../src/knowledges/knowledge-base-documents-api.ts","../src/knowledges/knowledge-bases-api.ts","../src/workflows/workflow-executions-api.ts","../src/workflows/human-tasks-api.ts","../src/workflows/channels-api.ts","../src/workflows/workflows-api.ts","../src/credentials/credentials-api.ts","../src/features/feature-templates-api.ts","../src/features/features-api.ts","../src/triggers/trigger-executions-api.ts","../src/triggers/triggers-api.ts","../src/service-prices/service-prices-api.ts","../src/markup-rules/markup-rules-api.ts","../src/providers/providers-api.ts","../src/sessions/sessions-api.ts","../src/missions/missions-api.ts","../src/billing/billing-client.ts","../src/values/values-api.ts","../src/persona-sdk.ts","../src/auth/bearer-token-auth.ts"],"sourcesContent":["export class ApiException extends Error {\n public readonly statusCode: number;\n public readonly body: string;\n\n constructor(statusCode: number, body: string) {\n super(`API Error: ${statusCode} - ${body}`);\n this.statusCode = statusCode;\n this.body = body;\n }\n}\n","import { AuthenticationProvider } from './authentication-provider';\n\nexport class ApiKeyAuthenticationProvider implements AuthenticationProvider {\n constructor(private readonly apiKey: string) {}\n\n applyHeaders(headers: Headers): void {\n headers.set('x-persona-apikey', this.apiKey);\n }\n\n getCredentials(): string {\n return this.apiKey;\n }\n}\n","import { ApiException } from './exceptions';\nimport { AuthenticationProvider } from './auth/authentication-provider';\nimport { ApiKeyAuthenticationProvider } from './auth/api-key-auth';\n\nexport abstract class HttpApi {\n private readonly baseUrl: string;\n private readonly authProvider: AuthenticationProvider;\n\n constructor(baseUrl: string, apiKey: string | AuthenticationProvider) {\n this.baseUrl = baseUrl;\n this.authProvider = typeof apiKey === 'string' ? new ApiKeyAuthenticationProvider(apiKey) : apiKey;\n }\n\n protected getBaseUrl(): string {\n return this.baseUrl;\n }\n\n protected getAuthProvider(): AuthenticationProvider {\n return this.authProvider;\n }\n\n protected normalizePageParams(page?: number, size?: number): { page: number; size: number } {\n return {\n page: page === undefined || page < 1 ? 1 : page,\n size: size === undefined || size < 1 ? 20 : size,\n };\n }\n\n private buildHeaders(): Headers {\n const headers = new Headers();\n headers.set('Content-Type', 'application/json');\n this.authProvider.applyHeaders(headers);\n return headers;\n }\n\n private buildUrl(path: string, params?: Record<string, unknown>): string {\n const url = new URL(this.baseUrl + path);\n if (params) {\n Object.entries(params).forEach(([key, value]) => {\n if (value !== null && value !== undefined) {\n url.searchParams.set(key, String(value));\n }\n });\n }\n return url.toString();\n }\n\n private async handleResponse<T>(response: Response): Promise<T> {\n if (!response.ok) {\n const body = await response.text();\n throw new ApiException(response.status, body);\n }\n const text = await response.text();\n return text ? JSON.parse(text) : (undefined as T);\n }\n\n protected async httpGet<T>(path: string, params?: Record<string, unknown>): Promise<T> {\n const response = await fetch(this.buildUrl(path, params), {\n method: 'GET',\n headers: this.buildHeaders(),\n });\n return this.handleResponse<T>(response);\n }\n\n protected async httpPost<T>(path: string, body?: unknown, params?: Record<string, unknown>): Promise<T> {\n const response = await fetch(this.buildUrl(path, params), {\n method: 'POST',\n headers: this.buildHeaders(),\n body: body ? JSON.stringify(body) : undefined,\n });\n return this.handleResponse<T>(response);\n }\n\n protected async httpPut<T>(path: string, body: unknown): Promise<T> {\n const response = await fetch(this.baseUrl + path, {\n method: 'PUT',\n headers: this.buildHeaders(),\n body: JSON.stringify(body),\n });\n return this.handleResponse<T>(response);\n }\n\n protected async httpPatch<T>(path: string, body: unknown): Promise<T> {\n const response = await fetch(this.baseUrl + path, {\n method: 'PATCH',\n headers: this.buildHeaders(),\n body: JSON.stringify(body),\n });\n return this.handleResponse<T>(response);\n }\n\n protected async httpDelete(path: string): Promise<void> {\n const response = await fetch(this.baseUrl + path, {\n method: 'DELETE',\n headers: this.buildHeaders(),\n });\n if (!response.ok) {\n const body = await response.text();\n throw new ApiException(response.status, body);\n }\n }\n}\n","import { HttpApi } from '../http-api';\nimport { ApiException } from '../exceptions';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n Project,\n ProjectCreateRequest,\n ProjectUpdateRequest,\n ProjectDuplicateRequest,\n ProjectSubscription,\n ChangeProjectSubscriptionPlanRequest,\n AddProjectSubscriptionCreditsRequest,\n SetProjectSubscriptionInfiniteCreditsRequest,\n} from './types';\n\nexport class ProjectsApi extends HttpApi {\n private readonly billingBaseUrl: string;\n\n constructor(baseUrl: string, auth: string | AuthenticationProvider, billingBaseUrl?: string) {\n super(baseUrl, auth);\n this.billingBaseUrl = (billingBaseUrl || baseUrl).replace(/\\/$/, '');\n }\n\n async list(keyword: string | null, page: number, size: number): Promise<Paginated<Project>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<Project>>('/projects', params);\n }\n\n async get(projectId: string): Promise<Project> {\n return this.httpGet<Project>('/projects/' + projectId);\n }\n\n async getMine(): Promise<Project> {\n return this.httpGet<Project>('/projects/mine');\n }\n\n async create(request: ProjectCreateRequest): Promise<Project> {\n return this.httpPost<Project>('/projects', request);\n }\n\n async update(request: ProjectUpdateRequest): Promise<Project> {\n return this.httpPut<Project>('/projects/' + request.projectId, request);\n }\n\n async remove(projectId: string): Promise<void> {\n await this.httpDelete('/projects/' + projectId);\n }\n\n async duplicate(projectId: string, request: ProjectDuplicateRequest): Promise<Project> {\n return this.httpPost<Project>('/projects/' + projectId + '/actions/duplicate', request);\n }\n\n async getSubscription(projectId: string): Promise<ProjectSubscription> {\n return this.billingRequest<ProjectSubscription>('/projects/' + projectId + '/subscription', 'GET');\n }\n\n async changeSubscriptionPlan(projectId: string, request: ChangeProjectSubscriptionPlanRequest): Promise<ProjectSubscription> {\n return this.billingRequest<ProjectSubscription>('/projects/' + projectId + '/subscription/actions/change-plan', 'POST', request);\n }\n\n async addSubscriptionCredits(projectId: string, request: AddProjectSubscriptionCreditsRequest): Promise<ProjectSubscription> {\n return this.billingRequest<ProjectSubscription>('/projects/' + projectId + '/subscription/actions/add-credits', 'POST', request);\n }\n\n async setInfiniteCredits(projectId: string, request: SetProjectSubscriptionInfiniteCreditsRequest): Promise<ProjectSubscription> {\n return this.billingRequest<ProjectSubscription>('/projects/' + projectId + '/subscription/actions/set-infinite-credits', 'POST', request);\n }\n\n private async billingRequest<T>(path: string, method: string, body?: unknown): Promise<T> {\n const headers = new Headers();\n headers.set('Content-Type', 'application/json');\n this.getAuthProvider().applyHeaders(headers);\n\n const response = await fetch(this.billingBaseUrl + path, {\n method,\n headers,\n body: body ? JSON.stringify(body) : undefined,\n });\n\n if (!response.ok) {\n const text = await response.text();\n throw new ApiException(response.status, text);\n }\n\n const text = await response.text();\n return text ? JSON.parse(text) : (undefined as T);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n Agent,\n AgentCreateRequest,\n AgentUpdateRequest,\n SynthesizerVoice,\n Revision,\n} from './types';\n\nexport class AgentsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number, extraParams?: Record<string, string>): Promise<Paginated<Agent>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s, ...extraParams };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<Agent>>('/agents', params);\n }\n\n async get(agentId: string): Promise<Agent> {\n return this.httpGet<Agent>('/agents/' + agentId);\n }\n\n async create(request: AgentCreateRequest): Promise<Agent> {\n return this.httpPost<Agent>('/agents', request);\n }\n\n async update(request: AgentUpdateRequest): Promise<Agent> {\n return this.httpPut<Agent>('/agents/' + request.id, request);\n }\n\n async remove(agentId: string): Promise<void> {\n await this.httpDelete('/agents/' + agentId);\n }\n\n async getSynthesizerSupportedVoices(synthesizerName: string): Promise<SynthesizerVoice[]> {\n return this.httpGet<SynthesizerVoice[]>('/values/synthesizers/' + synthesizerName + '/voices');\n }\n\n async listRevisions(agentId: string): Promise<Revision[]> {\n return this.httpGet<Revision[]>('/agents/' + agentId + '/revisions');\n }\n\n async getRevision(agentId: string, revisionId: string): Promise<Revision> {\n return this.httpGet<Revision>('/agents/' + agentId + '/revisions/' + revisionId);\n }\n\n async rollback(agentId: string, revisionId: string): Promise<Agent> {\n return this.httpPost<Agent>('/agents/' + agentId + '/revisions/' + revisionId + '/rollback', {});\n }\n\n async generateSystemInstructions(prompt: string, sessionId?: string): Promise<string> {\n const body: Record<string, unknown> = { prompt };\n if (sessionId) body.sessionId = sessionId;\n const result = await this.httpPost<{ instructions: string }>('/agents/system-instructions', body);\n return result.instructions;\n }\n\n async getArchitect(): Promise<Agent> {\n return this.httpGet<Agent>('/agents/architect');\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n KnowledgeBaseDocument,\n KnowledgeBaseDocumentUploadRequest,\n} from './types';\n\nexport class KnowledgeBaseDocumentsApi extends HttpApi {\n private readonly knowledgeBaseId: string;\n\n constructor(baseUrl: string, auth: string | AuthenticationProvider, knowledgeBaseId: string) {\n super(baseUrl, auth);\n this.knowledgeBaseId = knowledgeBaseId;\n }\n\n async list(keyword?: string | null, page?: number, size?: number): Promise<Paginated<KnowledgeBaseDocument>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<KnowledgeBaseDocument>>('/knowledge-bases/' + this.knowledgeBaseId + '/documents', params);\n }\n\n async upload(request: KnowledgeBaseDocumentUploadRequest): Promise<KnowledgeBaseDocument> {\n return this.httpPost<KnowledgeBaseDocument>('/knowledge-bases/' + this.knowledgeBaseId + '/documents', request);\n }\n\n async get(documentId: string): Promise<KnowledgeBaseDocument> {\n return this.httpGet<KnowledgeBaseDocument>('/knowledge-bases/' + this.knowledgeBaseId + '/documents/' + documentId);\n }\n\n async reprocess(documentId: string): Promise<KnowledgeBaseDocument> {\n return this.httpPost<KnowledgeBaseDocument>('/knowledge-bases/' + this.knowledgeBaseId + '/documents', { document_id: documentId });\n }\n\n async remove(documentId: string): Promise<void> {\n await this.httpDelete('/knowledge-bases/' + this.knowledgeBaseId + '/documents/' + documentId);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n KnowledgeBase,\n KnowledgeBaseCreateRequest,\n KnowledgeBaseUpdateRequest,\n ChunkResult,\n SearchChunksRequest,\n} from './types';\nimport { KnowledgeBaseDocumentsApi } from './knowledge-base-documents-api';\n\nexport class KnowledgeBasesApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number, extraParams?: Record<string, string>): Promise<Paginated<KnowledgeBase>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s, ...extraParams };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<KnowledgeBase>>('/knowledge-bases', params);\n }\n\n async get(id: string): Promise<KnowledgeBase> {\n return this.httpGet<KnowledgeBase>('/knowledge-bases/' + id);\n }\n\n async create(request: KnowledgeBaseCreateRequest): Promise<KnowledgeBase> {\n return this.httpPost<KnowledgeBase>('/knowledge-bases', request);\n }\n\n async update(request: KnowledgeBaseUpdateRequest): Promise<KnowledgeBase> {\n return this.httpPut<KnowledgeBase>('/knowledge-bases/' + request.id, request);\n }\n\n async remove(id: string): Promise<void> {\n await this.httpDelete('/knowledge-bases/' + id);\n }\n\n documents(knowledgeBaseId: string): KnowledgeBaseDocumentsApi {\n return new KnowledgeBaseDocumentsApi(this.getBaseUrl(), this.getAuthProvider(), knowledgeBaseId);\n }\n\n async searchChunks(id: string, request: SearchChunksRequest): Promise<ChunkResult[]> {\n return this.httpPost<ChunkResult[]>('/knowledge-bases/' + id + '/search', request);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { Execution, ExecuteRequest } from './types';\n\nexport class WorkflowExecutionsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(workflowId: string, page?: number, size?: number): Promise<Paginated<Execution>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n return this.httpGet<Paginated<Execution>>('/workflows/' + workflowId + '/executions', params);\n }\n\n async get(workflowId: string, executionId: string): Promise<Execution> {\n return this.httpGet<Execution>('/workflows/' + workflowId + '/executions/' + executionId);\n }\n\n async run(workflowId: string, request: ExecuteRequest): Promise<Execution> {\n return this.httpPost<Execution>('/workflows/' + workflowId + '/executions', request);\n }\n\n async queue(workflowId: string, request: ExecuteRequest): Promise<Execution> {\n return this.httpPost<Execution>('/workflows/' + workflowId + '/executions/queue', request);\n }\n\n /** Runs across all workflows in the project (filter by status/workflow/date). */\n async listRuns(filters: {\n status?: string;\n workflowId?: string;\n dateFrom?: string;\n dateTo?: string;\n page?: number;\n size?: number;\n } = {}): Promise<Paginated<Execution>> {\n const { page, size } = this.normalizePageParams(filters.page, filters.size);\n const params: Record<string, unknown> = { page, size };\n if (filters.status) params.status = filters.status;\n if (filters.workflowId) params.workflowId = filters.workflowId;\n if (filters.dateFrom) params.dateFrom = filters.dateFrom;\n if (filters.dateTo) params.dateTo = filters.dateTo;\n return this.httpGet<Paginated<Execution>>('/executions', params);\n }\n\n /** Request cancellation of a running/waiting execution (cascades to sub-workflows). */\n async cancel(workflowId: string, executionId: string): Promise<Execution> {\n return this.httpPost<Execution>(\n '/workflows/' + workflowId + '/executions/' + executionId + '/cancel',\n {},\n );\n }\n\n /** Re-run an execution from a given node. mode: 'reuse_outputs' | 'fresh'. */\n async rerun(\n workflowId: string,\n executionId: string,\n fromNodeId: string,\n mode: 'reuse_outputs' | 'fresh' = 'reuse_outputs',\n ): Promise<Execution> {\n return this.httpPost<Execution>(\n '/workflows/' + workflowId + '/executions/' + executionId + '/rerun',\n { fromNodeId, mode },\n );\n }\n\n /** Execute a single node in isolation with the given inputs (debugging). */\n async dryRunNode(\n workflowId: string,\n nodeId: string,\n inputs: Record<string, unknown> = {},\n ): Promise<Record<string, unknown>> {\n return this.httpPost<Record<string, unknown>>(\n '/workflows/' + workflowId + '/nodes/' + nodeId + '/dry-run',\n { inputs },\n );\n }\n\n /** Normalized action trace of an agent step (reasoning, tool calls, messages). */\n async stepTrace(\n workflowId: string,\n executionId: string,\n stepId: string,\n page?: number,\n size?: number,\n ): Promise<Record<string, unknown>> {\n const { page: p, size: s } = this.normalizePageParams(page, size ?? 200);\n return this.httpGet<Record<string, unknown>>(\n '/workflows/' + workflowId + '/executions/' + executionId + '/steps/' + stepId + '/trace',\n { page: p, size: s },\n );\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { HumanTask } from './types';\n\n/**\n * Human-in-the-loop tasks. A task is created when a workflow step\n * suspends waiting for a human (a declared `human` node or an agent\n * escalation); responding to it resumes the run. Lives on the workflows\n * service.\n */\nexport class HumanTasksApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n /** The project's human-task inbox. */\n async list(\n filters: {\n status?: string;\n assignee?: string;\n workflowId?: string;\n executionId?: string;\n page?: number;\n size?: number;\n } = {},\n ): Promise<Paginated<HumanTask>> {\n const { page, size } = this.normalizePageParams(filters.page, filters.size ?? 50);\n const params: Record<string, unknown> = { page, size };\n if (filters.status ?? 'pending') params.status = filters.status ?? 'pending';\n if (filters.assignee) params.assignee = filters.assignee;\n if (filters.workflowId) params.workflowId = filters.workflowId;\n if (filters.executionId) params.executionId = filters.executionId;\n return this.httpGet<Paginated<HumanTask>>('/human-tasks', params);\n }\n\n /** Answer a pending human task, resuming the suspended workflow execution. */\n async respond(humanTaskId: string, response: unknown, respondedBy?: string): Promise<HumanTask> {\n return this.httpPost<HumanTask>('/human-tasks/' + humanTaskId + '/respond', {\n response,\n respondedBy,\n });\n }\n}\n","import { HttpApi } from '../http-api';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { ChannelIdentity, ChannelLink, ChannelProvider, NotificationChannel } from './types';\n\n/**\n * Notification channels: where the project's human tasks are announced and\n * can be answered outside the inbox (a Telegram group, one message per\n * task). Linking goes through one-shot deep links returned by the service.\n * Identity endpoints require a user (IAM bearer) session. Lives on the\n * workflows service.\n */\nexport class ChannelsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n /** The providers enabled on the server (e.g. the Telegram bot). */\n async providers(): Promise<ChannelProvider[]> {\n return this.httpGet<ChannelProvider[]>('/channels/providers');\n }\n\n /** The project's channels, with their setup status. */\n async list(): Promise<NotificationChannel[]> {\n return this.httpGet<NotificationChannel[]>('/channels');\n }\n\n /** One-shot deep link that links a group to the project. */\n async createLink(provider = 'telegram'): Promise<ChannelLink> {\n return this.httpPost<ChannelLink>('/channels/' + provider + '/link-token');\n }\n\n async update(\n channelId: string,\n changes: { includePayload?: boolean; locale?: string }\n ): Promise<NotificationChannel> {\n return this.httpPatch<NotificationChannel>('/channels/' + channelId, changes);\n }\n\n /** Re-checks the channel setup (the bot can still post in the group). */\n async verify(channelId: string): Promise<NotificationChannel> {\n return this.httpPost<NotificationChannel>('/channels/' + channelId + '/verify');\n }\n\n async unlink(channelId: string): Promise<void> {\n await this.httpDelete('/channels/' + channelId);\n }\n\n /** The caller's linked accounts. */\n async myIdentities(): Promise<ChannelIdentity[]> {\n return this.httpGet<ChannelIdentity[]>('/channels/identities/me');\n }\n\n /** One-shot deep link that links the caller's account. */\n async createIdentityLink(provider = 'telegram'): Promise<ChannelLink> {\n return this.httpPost<ChannelLink>('/channels/identities/' + provider + '/link-token');\n }\n\n async unlinkIdentity(provider = 'telegram'): Promise<void> {\n await this.httpDelete('/channels/identities/me/' + provider);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { Revision } from '../revisions/types';\nimport { Workflow } from './types';\nimport { WorkflowExecutionsApi } from './workflow-executions-api';\nimport { HumanTasksApi } from './human-tasks-api';\nimport { ChannelsApi } from './channels-api';\n\nexport class WorkflowsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number, extraParams?: Record<string, string>): Promise<Paginated<Workflow>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s, ...extraParams };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<Workflow>>('/workflows', params);\n }\n\n async create(workflow: Workflow): Promise<Workflow> {\n return this.httpPost<Workflow>('/workflows', workflow);\n }\n\n async update(workflowId: string, workflow: Workflow): Promise<Workflow> {\n workflow.id = workflowId;\n return this.httpPut<Workflow>('/workflows/' + workflowId, workflow);\n }\n\n async remove(workflowId: string): Promise<void> {\n await this.httpDelete('/workflows/' + workflowId);\n }\n\n async get(workflowId: string): Promise<Workflow> {\n return this.httpGet<Workflow>('/workflows/' + workflowId);\n }\n\n executions(): WorkflowExecutionsApi {\n return new WorkflowExecutionsApi(this.getBaseUrl(), this.getAuthProvider());\n }\n\n humanTasks(): HumanTasksApi {\n return new HumanTasksApi(this.getBaseUrl(), this.getAuthProvider());\n }\n\n channels(): ChannelsApi {\n return new ChannelsApi(this.getBaseUrl(), this.getAuthProvider());\n }\n\n async listRevisions(workflowId: string): Promise<Revision[]> {\n return this.httpGet<Revision[]>('/workflows/' + workflowId + '/revisions');\n }\n\n async getRevision(workflowId: string, revisionId: string): Promise<Revision> {\n return this.httpGet<Revision>('/workflows/' + workflowId + '/revisions/' + revisionId);\n }\n\n async rollback(workflowId: string, revisionId: string): Promise<Workflow> {\n return this.httpPost<Workflow>('/workflows/' + workflowId + '/revisions/' + revisionId + '/rollback', {});\n }\n}\n","import { HttpApi } from '../http-api';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n Credentials,\n AuthorizeRequest,\n AuthorizeResponse,\n OAuth2CallbackResponse,\n} from './types';\n\nexport class CredentialsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async authorize(provider: string, request: AuthorizeRequest): Promise<AuthorizeResponse> {\n return this.httpPost<AuthorizeResponse>('/credentials/' + provider + '/authorize', request);\n }\n\n async handleOAuth2Callback(provider: string, code: string, state: string, scope?: string): Promise<OAuth2CallbackResponse> {\n const params: Record<string, unknown> = { code, state };\n if (scope) params.scope = scope;\n return this.httpGet<OAuth2CallbackResponse>('/credentials/' + provider + '/oauth2/callback', params);\n }\n\n async list(): Promise<Credentials[]> {\n return this.httpGet<Credentials[]>('/credentials');\n }\n\n async getByProvider(provider: string): Promise<Credentials[]> {\n return this.httpGet<Credentials[]>('/credentials/' + provider);\n }\n\n async getById(credentialsId: string): Promise<Credentials> {\n return this.httpGet<Credentials>('/credentials/all/' + credentialsId);\n }\n\n async remove(credentialsId: string): Promise<void> {\n await this.httpDelete('/credentials/all/' + credentialsId);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { FeatureTemplate, McpToolsResponse } from './types';\nimport { McpServerConfiguration } from '../agents/types';\n\nexport class FeatureTemplatesApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number, extraParams?: Record<string, string>): Promise<Paginated<FeatureTemplate>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s, ...extraParams };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<FeatureTemplate>>('/features/templates', params);\n }\n\n async get(templateId: string): Promise<FeatureTemplate> {\n return this.httpGet<FeatureTemplate>('/features/templates/' + templateId);\n }\n\n async create(template: FeatureTemplate): Promise<FeatureTemplate> {\n return this.httpPost<FeatureTemplate>('/features/templates', template);\n }\n\n async update(templateId: string, template: FeatureTemplate): Promise<FeatureTemplate> {\n return this.httpPut<FeatureTemplate>('/features/templates/' + templateId, template);\n }\n\n async patch(templateId: string, template: FeatureTemplate): Promise<FeatureTemplate> {\n return this.httpPatch<FeatureTemplate>('/features/templates/' + templateId, template);\n }\n\n async remove(templateId: string): Promise<void> {\n await this.httpDelete('/features/templates/' + templateId);\n }\n\n async getMcpAvailableTools(configuration: McpServerConfiguration, credentialsId?: string): Promise<McpToolsResponse> {\n const params = credentialsId ? { credentialsId } : undefined;\n return this.httpPost<McpToolsResponse>('/features/templates/mcp/available-tools', configuration, params);\n }\n}\n","import { AuthenticationProvider } from '../auth/authentication-provider';\nimport { FeatureTemplatesApi } from './feature-templates-api';\n\nexport class FeaturesApi {\n private readonly baseUrl: string;\n private readonly auth: string | AuthenticationProvider;\n\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n this.baseUrl = baseUrl;\n this.auth = auth;\n }\n\n templates(): FeatureTemplatesApi {\n return new FeatureTemplatesApi(this.baseUrl, this.auth);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { TriggerExecutionResult } from './types';\n\nexport class TriggerExecutionsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(triggerId: string, page?: number, size?: number): Promise<Paginated<TriggerExecutionResult>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n return this.httpGet<Paginated<TriggerExecutionResult>>('/triggers/' + triggerId + '/executions', params);\n }\n\n async execute(triggerId: string, execution: TriggerExecutionResult): Promise<TriggerExecutionResult> {\n return this.httpPost<TriggerExecutionResult>('/triggers/' + triggerId + '/executions', execution);\n }\n\n async get(executionId: string): Promise<TriggerExecutionResult> {\n return this.httpGet<TriggerExecutionResult>('/triggers/executions/' + executionId);\n }\n\n async remove(executionId: string): Promise<void> {\n await this.httpDelete('/triggers/executions/' + executionId);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { Trigger } from './types';\nimport { TriggerExecutionsApi } from './trigger-executions-api';\n\nexport class TriggersApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number, extraParams?: Record<string, string>): Promise<Paginated<Trigger>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s, ...extraParams };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<Trigger>>('/triggers', params);\n }\n\n async create(trigger: Trigger): Promise<Trigger> {\n return this.httpPost<Trigger>('/triggers', trigger);\n }\n\n async update(triggerId: string, trigger: Trigger): Promise<Trigger> {\n return this.httpPut<Trigger>('/triggers/' + triggerId, trigger);\n }\n\n async remove(triggerId: string): Promise<void> {\n await this.httpDelete('/triggers/' + triggerId);\n }\n\n async get(triggerId: string): Promise<Trigger> {\n return this.httpGet<Trigger>('/triggers/' + triggerId);\n }\n\n executions(): TriggerExecutionsApi {\n return new TriggerExecutionsApi(this.getBaseUrl(), this.getAuthProvider());\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { ServicePrice, ServicePriceListParams, ServicePriceStats, ServicePriceStatsParams } from './types';\n\nexport class ServicePricesApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(\n keyword?: string | null,\n page?: number,\n size?: number,\n extraParams?: ServicePriceListParams\n ): Promise<Paginated<ServicePrice>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s, ...extraParams };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<ServicePrice>>('/service-prices', params);\n }\n\n async getStats(params: ServicePriceStatsParams = {}): Promise<ServicePriceStats> {\n return this.httpGet<ServicePriceStats>('/service-prices/stats', { ...params });\n }\n\n async get(id: string): Promise<ServicePrice> {\n return this.httpGet<ServicePrice>('/service-prices/' + id);\n }\n\n async create(servicePrice: ServicePrice): Promise<ServicePrice> {\n return this.httpPost<ServicePrice>('/service-prices', servicePrice);\n }\n\n async update(id: string, servicePrice: ServicePrice): Promise<ServicePrice> {\n return this.httpPut<ServicePrice>('/service-prices/' + id, servicePrice);\n }\n\n async remove(id: string): Promise<void> {\n await this.httpDelete('/service-prices/' + id);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { MarkupRule } from './types';\n\n/**\n * Markup rules (super admin only). Markup no longer lives on the ServicePrice:\n * rules are {pattern, percentage}, global or per-project, matched against usage\n * service codes (most-specific-wins, \"*\" fallback).\n */\nexport class MarkupRulesApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(projectId?: string | null, keyword?: string | null, page?: number, size?: number): Promise<Paginated<MarkupRule>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n if (projectId) params.projectId = projectId;\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<MarkupRule>>('/markup-rules', params);\n }\n\n async get(id: string): Promise<MarkupRule> {\n return this.httpGet<MarkupRule>('/markup-rules/' + id);\n }\n\n async create(markupRule: MarkupRule): Promise<MarkupRule> {\n return this.httpPost<MarkupRule>('/markup-rules', markupRule);\n }\n\n async update(id: string, markupRule: MarkupRule): Promise<MarkupRule> {\n return this.httpPut<MarkupRule>('/markup-rules/' + id, markupRule);\n }\n\n async remove(id: string): Promise<void> {\n await this.httpDelete('/markup-rules/' + id);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { Provider, ProviderModel } from './types';\n\n/**\n * Managed LLM providers (super admin only). Providers bind a litellm provider\n * name to its credentials; global or per-project (override). API keys are stored\n * encrypted and returned masked.\n */\nexport class ProvidersApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(projectId?: string | null, keyword?: string | null, page?: number, size?: number): Promise<Paginated<Provider>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n if (projectId) params.projectId = projectId;\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<Provider>>('/providers', params);\n }\n\n async get(id: string): Promise<Provider> {\n return this.httpGet<Provider>('/providers/' + id);\n }\n\n async create(provider: Provider): Promise<Provider> {\n return this.httpPost<Provider>('/providers', provider);\n }\n\n async update(id: string, provider: Provider): Promise<Provider> {\n return this.httpPut<Provider>('/providers/' + id, provider);\n }\n\n async remove(id: string): Promise<void> {\n await this.httpDelete('/providers/' + id);\n }\n\n /** Provider names litellm supports (for the \"add provider\" picker). Admin. */\n async available(): Promise<string[]> {\n return this.httpGet<string[]>('/providers/available');\n }\n\n /** Names of providers configured for the caller (global + their project), no\n * credentials. Authenticated (not admin) — for the model selector. */\n async names(): Promise<string[]> {\n return this.httpGet<string[]>('/provider-names');\n }\n\n /** Model suggestions (chat, with capabilities) for a provider, from litellm. */\n async models(provider: string): Promise<ProviderModel[]> {\n return this.httpGet<ProviderModel[]>('/provider-models', { provider });\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n Session,\n GenerationRequest,\n GenerationResponse,\n Message,\n CommittedUsage,\n AgentStateInfo,\n SteerAccepted,\n} from './types';\n\nexport class SessionsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(\n keyword?: string | null,\n status?: string | null,\n agentId?: string | null,\n userId?: string | null,\n page?: number,\n size?: number,\n ): Promise<Paginated<Session>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n if (keyword) params.keyword = keyword;\n if (status) params.status = status;\n if (agentId) params.agentId = agentId;\n if (userId) params.userId = userId;\n return this.httpGet<Paginated<Session>>('/sessions', params);\n }\n\n async get(sessionId: string): Promise<Session> {\n return this.httpGet<Session>('/sessions/' + sessionId);\n }\n\n async getUsage(sessionId: string): Promise<CommittedUsage[]> {\n return this.httpGet<CommittedUsage[]>('/sessions/' + sessionId + '/usage');\n }\n\n async generateMessage(code: string, request: GenerationRequest): Promise<GenerationResponse> {\n return this.httpPost<GenerationResponse>('/sessions/' + code + '/messages', request);\n }\n\n async findMessages(code: string, page?: number, size?: number): Promise<Paginated<Message>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n return this.httpGet<Paginated<Message>>('/sessions/' + code + '/messages', params);\n }\n\n async remove(code: string): Promise<void> {\n await this.httpDelete('/sessions/' + code);\n }\n\n async rename(sessionId: string, name: string): Promise<Session> {\n return this.httpPut<Session>('/sessions/' + sessionId + '/name', { name });\n }\n\n // ─── Agent Execution Lifecycle ────────────────────────────────\n\n /**\n * Get the current state of the agent execution for a session.\n */\n async getAgentState(code: string): Promise<AgentStateInfo> {\n return this.httpGet<AgentStateInfo>('/sessions/' + encodeURIComponent(code) + '/agent-state');\n }\n\n /**\n * Cancel a running agent execution for a session.\n */\n async cancelExecution(code: string): Promise<{ status: string; sessionId: string }> {\n return this.httpPost<{ status: string; sessionId: string }>(\n '/sessions/' + encodeURIComponent(code) + '/cancel',\n {},\n );\n }\n\n /**\n * Steer a running agent execution by injecting an instruction.\n */\n async steerExecution(code: string, text: string): Promise<SteerAccepted> {\n return this.httpPost<SteerAccepted>(\n '/sessions/' + encodeURIComponent(code) + '/steer',\n { text },\n );\n }\n}\n","import { HttpApi } from '../http-api';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { Paginated } from '../paginated';\nimport { Mission } from './types';\n\nexport class MissionsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number, status?: string | null): Promise<Paginated<Mission>> {\n const { page: p, size: s } = this.normalizePageParams(page, size);\n const params: Record<string, unknown> = { page: p, size: s };\n if (keyword) params.keyword = keyword;\n if (status) params.status = status;\n return this.httpGet<Paginated<Mission>>('/missions', params);\n }\n\n async get(missionId: string): Promise<Mission> {\n return this.httpGet<Mission>('/missions/' + missionId);\n }\n\n async create(mission: Mission): Promise<Mission> {\n return this.httpPost<Mission>('/missions', mission);\n }\n\n async update(missionId: string, mission: Mission): Promise<Mission> {\n return this.httpPut<Mission>('/missions/' + missionId, mission);\n }\n\n async remove(missionId: string): Promise<void> {\n await this.httpDelete('/missions/' + missionId);\n }\n\n async generate(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/generate');\n }\n\n async execute(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/execute');\n }\n\n async retry(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/retry');\n }\n\n async replan(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/replan');\n }\n\n async sendInstruction(missionId: string, instruction: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/instructions', { instruction });\n }\n\n async stop(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/stop');\n }\n\n async resume(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/continue');\n }\n}\n","import { AuthenticationProvider } from '../auth/authentication-provider';\nimport { ApiException } from '../exceptions';\nimport {\n Customer,\n Subscription,\n Invoice,\n CreateCustomerRequest,\n UpdateCustomerRequest,\n CreateSubscriptionRequest,\n UpgradeSubscriptionRequest,\n DowngradeSubscriptionRequest,\n MentorizeSubscriptionRequest,\n UsageStats,\n UsagePage,\n} from './types';\n\nexport class BillingClient {\n private readonly baseUrl: string;\n private readonly authProvider: AuthenticationProvider | string | null;\n\n constructor(baseUrl?: string, auth?: string | AuthenticationProvider | null) {\n this.baseUrl = (baseUrl || 'https://persona.applica.guru/billing').replace(/\\/$/, '');\n this.authProvider = auth ?? null;\n }\n\n private buildHeaders(): Headers {\n const headers = new Headers();\n headers.set('Content-Type', 'application/json');\n if (this.authProvider) {\n if (typeof this.authProvider === 'string') {\n headers.set('x-persona-apikey', this.authProvider);\n } else {\n this.authProvider.applyHeaders(headers);\n }\n }\n return headers;\n }\n\n private async request<T>(path: string, method: string, body?: unknown): Promise<T> {\n const response = await fetch(this.baseUrl + path, {\n method,\n headers: this.buildHeaders(),\n body: body ? JSON.stringify(body) : undefined,\n });\n if (!response.ok) {\n const text = await response.text();\n throw new ApiException(response.status, text);\n }\n const text = await response.text();\n return text ? JSON.parse(text) : (undefined as T);\n }\n\n async createCustomer(request: CreateCustomerRequest): Promise<Customer> {\n return this.request<Customer>('/customers', 'POST', request);\n }\n\n async updateCustomer(owner: string, request: UpdateCustomerRequest): Promise<Customer> {\n return this.request<Customer>('/customers/' + owner, 'PUT', request);\n }\n\n async getCustomer(owner: string): Promise<Customer> {\n return this.request<Customer>('/customers/' + owner, 'GET');\n }\n\n async saveCustomer(customer: Customer): Promise<Customer> {\n return this.request<Customer>('/customers', 'POST', customer);\n }\n\n async deleteCustomer(owner: string): Promise<void> {\n await this.request<void>('/customers/' + owner, 'DELETE');\n }\n\n async createSubscription(request: CreateSubscriptionRequest): Promise<Subscription> {\n return this.request<Subscription>('/customers/' + request.owner + '/subscription', 'POST', request);\n }\n\n async getSubscription(owner: string): Promise<Subscription> {\n return this.request<Subscription>('/customers/' + owner + '/subscription', 'GET');\n }\n\n async getProjectSubscription(projectId: string): Promise<Subscription> {\n return this.request<Subscription>('/projects/' + projectId + '/subscription', 'GET');\n }\n\n async changeProjectSubscriptionPlan(projectId: string, request: { toPlanType: string }): Promise<Subscription> {\n return this.request<Subscription>('/projects/' + projectId + '/subscription/actions/change-plan', 'POST', request);\n }\n\n async addProjectSubscriptionCredits(projectId: string, request: { credits: number }): Promise<Subscription> {\n return this.request<Subscription>('/projects/' + projectId + '/subscription/actions/add-credits', 'POST', request);\n }\n\n async beginUpgrade(owner: string, request: UpgradeSubscriptionRequest): Promise<Subscription> {\n return this.request<Subscription>('/customers/' + owner + '/subscription/actions/upgrade', 'POST', request);\n }\n\n async downgrade(owner: string, request: DowngradeSubscriptionRequest): Promise<Subscription> {\n return this.request<Subscription>('/customers/' + owner + '/subscription/actions/downgrade', 'POST', request);\n }\n\n async mentorize(owner: string, request: MentorizeSubscriptionRequest): Promise<Subscription> {\n return this.request<Subscription>('/customers/' + owner + '/subscription/actions/mentorize', 'POST', request);\n }\n\n async addCredits(owner: string, credits: number): Promise<Subscription> {\n return this.request<Subscription>('/customers/' + owner + '/subscription/credits', 'POST', { credits });\n }\n\n async useCredits(\n owner: string,\n credits: number,\n services: string[],\n referenceId?: string,\n totalCost?: number,\n totalPrice?: number,\n ): Promise<Subscription> {\n const body: Record<string, unknown> = { credits, services };\n if (referenceId) body.referenceId = referenceId;\n if (totalCost !== undefined) body.totalCost = totalCost;\n if (totalPrice !== undefined) body.totalPrice = totalPrice;\n return this.request<Subscription>('/customers/' + owner + '/subscription/credits', 'DELETE', body);\n }\n\n async getCredits(owner: string): Promise<number> {\n try {\n const result = await this.request<{ credits?: number }>('/customers/' + owner + '/subscription/credits', 'GET');\n return result.credits ?? 0;\n } catch {\n return 0;\n }\n }\n\n async isValid(owner: string): Promise<boolean> {\n try {\n const result = await this.request<{ valid?: boolean }>('/customers/' + owner + '/subscription/valid', 'GET');\n return result.valid ?? false;\n } catch {\n return false;\n }\n }\n\n async listInvoices(owner: string, dateFrom?: string, dateTo?: string): Promise<Invoice[]> {\n const params: string[] = [];\n if (dateFrom) params.push('date_from=' + dateFrom);\n if (dateTo) params.push('date_to=' + dateTo);\n const query = params.length > 0 ? '?' + params.join('&') : '';\n return this.request<Invoice[]>('/customers/' + owner + '/invoices' + query, 'GET');\n }\n\n async cancelSubscription(owner: string): Promise<Subscription> {\n return this.request<Subscription>('/customers/' + owner + '/subscription/actions/cancel', 'POST', {});\n }\n\n async getUsageStats(projectId: string, dateFrom?: string, dateTo?: string, models?: string[]): Promise<UsageStats> {\n const params: string[] = [];\n if (dateFrom) params.push('date_from=' + encodeURIComponent(dateFrom));\n if (dateTo) params.push('date_to=' + encodeURIComponent(dateTo));\n if (models?.length) models.forEach(m => params.push('model=' + encodeURIComponent(m)));\n const query = params.length > 0 ? '?' + params.join('&') : '';\n return this.request<UsageStats>('/projects/' + projectId + '/subscription/usage-stats' + query, 'GET');\n }\n\n async listUsages(\n projectId: string,\n dateFrom?: string,\n dateTo?: string,\n models?: string[],\n sessionId?: string,\n page?: number,\n size?: number,\n ): Promise<UsagePage> {\n const params: string[] = [];\n if (dateFrom) params.push('date_from=' + encodeURIComponent(dateFrom));\n if (dateTo) params.push('date_to=' + encodeURIComponent(dateTo));\n if (models?.length) models.forEach(m => params.push('model=' + encodeURIComponent(m)));\n if (sessionId) params.push('session_id=' + encodeURIComponent(sessionId));\n if (page !== undefined) params.push('page=' + encodeURIComponent(String(page)));\n if (size !== undefined) params.push('size=' + encodeURIComponent(String(size)));\n const query = params.length > 0 ? '?' + params.join('&') : '';\n return this.request<UsagePage>('/projects/' + projectId + '/subscription/usages' + query, 'GET');\n }\n}\n","import { HttpApi } from '../http-api';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\n\nexport class ValuesApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async get(category: string): Promise<Record<string, unknown>[]> {\n return this.httpGet<Record<string, unknown>[]>('/values/' + category);\n }\n\n async getLanguageCodes(): Promise<string[]> {\n return this.httpGet<string[]>('/values/language-codes');\n }\n\n async getModelNames(): Promise<string[]> {\n return this.httpGet<string[]>('/values/model-names');\n }\n\n async getModelProviders(): Promise<string[]> {\n return this.httpGet<string[]>('/values/model-providers');\n }\n\n async getKnowledgeTypes(): Promise<string[]> {\n return this.httpGet<string[]>('/values/knowledge-types');\n }\n\n async getCollaborationModes(): Promise<string[]> {\n return this.httpGet<string[]>('/values/collaboration-modes');\n }\n\n async getTranscriberNames(): Promise<string[]> {\n return this.httpGet<string[]>('/values/transcriber-names');\n }\n\n async getSynthesizerNames(): Promise<string[]> {\n return this.httpGet<string[]>('/values/synthesizer-names');\n }\n\n async getSynthesizerVoices(synthesizerName: string): Promise<string[]> {\n return this.httpGet<string[]>('/values/synthesizers/' + synthesizerName + '/voices');\n }\n\n async getDocumentExtractors(): Promise<string[]> {\n return this.httpGet<string[]>('/values/document-extractors');\n }\n\n async getEmbeddingModels(): Promise<string[]> {\n return this.httpGet<string[]>('/values/embedding-models');\n }\n\n async getQualityOptions(): Promise<string[]> {\n return this.httpGet<string[]>('/values/quality');\n }\n\n async getChunkSizeOptions(): Promise<string[]> {\n return this.httpGet<string[]>('/values/chunk-size');\n }\n\n async getFeatureTypes(): Promise<string[]> {\n return this.httpGet<string[]>('/values/feature-types');\n }\n\n async getRoles(): Promise<string[]> {\n return this.httpGet<string[]>('/values/roles');\n }\n\n async getServiceUnits(): Promise<string[]> {\n return this.httpGet<string[]>('/values/service-units');\n }\n\n async getTriggerSourceTypes(): Promise<string[]> {\n return this.httpGet<string[]>('/values/trigger-source-types');\n }\n\n async getTriggerDestinationTypes(): Promise<string[]> {\n return this.httpGet<string[]>('/values/trigger-destination-types');\n }\n}\n","import { AuthenticationProvider } from './auth/authentication-provider';\nimport { ProjectsApi } from './projects/projects-api';\nimport { AgentsApi } from './agents/agents-api';\nimport { KnowledgeBasesApi } from './knowledges/knowledge-bases-api';\nimport { WorkflowsApi } from './workflows/workflows-api';\nimport { CredentialsApi } from './credentials/credentials-api';\nimport { FeaturesApi } from './features/features-api';\nimport { TriggersApi } from './triggers/triggers-api';\nimport { ServicePricesApi } from './service-prices/service-prices-api';\nimport { MarkupRulesApi } from './markup-rules/markup-rules-api';\nimport { ProvidersApi } from './providers/providers-api';\nimport { SessionsApi } from './sessions/sessions-api';\nimport { MissionsApi } from './missions/missions-api';\nimport { BillingClient } from './billing/billing-client';\nimport { ValuesApi } from './values/values-api';\n\nexport class PersonaSdk {\n private readonly baseUrl: string;\n private readonly workflowsBaseUrl: string;\n private readonly billingBaseUrl: string;\n\n constructor(baseUrl: string, workflowsBaseUrl: string, billingBaseUrl?: string) {\n this.baseUrl = baseUrl;\n this.workflowsBaseUrl = workflowsBaseUrl;\n this.billingBaseUrl = billingBaseUrl || 'https://persona.applica.guru/billing';\n }\n\n projects(apiKey: string): ProjectsApi;\n projects(authProvider: AuthenticationProvider): ProjectsApi;\n projects(auth: string | AuthenticationProvider): ProjectsApi {\n return new ProjectsApi(this.baseUrl, auth, this.billingBaseUrl);\n }\n\n agents(apiKey: string): AgentsApi;\n agents(authProvider: AuthenticationProvider): AgentsApi;\n agents(auth: string | AuthenticationProvider): AgentsApi {\n return new AgentsApi(this.baseUrl, auth);\n }\n\n knowledgeBases(apiKey: string): KnowledgeBasesApi;\n knowledgeBases(authProvider: AuthenticationProvider): KnowledgeBasesApi;\n knowledgeBases(auth: string | AuthenticationProvider): KnowledgeBasesApi {\n return new KnowledgeBasesApi(this.baseUrl, auth);\n }\n\n workflows(apiKey: string): WorkflowsApi;\n workflows(authProvider: AuthenticationProvider): WorkflowsApi;\n workflows(auth: string | AuthenticationProvider): WorkflowsApi {\n return new WorkflowsApi(this.workflowsBaseUrl, auth);\n }\n\n credentials(apiKey: string): CredentialsApi;\n credentials(authProvider: AuthenticationProvider): CredentialsApi;\n credentials(auth: string | AuthenticationProvider): CredentialsApi {\n return new CredentialsApi(this.baseUrl, auth);\n }\n\n features(apiKey: string): FeaturesApi;\n features(authProvider: AuthenticationProvider): FeaturesApi;\n features(auth: string | AuthenticationProvider): FeaturesApi {\n return new FeaturesApi(this.baseUrl, auth);\n }\n\n triggers(apiKey: string): TriggersApi;\n triggers(authProvider: AuthenticationProvider): TriggersApi;\n triggers(auth: string | AuthenticationProvider): TriggersApi {\n return new TriggersApi(this.baseUrl, auth);\n }\n\n servicePrices(apiKey: string): ServicePricesApi;\n servicePrices(authProvider: AuthenticationProvider): ServicePricesApi;\n servicePrices(auth: string | AuthenticationProvider): ServicePricesApi {\n return new ServicePricesApi(this.baseUrl, auth);\n }\n\n markupRules(apiKey: string): MarkupRulesApi;\n markupRules(authProvider: AuthenticationProvider): MarkupRulesApi;\n markupRules(auth: string | AuthenticationProvider): MarkupRulesApi {\n return new MarkupRulesApi(this.baseUrl, auth);\n }\n\n providers(apiKey: string): ProvidersApi;\n providers(authProvider: AuthenticationProvider): ProvidersApi;\n providers(auth: string | AuthenticationProvider): ProvidersApi {\n return new ProvidersApi(this.baseUrl, auth);\n }\n\n sessions(apiKey: string): SessionsApi;\n sessions(authProvider: AuthenticationProvider): SessionsApi;\n sessions(auth: string | AuthenticationProvider): SessionsApi {\n return new SessionsApi(this.baseUrl, auth);\n }\n\n missions(apiKey: string): MissionsApi;\n missions(authProvider: AuthenticationProvider): MissionsApi;\n missions(auth: string | AuthenticationProvider): MissionsApi {\n return new MissionsApi(this.baseUrl, auth);\n }\n\n billing(apiKey: string): BillingClient;\n billing(authProvider: AuthenticationProvider): BillingClient;\n billing(auth: string | AuthenticationProvider): BillingClient {\n return new BillingClient(this.billingBaseUrl, auth);\n }\n\n values(apiKey: string): ValuesApi;\n values(authProvider: AuthenticationProvider): ValuesApi;\n values(auth: string | AuthenticationProvider): ValuesApi {\n return new ValuesApi(this.baseUrl, auth);\n }\n}\n","import { AuthenticationProvider } from './authentication-provider';\n\nexport class BearerTokenAuthenticationProvider implements AuthenticationProvider {\n constructor(private readonly token: string) {}\n\n applyHeaders(headers: Headers): void {\n headers.set('Authorization', `Bearer ${this.token}`);\n }\n\n getCredentials(): string {\n return this.token;\n }\n}\n"],"names":["ApiException","statusCode","body","__publicField","ApiKeyAuthenticationProvider","apiKey","headers","HttpApi","baseUrl","page","size","path","params","url","key","value","response","text","ProjectsApi","auth","billingBaseUrl","keyword","p","s","projectId","request","method","AgentsApi","extraParams","agentId","synthesizerName","revisionId","prompt","sessionId","KnowledgeBaseDocumentsApi","knowledgeBaseId","documentId","KnowledgeBasesApi","id","WorkflowExecutionsApi","workflowId","executionId","filters","fromNodeId","mode","nodeId","inputs","stepId","HumanTasksApi","humanTaskId","respondedBy","ChannelsApi","provider","channelId","changes","WorkflowsApi","workflow","CredentialsApi","code","state","scope","credentialsId","FeatureTemplatesApi","templateId","template","configuration","FeaturesApi","TriggerExecutionsApi","triggerId","execution","TriggersApi","trigger","ServicePricesApi","servicePrice","MarkupRulesApi","markupRule","ProvidersApi","SessionsApi","status","userId","name","MissionsApi","missionId","mission","instruction","BillingClient","owner","customer","credits","services","referenceId","totalCost","totalPrice","dateFrom","dateTo","query","models","m","ValuesApi","category","PersonaSdk","workflowsBaseUrl","BearerTokenAuthenticationProvider","token"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -267,6 +267,61 @@ export declare interface ChangeProjectSubscriptionPlanRequest {
|
|
|
267
267
|
toPlanType: string;
|
|
268
268
|
}
|
|
269
269
|
|
|
270
|
+
/** An external account linked to the current user. */
|
|
271
|
+
export declare interface ChannelIdentity {
|
|
272
|
+
id: string;
|
|
273
|
+
provider: string;
|
|
274
|
+
externalUserId: string;
|
|
275
|
+
externalUsername?: string;
|
|
276
|
+
iamUserId: string;
|
|
277
|
+
iamUserEmail?: string;
|
|
278
|
+
createdAt?: string;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/** One-shot deep link completing a group or account link. */
|
|
282
|
+
export declare interface ChannelLink {
|
|
283
|
+
token: string;
|
|
284
|
+
url: string;
|
|
285
|
+
expiresAt: string;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
export declare interface ChannelProvider {
|
|
289
|
+
provider: string;
|
|
290
|
+
botUsername?: string;
|
|
291
|
+
ready: boolean;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Notification channels: where the project's human tasks are announced and
|
|
296
|
+
* can be answered outside the inbox (a Telegram group, one message per
|
|
297
|
+
* task). Linking goes through one-shot deep links returned by the service.
|
|
298
|
+
* Identity endpoints require a user (IAM bearer) session. Lives on the
|
|
299
|
+
* workflows service.
|
|
300
|
+
*/
|
|
301
|
+
export declare class ChannelsApi extends HttpApi {
|
|
302
|
+
constructor(baseUrl: string, auth: string | AuthenticationProvider);
|
|
303
|
+
/** The providers enabled on the server (e.g. the Telegram bot). */
|
|
304
|
+
providers(): Promise<ChannelProvider[]>;
|
|
305
|
+
/** The project's channels, with their setup status. */
|
|
306
|
+
list(): Promise<NotificationChannel[]>;
|
|
307
|
+
/** One-shot deep link that links a group to the project. */
|
|
308
|
+
createLink(provider?: string): Promise<ChannelLink>;
|
|
309
|
+
update(channelId: string, changes: {
|
|
310
|
+
includePayload?: boolean;
|
|
311
|
+
locale?: string;
|
|
312
|
+
}): Promise<NotificationChannel>;
|
|
313
|
+
/** Re-checks the channel setup (the bot can still post in the group). */
|
|
314
|
+
verify(channelId: string): Promise<NotificationChannel>;
|
|
315
|
+
unlink(channelId: string): Promise<void>;
|
|
316
|
+
/** The caller's linked accounts. */
|
|
317
|
+
myIdentities(): Promise<ChannelIdentity[]>;
|
|
318
|
+
/** One-shot deep link that links the caller's account. */
|
|
319
|
+
createIdentityLink(provider?: string): Promise<ChannelLink>;
|
|
320
|
+
unlinkIdentity(provider?: string): Promise<void>;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
export declare type ChannelStatus = 'active' | 'incomplete' | 'disconnected';
|
|
324
|
+
|
|
270
325
|
export declare interface ChunkResult {
|
|
271
326
|
id?: string;
|
|
272
327
|
text?: string;
|
|
@@ -549,6 +604,8 @@ export declare interface HumanTask {
|
|
|
549
604
|
origin?: 'node' | 'agent_escalation';
|
|
550
605
|
question?: string;
|
|
551
606
|
payload?: Record<string, unknown>;
|
|
607
|
+
/** Closed set of answers (buttons); absent = free-text answer. */
|
|
608
|
+
options?: string[];
|
|
552
609
|
assignee?: string;
|
|
553
610
|
role?: string;
|
|
554
611
|
status: string;
|
|
@@ -877,6 +934,23 @@ export declare interface NodeExecutionResult {
|
|
|
877
934
|
|
|
878
935
|
export declare type NodeType = 'start' | 'action' | 'condition' | 'loop' | 'tool' | 'agent' | 'set_var' | 'output' | 'workflow' | 'resource' | 'script';
|
|
879
936
|
|
|
937
|
+
/** A place where a project's human tasks are announced (e.g. a Telegram group). */
|
|
938
|
+
export declare interface NotificationChannel {
|
|
939
|
+
id: string;
|
|
940
|
+
projectId: string;
|
|
941
|
+
provider: string;
|
|
942
|
+
chatId: string;
|
|
943
|
+
title?: string;
|
|
944
|
+
status: ChannelStatus;
|
|
945
|
+
/** Why the channel is not active (e.g. `removed`, `cannot_post`). */
|
|
946
|
+
statusDetail?: string;
|
|
947
|
+
includePayload: boolean;
|
|
948
|
+
locale: string;
|
|
949
|
+
linkedBy?: string;
|
|
950
|
+
createdAt?: string;
|
|
951
|
+
updatedAt?: string;
|
|
952
|
+
}
|
|
953
|
+
|
|
880
954
|
export declare interface OAuth2CallbackResponse {
|
|
881
955
|
id?: string;
|
|
882
956
|
successUrl?: string;
|
|
@@ -1682,6 +1756,7 @@ export declare class WorkflowsApi extends HttpApi {
|
|
|
1682
1756
|
get(workflowId: string): Promise<Workflow>;
|
|
1683
1757
|
executions(): WorkflowExecutionsApi;
|
|
1684
1758
|
humanTasks(): HumanTasksApi;
|
|
1759
|
+
channels(): ChannelsApi;
|
|
1685
1760
|
listRevisions(workflowId: string): Promise<RevisionType[]>;
|
|
1686
1761
|
getRevision(workflowId: string, revisionId: string): Promise<RevisionType>;
|
|
1687
1762
|
rollback(workflowId: string, revisionId: string): Promise<Workflow>;
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@applica-software-guru/persona-sdk",
|
|
3
3
|
"description": "Official TypeScript SDK for the Persona API — manage agents, sessions, projects, knowledge bases, workflows, triggers and more.",
|
|
4
4
|
"private": false,
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.114",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"dev": "vite",
|
package/src/index.ts
CHANGED
|
@@ -101,6 +101,7 @@ export type {
|
|
|
101
101
|
export { WorkflowsApi } from './workflows/workflows-api';
|
|
102
102
|
export { WorkflowExecutionsApi } from './workflows/workflow-executions-api';
|
|
103
103
|
export { HumanTasksApi } from './workflows/human-tasks-api';
|
|
104
|
+
export { ChannelsApi } from './workflows/channels-api';
|
|
104
105
|
export type {
|
|
105
106
|
Workflow,
|
|
106
107
|
Node,
|
|
@@ -121,6 +122,11 @@ export type {
|
|
|
121
122
|
WorkflowResult,
|
|
122
123
|
ExecuteRequest,
|
|
123
124
|
HumanTask,
|
|
125
|
+
NotificationChannel,
|
|
126
|
+
ChannelIdentity,
|
|
127
|
+
ChannelProvider,
|
|
128
|
+
ChannelLink,
|
|
129
|
+
ChannelStatus,
|
|
124
130
|
AgentValue,
|
|
125
131
|
ContentItem,
|
|
126
132
|
ContentItemFile,
|