@agent-commons/sdk 0.1.4 → 0.1.6
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/index.cjs +63 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +122 -1
- package/dist/index.d.ts +122 -1
- package/dist/index.mjs +63 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -52,6 +52,13 @@ var CommonsClient = class {
|
|
|
52
52
|
}
|
|
53
53
|
return res.json();
|
|
54
54
|
}
|
|
55
|
+
// ── Models ────────────────────────────────────────────────────────────────
|
|
56
|
+
get models() {
|
|
57
|
+
return {
|
|
58
|
+
/** List all available LLM models from the registry */
|
|
59
|
+
list: () => this.request("GET", "/v1/models")
|
|
60
|
+
};
|
|
61
|
+
}
|
|
55
62
|
// ── Agents ────────────────────────────────────────────────────────────────
|
|
56
63
|
get agents() {
|
|
57
64
|
return {
|
|
@@ -76,7 +83,44 @@ var CommonsClient = class {
|
|
|
76
83
|
* if (event.type === 'token') process.stdout.write(event.content ?? '');
|
|
77
84
|
* }
|
|
78
85
|
*/
|
|
79
|
-
stream: (params) => this._streamAgentRun(params)
|
|
86
|
+
stream: (params) => this._streamAgentRun(params),
|
|
87
|
+
// ── Autonomy / Heartbeat ─────────────────────────────────────────────
|
|
88
|
+
/** Get the current heartbeat/autonomy status for an agent. */
|
|
89
|
+
getAutonomy: (agentId) => this.request("GET", `/v1/agents/${agentId}/autonomy`),
|
|
90
|
+
/** Enable or disable the heartbeat, optionally setting the interval. */
|
|
91
|
+
setAutonomy: (agentId, params) => this.request("PUT", `/v1/agents/${agentId}/autonomy`, params),
|
|
92
|
+
/** Trigger a single heartbeat beat immediately. */
|
|
93
|
+
triggerHeartbeat: (agentId) => this.request("POST", `/v1/agents/${agentId}/autonomy/trigger`),
|
|
94
|
+
/**
|
|
95
|
+
* Manually trigger an agent (fire-and-forget).
|
|
96
|
+
* Requires autonomy to be enabled on the agent.
|
|
97
|
+
*/
|
|
98
|
+
trigger: (agentId) => this.request("POST", `/v1/agents/${agentId}/trigger`),
|
|
99
|
+
// ── Knowledgebase ────────────────────────────────────────────────────
|
|
100
|
+
/** Get the knowledgebase entries for an agent. */
|
|
101
|
+
getKnowledgebase: (agentId) => this.request("GET", `/v1/agents/${agentId}/knowledgebase`),
|
|
102
|
+
/** Replace the knowledgebase entries for an agent. */
|
|
103
|
+
updateKnowledgebase: (agentId, knowledgebase) => this.request("PUT", `/v1/agents/${agentId}/knowledgebase`, { knowledgebase }),
|
|
104
|
+
// ── Preferred Connections ────────────────────────────────────────────
|
|
105
|
+
/** List agents that this agent prefers to collaborate with. */
|
|
106
|
+
getPreferredConnections: (agentId) => this.request("GET", `/v1/agents/${agentId}/preferred-connections`),
|
|
107
|
+
/** Add a preferred agent connection. */
|
|
108
|
+
addPreferredConnection: (agentId, params) => this.request("POST", `/v1/agents/${agentId}/preferred-connections`, params),
|
|
109
|
+
/** Remove a preferred agent connection by its record ID. */
|
|
110
|
+
removePreferredConnection: (id) => this.request("DELETE", `/v1/agents/preferred-connections/${id}`),
|
|
111
|
+
// ── TTS Voices ───────────────────────────────────────────────────────
|
|
112
|
+
/**
|
|
113
|
+
* List available TTS voices for a provider.
|
|
114
|
+
* @param provider - 'openai' (default) or 'elevenlabs'
|
|
115
|
+
* @param q - optional search query to filter voices
|
|
116
|
+
*/
|
|
117
|
+
listVoices: (provider, q) => {
|
|
118
|
+
const params = new URLSearchParams();
|
|
119
|
+
if (provider) params.set("provider", provider);
|
|
120
|
+
if (q) params.set("q", q);
|
|
121
|
+
const qs = params.toString();
|
|
122
|
+
return this.request("GET", `/v1/agents/tts/voices${qs ? `?${qs}` : ""}`);
|
|
123
|
+
}
|
|
80
124
|
};
|
|
81
125
|
}
|
|
82
126
|
// ── Run (non-streaming) ───────────────────────────────────────────────────
|
|
@@ -125,6 +169,10 @@ var CommonsClient = class {
|
|
|
125
169
|
get sessions() {
|
|
126
170
|
return {
|
|
127
171
|
list: (agentId, initiatorId) => this.request("GET", `/v1/sessions/list/${agentId}/${initiatorId}`),
|
|
172
|
+
/** List all sessions for a given agent (all initiators). */
|
|
173
|
+
listByAgent: (agentId) => this.request("GET", `/v1/sessions/agent/${agentId}`),
|
|
174
|
+
/** List all sessions for a user across all agents. */
|
|
175
|
+
listByUser: (initiator) => this.request("GET", `/v1/sessions/user/${encodeURIComponent(initiator)}`),
|
|
128
176
|
create: (params) => this.request("POST", "/v1/sessions", params),
|
|
129
177
|
get: (sessionId) => this.request("GET", `/v1/sessions/${sessionId}`),
|
|
130
178
|
/** Get full session with history, tasks, childSessions, and spaces. */
|
|
@@ -202,6 +250,14 @@ var CommonsClient = class {
|
|
|
202
250
|
create: (params) => this.request("POST", "/v1/wallets", params),
|
|
203
251
|
/** Get USDC and native token balance for a wallet. */
|
|
204
252
|
balance: (walletId) => this.request("GET", `/v1/wallets/${walletId}/balance`),
|
|
253
|
+
/** Transfer USDC or ETH to another address. */
|
|
254
|
+
transfer: (walletId, params) => this.request("POST", `/v1/wallets/${walletId}/transfer`, params),
|
|
255
|
+
/**
|
|
256
|
+
* Proxy an HTTP request through an agent's primary wallet, automatically
|
|
257
|
+
* handling x402 payment challenges. The wallet signs the payment and
|
|
258
|
+
* retries once if the target responds with HTTP 402.
|
|
259
|
+
*/
|
|
260
|
+
x402Fetch: (agentId, params) => this.request("POST", `/v1/wallets/agent/${agentId}/x402-fetch`, params),
|
|
205
261
|
/** Deactivate a wallet. */
|
|
206
262
|
deactivate: (walletId) => this.request("DELETE", `/v1/wallets/${walletId}`)
|
|
207
263
|
};
|
|
@@ -316,8 +372,14 @@ var CommonsClient = class {
|
|
|
316
372
|
},
|
|
317
373
|
/** Get MCP server by ID. */
|
|
318
374
|
getServer: (serverId) => this.request("GET", `/v1/mcp/servers/${serverId}`),
|
|
375
|
+
/** Update an MCP server's configuration. */
|
|
376
|
+
updateServer: (serverId, params) => this.request("PUT", `/v1/mcp/servers/${serverId}`, params),
|
|
319
377
|
/** Delete an MCP server. */
|
|
320
378
|
deleteServer: (serverId) => this.request("DELETE", `/v1/mcp/servers/${serverId}`),
|
|
379
|
+
/** List public MCP servers (marketplace). */
|
|
380
|
+
getMarketplace: () => this.request("GET", "/v1/mcp/servers/marketplace"),
|
|
381
|
+
/** Get connection status for an MCP server. */
|
|
382
|
+
getServerStatus: (serverId) => this.request("GET", `/v1/mcp/servers/${serverId}/status`),
|
|
321
383
|
/** Connect to an MCP server. */
|
|
322
384
|
connect: (serverId) => this.request("POST", `/v1/mcp/servers/${serverId}/connect`),
|
|
323
385
|
/** Disconnect from an MCP server. */
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/client.ts"],"sourcesContent":["export { CommonsClient, CommonsError } from './client';\nexport type {\n Agent, CreateAgentParams,\n Session,\n ModelConfig, ModelProvider,\n RunParams, ChatMessage, StreamEvent, StreamEventType,\n Workflow, WorkflowDefinition, WorkflowNode, WorkflowNodeType, WorkflowEdge, WorkflowExecution,\n Task, CreateTaskParams,\n Tool, CreateToolParams,\n ToolKey, CreateToolKeyParams,\n ToolPermission,\n // A2A\n A2ATaskState, A2AMessage, A2AMessagePart, A2ATextPart, A2ADataPart, A2AFilePart,\n A2ATask, A2AArtifact, A2ASkill, AgentCard, A2ASendTaskParams,\n // MCP\n McpConnectionType, McpServer, McpResource, McpPrompt,\n // Skills\n Skill, SkillIndex, CreateSkillParams,\n // Memory\n AgentMemory, MemoryStats, MemoryType, MemorySourceType,\n CreateMemoryParams, UpdateMemoryParams,\n // Usage\n UsageEvent, UsageAggregation,\n // Wallet\n AgentWallet, WalletBalance, CreateWalletParams, WalletType,\n // API Keys\n ApiKey, CreatedApiKey, CreateApiKeyParams, ApiKeyPrincipalType,\n CommonsClientConfig,\n} from './types';\n","import {\n Agent, CreateAgentParams,\n RunParams, StreamEvent,\n Workflow, WorkflowExecution,\n Task, CreateTaskParams,\n Tool, CreateToolParams,\n ToolKey, CreateToolKeyParams,\n ToolPermission,\n CommonsClientConfig,\n AgentCard, A2ATask, A2ASendTaskParams,\n McpServer, McpResource, McpPrompt, McpConnectionType,\n Skill, SkillIndex, CreateSkillParams,\n UsageAggregation,\n AgentMemory, MemoryStats, MemoryType,\n CreateMemoryParams, UpdateMemoryParams,\n AgentWallet, WalletBalance, CreateWalletParams,\n ApiKey, CreatedApiKey, CreateApiKeyParams, ApiKeyPrincipalType,\n} from './types';\n\nexport class CommonsClient {\n private readonly baseUrl: string;\n private readonly apiKey?: string;\n private readonly initiator?: string;\n private readonly _fetch: typeof fetch;\n\n constructor(config: CommonsClientConfig) {\n this.baseUrl = config.baseUrl.replace(/\\/$/, '');\n this.apiKey = config.apiKey;\n this.initiator = config.initiator;\n this._fetch = config.fetch ?? fetch;\n }\n\n // ── Helpers ───────────────────────────────────────────────────────────────\n\n private headers(extra?: Record<string, string>): Record<string, string> {\n const h: Record<string, string> = { 'Content-Type': 'application/json' };\n if (this.apiKey) h['Authorization'] = `Bearer ${this.apiKey}`;\n if (this.initiator) h['x-initiator'] = this.initiator;\n return { ...h, ...extra };\n }\n\n private async request<T>(method: string, path: string, body?: unknown): Promise<T> {\n const res = await this._fetch(`${this.baseUrl}${path}`, {\n method,\n headers: this.headers(),\n body: body !== undefined ? JSON.stringify(body) : undefined,\n });\n if (!res.ok) {\n const err = await res.json().catch(() => ({ message: res.statusText }));\n throw new CommonsError(err.message ?? res.statusText, res.status, err);\n }\n return res.json() as Promise<T>;\n }\n\n // ── Agents ────────────────────────────────────────────────────────────────\n\n get agents() {\n return {\n create: (params: CreateAgentParams): Promise<{ data: Agent }> =>\n this.request('POST', '/v1/agents', params),\n\n list: (owner?: string): Promise<{ data: Agent[] }> =>\n this.request('GET', `/v1/agents${owner ? `?owner=${owner}` : ''}`),\n\n get: (agentId: string): Promise<{ data: Agent }> =>\n this.request('GET', `/v1/agents/${agentId}`),\n\n update: (agentId: string, params: Partial<CreateAgentParams>): Promise<{ data: Agent }> =>\n this.request('PUT', `/v1/agents/${agentId}`, params),\n\n /** List tools assigned to an agent. */\n listTools: (agentId: string): Promise<{ data: any[] }> =>\n this.request('GET', `/v1/agents/${agentId}/tools`),\n\n /** Assign a tool to an agent. */\n addTool: (agentId: string, params: { toolId: string; usageComments?: string }): Promise<{ data: any }> =>\n this.request('POST', `/v1/agents/${agentId}/tools`, params),\n\n /** Remove a tool assignment from an agent. */\n removeTool: (assignmentId: string): Promise<void> =>\n this.request('DELETE', `/v1/agents/tools/${assignmentId}`),\n\n /** Create a liaison agent for an external agent. */\n createLiaison: (params: Record<string, any>): Promise<any> =>\n this.request('POST', '/v1/liaison', params),\n\n /**\n * Stream an agent run. Returns an async generator of StreamEvents.\n * Works in Node.js, browsers, and Edge runtimes.\n *\n * @example\n * for await (const event of client.agents.stream({ agentId, messages })) {\n * if (event.type === 'token') process.stdout.write(event.content ?? '');\n * }\n */\n stream: (params: RunParams): AsyncGenerator<StreamEvent> =>\n this._streamAgentRun(params),\n };\n }\n\n // ── Run (non-streaming) ───────────────────────────────────────────────────\n\n get run() {\n return {\n once: (params: RunParams): Promise<any> =>\n this.request('POST', '/v1/agents/run', params),\n };\n }\n\n // ── Workflows ─────────────────────────────────────────────────────────────\n\n get workflows() {\n return {\n create: (params: {\n name: string;\n description?: string;\n definition: any;\n ownerId: string;\n ownerType: 'user' | 'agent';\n isPublic?: boolean;\n category?: string;\n tags?: string[];\n }): Promise<Workflow> => this.request('POST', '/v1/workflows', params),\n\n list: (ownerId: string, ownerType: 'user' | 'agent'): Promise<Workflow[]> =>\n this.request('GET', `/v1/workflows?ownerId=${ownerId}&ownerType=${ownerType}`),\n\n get: (workflowId: string): Promise<Workflow> =>\n this.request('GET', `/v1/workflows/${workflowId}`),\n\n update: (workflowId: string, updates: Partial<Workflow>): Promise<Workflow> =>\n this.request('PUT', `/v1/workflows/${workflowId}`, updates),\n\n delete: (workflowId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/workflows/${workflowId}`),\n\n execute: (workflowId: string, params: {\n agentId?: string;\n sessionId?: string;\n inputData?: Record<string, any>;\n userId?: string;\n }): Promise<WorkflowExecution> =>\n this.request('POST', `/v1/workflows/${workflowId}/execute`, params),\n\n getExecution: (workflowId: string, executionId: string): Promise<WorkflowExecution> =>\n this.request('GET', `/v1/workflows/${workflowId}/executions/${executionId}`),\n\n listExecutions: (workflowId: string, limit?: number): Promise<WorkflowExecution[]> =>\n this.request('GET', `/v1/workflows/${workflowId}/executions${limit ? `?limit=${limit}` : ''}`),\n\n cancelExecution: (workflowId: string, executionId: string): Promise<{ success: boolean }> =>\n this.request('POST', `/v1/workflows/${workflowId}/executions/${executionId}/cancel`),\n\n /** Approve a paused human_approval node and resume execution. */\n approveExecution: (workflowId: string, executionId: string, params: {\n approvalToken: string;\n approvalData?: Record<string, any>;\n }): Promise<{ success: boolean; executionId: string; action: string }> =>\n this.request('POST', `/v1/workflows/${workflowId}/executions/${executionId}/approve`, params),\n\n /** Reject a paused human_approval node and terminate execution. */\n rejectExecution: (workflowId: string, executionId: string, params: {\n approvalToken: string;\n reason?: string;\n }): Promise<{ success: boolean; executionId: string; action: string }> =>\n this.request('POST', `/v1/workflows/${workflowId}/executions/${executionId}/reject`, params),\n\n /** Stream execution progress via SSE. Returns an async generator. */\n stream: (workflowId: string, executionId: string): AsyncGenerator<StreamEvent> =>\n this._streamSse(`/v1/workflows/${workflowId}/executions/${executionId}/stream`),\n };\n }\n\n // ── Tasks ─────────────────────────────────────────────────────────────────\n\n get tasks() {\n return {\n create: (params: CreateTaskParams): Promise<{ data: Task }> =>\n this.request('POST', '/v1/tasks', params),\n\n list: (filter: { sessionId?: string; agentId?: string; ownerId?: string; ownerType?: 'user' | 'agent' }): Promise<{ data: Task[] }> => {\n const q = new URLSearchParams(filter as any).toString();\n return this.request('GET', `/v1/tasks?${q}`);\n },\n\n get: (taskId: string): Promise<{ data: Task }> =>\n this.request('GET', `/v1/tasks/${taskId}`),\n\n execute: (taskId: string): Promise<{ success: boolean; data: any }> =>\n this.request('POST', `/v1/tasks/${taskId}/execute`),\n\n cancel: (taskId: string): Promise<{ success: boolean }> =>\n this.request('POST', `/v1/tasks/${taskId}/cancel`),\n\n delete: (taskId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tasks/${taskId}`),\n\n /** Stream task status updates via SSE. Returns an async generator. */\n stream: (taskId: string): AsyncGenerator<StreamEvent> =>\n this._streamSse(`/v1/tasks/${taskId}/stream`),\n };\n }\n\n // ── Sessions ──────────────────────────────────────────────────────────────\n\n get sessions() {\n return {\n list: (agentId: string, initiatorId: string): Promise<{ data: import('./types').Session[] }> =>\n this.request('GET', `/v1/sessions/list/${agentId}/${initiatorId}`),\n\n create: (params: {\n agentId: string;\n initiator: string;\n title?: string;\n model?: Record<string, any>;\n }): Promise<{ data: import('./types').Session }> =>\n this.request('POST', '/v1/sessions', params),\n\n get: (sessionId: string): Promise<{ data: import('./types').Session }> =>\n this.request('GET', `/v1/sessions/${sessionId}`),\n\n /** Get full session with history, tasks, childSessions, and spaces. */\n getFull: (sessionId: string): Promise<{ data: any }> =>\n this.request('GET', `/v1/sessions/${sessionId}/full`),\n };\n }\n\n // ── Tools ─────────────────────────────────────────────────────────────────\n\n get tools() {\n return {\n list: (filter?: { agentId?: string; owner?: string; ownerType?: string; visibility?: string }): Promise<{ data: Tool[] }> => {\n const q = filter ? new URLSearchParams(filter as any).toString() : '';\n return this.request('GET', `/v1/tools${q ? `?${q}` : ''}`);\n },\n\n get: (toolId: string): Promise<{ data: Tool }> =>\n this.request('GET', `/v1/tools/${toolId}`),\n\n create: (params: CreateToolParams): Promise<{ data: Tool }> =>\n this.request('POST', '/v1/tools', params),\n\n update: (toolId: string, params: Partial<CreateToolParams>): Promise<{ data: Tool }> =>\n this.request('PUT', `/v1/tools/${toolId}`, params),\n\n delete: (toolId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tools/${toolId}`),\n\n /** List built-in static tools available to all agents. */\n listStatic: (): Promise<{ data: Tool[] }> =>\n this.request('GET', '/v1/tools/static'),\n };\n }\n\n // ── Tool Keys ─────────────────────────────────────────────────────────────\n\n get toolKeys() {\n return {\n list: (filter: { ownerId?: string; ownerType?: string; toolId?: string }): Promise<{ success: boolean; data: ToolKey[] }> => {\n const q = new URLSearchParams(filter as any).toString();\n return this.request('GET', `/v1/tool-keys${q ? `?${q}` : ''}`);\n },\n\n create: (params: CreateToolKeyParams): Promise<{ success: boolean; data: ToolKey }> =>\n this.request('POST', '/v1/tool-keys', params),\n\n delete: (keyId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tool-keys/${keyId}`),\n };\n }\n\n // ── Tool Permissions ──────────────────────────────────────────────────────\n\n get toolPermissions() {\n return {\n list: (toolId?: string): Promise<{ success: boolean; data: ToolPermission[] }> => {\n const q = toolId ? `?toolId=${toolId}` : '';\n return this.request('GET', `/v1/tool-permissions${q}`);\n },\n\n grant: (params: {\n toolId: string;\n subjectId: string;\n subjectType: 'user' | 'agent';\n permission: 'read' | 'execute' | 'admin';\n grantedBy?: string;\n }): Promise<{ success: boolean; data: ToolPermission }> =>\n this.request('POST', '/v1/tool-permissions/grant', params),\n\n revoke: (permissionId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tool-permissions/revoke/${permissionId}`),\n };\n }\n\n // ── Skills ────────────────────────────────────────────────────────────────\n\n get skills() {\n return {\n list: (filter?: { ownerId?: string; ownerType?: string; isPublic?: boolean }): Promise<{ data: Skill[] }> => {\n const params = new URLSearchParams();\n if (filter?.ownerId) params.set('ownerId', filter.ownerId);\n if (filter?.ownerType) params.set('ownerType', filter.ownerType);\n if (filter?.isPublic !== undefined) params.set('isPublic', String(filter.isPublic));\n const qs = params.toString();\n return this.request('GET', `/v1/skills${qs ? `?${qs}` : ''}`);\n },\n\n get: (skillIdOrSlug: string): Promise<{ data: Skill }> =>\n this.request('GET', `/v1/skills/${skillIdOrSlug}`),\n\n getIndex: (ownerId?: string): Promise<{ data: SkillIndex[] }> => {\n const qs = ownerId ? `?ownerId=${ownerId}` : '';\n return this.request('GET', `/v1/skills/index${qs}`);\n },\n\n create: (params: CreateSkillParams): Promise<{ data: Skill }> =>\n this.request('POST', '/v1/skills', params),\n\n update: (skillIdOrSlug: string, updates: Partial<CreateSkillParams>): Promise<{ data: Skill }> =>\n this.request('PUT', `/v1/skills/${skillIdOrSlug}`, updates),\n\n delete: (skillIdOrSlug: string): Promise<{ deleted: boolean }> =>\n this.request('DELETE', `/v1/skills/${skillIdOrSlug}`),\n };\n }\n\n // ── Wallets ───────────────────────────────────────────────────────────────\n\n get wallets() {\n return {\n /** List all wallets for an agent. */\n list: (agentId: string): Promise<AgentWallet[]> =>\n this.request('GET', `/v1/wallets/agent/${agentId}`),\n\n /** Get the primary active wallet for an agent. */\n primary: (agentId: string): Promise<AgentWallet | null> =>\n this.request('GET', `/v1/wallets/agent/${agentId}/primary`),\n\n /** Get a specific wallet by ID. */\n get: (walletId: string): Promise<AgentWallet> =>\n this.request('GET', `/v1/wallets/${walletId}`),\n\n /** Create a new wallet for an agent. */\n create: (params: CreateWalletParams): Promise<AgentWallet> =>\n this.request('POST', '/v1/wallets', params),\n\n /** Get USDC and native token balance for a wallet. */\n balance: (walletId: string): Promise<WalletBalance> =>\n this.request('GET', `/v1/wallets/${walletId}/balance`),\n\n /** Deactivate a wallet. */\n deactivate: (walletId: string): Promise<void> =>\n this.request('DELETE', `/v1/wallets/${walletId}`),\n };\n }\n\n // ── API Keys ──────────────────────────────────────────────────────────────\n\n get apiKeys() {\n return {\n /**\n * Generate a new API key for a principal (user or agent).\n * The plaintext key is returned only in this response — never again.\n */\n create: (params: CreateApiKeyParams): Promise<CreatedApiKey> =>\n this.request('POST', '/v1/auth/api-keys', params),\n\n /** List all active API keys for a principal (key values not included). */\n list: (principalId: string, principalType: ApiKeyPrincipalType): Promise<ApiKey[]> => {\n const q = new URLSearchParams({ principalId, principalType }).toString();\n return this.request('GET', `/v1/auth/api-keys?${q}`);\n },\n\n /** Revoke (soft-delete) an API key by its UUID. */\n revoke: (id: string): Promise<{ revoked: boolean }> =>\n this.request('DELETE', `/v1/auth/api-keys/${id}`),\n };\n }\n\n // ── SSE Streaming internals ───────────────────────────────────────────────\n\n private async *_streamAgentRun(params: RunParams): AsyncGenerator<StreamEvent> {\n const res = await this._fetch(`${this.baseUrl}/v1/agents/run/stream`, {\n method: 'POST',\n headers: this.headers(),\n body: JSON.stringify(params),\n });\n\n if (!res.ok) {\n const err = await res.json().catch(() => ({ message: res.statusText }));\n throw new CommonsError(err.message ?? res.statusText, res.status, err);\n }\n\n yield* this._parseEventStream(res);\n }\n\n private async *_streamSse(path: string): AsyncGenerator<StreamEvent> {\n const res = await this._fetch(`${this.baseUrl}${path}`, {\n method: 'GET',\n headers: this.headers({ Accept: 'text/event-stream' }),\n });\n\n if (!res.ok) {\n const err = await res.json().catch(() => ({ message: res.statusText }));\n throw new CommonsError(err.message ?? res.statusText, res.status, err);\n }\n\n yield* this._parseEventStream(res);\n }\n\n private async *_parseEventStream(res: Response): AsyncGenerator<StreamEvent> {\n if (!res.body) throw new Error('No response body');\n const reader = res.body.getReader();\n const decoder = new TextDecoder();\n let buffer = '';\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += decoder.decode(value, { stream: true });\n\n const lines = buffer.split('\\n');\n buffer = lines.pop() ?? '';\n\n for (const line of lines) {\n if (line.startsWith('data: ')) {\n const raw = line.slice(6).trim();\n if (raw === '[DONE]') return;\n try {\n const event = JSON.parse(raw) as StreamEvent;\n if (event.type !== 'heartbeat') yield event;\n if (event.type === 'final' || event.type === 'completed') return;\n } catch {\n // Ignore malformed lines\n }\n }\n }\n }\n }\n\n // ── A2A ───────────────────────────────────────────────────────────────────\n\n get a2a() {\n return {\n /** Fetch the A2A Agent Card for an agent. */\n getAgentCard: (agentId: string): Promise<AgentCard> =>\n this.request('GET', `/.well-known/agent.json?agentId=${agentId}`),\n\n /** Send a task to an agent (synchronous, waits for completion). */\n sendTask: (agentId: string, params: A2ASendTaskParams): Promise<A2ATask> =>\n this.request('POST', `/v1/a2a/${agentId}`, {\n jsonrpc: '2.0',\n id: params.id ?? `sdk-${Date.now()}`,\n method: 'tasks/send',\n params,\n }).then((r: any) => r.result as A2ATask),\n\n /** Get A2A task status. */\n getTask: (agentId: string, taskId: string): Promise<A2ATask> =>\n this.request('POST', `/v1/a2a/${agentId}`, {\n jsonrpc: '2.0', id: taskId, method: 'tasks/get', params: { id: taskId },\n }).then((r: any) => r.result as A2ATask),\n\n /** Cancel a running A2A task. */\n cancelTask: (agentId: string, taskId: string): Promise<A2ATask> =>\n this.request('POST', `/v1/a2a/${agentId}`, {\n jsonrpc: '2.0', id: taskId, method: 'tasks/cancel', params: { id: taskId },\n }).then((r: any) => r.result as A2ATask),\n\n /** List recent A2A tasks for an agent. */\n listTasks: (agentId: string, limit?: number): Promise<{ tasks: A2ATask[]; total: number }> =>\n this.request('GET', `/v1/a2a/${agentId}/tasks${limit ? `?limit=${limit}` : ''}`),\n\n /** Stream A2A task updates (SSE). */\n stream: (agentId: string, taskId: string): AsyncGenerator<StreamEvent> =>\n this._streamSse(`/v1/a2a/${agentId}/tasks/${taskId}/stream`),\n };\n }\n\n // ── MCP ───────────────────────────────────────────────────────────────────\n\n get mcp() {\n return {\n /** List MCP servers for an owner. */\n listServers: (ownerId: string, ownerType: 'user' | 'agent'): Promise<{ servers: McpServer[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers?ownerId=${ownerId}&ownerType=${ownerType}`),\n\n /** Create a new MCP server. */\n createServer: (params: {\n name: string;\n description?: string;\n connectionType: McpConnectionType;\n connectionConfig: Record<string, any>;\n isPublic?: boolean;\n tags?: string[];\n ownerId: string;\n ownerType: 'user' | 'agent';\n }): Promise<McpServer> => {\n const { ownerId, ownerType, ...dto } = params;\n return this.request('POST', `/v1/mcp/servers?ownerId=${ownerId}&ownerType=${ownerType}`, dto);\n },\n\n /** Get MCP server by ID. */\n getServer: (serverId: string): Promise<McpServer> =>\n this.request('GET', `/v1/mcp/servers/${serverId}`),\n\n /** Delete an MCP server. */\n deleteServer: (serverId: string): Promise<void> =>\n this.request('DELETE', `/v1/mcp/servers/${serverId}`),\n\n /** Connect to an MCP server. */\n connect: (serverId: string): Promise<{ connected: boolean }> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/connect`),\n\n /** Disconnect from an MCP server. */\n disconnect: (serverId: string): Promise<void> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/disconnect`),\n\n /** Sync tools + resources + prompts from the MCP server. */\n sync: (serverId: string): Promise<{ toolsDiscovered: number; resourcesDiscovered: number; promptsDiscovered: number }> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/sync`, {}),\n\n /** List tools discovered from an MCP server. */\n listTools: (serverId: string): Promise<{ tools: any[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/tools`),\n\n /** List all MCP tools across all servers for a given owner. */\n listToolsByOwner: (ownerId: string, ownerType: 'user' | 'agent'): Promise<{ tools: any[] }> =>\n this.request('GET', `/v1/mcp/tools?ownerId=${ownerId}&ownerType=${ownerType}`),\n\n /** List resources from an MCP server. */\n listResources: (serverId: string): Promise<{ resources: McpResource[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/resources`),\n\n /** Read a resource by URI. */\n readResource: (serverId: string, uri: string): Promise<{ uri: string; contents: any }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/resources/read?uri=${encodeURIComponent(uri)}`),\n\n /** List prompts from an MCP server. */\n listPrompts: (serverId: string): Promise<{ prompts: McpPrompt[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/prompts`),\n\n /** Render a prompt with arguments. */\n getPrompt: (serverId: string, promptName: string, args?: Record<string, string>): Promise<{ description?: string; messages: any[] }> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/prompts/${promptName}`, { arguments: args }),\n };\n }\n\n // ── Memory ────────────────────────────────────────────────────────────────\n\n get memory() {\n return {\n /** List all memories for an agent. */\n list: (\n agentId: string,\n opts?: { type?: MemoryType; limit?: number },\n ): Promise<{ data: AgentMemory[] }> => {\n const params = new URLSearchParams();\n if (opts?.type) params.set('type', opts.type);\n if (opts?.limit) params.set('limit', String(opts.limit));\n const qs = params.toString();\n return this.request('GET', `/v1/memory/agents/${agentId}${qs ? `?${qs}` : ''}`);\n },\n\n /** Get memory stats for an agent. */\n stats: (agentId: string): Promise<{ data: MemoryStats }> =>\n this.request('GET', `/v1/memory/agents/${agentId}/stats`),\n\n /** Retrieve memories most relevant to a query. */\n retrieve: (\n agentId: string,\n query: string,\n limit?: number,\n ): Promise<{ data: AgentMemory[] }> => {\n const params = new URLSearchParams({ q: query });\n if (limit) params.set('limit', String(limit));\n return this.request('GET', `/v1/memory/agents/${agentId}/retrieve?${params}`);\n },\n\n /** Get a single memory by ID. */\n get: (memoryId: string): Promise<{ data: AgentMemory }> =>\n this.request('GET', `/v1/memory/${memoryId}`),\n\n /** Manually create a memory. */\n create: (params: CreateMemoryParams): Promise<{ data: AgentMemory }> =>\n this.request('POST', '/v1/memory', params),\n\n /** Update a memory. */\n update: (memoryId: string, params: UpdateMemoryParams): Promise<{ data: AgentMemory }> =>\n this.request('PATCH', `/v1/memory/${memoryId}`, params),\n\n /** Soft-delete (deactivate) a memory. */\n delete: (memoryId: string): Promise<void> =>\n this.request('DELETE', `/v1/memory/${memoryId}`),\n };\n }\n\n // ── Usage / Observability ─────────────────────────────────────────────────\n\n get usage() {\n return {\n /** Get aggregated token + cost usage for an agent. */\n getAgentUsage: (\n agentId: string,\n opts?: { from?: string; to?: string },\n ): Promise<{ data: UsageAggregation }> => {\n const params = new URLSearchParams();\n if (opts?.from) params.set('from', opts.from);\n if (opts?.to) params.set('to', opts.to);\n const qs = params.toString();\n return this.request('GET', `/v1/usage/agents/${agentId}${qs ? `?${qs}` : ''}`);\n },\n\n /** Get aggregated token + cost usage for a session. */\n getSessionUsage: (sessionId: string): Promise<{ data: UsageAggregation }> =>\n this.request('GET', `/v1/usage/sessions/${sessionId}`),\n };\n }\n}\n\n// ─── Error ────────────────────────────────────────────────────────────────────\n\nexport class CommonsError extends Error {\n constructor(\n message: string,\n public readonly status: number,\n public readonly data?: unknown,\n ) {\n super(message);\n this.name = 'CommonsError';\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/client.ts"],"sourcesContent":["export { CommonsClient, CommonsError } from './client';\nexport type {\n Agent, CreateAgentParams,\n Session,\n ModelConfig, ModelProvider,\n RunParams, ChatMessage, StreamEvent, StreamEventType,\n Workflow, WorkflowDefinition, WorkflowNode, WorkflowNodeType, WorkflowEdge, WorkflowExecution,\n Task, CreateTaskParams,\n Tool, CreateToolParams,\n ToolKey, CreateToolKeyParams,\n ToolPermission,\n // A2A\n A2ATaskState, A2AMessage, A2AMessagePart, A2ATextPart, A2ADataPart, A2AFilePart,\n A2ATask, A2AArtifact, A2ASkill, AgentCard, A2ASendTaskParams,\n // MCP\n McpConnectionType, McpServer, McpResource, McpPrompt,\n // Skills\n Skill, SkillIndex, CreateSkillParams,\n // Memory\n AgentMemory, MemoryStats, MemoryType, MemorySourceType,\n CreateMemoryParams, UpdateMemoryParams,\n // Usage\n UsageEvent, UsageAggregation,\n // Wallet\n AgentWallet, WalletBalance, CreateWalletParams, WalletType,\n // API Keys\n ApiKey, CreatedApiKey, CreateApiKeyParams, ApiKeyPrincipalType,\n CommonsClientConfig,\n} from './types';\n","import {\n Agent, CreateAgentParams,\n RunParams, StreamEvent,\n Workflow, WorkflowExecution,\n Task, CreateTaskParams,\n Tool, CreateToolParams,\n ToolKey, CreateToolKeyParams,\n ToolPermission,\n CommonsClientConfig,\n AgentCard, A2ATask, A2ASendTaskParams,\n McpServer, McpResource, McpPrompt, McpConnectionType,\n Skill, SkillIndex, CreateSkillParams,\n UsageAggregation,\n AgentMemory, MemoryStats, MemoryType,\n CreateMemoryParams, UpdateMemoryParams,\n AgentWallet, WalletBalance, CreateWalletParams,\n ApiKey, CreatedApiKey, CreateApiKeyParams, ApiKeyPrincipalType,\n} from './types';\n\nexport class CommonsClient {\n private readonly baseUrl: string;\n private readonly apiKey?: string;\n private readonly initiator?: string;\n private readonly _fetch: typeof fetch;\n\n constructor(config: CommonsClientConfig) {\n this.baseUrl = config.baseUrl.replace(/\\/$/, '');\n this.apiKey = config.apiKey;\n this.initiator = config.initiator;\n this._fetch = config.fetch ?? fetch;\n }\n\n // ── Helpers ───────────────────────────────────────────────────────────────\n\n private headers(extra?: Record<string, string>): Record<string, string> {\n const h: Record<string, string> = { 'Content-Type': 'application/json' };\n if (this.apiKey) h['Authorization'] = `Bearer ${this.apiKey}`;\n if (this.initiator) h['x-initiator'] = this.initiator;\n return { ...h, ...extra };\n }\n\n private async request<T>(method: string, path: string, body?: unknown): Promise<T> {\n const res = await this._fetch(`${this.baseUrl}${path}`, {\n method,\n headers: this.headers(),\n body: body !== undefined ? JSON.stringify(body) : undefined,\n });\n if (!res.ok) {\n const err = await res.json().catch(() => ({ message: res.statusText }));\n throw new CommonsError(err.message ?? res.statusText, res.status, err);\n }\n return res.json() as Promise<T>;\n }\n\n // ── Models ────────────────────────────────────────────────────────────────\n\n get models() {\n return {\n /** List all available LLM models from the registry */\n list: (): Promise<{ data: any[]; grouped: Record<string, any[]> }> =>\n this.request('GET', '/v1/models'),\n };\n }\n\n // ── Agents ────────────────────────────────────────────────────────────────\n\n get agents() {\n return {\n create: (params: CreateAgentParams): Promise<{ data: Agent }> =>\n this.request('POST', '/v1/agents', params),\n\n list: (owner?: string): Promise<{ data: Agent[] }> =>\n this.request('GET', `/v1/agents${owner ? `?owner=${owner}` : ''}`),\n\n get: (agentId: string): Promise<{ data: Agent }> =>\n this.request('GET', `/v1/agents/${agentId}`),\n\n update: (agentId: string, params: Partial<CreateAgentParams>): Promise<{ data: Agent }> =>\n this.request('PUT', `/v1/agents/${agentId}`, params),\n\n /** List tools assigned to an agent. */\n listTools: (agentId: string): Promise<{ data: any[] }> =>\n this.request('GET', `/v1/agents/${agentId}/tools`),\n\n /** Assign a tool to an agent. */\n addTool: (agentId: string, params: { toolId: string; usageComments?: string }): Promise<{ data: any }> =>\n this.request('POST', `/v1/agents/${agentId}/tools`, params),\n\n /** Remove a tool assignment from an agent. */\n removeTool: (assignmentId: string): Promise<void> =>\n this.request('DELETE', `/v1/agents/tools/${assignmentId}`),\n\n /** Create a liaison agent for an external agent. */\n createLiaison: (params: Record<string, any>): Promise<any> =>\n this.request('POST', '/v1/liaison', params),\n\n /**\n * Stream an agent run. Returns an async generator of StreamEvents.\n * Works in Node.js, browsers, and Edge runtimes.\n *\n * @example\n * for await (const event of client.agents.stream({ agentId, messages })) {\n * if (event.type === 'token') process.stdout.write(event.content ?? '');\n * }\n */\n stream: (params: RunParams): AsyncGenerator<StreamEvent> =>\n this._streamAgentRun(params),\n\n // ── Autonomy / Heartbeat ─────────────────────────────────────────────\n\n /** Get the current heartbeat/autonomy status for an agent. */\n getAutonomy: (agentId: string): Promise<{\n data: {\n enabled: boolean;\n intervalSec: number;\n isArmed: boolean;\n lastBeatAt: string | null;\n nextBeatAt: string | null;\n };\n }> => this.request('GET', `/v1/agents/${agentId}/autonomy`),\n\n /** Enable or disable the heartbeat, optionally setting the interval. */\n setAutonomy: (\n agentId: string,\n params: { enabled: boolean; intervalSec?: number },\n ): Promise<{ data: { enabled: boolean; intervalSec: number; isArmed: boolean } }> =>\n this.request('PUT', `/v1/agents/${agentId}/autonomy`, params),\n\n /** Trigger a single heartbeat beat immediately. */\n triggerHeartbeat: (agentId: string): Promise<{ message: string }> =>\n this.request('POST', `/v1/agents/${agentId}/autonomy/trigger`),\n\n /**\n * Manually trigger an agent (fire-and-forget).\n * Requires autonomy to be enabled on the agent.\n */\n trigger: (agentId: string): Promise<{ message: string }> =>\n this.request('POST', `/v1/agents/${agentId}/trigger`),\n\n // ── Knowledgebase ────────────────────────────────────────────────────\n\n /** Get the knowledgebase entries for an agent. */\n getKnowledgebase: (agentId: string): Promise<{ data: any[] }> =>\n this.request('GET', `/v1/agents/${agentId}/knowledgebase`),\n\n /** Replace the knowledgebase entries for an agent. */\n updateKnowledgebase: (agentId: string, knowledgebase: any[]): Promise<{ data: any[] }> =>\n this.request('PUT', `/v1/agents/${agentId}/knowledgebase`, { knowledgebase }),\n\n // ── Preferred Connections ────────────────────────────────────────────\n\n /** List agents that this agent prefers to collaborate with. */\n getPreferredConnections: (agentId: string): Promise<{ data: any[] }> =>\n this.request('GET', `/v1/agents/${agentId}/preferred-connections`),\n\n /** Add a preferred agent connection. */\n addPreferredConnection: (\n agentId: string,\n params: { preferredAgentId: string; usageComments?: string },\n ): Promise<{ data: any }> =>\n this.request('POST', `/v1/agents/${agentId}/preferred-connections`, params),\n\n /** Remove a preferred agent connection by its record ID. */\n removePreferredConnection: (id: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/agents/preferred-connections/${id}`),\n\n // ── TTS Voices ───────────────────────────────────────────────────────\n\n /**\n * List available TTS voices for a provider.\n * @param provider - 'openai' (default) or 'elevenlabs'\n * @param q - optional search query to filter voices\n */\n listVoices: (\n provider?: 'openai' | 'elevenlabs',\n q?: string,\n ): Promise<{ data: any[] }> => {\n const params = new URLSearchParams();\n if (provider) params.set('provider', provider);\n if (q) params.set('q', q);\n const qs = params.toString();\n return this.request('GET', `/v1/agents/tts/voices${qs ? `?${qs}` : ''}`);\n },\n };\n }\n\n // ── Run (non-streaming) ───────────────────────────────────────────────────\n\n get run() {\n return {\n once: (params: RunParams): Promise<any> =>\n this.request('POST', '/v1/agents/run', params),\n };\n }\n\n // ── Workflows ─────────────────────────────────────────────────────────────\n\n get workflows() {\n return {\n create: (params: {\n name: string;\n description?: string;\n definition: any;\n ownerId: string;\n ownerType: 'user' | 'agent';\n isPublic?: boolean;\n category?: string;\n tags?: string[];\n }): Promise<Workflow> => this.request('POST', '/v1/workflows', params),\n\n list: (ownerId: string, ownerType: 'user' | 'agent'): Promise<Workflow[]> =>\n this.request('GET', `/v1/workflows?ownerId=${ownerId}&ownerType=${ownerType}`),\n\n get: (workflowId: string): Promise<Workflow> =>\n this.request('GET', `/v1/workflows/${workflowId}`),\n\n update: (workflowId: string, updates: Partial<Workflow>): Promise<Workflow> =>\n this.request('PUT', `/v1/workflows/${workflowId}`, updates),\n\n delete: (workflowId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/workflows/${workflowId}`),\n\n execute: (workflowId: string, params: {\n agentId?: string;\n sessionId?: string;\n inputData?: Record<string, any>;\n userId?: string;\n }): Promise<WorkflowExecution> =>\n this.request('POST', `/v1/workflows/${workflowId}/execute`, params),\n\n getExecution: (workflowId: string, executionId: string): Promise<WorkflowExecution> =>\n this.request('GET', `/v1/workflows/${workflowId}/executions/${executionId}`),\n\n listExecutions: (workflowId: string, limit?: number): Promise<WorkflowExecution[]> =>\n this.request('GET', `/v1/workflows/${workflowId}/executions${limit ? `?limit=${limit}` : ''}`),\n\n cancelExecution: (workflowId: string, executionId: string): Promise<{ success: boolean }> =>\n this.request('POST', `/v1/workflows/${workflowId}/executions/${executionId}/cancel`),\n\n /** Approve a paused human_approval node and resume execution. */\n approveExecution: (workflowId: string, executionId: string, params: {\n approvalToken: string;\n approvalData?: Record<string, any>;\n }): Promise<{ success: boolean; executionId: string; action: string }> =>\n this.request('POST', `/v1/workflows/${workflowId}/executions/${executionId}/approve`, params),\n\n /** Reject a paused human_approval node and terminate execution. */\n rejectExecution: (workflowId: string, executionId: string, params: {\n approvalToken: string;\n reason?: string;\n }): Promise<{ success: boolean; executionId: string; action: string }> =>\n this.request('POST', `/v1/workflows/${workflowId}/executions/${executionId}/reject`, params),\n\n /** Stream execution progress via SSE. Returns an async generator. */\n stream: (workflowId: string, executionId: string): AsyncGenerator<StreamEvent> =>\n this._streamSse(`/v1/workflows/${workflowId}/executions/${executionId}/stream`),\n };\n }\n\n // ── Tasks ─────────────────────────────────────────────────────────────────\n\n get tasks() {\n return {\n create: (params: CreateTaskParams): Promise<{ data: Task }> =>\n this.request('POST', '/v1/tasks', params),\n\n list: (filter: { sessionId?: string; agentId?: string; ownerId?: string; ownerType?: 'user' | 'agent' }): Promise<{ data: Task[] }> => {\n const q = new URLSearchParams(filter as any).toString();\n return this.request('GET', `/v1/tasks?${q}`);\n },\n\n get: (taskId: string): Promise<{ data: Task }> =>\n this.request('GET', `/v1/tasks/${taskId}`),\n\n execute: (taskId: string): Promise<{ success: boolean; data: any }> =>\n this.request('POST', `/v1/tasks/${taskId}/execute`),\n\n cancel: (taskId: string): Promise<{ success: boolean }> =>\n this.request('POST', `/v1/tasks/${taskId}/cancel`),\n\n delete: (taskId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tasks/${taskId}`),\n\n /** Stream task status updates via SSE. Returns an async generator. */\n stream: (taskId: string): AsyncGenerator<StreamEvent> =>\n this._streamSse(`/v1/tasks/${taskId}/stream`),\n };\n }\n\n // ── Sessions ──────────────────────────────────────────────────────────────\n\n get sessions() {\n return {\n list: (agentId: string, initiatorId: string): Promise<{ data: import('./types').Session[] }> =>\n this.request('GET', `/v1/sessions/list/${agentId}/${initiatorId}`),\n\n /** List all sessions for a given agent (all initiators). */\n listByAgent: (agentId: string): Promise<{ data: import('./types').Session[] }> =>\n this.request('GET', `/v1/sessions/agent/${agentId}`),\n\n /** List all sessions for a user across all agents. */\n listByUser: (initiator: string): Promise<{ data: import('./types').Session[] }> =>\n this.request('GET', `/v1/sessions/user/${encodeURIComponent(initiator)}`),\n\n create: (params: {\n agentId: string;\n initiator: string;\n title?: string;\n model?: Record<string, any>;\n }): Promise<{ data: import('./types').Session }> =>\n this.request('POST', '/v1/sessions', params),\n\n get: (sessionId: string): Promise<{ data: import('./types').Session }> =>\n this.request('GET', `/v1/sessions/${sessionId}`),\n\n /** Get full session with history, tasks, childSessions, and spaces. */\n getFull: (sessionId: string): Promise<{ data: any }> =>\n this.request('GET', `/v1/sessions/${sessionId}/full`),\n };\n }\n\n // ── Tools ─────────────────────────────────────────────────────────────────\n\n get tools() {\n return {\n list: (filter?: { agentId?: string; owner?: string; ownerType?: string; visibility?: string }): Promise<{ data: Tool[] }> => {\n const q = filter ? new URLSearchParams(filter as any).toString() : '';\n return this.request('GET', `/v1/tools${q ? `?${q}` : ''}`);\n },\n\n get: (toolId: string): Promise<{ data: Tool }> =>\n this.request('GET', `/v1/tools/${toolId}`),\n\n create: (params: CreateToolParams): Promise<{ data: Tool }> =>\n this.request('POST', '/v1/tools', params),\n\n update: (toolId: string, params: Partial<CreateToolParams>): Promise<{ data: Tool }> =>\n this.request('PUT', `/v1/tools/${toolId}`, params),\n\n delete: (toolId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tools/${toolId}`),\n\n /** List built-in static tools available to all agents. */\n listStatic: (): Promise<{ data: Tool[] }> =>\n this.request('GET', '/v1/tools/static'),\n };\n }\n\n // ── Tool Keys ─────────────────────────────────────────────────────────────\n\n get toolKeys() {\n return {\n list: (filter: { ownerId?: string; ownerType?: string; toolId?: string }): Promise<{ success: boolean; data: ToolKey[] }> => {\n const q = new URLSearchParams(filter as any).toString();\n return this.request('GET', `/v1/tool-keys${q ? `?${q}` : ''}`);\n },\n\n create: (params: CreateToolKeyParams): Promise<{ success: boolean; data: ToolKey }> =>\n this.request('POST', '/v1/tool-keys', params),\n\n delete: (keyId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tool-keys/${keyId}`),\n };\n }\n\n // ── Tool Permissions ──────────────────────────────────────────────────────\n\n get toolPermissions() {\n return {\n list: (toolId?: string): Promise<{ success: boolean; data: ToolPermission[] }> => {\n const q = toolId ? `?toolId=${toolId}` : '';\n return this.request('GET', `/v1/tool-permissions${q}`);\n },\n\n grant: (params: {\n toolId: string;\n subjectId: string;\n subjectType: 'user' | 'agent';\n permission: 'read' | 'execute' | 'admin';\n grantedBy?: string;\n }): Promise<{ success: boolean; data: ToolPermission }> =>\n this.request('POST', '/v1/tool-permissions/grant', params),\n\n revoke: (permissionId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tool-permissions/revoke/${permissionId}`),\n };\n }\n\n // ── Skills ────────────────────────────────────────────────────────────────\n\n get skills() {\n return {\n list: (filter?: { ownerId?: string; ownerType?: string; isPublic?: boolean }): Promise<{ data: Skill[] }> => {\n const params = new URLSearchParams();\n if (filter?.ownerId) params.set('ownerId', filter.ownerId);\n if (filter?.ownerType) params.set('ownerType', filter.ownerType);\n if (filter?.isPublic !== undefined) params.set('isPublic', String(filter.isPublic));\n const qs = params.toString();\n return this.request('GET', `/v1/skills${qs ? `?${qs}` : ''}`);\n },\n\n get: (skillIdOrSlug: string): Promise<{ data: Skill }> =>\n this.request('GET', `/v1/skills/${skillIdOrSlug}`),\n\n getIndex: (ownerId?: string): Promise<{ data: SkillIndex[] }> => {\n const qs = ownerId ? `?ownerId=${ownerId}` : '';\n return this.request('GET', `/v1/skills/index${qs}`);\n },\n\n create: (params: CreateSkillParams): Promise<{ data: Skill }> =>\n this.request('POST', '/v1/skills', params),\n\n update: (skillIdOrSlug: string, updates: Partial<CreateSkillParams>): Promise<{ data: Skill }> =>\n this.request('PUT', `/v1/skills/${skillIdOrSlug}`, updates),\n\n delete: (skillIdOrSlug: string): Promise<{ deleted: boolean }> =>\n this.request('DELETE', `/v1/skills/${skillIdOrSlug}`),\n };\n }\n\n // ── Wallets ───────────────────────────────────────────────────────────────\n\n get wallets() {\n return {\n /** List all wallets for an agent. */\n list: (agentId: string): Promise<AgentWallet[]> =>\n this.request('GET', `/v1/wallets/agent/${agentId}`),\n\n /** Get the primary active wallet for an agent. */\n primary: (agentId: string): Promise<AgentWallet | null> =>\n this.request('GET', `/v1/wallets/agent/${agentId}/primary`),\n\n /** Get a specific wallet by ID. */\n get: (walletId: string): Promise<AgentWallet> =>\n this.request('GET', `/v1/wallets/${walletId}`),\n\n /** Create a new wallet for an agent. */\n create: (params: CreateWalletParams): Promise<AgentWallet> =>\n this.request('POST', '/v1/wallets', params),\n\n /** Get USDC and native token balance for a wallet. */\n balance: (walletId: string): Promise<WalletBalance> =>\n this.request('GET', `/v1/wallets/${walletId}/balance`),\n\n /** Transfer USDC or ETH to another address. */\n transfer: (\n walletId: string,\n params: { toAddress: string; amount: string; tokenSymbol?: 'USDC' | 'ETH' },\n ): Promise<{ txHash: string }> =>\n this.request('POST', `/v1/wallets/${walletId}/transfer`, params),\n\n /**\n * Proxy an HTTP request through an agent's primary wallet, automatically\n * handling x402 payment challenges. The wallet signs the payment and\n * retries once if the target responds with HTTP 402.\n */\n x402Fetch: (\n agentId: string,\n params: {\n url: string;\n method?: string;\n headers?: Record<string, string>;\n body?: string;\n },\n ): Promise<{ status: number; body: unknown }> =>\n this.request('POST', `/v1/wallets/agent/${agentId}/x402-fetch`, params),\n\n /** Deactivate a wallet. */\n deactivate: (walletId: string): Promise<void> =>\n this.request('DELETE', `/v1/wallets/${walletId}`),\n };\n }\n\n // ── API Keys ──────────────────────────────────────────────────────────────\n\n get apiKeys() {\n return {\n /**\n * Generate a new API key for a principal (user or agent).\n * The plaintext key is returned only in this response — never again.\n */\n create: (params: CreateApiKeyParams): Promise<CreatedApiKey> =>\n this.request('POST', '/v1/auth/api-keys', params),\n\n /** List all active API keys for a principal (key values not included). */\n list: (principalId: string, principalType: ApiKeyPrincipalType): Promise<ApiKey[]> => {\n const q = new URLSearchParams({ principalId, principalType }).toString();\n return this.request('GET', `/v1/auth/api-keys?${q}`);\n },\n\n /** Revoke (soft-delete) an API key by its UUID. */\n revoke: (id: string): Promise<{ revoked: boolean }> =>\n this.request('DELETE', `/v1/auth/api-keys/${id}`),\n };\n }\n\n // ── SSE Streaming internals ───────────────────────────────────────────────\n\n private async *_streamAgentRun(params: RunParams): AsyncGenerator<StreamEvent> {\n const res = await this._fetch(`${this.baseUrl}/v1/agents/run/stream`, {\n method: 'POST',\n headers: this.headers(),\n body: JSON.stringify(params),\n });\n\n if (!res.ok) {\n const err = await res.json().catch(() => ({ message: res.statusText }));\n throw new CommonsError(err.message ?? res.statusText, res.status, err);\n }\n\n yield* this._parseEventStream(res);\n }\n\n private async *_streamSse(path: string): AsyncGenerator<StreamEvent> {\n const res = await this._fetch(`${this.baseUrl}${path}`, {\n method: 'GET',\n headers: this.headers({ Accept: 'text/event-stream' }),\n });\n\n if (!res.ok) {\n const err = await res.json().catch(() => ({ message: res.statusText }));\n throw new CommonsError(err.message ?? res.statusText, res.status, err);\n }\n\n yield* this._parseEventStream(res);\n }\n\n private async *_parseEventStream(res: Response): AsyncGenerator<StreamEvent> {\n if (!res.body) throw new Error('No response body');\n const reader = res.body.getReader();\n const decoder = new TextDecoder();\n let buffer = '';\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += decoder.decode(value, { stream: true });\n\n const lines = buffer.split('\\n');\n buffer = lines.pop() ?? '';\n\n for (const line of lines) {\n if (line.startsWith('data: ')) {\n const raw = line.slice(6).trim();\n if (raw === '[DONE]') return;\n try {\n const event = JSON.parse(raw) as StreamEvent;\n if (event.type !== 'heartbeat') yield event;\n if (event.type === 'final' || event.type === 'completed') return;\n } catch {\n // Ignore malformed lines\n }\n }\n }\n }\n }\n\n // ── A2A ───────────────────────────────────────────────────────────────────\n\n get a2a() {\n return {\n /** Fetch the A2A Agent Card for an agent. */\n getAgentCard: (agentId: string): Promise<AgentCard> =>\n this.request('GET', `/.well-known/agent.json?agentId=${agentId}`),\n\n /** Send a task to an agent (synchronous, waits for completion). */\n sendTask: (agentId: string, params: A2ASendTaskParams): Promise<A2ATask> =>\n this.request('POST', `/v1/a2a/${agentId}`, {\n jsonrpc: '2.0',\n id: params.id ?? `sdk-${Date.now()}`,\n method: 'tasks/send',\n params,\n }).then((r: any) => r.result as A2ATask),\n\n /** Get A2A task status. */\n getTask: (agentId: string, taskId: string): Promise<A2ATask> =>\n this.request('POST', `/v1/a2a/${agentId}`, {\n jsonrpc: '2.0', id: taskId, method: 'tasks/get', params: { id: taskId },\n }).then((r: any) => r.result as A2ATask),\n\n /** Cancel a running A2A task. */\n cancelTask: (agentId: string, taskId: string): Promise<A2ATask> =>\n this.request('POST', `/v1/a2a/${agentId}`, {\n jsonrpc: '2.0', id: taskId, method: 'tasks/cancel', params: { id: taskId },\n }).then((r: any) => r.result as A2ATask),\n\n /** List recent A2A tasks for an agent. */\n listTasks: (agentId: string, limit?: number): Promise<{ tasks: A2ATask[]; total: number }> =>\n this.request('GET', `/v1/a2a/${agentId}/tasks${limit ? `?limit=${limit}` : ''}`),\n\n /** Stream A2A task updates (SSE). */\n stream: (agentId: string, taskId: string): AsyncGenerator<StreamEvent> =>\n this._streamSse(`/v1/a2a/${agentId}/tasks/${taskId}/stream`),\n };\n }\n\n // ── MCP ───────────────────────────────────────────────────────────────────\n\n get mcp() {\n return {\n /** List MCP servers for an owner. */\n listServers: (ownerId: string, ownerType: 'user' | 'agent'): Promise<{ servers: McpServer[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers?ownerId=${ownerId}&ownerType=${ownerType}`),\n\n /** Create a new MCP server. */\n createServer: (params: {\n name: string;\n description?: string;\n connectionType: McpConnectionType;\n connectionConfig: Record<string, any>;\n isPublic?: boolean;\n tags?: string[];\n ownerId: string;\n ownerType: 'user' | 'agent';\n }): Promise<McpServer> => {\n const { ownerId, ownerType, ...dto } = params;\n return this.request('POST', `/v1/mcp/servers?ownerId=${ownerId}&ownerType=${ownerType}`, dto);\n },\n\n /** Get MCP server by ID. */\n getServer: (serverId: string): Promise<McpServer> =>\n this.request('GET', `/v1/mcp/servers/${serverId}`),\n\n /** Update an MCP server's configuration. */\n updateServer: (serverId: string, params: Partial<{\n name: string;\n description: string;\n connectionConfig: Record<string, any>;\n isPublic: boolean;\n tags: string[];\n }>): Promise<McpServer> =>\n this.request('PUT', `/v1/mcp/servers/${serverId}`, params),\n\n /** Delete an MCP server. */\n deleteServer: (serverId: string): Promise<void> =>\n this.request('DELETE', `/v1/mcp/servers/${serverId}`),\n\n /** List public MCP servers (marketplace). */\n getMarketplace: (): Promise<{ servers: McpServer[]; total: number }> =>\n this.request('GET', '/v1/mcp/servers/marketplace'),\n\n /** Get connection status for an MCP server. */\n getServerStatus: (serverId: string): Promise<{\n connected: boolean;\n capabilities: string[];\n toolsDiscovered: number;\n lastConnectedAt: Date | null;\n lastError: string | null;\n }> => this.request('GET', `/v1/mcp/servers/${serverId}/status`),\n\n /** Connect to an MCP server. */\n connect: (serverId: string): Promise<{ connected: boolean }> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/connect`),\n\n /** Disconnect from an MCP server. */\n disconnect: (serverId: string): Promise<void> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/disconnect`),\n\n /** Sync tools + resources + prompts from the MCP server. */\n sync: (serverId: string): Promise<{ toolsDiscovered: number; resourcesDiscovered: number; promptsDiscovered: number }> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/sync`, {}),\n\n /** List tools discovered from an MCP server. */\n listTools: (serverId: string): Promise<{ tools: any[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/tools`),\n\n /** List all MCP tools across all servers for a given owner. */\n listToolsByOwner: (ownerId: string, ownerType: 'user' | 'agent'): Promise<{ tools: any[] }> =>\n this.request('GET', `/v1/mcp/tools?ownerId=${ownerId}&ownerType=${ownerType}`),\n\n /** List resources from an MCP server. */\n listResources: (serverId: string): Promise<{ resources: McpResource[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/resources`),\n\n /** Read a resource by URI. */\n readResource: (serverId: string, uri: string): Promise<{ uri: string; contents: any }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/resources/read?uri=${encodeURIComponent(uri)}`),\n\n /** List prompts from an MCP server. */\n listPrompts: (serverId: string): Promise<{ prompts: McpPrompt[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/prompts`),\n\n /** Render a prompt with arguments. */\n getPrompt: (serverId: string, promptName: string, args?: Record<string, string>): Promise<{ description?: string; messages: any[] }> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/prompts/${promptName}`, { arguments: args }),\n };\n }\n\n // ── Memory ────────────────────────────────────────────────────────────────\n\n get memory() {\n return {\n /** List all memories for an agent. */\n list: (\n agentId: string,\n opts?: { type?: MemoryType; limit?: number },\n ): Promise<{ data: AgentMemory[] }> => {\n const params = new URLSearchParams();\n if (opts?.type) params.set('type', opts.type);\n if (opts?.limit) params.set('limit', String(opts.limit));\n const qs = params.toString();\n return this.request('GET', `/v1/memory/agents/${agentId}${qs ? `?${qs}` : ''}`);\n },\n\n /** Get memory stats for an agent. */\n stats: (agentId: string): Promise<{ data: MemoryStats }> =>\n this.request('GET', `/v1/memory/agents/${agentId}/stats`),\n\n /** Retrieve memories most relevant to a query. */\n retrieve: (\n agentId: string,\n query: string,\n limit?: number,\n ): Promise<{ data: AgentMemory[] }> => {\n const params = new URLSearchParams({ q: query });\n if (limit) params.set('limit', String(limit));\n return this.request('GET', `/v1/memory/agents/${agentId}/retrieve?${params}`);\n },\n\n /** Get a single memory by ID. */\n get: (memoryId: string): Promise<{ data: AgentMemory }> =>\n this.request('GET', `/v1/memory/${memoryId}`),\n\n /** Manually create a memory. */\n create: (params: CreateMemoryParams): Promise<{ data: AgentMemory }> =>\n this.request('POST', '/v1/memory', params),\n\n /** Update a memory. */\n update: (memoryId: string, params: UpdateMemoryParams): Promise<{ data: AgentMemory }> =>\n this.request('PATCH', `/v1/memory/${memoryId}`, params),\n\n /** Soft-delete (deactivate) a memory. */\n delete: (memoryId: string): Promise<void> =>\n this.request('DELETE', `/v1/memory/${memoryId}`),\n };\n }\n\n // ── Usage / Observability ─────────────────────────────────────────────────\n\n get usage() {\n return {\n /** Get aggregated token + cost usage for an agent. */\n getAgentUsage: (\n agentId: string,\n opts?: { from?: string; to?: string },\n ): Promise<{ data: UsageAggregation }> => {\n const params = new URLSearchParams();\n if (opts?.from) params.set('from', opts.from);\n if (opts?.to) params.set('to', opts.to);\n const qs = params.toString();\n return this.request('GET', `/v1/usage/agents/${agentId}${qs ? `?${qs}` : ''}`);\n },\n\n /** Get aggregated token + cost usage for a session. */\n getSessionUsage: (sessionId: string): Promise<{ data: UsageAggregation }> =>\n this.request('GET', `/v1/usage/sessions/${sessionId}`),\n };\n }\n}\n\n// ─── Error ────────────────────────────────────────────────────────────────────\n\nexport class CommonsError extends Error {\n constructor(\n message: string,\n public readonly status: number,\n public readonly data?: unknown,\n ) {\n super(message);\n this.name = 'CommonsError';\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.d.mts
CHANGED
|
@@ -133,7 +133,7 @@ interface Task {
|
|
|
133
133
|
sessionId: string;
|
|
134
134
|
title: string;
|
|
135
135
|
description?: string;
|
|
136
|
-
status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
|
|
136
|
+
status: 'pending' | 'started' | 'running' | 'completed' | 'failed' | 'cancelled';
|
|
137
137
|
executionMode: 'single' | 'workflow' | 'sequential';
|
|
138
138
|
workflowId?: string;
|
|
139
139
|
cronExpression?: string;
|
|
@@ -510,6 +510,13 @@ declare class CommonsClient {
|
|
|
510
510
|
constructor(config: CommonsClientConfig);
|
|
511
511
|
private headers;
|
|
512
512
|
private request;
|
|
513
|
+
get models(): {
|
|
514
|
+
/** List all available LLM models from the registry */
|
|
515
|
+
list: () => Promise<{
|
|
516
|
+
data: any[];
|
|
517
|
+
grouped: Record<string, any[]>;
|
|
518
|
+
}>;
|
|
519
|
+
};
|
|
513
520
|
get agents(): {
|
|
514
521
|
create: (params: CreateAgentParams) => Promise<{
|
|
515
522
|
data: Agent;
|
|
@@ -548,6 +555,69 @@ declare class CommonsClient {
|
|
|
548
555
|
* }
|
|
549
556
|
*/
|
|
550
557
|
stream: (params: RunParams) => AsyncGenerator<StreamEvent>;
|
|
558
|
+
/** Get the current heartbeat/autonomy status for an agent. */
|
|
559
|
+
getAutonomy: (agentId: string) => Promise<{
|
|
560
|
+
data: {
|
|
561
|
+
enabled: boolean;
|
|
562
|
+
intervalSec: number;
|
|
563
|
+
isArmed: boolean;
|
|
564
|
+
lastBeatAt: string | null;
|
|
565
|
+
nextBeatAt: string | null;
|
|
566
|
+
};
|
|
567
|
+
}>;
|
|
568
|
+
/** Enable or disable the heartbeat, optionally setting the interval. */
|
|
569
|
+
setAutonomy: (agentId: string, params: {
|
|
570
|
+
enabled: boolean;
|
|
571
|
+
intervalSec?: number;
|
|
572
|
+
}) => Promise<{
|
|
573
|
+
data: {
|
|
574
|
+
enabled: boolean;
|
|
575
|
+
intervalSec: number;
|
|
576
|
+
isArmed: boolean;
|
|
577
|
+
};
|
|
578
|
+
}>;
|
|
579
|
+
/** Trigger a single heartbeat beat immediately. */
|
|
580
|
+
triggerHeartbeat: (agentId: string) => Promise<{
|
|
581
|
+
message: string;
|
|
582
|
+
}>;
|
|
583
|
+
/**
|
|
584
|
+
* Manually trigger an agent (fire-and-forget).
|
|
585
|
+
* Requires autonomy to be enabled on the agent.
|
|
586
|
+
*/
|
|
587
|
+
trigger: (agentId: string) => Promise<{
|
|
588
|
+
message: string;
|
|
589
|
+
}>;
|
|
590
|
+
/** Get the knowledgebase entries for an agent. */
|
|
591
|
+
getKnowledgebase: (agentId: string) => Promise<{
|
|
592
|
+
data: any[];
|
|
593
|
+
}>;
|
|
594
|
+
/** Replace the knowledgebase entries for an agent. */
|
|
595
|
+
updateKnowledgebase: (agentId: string, knowledgebase: any[]) => Promise<{
|
|
596
|
+
data: any[];
|
|
597
|
+
}>;
|
|
598
|
+
/** List agents that this agent prefers to collaborate with. */
|
|
599
|
+
getPreferredConnections: (agentId: string) => Promise<{
|
|
600
|
+
data: any[];
|
|
601
|
+
}>;
|
|
602
|
+
/** Add a preferred agent connection. */
|
|
603
|
+
addPreferredConnection: (agentId: string, params: {
|
|
604
|
+
preferredAgentId: string;
|
|
605
|
+
usageComments?: string;
|
|
606
|
+
}) => Promise<{
|
|
607
|
+
data: any;
|
|
608
|
+
}>;
|
|
609
|
+
/** Remove a preferred agent connection by its record ID. */
|
|
610
|
+
removePreferredConnection: (id: string) => Promise<{
|
|
611
|
+
success: boolean;
|
|
612
|
+
}>;
|
|
613
|
+
/**
|
|
614
|
+
* List available TTS voices for a provider.
|
|
615
|
+
* @param provider - 'openai' (default) or 'elevenlabs'
|
|
616
|
+
* @param q - optional search query to filter voices
|
|
617
|
+
*/
|
|
618
|
+
listVoices: (provider?: "openai" | "elevenlabs", q?: string) => Promise<{
|
|
619
|
+
data: any[];
|
|
620
|
+
}>;
|
|
551
621
|
};
|
|
552
622
|
get run(): {
|
|
553
623
|
once: (params: RunParams) => Promise<any>;
|
|
@@ -633,6 +703,14 @@ declare class CommonsClient {
|
|
|
633
703
|
list: (agentId: string, initiatorId: string) => Promise<{
|
|
634
704
|
data: Session[];
|
|
635
705
|
}>;
|
|
706
|
+
/** List all sessions for a given agent (all initiators). */
|
|
707
|
+
listByAgent: (agentId: string) => Promise<{
|
|
708
|
+
data: Session[];
|
|
709
|
+
}>;
|
|
710
|
+
/** List all sessions for a user across all agents. */
|
|
711
|
+
listByUser: (initiator: string) => Promise<{
|
|
712
|
+
data: Session[];
|
|
713
|
+
}>;
|
|
636
714
|
create: (params: {
|
|
637
715
|
agentId: string;
|
|
638
716
|
initiator: string;
|
|
@@ -746,6 +824,28 @@ declare class CommonsClient {
|
|
|
746
824
|
create: (params: CreateWalletParams) => Promise<AgentWallet>;
|
|
747
825
|
/** Get USDC and native token balance for a wallet. */
|
|
748
826
|
balance: (walletId: string) => Promise<WalletBalance>;
|
|
827
|
+
/** Transfer USDC or ETH to another address. */
|
|
828
|
+
transfer: (walletId: string, params: {
|
|
829
|
+
toAddress: string;
|
|
830
|
+
amount: string;
|
|
831
|
+
tokenSymbol?: "USDC" | "ETH";
|
|
832
|
+
}) => Promise<{
|
|
833
|
+
txHash: string;
|
|
834
|
+
}>;
|
|
835
|
+
/**
|
|
836
|
+
* Proxy an HTTP request through an agent's primary wallet, automatically
|
|
837
|
+
* handling x402 payment challenges. The wallet signs the payment and
|
|
838
|
+
* retries once if the target responds with HTTP 402.
|
|
839
|
+
*/
|
|
840
|
+
x402Fetch: (agentId: string, params: {
|
|
841
|
+
url: string;
|
|
842
|
+
method?: string;
|
|
843
|
+
headers?: Record<string, string>;
|
|
844
|
+
body?: string;
|
|
845
|
+
}) => Promise<{
|
|
846
|
+
status: number;
|
|
847
|
+
body: unknown;
|
|
848
|
+
}>;
|
|
749
849
|
/** Deactivate a wallet. */
|
|
750
850
|
deactivate: (walletId: string) => Promise<void>;
|
|
751
851
|
};
|
|
@@ -801,8 +901,29 @@ declare class CommonsClient {
|
|
|
801
901
|
}) => Promise<McpServer>;
|
|
802
902
|
/** Get MCP server by ID. */
|
|
803
903
|
getServer: (serverId: string) => Promise<McpServer>;
|
|
904
|
+
/** Update an MCP server's configuration. */
|
|
905
|
+
updateServer: (serverId: string, params: Partial<{
|
|
906
|
+
name: string;
|
|
907
|
+
description: string;
|
|
908
|
+
connectionConfig: Record<string, any>;
|
|
909
|
+
isPublic: boolean;
|
|
910
|
+
tags: string[];
|
|
911
|
+
}>) => Promise<McpServer>;
|
|
804
912
|
/** Delete an MCP server. */
|
|
805
913
|
deleteServer: (serverId: string) => Promise<void>;
|
|
914
|
+
/** List public MCP servers (marketplace). */
|
|
915
|
+
getMarketplace: () => Promise<{
|
|
916
|
+
servers: McpServer[];
|
|
917
|
+
total: number;
|
|
918
|
+
}>;
|
|
919
|
+
/** Get connection status for an MCP server. */
|
|
920
|
+
getServerStatus: (serverId: string) => Promise<{
|
|
921
|
+
connected: boolean;
|
|
922
|
+
capabilities: string[];
|
|
923
|
+
toolsDiscovered: number;
|
|
924
|
+
lastConnectedAt: Date | null;
|
|
925
|
+
lastError: string | null;
|
|
926
|
+
}>;
|
|
806
927
|
/** Connect to an MCP server. */
|
|
807
928
|
connect: (serverId: string) => Promise<{
|
|
808
929
|
connected: boolean;
|
package/dist/index.d.ts
CHANGED
|
@@ -133,7 +133,7 @@ interface Task {
|
|
|
133
133
|
sessionId: string;
|
|
134
134
|
title: string;
|
|
135
135
|
description?: string;
|
|
136
|
-
status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
|
|
136
|
+
status: 'pending' | 'started' | 'running' | 'completed' | 'failed' | 'cancelled';
|
|
137
137
|
executionMode: 'single' | 'workflow' | 'sequential';
|
|
138
138
|
workflowId?: string;
|
|
139
139
|
cronExpression?: string;
|
|
@@ -510,6 +510,13 @@ declare class CommonsClient {
|
|
|
510
510
|
constructor(config: CommonsClientConfig);
|
|
511
511
|
private headers;
|
|
512
512
|
private request;
|
|
513
|
+
get models(): {
|
|
514
|
+
/** List all available LLM models from the registry */
|
|
515
|
+
list: () => Promise<{
|
|
516
|
+
data: any[];
|
|
517
|
+
grouped: Record<string, any[]>;
|
|
518
|
+
}>;
|
|
519
|
+
};
|
|
513
520
|
get agents(): {
|
|
514
521
|
create: (params: CreateAgentParams) => Promise<{
|
|
515
522
|
data: Agent;
|
|
@@ -548,6 +555,69 @@ declare class CommonsClient {
|
|
|
548
555
|
* }
|
|
549
556
|
*/
|
|
550
557
|
stream: (params: RunParams) => AsyncGenerator<StreamEvent>;
|
|
558
|
+
/** Get the current heartbeat/autonomy status for an agent. */
|
|
559
|
+
getAutonomy: (agentId: string) => Promise<{
|
|
560
|
+
data: {
|
|
561
|
+
enabled: boolean;
|
|
562
|
+
intervalSec: number;
|
|
563
|
+
isArmed: boolean;
|
|
564
|
+
lastBeatAt: string | null;
|
|
565
|
+
nextBeatAt: string | null;
|
|
566
|
+
};
|
|
567
|
+
}>;
|
|
568
|
+
/** Enable or disable the heartbeat, optionally setting the interval. */
|
|
569
|
+
setAutonomy: (agentId: string, params: {
|
|
570
|
+
enabled: boolean;
|
|
571
|
+
intervalSec?: number;
|
|
572
|
+
}) => Promise<{
|
|
573
|
+
data: {
|
|
574
|
+
enabled: boolean;
|
|
575
|
+
intervalSec: number;
|
|
576
|
+
isArmed: boolean;
|
|
577
|
+
};
|
|
578
|
+
}>;
|
|
579
|
+
/** Trigger a single heartbeat beat immediately. */
|
|
580
|
+
triggerHeartbeat: (agentId: string) => Promise<{
|
|
581
|
+
message: string;
|
|
582
|
+
}>;
|
|
583
|
+
/**
|
|
584
|
+
* Manually trigger an agent (fire-and-forget).
|
|
585
|
+
* Requires autonomy to be enabled on the agent.
|
|
586
|
+
*/
|
|
587
|
+
trigger: (agentId: string) => Promise<{
|
|
588
|
+
message: string;
|
|
589
|
+
}>;
|
|
590
|
+
/** Get the knowledgebase entries for an agent. */
|
|
591
|
+
getKnowledgebase: (agentId: string) => Promise<{
|
|
592
|
+
data: any[];
|
|
593
|
+
}>;
|
|
594
|
+
/** Replace the knowledgebase entries for an agent. */
|
|
595
|
+
updateKnowledgebase: (agentId: string, knowledgebase: any[]) => Promise<{
|
|
596
|
+
data: any[];
|
|
597
|
+
}>;
|
|
598
|
+
/** List agents that this agent prefers to collaborate with. */
|
|
599
|
+
getPreferredConnections: (agentId: string) => Promise<{
|
|
600
|
+
data: any[];
|
|
601
|
+
}>;
|
|
602
|
+
/** Add a preferred agent connection. */
|
|
603
|
+
addPreferredConnection: (agentId: string, params: {
|
|
604
|
+
preferredAgentId: string;
|
|
605
|
+
usageComments?: string;
|
|
606
|
+
}) => Promise<{
|
|
607
|
+
data: any;
|
|
608
|
+
}>;
|
|
609
|
+
/** Remove a preferred agent connection by its record ID. */
|
|
610
|
+
removePreferredConnection: (id: string) => Promise<{
|
|
611
|
+
success: boolean;
|
|
612
|
+
}>;
|
|
613
|
+
/**
|
|
614
|
+
* List available TTS voices for a provider.
|
|
615
|
+
* @param provider - 'openai' (default) or 'elevenlabs'
|
|
616
|
+
* @param q - optional search query to filter voices
|
|
617
|
+
*/
|
|
618
|
+
listVoices: (provider?: "openai" | "elevenlabs", q?: string) => Promise<{
|
|
619
|
+
data: any[];
|
|
620
|
+
}>;
|
|
551
621
|
};
|
|
552
622
|
get run(): {
|
|
553
623
|
once: (params: RunParams) => Promise<any>;
|
|
@@ -633,6 +703,14 @@ declare class CommonsClient {
|
|
|
633
703
|
list: (agentId: string, initiatorId: string) => Promise<{
|
|
634
704
|
data: Session[];
|
|
635
705
|
}>;
|
|
706
|
+
/** List all sessions for a given agent (all initiators). */
|
|
707
|
+
listByAgent: (agentId: string) => Promise<{
|
|
708
|
+
data: Session[];
|
|
709
|
+
}>;
|
|
710
|
+
/** List all sessions for a user across all agents. */
|
|
711
|
+
listByUser: (initiator: string) => Promise<{
|
|
712
|
+
data: Session[];
|
|
713
|
+
}>;
|
|
636
714
|
create: (params: {
|
|
637
715
|
agentId: string;
|
|
638
716
|
initiator: string;
|
|
@@ -746,6 +824,28 @@ declare class CommonsClient {
|
|
|
746
824
|
create: (params: CreateWalletParams) => Promise<AgentWallet>;
|
|
747
825
|
/** Get USDC and native token balance for a wallet. */
|
|
748
826
|
balance: (walletId: string) => Promise<WalletBalance>;
|
|
827
|
+
/** Transfer USDC or ETH to another address. */
|
|
828
|
+
transfer: (walletId: string, params: {
|
|
829
|
+
toAddress: string;
|
|
830
|
+
amount: string;
|
|
831
|
+
tokenSymbol?: "USDC" | "ETH";
|
|
832
|
+
}) => Promise<{
|
|
833
|
+
txHash: string;
|
|
834
|
+
}>;
|
|
835
|
+
/**
|
|
836
|
+
* Proxy an HTTP request through an agent's primary wallet, automatically
|
|
837
|
+
* handling x402 payment challenges. The wallet signs the payment and
|
|
838
|
+
* retries once if the target responds with HTTP 402.
|
|
839
|
+
*/
|
|
840
|
+
x402Fetch: (agentId: string, params: {
|
|
841
|
+
url: string;
|
|
842
|
+
method?: string;
|
|
843
|
+
headers?: Record<string, string>;
|
|
844
|
+
body?: string;
|
|
845
|
+
}) => Promise<{
|
|
846
|
+
status: number;
|
|
847
|
+
body: unknown;
|
|
848
|
+
}>;
|
|
749
849
|
/** Deactivate a wallet. */
|
|
750
850
|
deactivate: (walletId: string) => Promise<void>;
|
|
751
851
|
};
|
|
@@ -801,8 +901,29 @@ declare class CommonsClient {
|
|
|
801
901
|
}) => Promise<McpServer>;
|
|
802
902
|
/** Get MCP server by ID. */
|
|
803
903
|
getServer: (serverId: string) => Promise<McpServer>;
|
|
904
|
+
/** Update an MCP server's configuration. */
|
|
905
|
+
updateServer: (serverId: string, params: Partial<{
|
|
906
|
+
name: string;
|
|
907
|
+
description: string;
|
|
908
|
+
connectionConfig: Record<string, any>;
|
|
909
|
+
isPublic: boolean;
|
|
910
|
+
tags: string[];
|
|
911
|
+
}>) => Promise<McpServer>;
|
|
804
912
|
/** Delete an MCP server. */
|
|
805
913
|
deleteServer: (serverId: string) => Promise<void>;
|
|
914
|
+
/** List public MCP servers (marketplace). */
|
|
915
|
+
getMarketplace: () => Promise<{
|
|
916
|
+
servers: McpServer[];
|
|
917
|
+
total: number;
|
|
918
|
+
}>;
|
|
919
|
+
/** Get connection status for an MCP server. */
|
|
920
|
+
getServerStatus: (serverId: string) => Promise<{
|
|
921
|
+
connected: boolean;
|
|
922
|
+
capabilities: string[];
|
|
923
|
+
toolsDiscovered: number;
|
|
924
|
+
lastConnectedAt: Date | null;
|
|
925
|
+
lastError: string | null;
|
|
926
|
+
}>;
|
|
806
927
|
/** Connect to an MCP server. */
|
|
807
928
|
connect: (serverId: string) => Promise<{
|
|
808
929
|
connected: boolean;
|
package/dist/index.mjs
CHANGED
|
@@ -25,6 +25,13 @@ var CommonsClient = class {
|
|
|
25
25
|
}
|
|
26
26
|
return res.json();
|
|
27
27
|
}
|
|
28
|
+
// ── Models ────────────────────────────────────────────────────────────────
|
|
29
|
+
get models() {
|
|
30
|
+
return {
|
|
31
|
+
/** List all available LLM models from the registry */
|
|
32
|
+
list: () => this.request("GET", "/v1/models")
|
|
33
|
+
};
|
|
34
|
+
}
|
|
28
35
|
// ── Agents ────────────────────────────────────────────────────────────────
|
|
29
36
|
get agents() {
|
|
30
37
|
return {
|
|
@@ -49,7 +56,44 @@ var CommonsClient = class {
|
|
|
49
56
|
* if (event.type === 'token') process.stdout.write(event.content ?? '');
|
|
50
57
|
* }
|
|
51
58
|
*/
|
|
52
|
-
stream: (params) => this._streamAgentRun(params)
|
|
59
|
+
stream: (params) => this._streamAgentRun(params),
|
|
60
|
+
// ── Autonomy / Heartbeat ─────────────────────────────────────────────
|
|
61
|
+
/** Get the current heartbeat/autonomy status for an agent. */
|
|
62
|
+
getAutonomy: (agentId) => this.request("GET", `/v1/agents/${agentId}/autonomy`),
|
|
63
|
+
/** Enable or disable the heartbeat, optionally setting the interval. */
|
|
64
|
+
setAutonomy: (agentId, params) => this.request("PUT", `/v1/agents/${agentId}/autonomy`, params),
|
|
65
|
+
/** Trigger a single heartbeat beat immediately. */
|
|
66
|
+
triggerHeartbeat: (agentId) => this.request("POST", `/v1/agents/${agentId}/autonomy/trigger`),
|
|
67
|
+
/**
|
|
68
|
+
* Manually trigger an agent (fire-and-forget).
|
|
69
|
+
* Requires autonomy to be enabled on the agent.
|
|
70
|
+
*/
|
|
71
|
+
trigger: (agentId) => this.request("POST", `/v1/agents/${agentId}/trigger`),
|
|
72
|
+
// ── Knowledgebase ────────────────────────────────────────────────────
|
|
73
|
+
/** Get the knowledgebase entries for an agent. */
|
|
74
|
+
getKnowledgebase: (agentId) => this.request("GET", `/v1/agents/${agentId}/knowledgebase`),
|
|
75
|
+
/** Replace the knowledgebase entries for an agent. */
|
|
76
|
+
updateKnowledgebase: (agentId, knowledgebase) => this.request("PUT", `/v1/agents/${agentId}/knowledgebase`, { knowledgebase }),
|
|
77
|
+
// ── Preferred Connections ────────────────────────────────────────────
|
|
78
|
+
/** List agents that this agent prefers to collaborate with. */
|
|
79
|
+
getPreferredConnections: (agentId) => this.request("GET", `/v1/agents/${agentId}/preferred-connections`),
|
|
80
|
+
/** Add a preferred agent connection. */
|
|
81
|
+
addPreferredConnection: (agentId, params) => this.request("POST", `/v1/agents/${agentId}/preferred-connections`, params),
|
|
82
|
+
/** Remove a preferred agent connection by its record ID. */
|
|
83
|
+
removePreferredConnection: (id) => this.request("DELETE", `/v1/agents/preferred-connections/${id}`),
|
|
84
|
+
// ── TTS Voices ───────────────────────────────────────────────────────
|
|
85
|
+
/**
|
|
86
|
+
* List available TTS voices for a provider.
|
|
87
|
+
* @param provider - 'openai' (default) or 'elevenlabs'
|
|
88
|
+
* @param q - optional search query to filter voices
|
|
89
|
+
*/
|
|
90
|
+
listVoices: (provider, q) => {
|
|
91
|
+
const params = new URLSearchParams();
|
|
92
|
+
if (provider) params.set("provider", provider);
|
|
93
|
+
if (q) params.set("q", q);
|
|
94
|
+
const qs = params.toString();
|
|
95
|
+
return this.request("GET", `/v1/agents/tts/voices${qs ? `?${qs}` : ""}`);
|
|
96
|
+
}
|
|
53
97
|
};
|
|
54
98
|
}
|
|
55
99
|
// ── Run (non-streaming) ───────────────────────────────────────────────────
|
|
@@ -98,6 +142,10 @@ var CommonsClient = class {
|
|
|
98
142
|
get sessions() {
|
|
99
143
|
return {
|
|
100
144
|
list: (agentId, initiatorId) => this.request("GET", `/v1/sessions/list/${agentId}/${initiatorId}`),
|
|
145
|
+
/** List all sessions for a given agent (all initiators). */
|
|
146
|
+
listByAgent: (agentId) => this.request("GET", `/v1/sessions/agent/${agentId}`),
|
|
147
|
+
/** List all sessions for a user across all agents. */
|
|
148
|
+
listByUser: (initiator) => this.request("GET", `/v1/sessions/user/${encodeURIComponent(initiator)}`),
|
|
101
149
|
create: (params) => this.request("POST", "/v1/sessions", params),
|
|
102
150
|
get: (sessionId) => this.request("GET", `/v1/sessions/${sessionId}`),
|
|
103
151
|
/** Get full session with history, tasks, childSessions, and spaces. */
|
|
@@ -175,6 +223,14 @@ var CommonsClient = class {
|
|
|
175
223
|
create: (params) => this.request("POST", "/v1/wallets", params),
|
|
176
224
|
/** Get USDC and native token balance for a wallet. */
|
|
177
225
|
balance: (walletId) => this.request("GET", `/v1/wallets/${walletId}/balance`),
|
|
226
|
+
/** Transfer USDC or ETH to another address. */
|
|
227
|
+
transfer: (walletId, params) => this.request("POST", `/v1/wallets/${walletId}/transfer`, params),
|
|
228
|
+
/**
|
|
229
|
+
* Proxy an HTTP request through an agent's primary wallet, automatically
|
|
230
|
+
* handling x402 payment challenges. The wallet signs the payment and
|
|
231
|
+
* retries once if the target responds with HTTP 402.
|
|
232
|
+
*/
|
|
233
|
+
x402Fetch: (agentId, params) => this.request("POST", `/v1/wallets/agent/${agentId}/x402-fetch`, params),
|
|
178
234
|
/** Deactivate a wallet. */
|
|
179
235
|
deactivate: (walletId) => this.request("DELETE", `/v1/wallets/${walletId}`)
|
|
180
236
|
};
|
|
@@ -289,8 +345,14 @@ var CommonsClient = class {
|
|
|
289
345
|
},
|
|
290
346
|
/** Get MCP server by ID. */
|
|
291
347
|
getServer: (serverId) => this.request("GET", `/v1/mcp/servers/${serverId}`),
|
|
348
|
+
/** Update an MCP server's configuration. */
|
|
349
|
+
updateServer: (serverId, params) => this.request("PUT", `/v1/mcp/servers/${serverId}`, params),
|
|
292
350
|
/** Delete an MCP server. */
|
|
293
351
|
deleteServer: (serverId) => this.request("DELETE", `/v1/mcp/servers/${serverId}`),
|
|
352
|
+
/** List public MCP servers (marketplace). */
|
|
353
|
+
getMarketplace: () => this.request("GET", "/v1/mcp/servers/marketplace"),
|
|
354
|
+
/** Get connection status for an MCP server. */
|
|
355
|
+
getServerStatus: (serverId) => this.request("GET", `/v1/mcp/servers/${serverId}/status`),
|
|
294
356
|
/** Connect to an MCP server. */
|
|
295
357
|
connect: (serverId) => this.request("POST", `/v1/mcp/servers/${serverId}/connect`),
|
|
296
358
|
/** Disconnect from an MCP server. */
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/client.ts"],"sourcesContent":["import {\n Agent, CreateAgentParams,\n RunParams, StreamEvent,\n Workflow, WorkflowExecution,\n Task, CreateTaskParams,\n Tool, CreateToolParams,\n ToolKey, CreateToolKeyParams,\n ToolPermission,\n CommonsClientConfig,\n AgentCard, A2ATask, A2ASendTaskParams,\n McpServer, McpResource, McpPrompt, McpConnectionType,\n Skill, SkillIndex, CreateSkillParams,\n UsageAggregation,\n AgentMemory, MemoryStats, MemoryType,\n CreateMemoryParams, UpdateMemoryParams,\n AgentWallet, WalletBalance, CreateWalletParams,\n ApiKey, CreatedApiKey, CreateApiKeyParams, ApiKeyPrincipalType,\n} from './types';\n\nexport class CommonsClient {\n private readonly baseUrl: string;\n private readonly apiKey?: string;\n private readonly initiator?: string;\n private readonly _fetch: typeof fetch;\n\n constructor(config: CommonsClientConfig) {\n this.baseUrl = config.baseUrl.replace(/\\/$/, '');\n this.apiKey = config.apiKey;\n this.initiator = config.initiator;\n this._fetch = config.fetch ?? fetch;\n }\n\n // ── Helpers ───────────────────────────────────────────────────────────────\n\n private headers(extra?: Record<string, string>): Record<string, string> {\n const h: Record<string, string> = { 'Content-Type': 'application/json' };\n if (this.apiKey) h['Authorization'] = `Bearer ${this.apiKey}`;\n if (this.initiator) h['x-initiator'] = this.initiator;\n return { ...h, ...extra };\n }\n\n private async request<T>(method: string, path: string, body?: unknown): Promise<T> {\n const res = await this._fetch(`${this.baseUrl}${path}`, {\n method,\n headers: this.headers(),\n body: body !== undefined ? JSON.stringify(body) : undefined,\n });\n if (!res.ok) {\n const err = await res.json().catch(() => ({ message: res.statusText }));\n throw new CommonsError(err.message ?? res.statusText, res.status, err);\n }\n return res.json() as Promise<T>;\n }\n\n // ── Agents ────────────────────────────────────────────────────────────────\n\n get agents() {\n return {\n create: (params: CreateAgentParams): Promise<{ data: Agent }> =>\n this.request('POST', '/v1/agents', params),\n\n list: (owner?: string): Promise<{ data: Agent[] }> =>\n this.request('GET', `/v1/agents${owner ? `?owner=${owner}` : ''}`),\n\n get: (agentId: string): Promise<{ data: Agent }> =>\n this.request('GET', `/v1/agents/${agentId}`),\n\n update: (agentId: string, params: Partial<CreateAgentParams>): Promise<{ data: Agent }> =>\n this.request('PUT', `/v1/agents/${agentId}`, params),\n\n /** List tools assigned to an agent. */\n listTools: (agentId: string): Promise<{ data: any[] }> =>\n this.request('GET', `/v1/agents/${agentId}/tools`),\n\n /** Assign a tool to an agent. */\n addTool: (agentId: string, params: { toolId: string; usageComments?: string }): Promise<{ data: any }> =>\n this.request('POST', `/v1/agents/${agentId}/tools`, params),\n\n /** Remove a tool assignment from an agent. */\n removeTool: (assignmentId: string): Promise<void> =>\n this.request('DELETE', `/v1/agents/tools/${assignmentId}`),\n\n /** Create a liaison agent for an external agent. */\n createLiaison: (params: Record<string, any>): Promise<any> =>\n this.request('POST', '/v1/liaison', params),\n\n /**\n * Stream an agent run. Returns an async generator of StreamEvents.\n * Works in Node.js, browsers, and Edge runtimes.\n *\n * @example\n * for await (const event of client.agents.stream({ agentId, messages })) {\n * if (event.type === 'token') process.stdout.write(event.content ?? '');\n * }\n */\n stream: (params: RunParams): AsyncGenerator<StreamEvent> =>\n this._streamAgentRun(params),\n };\n }\n\n // ── Run (non-streaming) ───────────────────────────────────────────────────\n\n get run() {\n return {\n once: (params: RunParams): Promise<any> =>\n this.request('POST', '/v1/agents/run', params),\n };\n }\n\n // ── Workflows ─────────────────────────────────────────────────────────────\n\n get workflows() {\n return {\n create: (params: {\n name: string;\n description?: string;\n definition: any;\n ownerId: string;\n ownerType: 'user' | 'agent';\n isPublic?: boolean;\n category?: string;\n tags?: string[];\n }): Promise<Workflow> => this.request('POST', '/v1/workflows', params),\n\n list: (ownerId: string, ownerType: 'user' | 'agent'): Promise<Workflow[]> =>\n this.request('GET', `/v1/workflows?ownerId=${ownerId}&ownerType=${ownerType}`),\n\n get: (workflowId: string): Promise<Workflow> =>\n this.request('GET', `/v1/workflows/${workflowId}`),\n\n update: (workflowId: string, updates: Partial<Workflow>): Promise<Workflow> =>\n this.request('PUT', `/v1/workflows/${workflowId}`, updates),\n\n delete: (workflowId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/workflows/${workflowId}`),\n\n execute: (workflowId: string, params: {\n agentId?: string;\n sessionId?: string;\n inputData?: Record<string, any>;\n userId?: string;\n }): Promise<WorkflowExecution> =>\n this.request('POST', `/v1/workflows/${workflowId}/execute`, params),\n\n getExecution: (workflowId: string, executionId: string): Promise<WorkflowExecution> =>\n this.request('GET', `/v1/workflows/${workflowId}/executions/${executionId}`),\n\n listExecutions: (workflowId: string, limit?: number): Promise<WorkflowExecution[]> =>\n this.request('GET', `/v1/workflows/${workflowId}/executions${limit ? `?limit=${limit}` : ''}`),\n\n cancelExecution: (workflowId: string, executionId: string): Promise<{ success: boolean }> =>\n this.request('POST', `/v1/workflows/${workflowId}/executions/${executionId}/cancel`),\n\n /** Approve a paused human_approval node and resume execution. */\n approveExecution: (workflowId: string, executionId: string, params: {\n approvalToken: string;\n approvalData?: Record<string, any>;\n }): Promise<{ success: boolean; executionId: string; action: string }> =>\n this.request('POST', `/v1/workflows/${workflowId}/executions/${executionId}/approve`, params),\n\n /** Reject a paused human_approval node and terminate execution. */\n rejectExecution: (workflowId: string, executionId: string, params: {\n approvalToken: string;\n reason?: string;\n }): Promise<{ success: boolean; executionId: string; action: string }> =>\n this.request('POST', `/v1/workflows/${workflowId}/executions/${executionId}/reject`, params),\n\n /** Stream execution progress via SSE. Returns an async generator. */\n stream: (workflowId: string, executionId: string): AsyncGenerator<StreamEvent> =>\n this._streamSse(`/v1/workflows/${workflowId}/executions/${executionId}/stream`),\n };\n }\n\n // ── Tasks ─────────────────────────────────────────────────────────────────\n\n get tasks() {\n return {\n create: (params: CreateTaskParams): Promise<{ data: Task }> =>\n this.request('POST', '/v1/tasks', params),\n\n list: (filter: { sessionId?: string; agentId?: string; ownerId?: string; ownerType?: 'user' | 'agent' }): Promise<{ data: Task[] }> => {\n const q = new URLSearchParams(filter as any).toString();\n return this.request('GET', `/v1/tasks?${q}`);\n },\n\n get: (taskId: string): Promise<{ data: Task }> =>\n this.request('GET', `/v1/tasks/${taskId}`),\n\n execute: (taskId: string): Promise<{ success: boolean; data: any }> =>\n this.request('POST', `/v1/tasks/${taskId}/execute`),\n\n cancel: (taskId: string): Promise<{ success: boolean }> =>\n this.request('POST', `/v1/tasks/${taskId}/cancel`),\n\n delete: (taskId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tasks/${taskId}`),\n\n /** Stream task status updates via SSE. Returns an async generator. */\n stream: (taskId: string): AsyncGenerator<StreamEvent> =>\n this._streamSse(`/v1/tasks/${taskId}/stream`),\n };\n }\n\n // ── Sessions ──────────────────────────────────────────────────────────────\n\n get sessions() {\n return {\n list: (agentId: string, initiatorId: string): Promise<{ data: import('./types').Session[] }> =>\n this.request('GET', `/v1/sessions/list/${agentId}/${initiatorId}`),\n\n create: (params: {\n agentId: string;\n initiator: string;\n title?: string;\n model?: Record<string, any>;\n }): Promise<{ data: import('./types').Session }> =>\n this.request('POST', '/v1/sessions', params),\n\n get: (sessionId: string): Promise<{ data: import('./types').Session }> =>\n this.request('GET', `/v1/sessions/${sessionId}`),\n\n /** Get full session with history, tasks, childSessions, and spaces. */\n getFull: (sessionId: string): Promise<{ data: any }> =>\n this.request('GET', `/v1/sessions/${sessionId}/full`),\n };\n }\n\n // ── Tools ─────────────────────────────────────────────────────────────────\n\n get tools() {\n return {\n list: (filter?: { agentId?: string; owner?: string; ownerType?: string; visibility?: string }): Promise<{ data: Tool[] }> => {\n const q = filter ? new URLSearchParams(filter as any).toString() : '';\n return this.request('GET', `/v1/tools${q ? `?${q}` : ''}`);\n },\n\n get: (toolId: string): Promise<{ data: Tool }> =>\n this.request('GET', `/v1/tools/${toolId}`),\n\n create: (params: CreateToolParams): Promise<{ data: Tool }> =>\n this.request('POST', '/v1/tools', params),\n\n update: (toolId: string, params: Partial<CreateToolParams>): Promise<{ data: Tool }> =>\n this.request('PUT', `/v1/tools/${toolId}`, params),\n\n delete: (toolId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tools/${toolId}`),\n\n /** List built-in static tools available to all agents. */\n listStatic: (): Promise<{ data: Tool[] }> =>\n this.request('GET', '/v1/tools/static'),\n };\n }\n\n // ── Tool Keys ─────────────────────────────────────────────────────────────\n\n get toolKeys() {\n return {\n list: (filter: { ownerId?: string; ownerType?: string; toolId?: string }): Promise<{ success: boolean; data: ToolKey[] }> => {\n const q = new URLSearchParams(filter as any).toString();\n return this.request('GET', `/v1/tool-keys${q ? `?${q}` : ''}`);\n },\n\n create: (params: CreateToolKeyParams): Promise<{ success: boolean; data: ToolKey }> =>\n this.request('POST', '/v1/tool-keys', params),\n\n delete: (keyId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tool-keys/${keyId}`),\n };\n }\n\n // ── Tool Permissions ──────────────────────────────────────────────────────\n\n get toolPermissions() {\n return {\n list: (toolId?: string): Promise<{ success: boolean; data: ToolPermission[] }> => {\n const q = toolId ? `?toolId=${toolId}` : '';\n return this.request('GET', `/v1/tool-permissions${q}`);\n },\n\n grant: (params: {\n toolId: string;\n subjectId: string;\n subjectType: 'user' | 'agent';\n permission: 'read' | 'execute' | 'admin';\n grantedBy?: string;\n }): Promise<{ success: boolean; data: ToolPermission }> =>\n this.request('POST', '/v1/tool-permissions/grant', params),\n\n revoke: (permissionId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tool-permissions/revoke/${permissionId}`),\n };\n }\n\n // ── Skills ────────────────────────────────────────────────────────────────\n\n get skills() {\n return {\n list: (filter?: { ownerId?: string; ownerType?: string; isPublic?: boolean }): Promise<{ data: Skill[] }> => {\n const params = new URLSearchParams();\n if (filter?.ownerId) params.set('ownerId', filter.ownerId);\n if (filter?.ownerType) params.set('ownerType', filter.ownerType);\n if (filter?.isPublic !== undefined) params.set('isPublic', String(filter.isPublic));\n const qs = params.toString();\n return this.request('GET', `/v1/skills${qs ? `?${qs}` : ''}`);\n },\n\n get: (skillIdOrSlug: string): Promise<{ data: Skill }> =>\n this.request('GET', `/v1/skills/${skillIdOrSlug}`),\n\n getIndex: (ownerId?: string): Promise<{ data: SkillIndex[] }> => {\n const qs = ownerId ? `?ownerId=${ownerId}` : '';\n return this.request('GET', `/v1/skills/index${qs}`);\n },\n\n create: (params: CreateSkillParams): Promise<{ data: Skill }> =>\n this.request('POST', '/v1/skills', params),\n\n update: (skillIdOrSlug: string, updates: Partial<CreateSkillParams>): Promise<{ data: Skill }> =>\n this.request('PUT', `/v1/skills/${skillIdOrSlug}`, updates),\n\n delete: (skillIdOrSlug: string): Promise<{ deleted: boolean }> =>\n this.request('DELETE', `/v1/skills/${skillIdOrSlug}`),\n };\n }\n\n // ── Wallets ───────────────────────────────────────────────────────────────\n\n get wallets() {\n return {\n /** List all wallets for an agent. */\n list: (agentId: string): Promise<AgentWallet[]> =>\n this.request('GET', `/v1/wallets/agent/${agentId}`),\n\n /** Get the primary active wallet for an agent. */\n primary: (agentId: string): Promise<AgentWallet | null> =>\n this.request('GET', `/v1/wallets/agent/${agentId}/primary`),\n\n /** Get a specific wallet by ID. */\n get: (walletId: string): Promise<AgentWallet> =>\n this.request('GET', `/v1/wallets/${walletId}`),\n\n /** Create a new wallet for an agent. */\n create: (params: CreateWalletParams): Promise<AgentWallet> =>\n this.request('POST', '/v1/wallets', params),\n\n /** Get USDC and native token balance for a wallet. */\n balance: (walletId: string): Promise<WalletBalance> =>\n this.request('GET', `/v1/wallets/${walletId}/balance`),\n\n /** Deactivate a wallet. */\n deactivate: (walletId: string): Promise<void> =>\n this.request('DELETE', `/v1/wallets/${walletId}`),\n };\n }\n\n // ── API Keys ──────────────────────────────────────────────────────────────\n\n get apiKeys() {\n return {\n /**\n * Generate a new API key for a principal (user or agent).\n * The plaintext key is returned only in this response — never again.\n */\n create: (params: CreateApiKeyParams): Promise<CreatedApiKey> =>\n this.request('POST', '/v1/auth/api-keys', params),\n\n /** List all active API keys for a principal (key values not included). */\n list: (principalId: string, principalType: ApiKeyPrincipalType): Promise<ApiKey[]> => {\n const q = new URLSearchParams({ principalId, principalType }).toString();\n return this.request('GET', `/v1/auth/api-keys?${q}`);\n },\n\n /** Revoke (soft-delete) an API key by its UUID. */\n revoke: (id: string): Promise<{ revoked: boolean }> =>\n this.request('DELETE', `/v1/auth/api-keys/${id}`),\n };\n }\n\n // ── SSE Streaming internals ───────────────────────────────────────────────\n\n private async *_streamAgentRun(params: RunParams): AsyncGenerator<StreamEvent> {\n const res = await this._fetch(`${this.baseUrl}/v1/agents/run/stream`, {\n method: 'POST',\n headers: this.headers(),\n body: JSON.stringify(params),\n });\n\n if (!res.ok) {\n const err = await res.json().catch(() => ({ message: res.statusText }));\n throw new CommonsError(err.message ?? res.statusText, res.status, err);\n }\n\n yield* this._parseEventStream(res);\n }\n\n private async *_streamSse(path: string): AsyncGenerator<StreamEvent> {\n const res = await this._fetch(`${this.baseUrl}${path}`, {\n method: 'GET',\n headers: this.headers({ Accept: 'text/event-stream' }),\n });\n\n if (!res.ok) {\n const err = await res.json().catch(() => ({ message: res.statusText }));\n throw new CommonsError(err.message ?? res.statusText, res.status, err);\n }\n\n yield* this._parseEventStream(res);\n }\n\n private async *_parseEventStream(res: Response): AsyncGenerator<StreamEvent> {\n if (!res.body) throw new Error('No response body');\n const reader = res.body.getReader();\n const decoder = new TextDecoder();\n let buffer = '';\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += decoder.decode(value, { stream: true });\n\n const lines = buffer.split('\\n');\n buffer = lines.pop() ?? '';\n\n for (const line of lines) {\n if (line.startsWith('data: ')) {\n const raw = line.slice(6).trim();\n if (raw === '[DONE]') return;\n try {\n const event = JSON.parse(raw) as StreamEvent;\n if (event.type !== 'heartbeat') yield event;\n if (event.type === 'final' || event.type === 'completed') return;\n } catch {\n // Ignore malformed lines\n }\n }\n }\n }\n }\n\n // ── A2A ───────────────────────────────────────────────────────────────────\n\n get a2a() {\n return {\n /** Fetch the A2A Agent Card for an agent. */\n getAgentCard: (agentId: string): Promise<AgentCard> =>\n this.request('GET', `/.well-known/agent.json?agentId=${agentId}`),\n\n /** Send a task to an agent (synchronous, waits for completion). */\n sendTask: (agentId: string, params: A2ASendTaskParams): Promise<A2ATask> =>\n this.request('POST', `/v1/a2a/${agentId}`, {\n jsonrpc: '2.0',\n id: params.id ?? `sdk-${Date.now()}`,\n method: 'tasks/send',\n params,\n }).then((r: any) => r.result as A2ATask),\n\n /** Get A2A task status. */\n getTask: (agentId: string, taskId: string): Promise<A2ATask> =>\n this.request('POST', `/v1/a2a/${agentId}`, {\n jsonrpc: '2.0', id: taskId, method: 'tasks/get', params: { id: taskId },\n }).then((r: any) => r.result as A2ATask),\n\n /** Cancel a running A2A task. */\n cancelTask: (agentId: string, taskId: string): Promise<A2ATask> =>\n this.request('POST', `/v1/a2a/${agentId}`, {\n jsonrpc: '2.0', id: taskId, method: 'tasks/cancel', params: { id: taskId },\n }).then((r: any) => r.result as A2ATask),\n\n /** List recent A2A tasks for an agent. */\n listTasks: (agentId: string, limit?: number): Promise<{ tasks: A2ATask[]; total: number }> =>\n this.request('GET', `/v1/a2a/${agentId}/tasks${limit ? `?limit=${limit}` : ''}`),\n\n /** Stream A2A task updates (SSE). */\n stream: (agentId: string, taskId: string): AsyncGenerator<StreamEvent> =>\n this._streamSse(`/v1/a2a/${agentId}/tasks/${taskId}/stream`),\n };\n }\n\n // ── MCP ───────────────────────────────────────────────────────────────────\n\n get mcp() {\n return {\n /** List MCP servers for an owner. */\n listServers: (ownerId: string, ownerType: 'user' | 'agent'): Promise<{ servers: McpServer[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers?ownerId=${ownerId}&ownerType=${ownerType}`),\n\n /** Create a new MCP server. */\n createServer: (params: {\n name: string;\n description?: string;\n connectionType: McpConnectionType;\n connectionConfig: Record<string, any>;\n isPublic?: boolean;\n tags?: string[];\n ownerId: string;\n ownerType: 'user' | 'agent';\n }): Promise<McpServer> => {\n const { ownerId, ownerType, ...dto } = params;\n return this.request('POST', `/v1/mcp/servers?ownerId=${ownerId}&ownerType=${ownerType}`, dto);\n },\n\n /** Get MCP server by ID. */\n getServer: (serverId: string): Promise<McpServer> =>\n this.request('GET', `/v1/mcp/servers/${serverId}`),\n\n /** Delete an MCP server. */\n deleteServer: (serverId: string): Promise<void> =>\n this.request('DELETE', `/v1/mcp/servers/${serverId}`),\n\n /** Connect to an MCP server. */\n connect: (serverId: string): Promise<{ connected: boolean }> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/connect`),\n\n /** Disconnect from an MCP server. */\n disconnect: (serverId: string): Promise<void> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/disconnect`),\n\n /** Sync tools + resources + prompts from the MCP server. */\n sync: (serverId: string): Promise<{ toolsDiscovered: number; resourcesDiscovered: number; promptsDiscovered: number }> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/sync`, {}),\n\n /** List tools discovered from an MCP server. */\n listTools: (serverId: string): Promise<{ tools: any[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/tools`),\n\n /** List all MCP tools across all servers for a given owner. */\n listToolsByOwner: (ownerId: string, ownerType: 'user' | 'agent'): Promise<{ tools: any[] }> =>\n this.request('GET', `/v1/mcp/tools?ownerId=${ownerId}&ownerType=${ownerType}`),\n\n /** List resources from an MCP server. */\n listResources: (serverId: string): Promise<{ resources: McpResource[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/resources`),\n\n /** Read a resource by URI. */\n readResource: (serverId: string, uri: string): Promise<{ uri: string; contents: any }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/resources/read?uri=${encodeURIComponent(uri)}`),\n\n /** List prompts from an MCP server. */\n listPrompts: (serverId: string): Promise<{ prompts: McpPrompt[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/prompts`),\n\n /** Render a prompt with arguments. */\n getPrompt: (serverId: string, promptName: string, args?: Record<string, string>): Promise<{ description?: string; messages: any[] }> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/prompts/${promptName}`, { arguments: args }),\n };\n }\n\n // ── Memory ────────────────────────────────────────────────────────────────\n\n get memory() {\n return {\n /** List all memories for an agent. */\n list: (\n agentId: string,\n opts?: { type?: MemoryType; limit?: number },\n ): Promise<{ data: AgentMemory[] }> => {\n const params = new URLSearchParams();\n if (opts?.type) params.set('type', opts.type);\n if (opts?.limit) params.set('limit', String(opts.limit));\n const qs = params.toString();\n return this.request('GET', `/v1/memory/agents/${agentId}${qs ? `?${qs}` : ''}`);\n },\n\n /** Get memory stats for an agent. */\n stats: (agentId: string): Promise<{ data: MemoryStats }> =>\n this.request('GET', `/v1/memory/agents/${agentId}/stats`),\n\n /** Retrieve memories most relevant to a query. */\n retrieve: (\n agentId: string,\n query: string,\n limit?: number,\n ): Promise<{ data: AgentMemory[] }> => {\n const params = new URLSearchParams({ q: query });\n if (limit) params.set('limit', String(limit));\n return this.request('GET', `/v1/memory/agents/${agentId}/retrieve?${params}`);\n },\n\n /** Get a single memory by ID. */\n get: (memoryId: string): Promise<{ data: AgentMemory }> =>\n this.request('GET', `/v1/memory/${memoryId}`),\n\n /** Manually create a memory. */\n create: (params: CreateMemoryParams): Promise<{ data: AgentMemory }> =>\n this.request('POST', '/v1/memory', params),\n\n /** Update a memory. */\n update: (memoryId: string, params: UpdateMemoryParams): Promise<{ data: AgentMemory }> =>\n this.request('PATCH', `/v1/memory/${memoryId}`, params),\n\n /** Soft-delete (deactivate) a memory. */\n delete: (memoryId: string): Promise<void> =>\n this.request('DELETE', `/v1/memory/${memoryId}`),\n };\n }\n\n // ── Usage / Observability ─────────────────────────────────────────────────\n\n get usage() {\n return {\n /** Get aggregated token + cost usage for an agent. */\n getAgentUsage: (\n agentId: string,\n opts?: { from?: string; to?: string },\n ): Promise<{ data: UsageAggregation }> => {\n const params = new URLSearchParams();\n if (opts?.from) params.set('from', opts.from);\n if (opts?.to) params.set('to', opts.to);\n const qs = params.toString();\n return this.request('GET', `/v1/usage/agents/${agentId}${qs ? `?${qs}` : ''}`);\n },\n\n /** Get aggregated token + cost usage for a session. */\n getSessionUsage: (sessionId: string): Promise<{ data: UsageAggregation }> =>\n this.request('GET', `/v1/usage/sessions/${sessionId}`),\n };\n }\n}\n\n// ─── Error ────────────────────────────────────────────────────────────────────\n\nexport class CommonsError extends Error {\n constructor(\n message: string,\n public readonly status: number,\n public readonly data?: unknown,\n ) {\n super(message);\n this.name = 'CommonsError';\n }\n}\n"],"mappings":";AAmBO,IAAM,gBAAN,MAAoB;AAAA,EAMzB,YAAY,QAA6B;AACvC,SAAK,UAAU,OAAO,QAAQ,QAAQ,OAAO,EAAE;AAC/C,SAAK,SAAS,OAAO;AACrB,SAAK,YAAY,OAAO;AACxB,SAAK,SAAS,OAAO,SAAS;AAAA,EAChC;AAAA;AAAA,EAIQ,QAAQ,OAAwD;AACtE,UAAM,IAA4B,EAAE,gBAAgB,mBAAmB;AACvE,QAAI,KAAK,OAAQ,GAAE,eAAe,IAAI,UAAU,KAAK,MAAM;AAC3D,QAAI,KAAK,UAAW,GAAE,aAAa,IAAI,KAAK;AAC5C,WAAO,EAAE,GAAG,GAAG,GAAG,MAAM;AAAA,EAC1B;AAAA,EAEA,MAAc,QAAW,QAAgB,MAAc,MAA4B;AACjF,UAAM,MAAM,MAAM,KAAK,OAAO,GAAG,KAAK,OAAO,GAAG,IAAI,IAAI;AAAA,MACtD;AAAA,MACA,SAAS,KAAK,QAAQ;AAAA,MACtB,MAAM,SAAS,SAAY,KAAK,UAAU,IAAI,IAAI;AAAA,IACpD,CAAC;AACD,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,MAAM,MAAM,IAAI,KAAK,EAAE,MAAM,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE;AACtE,YAAM,IAAI,aAAa,IAAI,WAAW,IAAI,YAAY,IAAI,QAAQ,GAAG;AAAA,IACvE;AACA,WAAO,IAAI,KAAK;AAAA,EAClB;AAAA;AAAA,EAIA,IAAI,SAAS;AACX,WAAO;AAAA,MACL,QAAQ,CAAC,WACP,KAAK,QAAQ,QAAQ,cAAc,MAAM;AAAA,MAE3C,MAAM,CAAC,UACL,KAAK,QAAQ,OAAO,aAAa,QAAQ,UAAU,KAAK,KAAK,EAAE,EAAE;AAAA,MAEnE,KAAK,CAAC,YACJ,KAAK,QAAQ,OAAO,cAAc,OAAO,EAAE;AAAA,MAE7C,QAAQ,CAAC,SAAiB,WACxB,KAAK,QAAQ,OAAO,cAAc,OAAO,IAAI,MAAM;AAAA;AAAA,MAGrD,WAAW,CAAC,YACV,KAAK,QAAQ,OAAO,cAAc,OAAO,QAAQ;AAAA;AAAA,MAGnD,SAAS,CAAC,SAAiB,WACzB,KAAK,QAAQ,QAAQ,cAAc,OAAO,UAAU,MAAM;AAAA;AAAA,MAG5D,YAAY,CAAC,iBACX,KAAK,QAAQ,UAAU,oBAAoB,YAAY,EAAE;AAAA;AAAA,MAG3D,eAAe,CAAC,WACd,KAAK,QAAQ,QAAQ,eAAe,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAW5C,QAAQ,CAAC,WACP,KAAK,gBAAgB,MAAM;AAAA,IAC/B;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,MAAM;AACR,WAAO;AAAA,MACL,MAAM,CAAC,WACL,KAAK,QAAQ,QAAQ,kBAAkB,MAAM;AAAA,IACjD;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,YAAY;AACd,WAAO;AAAA,MACL,QAAQ,CAAC,WASgB,KAAK,QAAQ,QAAQ,iBAAiB,MAAM;AAAA,MAErE,MAAM,CAAC,SAAiB,cACtB,KAAK,QAAQ,OAAO,yBAAyB,OAAO,cAAc,SAAS,EAAE;AAAA,MAE/E,KAAK,CAAC,eACJ,KAAK,QAAQ,OAAO,iBAAiB,UAAU,EAAE;AAAA,MAEnD,QAAQ,CAAC,YAAoB,YAC3B,KAAK,QAAQ,OAAO,iBAAiB,UAAU,IAAI,OAAO;AAAA,MAE5D,QAAQ,CAAC,eACP,KAAK,QAAQ,UAAU,iBAAiB,UAAU,EAAE;AAAA,MAEtD,SAAS,CAAC,YAAoB,WAM5B,KAAK,QAAQ,QAAQ,iBAAiB,UAAU,YAAY,MAAM;AAAA,MAEpE,cAAc,CAAC,YAAoB,gBACjC,KAAK,QAAQ,OAAO,iBAAiB,UAAU,eAAe,WAAW,EAAE;AAAA,MAE7E,gBAAgB,CAAC,YAAoB,UACnC,KAAK,QAAQ,OAAO,iBAAiB,UAAU,cAAc,QAAQ,UAAU,KAAK,KAAK,EAAE,EAAE;AAAA,MAE/F,iBAAiB,CAAC,YAAoB,gBACpC,KAAK,QAAQ,QAAQ,iBAAiB,UAAU,eAAe,WAAW,SAAS;AAAA;AAAA,MAGrF,kBAAkB,CAAC,YAAoB,aAAqB,WAI1D,KAAK,QAAQ,QAAQ,iBAAiB,UAAU,eAAe,WAAW,YAAY,MAAM;AAAA;AAAA,MAG9F,iBAAiB,CAAC,YAAoB,aAAqB,WAIzD,KAAK,QAAQ,QAAQ,iBAAiB,UAAU,eAAe,WAAW,WAAW,MAAM;AAAA;AAAA,MAG7F,QAAQ,CAAC,YAAoB,gBAC3B,KAAK,WAAW,iBAAiB,UAAU,eAAe,WAAW,SAAS;AAAA,IAClF;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,QAAQ;AACV,WAAO;AAAA,MACL,QAAQ,CAAC,WACP,KAAK,QAAQ,QAAQ,aAAa,MAAM;AAAA,MAE1C,MAAM,CAAC,WAAgI;AACrI,cAAM,IAAI,IAAI,gBAAgB,MAAa,EAAE,SAAS;AACtD,eAAO,KAAK,QAAQ,OAAO,aAAa,CAAC,EAAE;AAAA,MAC7C;AAAA,MAEA,KAAK,CAAC,WACJ,KAAK,QAAQ,OAAO,aAAa,MAAM,EAAE;AAAA,MAE3C,SAAS,CAAC,WACR,KAAK,QAAQ,QAAQ,aAAa,MAAM,UAAU;AAAA,MAEpD,QAAQ,CAAC,WACP,KAAK,QAAQ,QAAQ,aAAa,MAAM,SAAS;AAAA,MAEnD,QAAQ,CAAC,WACP,KAAK,QAAQ,UAAU,aAAa,MAAM,EAAE;AAAA;AAAA,MAG9C,QAAQ,CAAC,WACP,KAAK,WAAW,aAAa,MAAM,SAAS;AAAA,IAChD;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,WAAW;AACb,WAAO;AAAA,MACL,MAAM,CAAC,SAAiB,gBACtB,KAAK,QAAQ,OAAO,qBAAqB,OAAO,IAAI,WAAW,EAAE;AAAA,MAEnE,QAAQ,CAAC,WAMP,KAAK,QAAQ,QAAQ,gBAAgB,MAAM;AAAA,MAE7C,KAAK,CAAC,cACJ,KAAK,QAAQ,OAAO,gBAAgB,SAAS,EAAE;AAAA;AAAA,MAGjD,SAAS,CAAC,cACR,KAAK,QAAQ,OAAO,gBAAgB,SAAS,OAAO;AAAA,IACxD;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,QAAQ;AACV,WAAO;AAAA,MACL,MAAM,CAAC,WAAsH;AAC3H,cAAM,IAAI,SAAS,IAAI,gBAAgB,MAAa,EAAE,SAAS,IAAI;AACnE,eAAO,KAAK,QAAQ,OAAO,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAAA,MAC3D;AAAA,MAEA,KAAK,CAAC,WACJ,KAAK,QAAQ,OAAO,aAAa,MAAM,EAAE;AAAA,MAE3C,QAAQ,CAAC,WACP,KAAK,QAAQ,QAAQ,aAAa,MAAM;AAAA,MAE1C,QAAQ,CAAC,QAAgB,WACvB,KAAK,QAAQ,OAAO,aAAa,MAAM,IAAI,MAAM;AAAA,MAEnD,QAAQ,CAAC,WACP,KAAK,QAAQ,UAAU,aAAa,MAAM,EAAE;AAAA;AAAA,MAG9C,YAAY,MACV,KAAK,QAAQ,OAAO,kBAAkB;AAAA,IAC1C;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,WAAW;AACb,WAAO;AAAA,MACL,MAAM,CAAC,WAAsH;AAC3H,cAAM,IAAI,IAAI,gBAAgB,MAAa,EAAE,SAAS;AACtD,eAAO,KAAK,QAAQ,OAAO,gBAAgB,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAAA,MAC/D;AAAA,MAEA,QAAQ,CAAC,WACP,KAAK,QAAQ,QAAQ,iBAAiB,MAAM;AAAA,MAE9C,QAAQ,CAAC,UACP,KAAK,QAAQ,UAAU,iBAAiB,KAAK,EAAE;AAAA,IACnD;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,kBAAkB;AACpB,WAAO;AAAA,MACL,MAAM,CAAC,WAA2E;AAChF,cAAM,IAAI,SAAS,WAAW,MAAM,KAAK;AACzC,eAAO,KAAK,QAAQ,OAAO,uBAAuB,CAAC,EAAE;AAAA,MACvD;AAAA,MAEA,OAAO,CAAC,WAON,KAAK,QAAQ,QAAQ,8BAA8B,MAAM;AAAA,MAE3D,QAAQ,CAAC,iBACP,KAAK,QAAQ,UAAU,+BAA+B,YAAY,EAAE;AAAA,IACxE;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,SAAS;AACX,WAAO;AAAA,MACL,MAAM,CAAC,WAAsG;AAC3G,cAAM,SAAS,IAAI,gBAAgB;AACnC,YAAI,QAAQ,QAAS,QAAO,IAAI,WAAW,OAAO,OAAO;AACzD,YAAI,QAAQ,UAAW,QAAO,IAAI,aAAa,OAAO,SAAS;AAC/D,YAAI,QAAQ,aAAa,OAAW,QAAO,IAAI,YAAY,OAAO,OAAO,QAAQ,CAAC;AAClF,cAAM,KAAK,OAAO,SAAS;AAC3B,eAAO,KAAK,QAAQ,OAAO,aAAa,KAAK,IAAI,EAAE,KAAK,EAAE,EAAE;AAAA,MAC9D;AAAA,MAEA,KAAK,CAAC,kBACJ,KAAK,QAAQ,OAAO,cAAc,aAAa,EAAE;AAAA,MAEnD,UAAU,CAAC,YAAsD;AAC/D,cAAM,KAAK,UAAU,YAAY,OAAO,KAAK;AAC7C,eAAO,KAAK,QAAQ,OAAO,mBAAmB,EAAE,EAAE;AAAA,MACpD;AAAA,MAEA,QAAQ,CAAC,WACP,KAAK,QAAQ,QAAQ,cAAc,MAAM;AAAA,MAE3C,QAAQ,CAAC,eAAuB,YAC9B,KAAK,QAAQ,OAAO,cAAc,aAAa,IAAI,OAAO;AAAA,MAE5D,QAAQ,CAAC,kBACP,KAAK,QAAQ,UAAU,cAAc,aAAa,EAAE;AAAA,IACxD;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,UAAU;AACZ,WAAO;AAAA;AAAA,MAEL,MAAM,CAAC,YACL,KAAK,QAAQ,OAAO,qBAAqB,OAAO,EAAE;AAAA;AAAA,MAGpD,SAAS,CAAC,YACR,KAAK,QAAQ,OAAO,qBAAqB,OAAO,UAAU;AAAA;AAAA,MAG5D,KAAK,CAAC,aACJ,KAAK,QAAQ,OAAO,eAAe,QAAQ,EAAE;AAAA;AAAA,MAG/C,QAAQ,CAAC,WACP,KAAK,QAAQ,QAAQ,eAAe,MAAM;AAAA;AAAA,MAG5C,SAAS,CAAC,aACR,KAAK,QAAQ,OAAO,eAAe,QAAQ,UAAU;AAAA;AAAA,MAGvD,YAAY,CAAC,aACX,KAAK,QAAQ,UAAU,eAAe,QAAQ,EAAE;AAAA,IACpD;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,UAAU;AACZ,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKL,QAAQ,CAAC,WACP,KAAK,QAAQ,QAAQ,qBAAqB,MAAM;AAAA;AAAA,MAGlD,MAAM,CAAC,aAAqB,kBAA0D;AACpF,cAAM,IAAI,IAAI,gBAAgB,EAAE,aAAa,cAAc,CAAC,EAAE,SAAS;AACvE,eAAO,KAAK,QAAQ,OAAO,qBAAqB,CAAC,EAAE;AAAA,MACrD;AAAA;AAAA,MAGA,QAAQ,CAAC,OACP,KAAK,QAAQ,UAAU,qBAAqB,EAAE,EAAE;AAAA,IACpD;AAAA,EACF;AAAA;AAAA,EAIA,OAAe,gBAAgB,QAAgD;AAC7E,UAAM,MAAM,MAAM,KAAK,OAAO,GAAG,KAAK,OAAO,yBAAyB;AAAA,MACpE,QAAQ;AAAA,MACR,SAAS,KAAK,QAAQ;AAAA,MACtB,MAAM,KAAK,UAAU,MAAM;AAAA,IAC7B,CAAC;AAED,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,MAAM,MAAM,IAAI,KAAK,EAAE,MAAM,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE;AACtE,YAAM,IAAI,aAAa,IAAI,WAAW,IAAI,YAAY,IAAI,QAAQ,GAAG;AAAA,IACvE;AAEA,WAAO,KAAK,kBAAkB,GAAG;AAAA,EACnC;AAAA,EAEA,OAAe,WAAW,MAA2C;AACnE,UAAM,MAAM,MAAM,KAAK,OAAO,GAAG,KAAK,OAAO,GAAG,IAAI,IAAI;AAAA,MACtD,QAAQ;AAAA,MACR,SAAS,KAAK,QAAQ,EAAE,QAAQ,oBAAoB,CAAC;AAAA,IACvD,CAAC;AAED,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,MAAM,MAAM,IAAI,KAAK,EAAE,MAAM,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE;AACtE,YAAM,IAAI,aAAa,IAAI,WAAW,IAAI,YAAY,IAAI,QAAQ,GAAG;AAAA,IACvE;AAEA,WAAO,KAAK,kBAAkB,GAAG;AAAA,EACnC;AAAA,EAEA,OAAe,kBAAkB,KAA4C;AAC3E,QAAI,CAAC,IAAI,KAAM,OAAM,IAAI,MAAM,kBAAkB;AACjD,UAAM,SAAS,IAAI,KAAK,UAAU;AAClC,UAAM,UAAU,IAAI,YAAY;AAChC,QAAI,SAAS;AAEb,WAAO,MAAM;AACX,YAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAC1C,UAAI,KAAM;AACV,gBAAU,QAAQ,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC;AAEhD,YAAM,QAAQ,OAAO,MAAM,IAAI;AAC/B,eAAS,MAAM,IAAI,KAAK;AAExB,iBAAW,QAAQ,OAAO;AACxB,YAAI,KAAK,WAAW,QAAQ,GAAG;AAC7B,gBAAM,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK;AAC/B,cAAI,QAAQ,SAAU;AACtB,cAAI;AACF,kBAAM,QAAQ,KAAK,MAAM,GAAG;AAC5B,gBAAI,MAAM,SAAS,YAAa,OAAM;AACtC,gBAAI,MAAM,SAAS,WAAW,MAAM,SAAS,YAAa;AAAA,UAC5D,QAAQ;AAAA,UAER;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,MAAM;AACR,WAAO;AAAA;AAAA,MAEL,cAAc,CAAC,YACb,KAAK,QAAQ,OAAO,mCAAmC,OAAO,EAAE;AAAA;AAAA,MAGlE,UAAU,CAAC,SAAiB,WAC1B,KAAK,QAAQ,QAAQ,WAAW,OAAO,IAAI;AAAA,QACzC,SAAS;AAAA,QACT,IAAI,OAAO,MAAM,OAAO,KAAK,IAAI,CAAC;AAAA,QAClC,QAAQ;AAAA,QACR;AAAA,MACF,CAAC,EAAE,KAAK,CAAC,MAAW,EAAE,MAAiB;AAAA;AAAA,MAGzC,SAAS,CAAC,SAAiB,WACzB,KAAK,QAAQ,QAAQ,WAAW,OAAO,IAAI;AAAA,QACzC,SAAS;AAAA,QAAO,IAAI;AAAA,QAAQ,QAAQ;AAAA,QAAa,QAAQ,EAAE,IAAI,OAAO;AAAA,MACxE,CAAC,EAAE,KAAK,CAAC,MAAW,EAAE,MAAiB;AAAA;AAAA,MAGzC,YAAY,CAAC,SAAiB,WAC5B,KAAK,QAAQ,QAAQ,WAAW,OAAO,IAAI;AAAA,QACzC,SAAS;AAAA,QAAO,IAAI;AAAA,QAAQ,QAAQ;AAAA,QAAgB,QAAQ,EAAE,IAAI,OAAO;AAAA,MAC3E,CAAC,EAAE,KAAK,CAAC,MAAW,EAAE,MAAiB;AAAA;AAAA,MAGzC,WAAW,CAAC,SAAiB,UAC3B,KAAK,QAAQ,OAAO,WAAW,OAAO,SAAS,QAAQ,UAAU,KAAK,KAAK,EAAE,EAAE;AAAA;AAAA,MAGjF,QAAQ,CAAC,SAAiB,WACxB,KAAK,WAAW,WAAW,OAAO,UAAU,MAAM,SAAS;AAAA,IAC/D;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,MAAM;AACR,WAAO;AAAA;AAAA,MAEL,aAAa,CAAC,SAAiB,cAC7B,KAAK,QAAQ,OAAO,2BAA2B,OAAO,cAAc,SAAS,EAAE;AAAA;AAAA,MAGjF,cAAc,CAAC,WASW;AACxB,cAAM,EAAE,SAAS,WAAW,GAAG,IAAI,IAAI;AACvC,eAAO,KAAK,QAAQ,QAAQ,2BAA2B,OAAO,cAAc,SAAS,IAAI,GAAG;AAAA,MAC9F;AAAA;AAAA,MAGA,WAAW,CAAC,aACV,KAAK,QAAQ,OAAO,mBAAmB,QAAQ,EAAE;AAAA;AAAA,MAGnD,cAAc,CAAC,aACb,KAAK,QAAQ,UAAU,mBAAmB,QAAQ,EAAE;AAAA;AAAA,MAGtD,SAAS,CAAC,aACR,KAAK,QAAQ,QAAQ,mBAAmB,QAAQ,UAAU;AAAA;AAAA,MAG5D,YAAY,CAAC,aACX,KAAK,QAAQ,QAAQ,mBAAmB,QAAQ,aAAa;AAAA;AAAA,MAG/D,MAAM,CAAC,aACL,KAAK,QAAQ,QAAQ,mBAAmB,QAAQ,SAAS,CAAC,CAAC;AAAA;AAAA,MAG7D,WAAW,CAAC,aACV,KAAK,QAAQ,OAAO,mBAAmB,QAAQ,QAAQ;AAAA;AAAA,MAGzD,kBAAkB,CAAC,SAAiB,cAClC,KAAK,QAAQ,OAAO,yBAAyB,OAAO,cAAc,SAAS,EAAE;AAAA;AAAA,MAG/E,eAAe,CAAC,aACd,KAAK,QAAQ,OAAO,mBAAmB,QAAQ,YAAY;AAAA;AAAA,MAG7D,cAAc,CAAC,UAAkB,QAC/B,KAAK,QAAQ,OAAO,mBAAmB,QAAQ,uBAAuB,mBAAmB,GAAG,CAAC,EAAE;AAAA;AAAA,MAGjG,aAAa,CAAC,aACZ,KAAK,QAAQ,OAAO,mBAAmB,QAAQ,UAAU;AAAA;AAAA,MAG3D,WAAW,CAAC,UAAkB,YAAoB,SAChD,KAAK,QAAQ,QAAQ,mBAAmB,QAAQ,YAAY,UAAU,IAAI,EAAE,WAAW,KAAK,CAAC;AAAA,IACjG;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,SAAS;AACX,WAAO;AAAA;AAAA,MAEL,MAAM,CACJ,SACA,SACqC;AACrC,cAAM,SAAS,IAAI,gBAAgB;AACnC,YAAI,MAAM,KAAO,QAAO,IAAI,QAAQ,KAAK,IAAI;AAC7C,YAAI,MAAM,MAAO,QAAO,IAAI,SAAS,OAAO,KAAK,KAAK,CAAC;AACvD,cAAM,KAAK,OAAO,SAAS;AAC3B,eAAO,KAAK,QAAQ,OAAO,qBAAqB,OAAO,GAAG,KAAK,IAAI,EAAE,KAAK,EAAE,EAAE;AAAA,MAChF;AAAA;AAAA,MAGA,OAAO,CAAC,YACN,KAAK,QAAQ,OAAO,qBAAqB,OAAO,QAAQ;AAAA;AAAA,MAG1D,UAAU,CACR,SACA,OACA,UACqC;AACrC,cAAM,SAAS,IAAI,gBAAgB,EAAE,GAAG,MAAM,CAAC;AAC/C,YAAI,MAAO,QAAO,IAAI,SAAS,OAAO,KAAK,CAAC;AAC5C,eAAO,KAAK,QAAQ,OAAO,qBAAqB,OAAO,aAAa,MAAM,EAAE;AAAA,MAC9E;AAAA;AAAA,MAGA,KAAK,CAAC,aACJ,KAAK,QAAQ,OAAO,cAAc,QAAQ,EAAE;AAAA;AAAA,MAG9C,QAAQ,CAAC,WACP,KAAK,QAAQ,QAAQ,cAAc,MAAM;AAAA;AAAA,MAG3C,QAAQ,CAAC,UAAkB,WACzB,KAAK,QAAQ,SAAS,cAAc,QAAQ,IAAI,MAAM;AAAA;AAAA,MAGxD,QAAQ,CAAC,aACP,KAAK,QAAQ,UAAU,cAAc,QAAQ,EAAE;AAAA,IACnD;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,QAAQ;AACV,WAAO;AAAA;AAAA,MAEL,eAAe,CACb,SACA,SACwC;AACxC,cAAM,SAAS,IAAI,gBAAgB;AACnC,YAAI,MAAM,KAAM,QAAO,IAAI,QAAQ,KAAK,IAAI;AAC5C,YAAI,MAAM,GAAM,QAAO,IAAI,MAAQ,KAAK,EAAE;AAC1C,cAAM,KAAK,OAAO,SAAS;AAC3B,eAAO,KAAK,QAAQ,OAAO,oBAAoB,OAAO,GAAG,KAAK,IAAI,EAAE,KAAK,EAAE,EAAE;AAAA,MAC/E;AAAA;AAAA,MAGA,iBAAiB,CAAC,cAChB,KAAK,QAAQ,OAAO,sBAAsB,SAAS,EAAE;AAAA,IACzD;AAAA,EACF;AACF;AAIO,IAAM,eAAN,cAA2B,MAAM;AAAA,EACtC,YACE,SACgB,QACA,MAChB;AACA,UAAM,OAAO;AAHG;AACA;AAGhB,SAAK,OAAO;AAAA,EACd;AACF;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/client.ts"],"sourcesContent":["import {\n Agent, CreateAgentParams,\n RunParams, StreamEvent,\n Workflow, WorkflowExecution,\n Task, CreateTaskParams,\n Tool, CreateToolParams,\n ToolKey, CreateToolKeyParams,\n ToolPermission,\n CommonsClientConfig,\n AgentCard, A2ATask, A2ASendTaskParams,\n McpServer, McpResource, McpPrompt, McpConnectionType,\n Skill, SkillIndex, CreateSkillParams,\n UsageAggregation,\n AgentMemory, MemoryStats, MemoryType,\n CreateMemoryParams, UpdateMemoryParams,\n AgentWallet, WalletBalance, CreateWalletParams,\n ApiKey, CreatedApiKey, CreateApiKeyParams, ApiKeyPrincipalType,\n} from './types';\n\nexport class CommonsClient {\n private readonly baseUrl: string;\n private readonly apiKey?: string;\n private readonly initiator?: string;\n private readonly _fetch: typeof fetch;\n\n constructor(config: CommonsClientConfig) {\n this.baseUrl = config.baseUrl.replace(/\\/$/, '');\n this.apiKey = config.apiKey;\n this.initiator = config.initiator;\n this._fetch = config.fetch ?? fetch;\n }\n\n // ── Helpers ───────────────────────────────────────────────────────────────\n\n private headers(extra?: Record<string, string>): Record<string, string> {\n const h: Record<string, string> = { 'Content-Type': 'application/json' };\n if (this.apiKey) h['Authorization'] = `Bearer ${this.apiKey}`;\n if (this.initiator) h['x-initiator'] = this.initiator;\n return { ...h, ...extra };\n }\n\n private async request<T>(method: string, path: string, body?: unknown): Promise<T> {\n const res = await this._fetch(`${this.baseUrl}${path}`, {\n method,\n headers: this.headers(),\n body: body !== undefined ? JSON.stringify(body) : undefined,\n });\n if (!res.ok) {\n const err = await res.json().catch(() => ({ message: res.statusText }));\n throw new CommonsError(err.message ?? res.statusText, res.status, err);\n }\n return res.json() as Promise<T>;\n }\n\n // ── Models ────────────────────────────────────────────────────────────────\n\n get models() {\n return {\n /** List all available LLM models from the registry */\n list: (): Promise<{ data: any[]; grouped: Record<string, any[]> }> =>\n this.request('GET', '/v1/models'),\n };\n }\n\n // ── Agents ────────────────────────────────────────────────────────────────\n\n get agents() {\n return {\n create: (params: CreateAgentParams): Promise<{ data: Agent }> =>\n this.request('POST', '/v1/agents', params),\n\n list: (owner?: string): Promise<{ data: Agent[] }> =>\n this.request('GET', `/v1/agents${owner ? `?owner=${owner}` : ''}`),\n\n get: (agentId: string): Promise<{ data: Agent }> =>\n this.request('GET', `/v1/agents/${agentId}`),\n\n update: (agentId: string, params: Partial<CreateAgentParams>): Promise<{ data: Agent }> =>\n this.request('PUT', `/v1/agents/${agentId}`, params),\n\n /** List tools assigned to an agent. */\n listTools: (agentId: string): Promise<{ data: any[] }> =>\n this.request('GET', `/v1/agents/${agentId}/tools`),\n\n /** Assign a tool to an agent. */\n addTool: (agentId: string, params: { toolId: string; usageComments?: string }): Promise<{ data: any }> =>\n this.request('POST', `/v1/agents/${agentId}/tools`, params),\n\n /** Remove a tool assignment from an agent. */\n removeTool: (assignmentId: string): Promise<void> =>\n this.request('DELETE', `/v1/agents/tools/${assignmentId}`),\n\n /** Create a liaison agent for an external agent. */\n createLiaison: (params: Record<string, any>): Promise<any> =>\n this.request('POST', '/v1/liaison', params),\n\n /**\n * Stream an agent run. Returns an async generator of StreamEvents.\n * Works in Node.js, browsers, and Edge runtimes.\n *\n * @example\n * for await (const event of client.agents.stream({ agentId, messages })) {\n * if (event.type === 'token') process.stdout.write(event.content ?? '');\n * }\n */\n stream: (params: RunParams): AsyncGenerator<StreamEvent> =>\n this._streamAgentRun(params),\n\n // ── Autonomy / Heartbeat ─────────────────────────────────────────────\n\n /** Get the current heartbeat/autonomy status for an agent. */\n getAutonomy: (agentId: string): Promise<{\n data: {\n enabled: boolean;\n intervalSec: number;\n isArmed: boolean;\n lastBeatAt: string | null;\n nextBeatAt: string | null;\n };\n }> => this.request('GET', `/v1/agents/${agentId}/autonomy`),\n\n /** Enable or disable the heartbeat, optionally setting the interval. */\n setAutonomy: (\n agentId: string,\n params: { enabled: boolean; intervalSec?: number },\n ): Promise<{ data: { enabled: boolean; intervalSec: number; isArmed: boolean } }> =>\n this.request('PUT', `/v1/agents/${agentId}/autonomy`, params),\n\n /** Trigger a single heartbeat beat immediately. */\n triggerHeartbeat: (agentId: string): Promise<{ message: string }> =>\n this.request('POST', `/v1/agents/${agentId}/autonomy/trigger`),\n\n /**\n * Manually trigger an agent (fire-and-forget).\n * Requires autonomy to be enabled on the agent.\n */\n trigger: (agentId: string): Promise<{ message: string }> =>\n this.request('POST', `/v1/agents/${agentId}/trigger`),\n\n // ── Knowledgebase ────────────────────────────────────────────────────\n\n /** Get the knowledgebase entries for an agent. */\n getKnowledgebase: (agentId: string): Promise<{ data: any[] }> =>\n this.request('GET', `/v1/agents/${agentId}/knowledgebase`),\n\n /** Replace the knowledgebase entries for an agent. */\n updateKnowledgebase: (agentId: string, knowledgebase: any[]): Promise<{ data: any[] }> =>\n this.request('PUT', `/v1/agents/${agentId}/knowledgebase`, { knowledgebase }),\n\n // ── Preferred Connections ────────────────────────────────────────────\n\n /** List agents that this agent prefers to collaborate with. */\n getPreferredConnections: (agentId: string): Promise<{ data: any[] }> =>\n this.request('GET', `/v1/agents/${agentId}/preferred-connections`),\n\n /** Add a preferred agent connection. */\n addPreferredConnection: (\n agentId: string,\n params: { preferredAgentId: string; usageComments?: string },\n ): Promise<{ data: any }> =>\n this.request('POST', `/v1/agents/${agentId}/preferred-connections`, params),\n\n /** Remove a preferred agent connection by its record ID. */\n removePreferredConnection: (id: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/agents/preferred-connections/${id}`),\n\n // ── TTS Voices ───────────────────────────────────────────────────────\n\n /**\n * List available TTS voices for a provider.\n * @param provider - 'openai' (default) or 'elevenlabs'\n * @param q - optional search query to filter voices\n */\n listVoices: (\n provider?: 'openai' | 'elevenlabs',\n q?: string,\n ): Promise<{ data: any[] }> => {\n const params = new URLSearchParams();\n if (provider) params.set('provider', provider);\n if (q) params.set('q', q);\n const qs = params.toString();\n return this.request('GET', `/v1/agents/tts/voices${qs ? `?${qs}` : ''}`);\n },\n };\n }\n\n // ── Run (non-streaming) ───────────────────────────────────────────────────\n\n get run() {\n return {\n once: (params: RunParams): Promise<any> =>\n this.request('POST', '/v1/agents/run', params),\n };\n }\n\n // ── Workflows ─────────────────────────────────────────────────────────────\n\n get workflows() {\n return {\n create: (params: {\n name: string;\n description?: string;\n definition: any;\n ownerId: string;\n ownerType: 'user' | 'agent';\n isPublic?: boolean;\n category?: string;\n tags?: string[];\n }): Promise<Workflow> => this.request('POST', '/v1/workflows', params),\n\n list: (ownerId: string, ownerType: 'user' | 'agent'): Promise<Workflow[]> =>\n this.request('GET', `/v1/workflows?ownerId=${ownerId}&ownerType=${ownerType}`),\n\n get: (workflowId: string): Promise<Workflow> =>\n this.request('GET', `/v1/workflows/${workflowId}`),\n\n update: (workflowId: string, updates: Partial<Workflow>): Promise<Workflow> =>\n this.request('PUT', `/v1/workflows/${workflowId}`, updates),\n\n delete: (workflowId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/workflows/${workflowId}`),\n\n execute: (workflowId: string, params: {\n agentId?: string;\n sessionId?: string;\n inputData?: Record<string, any>;\n userId?: string;\n }): Promise<WorkflowExecution> =>\n this.request('POST', `/v1/workflows/${workflowId}/execute`, params),\n\n getExecution: (workflowId: string, executionId: string): Promise<WorkflowExecution> =>\n this.request('GET', `/v1/workflows/${workflowId}/executions/${executionId}`),\n\n listExecutions: (workflowId: string, limit?: number): Promise<WorkflowExecution[]> =>\n this.request('GET', `/v1/workflows/${workflowId}/executions${limit ? `?limit=${limit}` : ''}`),\n\n cancelExecution: (workflowId: string, executionId: string): Promise<{ success: boolean }> =>\n this.request('POST', `/v1/workflows/${workflowId}/executions/${executionId}/cancel`),\n\n /** Approve a paused human_approval node and resume execution. */\n approveExecution: (workflowId: string, executionId: string, params: {\n approvalToken: string;\n approvalData?: Record<string, any>;\n }): Promise<{ success: boolean; executionId: string; action: string }> =>\n this.request('POST', `/v1/workflows/${workflowId}/executions/${executionId}/approve`, params),\n\n /** Reject a paused human_approval node and terminate execution. */\n rejectExecution: (workflowId: string, executionId: string, params: {\n approvalToken: string;\n reason?: string;\n }): Promise<{ success: boolean; executionId: string; action: string }> =>\n this.request('POST', `/v1/workflows/${workflowId}/executions/${executionId}/reject`, params),\n\n /** Stream execution progress via SSE. Returns an async generator. */\n stream: (workflowId: string, executionId: string): AsyncGenerator<StreamEvent> =>\n this._streamSse(`/v1/workflows/${workflowId}/executions/${executionId}/stream`),\n };\n }\n\n // ── Tasks ─────────────────────────────────────────────────────────────────\n\n get tasks() {\n return {\n create: (params: CreateTaskParams): Promise<{ data: Task }> =>\n this.request('POST', '/v1/tasks', params),\n\n list: (filter: { sessionId?: string; agentId?: string; ownerId?: string; ownerType?: 'user' | 'agent' }): Promise<{ data: Task[] }> => {\n const q = new URLSearchParams(filter as any).toString();\n return this.request('GET', `/v1/tasks?${q}`);\n },\n\n get: (taskId: string): Promise<{ data: Task }> =>\n this.request('GET', `/v1/tasks/${taskId}`),\n\n execute: (taskId: string): Promise<{ success: boolean; data: any }> =>\n this.request('POST', `/v1/tasks/${taskId}/execute`),\n\n cancel: (taskId: string): Promise<{ success: boolean }> =>\n this.request('POST', `/v1/tasks/${taskId}/cancel`),\n\n delete: (taskId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tasks/${taskId}`),\n\n /** Stream task status updates via SSE. Returns an async generator. */\n stream: (taskId: string): AsyncGenerator<StreamEvent> =>\n this._streamSse(`/v1/tasks/${taskId}/stream`),\n };\n }\n\n // ── Sessions ──────────────────────────────────────────────────────────────\n\n get sessions() {\n return {\n list: (agentId: string, initiatorId: string): Promise<{ data: import('./types').Session[] }> =>\n this.request('GET', `/v1/sessions/list/${agentId}/${initiatorId}`),\n\n /** List all sessions for a given agent (all initiators). */\n listByAgent: (agentId: string): Promise<{ data: import('./types').Session[] }> =>\n this.request('GET', `/v1/sessions/agent/${agentId}`),\n\n /** List all sessions for a user across all agents. */\n listByUser: (initiator: string): Promise<{ data: import('./types').Session[] }> =>\n this.request('GET', `/v1/sessions/user/${encodeURIComponent(initiator)}`),\n\n create: (params: {\n agentId: string;\n initiator: string;\n title?: string;\n model?: Record<string, any>;\n }): Promise<{ data: import('./types').Session }> =>\n this.request('POST', '/v1/sessions', params),\n\n get: (sessionId: string): Promise<{ data: import('./types').Session }> =>\n this.request('GET', `/v1/sessions/${sessionId}`),\n\n /** Get full session with history, tasks, childSessions, and spaces. */\n getFull: (sessionId: string): Promise<{ data: any }> =>\n this.request('GET', `/v1/sessions/${sessionId}/full`),\n };\n }\n\n // ── Tools ─────────────────────────────────────────────────────────────────\n\n get tools() {\n return {\n list: (filter?: { agentId?: string; owner?: string; ownerType?: string; visibility?: string }): Promise<{ data: Tool[] }> => {\n const q = filter ? new URLSearchParams(filter as any).toString() : '';\n return this.request('GET', `/v1/tools${q ? `?${q}` : ''}`);\n },\n\n get: (toolId: string): Promise<{ data: Tool }> =>\n this.request('GET', `/v1/tools/${toolId}`),\n\n create: (params: CreateToolParams): Promise<{ data: Tool }> =>\n this.request('POST', '/v1/tools', params),\n\n update: (toolId: string, params: Partial<CreateToolParams>): Promise<{ data: Tool }> =>\n this.request('PUT', `/v1/tools/${toolId}`, params),\n\n delete: (toolId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tools/${toolId}`),\n\n /** List built-in static tools available to all agents. */\n listStatic: (): Promise<{ data: Tool[] }> =>\n this.request('GET', '/v1/tools/static'),\n };\n }\n\n // ── Tool Keys ─────────────────────────────────────────────────────────────\n\n get toolKeys() {\n return {\n list: (filter: { ownerId?: string; ownerType?: string; toolId?: string }): Promise<{ success: boolean; data: ToolKey[] }> => {\n const q = new URLSearchParams(filter as any).toString();\n return this.request('GET', `/v1/tool-keys${q ? `?${q}` : ''}`);\n },\n\n create: (params: CreateToolKeyParams): Promise<{ success: boolean; data: ToolKey }> =>\n this.request('POST', '/v1/tool-keys', params),\n\n delete: (keyId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tool-keys/${keyId}`),\n };\n }\n\n // ── Tool Permissions ──────────────────────────────────────────────────────\n\n get toolPermissions() {\n return {\n list: (toolId?: string): Promise<{ success: boolean; data: ToolPermission[] }> => {\n const q = toolId ? `?toolId=${toolId}` : '';\n return this.request('GET', `/v1/tool-permissions${q}`);\n },\n\n grant: (params: {\n toolId: string;\n subjectId: string;\n subjectType: 'user' | 'agent';\n permission: 'read' | 'execute' | 'admin';\n grantedBy?: string;\n }): Promise<{ success: boolean; data: ToolPermission }> =>\n this.request('POST', '/v1/tool-permissions/grant', params),\n\n revoke: (permissionId: string): Promise<{ success: boolean }> =>\n this.request('DELETE', `/v1/tool-permissions/revoke/${permissionId}`),\n };\n }\n\n // ── Skills ────────────────────────────────────────────────────────────────\n\n get skills() {\n return {\n list: (filter?: { ownerId?: string; ownerType?: string; isPublic?: boolean }): Promise<{ data: Skill[] }> => {\n const params = new URLSearchParams();\n if (filter?.ownerId) params.set('ownerId', filter.ownerId);\n if (filter?.ownerType) params.set('ownerType', filter.ownerType);\n if (filter?.isPublic !== undefined) params.set('isPublic', String(filter.isPublic));\n const qs = params.toString();\n return this.request('GET', `/v1/skills${qs ? `?${qs}` : ''}`);\n },\n\n get: (skillIdOrSlug: string): Promise<{ data: Skill }> =>\n this.request('GET', `/v1/skills/${skillIdOrSlug}`),\n\n getIndex: (ownerId?: string): Promise<{ data: SkillIndex[] }> => {\n const qs = ownerId ? `?ownerId=${ownerId}` : '';\n return this.request('GET', `/v1/skills/index${qs}`);\n },\n\n create: (params: CreateSkillParams): Promise<{ data: Skill }> =>\n this.request('POST', '/v1/skills', params),\n\n update: (skillIdOrSlug: string, updates: Partial<CreateSkillParams>): Promise<{ data: Skill }> =>\n this.request('PUT', `/v1/skills/${skillIdOrSlug}`, updates),\n\n delete: (skillIdOrSlug: string): Promise<{ deleted: boolean }> =>\n this.request('DELETE', `/v1/skills/${skillIdOrSlug}`),\n };\n }\n\n // ── Wallets ───────────────────────────────────────────────────────────────\n\n get wallets() {\n return {\n /** List all wallets for an agent. */\n list: (agentId: string): Promise<AgentWallet[]> =>\n this.request('GET', `/v1/wallets/agent/${agentId}`),\n\n /** Get the primary active wallet for an agent. */\n primary: (agentId: string): Promise<AgentWallet | null> =>\n this.request('GET', `/v1/wallets/agent/${agentId}/primary`),\n\n /** Get a specific wallet by ID. */\n get: (walletId: string): Promise<AgentWallet> =>\n this.request('GET', `/v1/wallets/${walletId}`),\n\n /** Create a new wallet for an agent. */\n create: (params: CreateWalletParams): Promise<AgentWallet> =>\n this.request('POST', '/v1/wallets', params),\n\n /** Get USDC and native token balance for a wallet. */\n balance: (walletId: string): Promise<WalletBalance> =>\n this.request('GET', `/v1/wallets/${walletId}/balance`),\n\n /** Transfer USDC or ETH to another address. */\n transfer: (\n walletId: string,\n params: { toAddress: string; amount: string; tokenSymbol?: 'USDC' | 'ETH' },\n ): Promise<{ txHash: string }> =>\n this.request('POST', `/v1/wallets/${walletId}/transfer`, params),\n\n /**\n * Proxy an HTTP request through an agent's primary wallet, automatically\n * handling x402 payment challenges. The wallet signs the payment and\n * retries once if the target responds with HTTP 402.\n */\n x402Fetch: (\n agentId: string,\n params: {\n url: string;\n method?: string;\n headers?: Record<string, string>;\n body?: string;\n },\n ): Promise<{ status: number; body: unknown }> =>\n this.request('POST', `/v1/wallets/agent/${agentId}/x402-fetch`, params),\n\n /** Deactivate a wallet. */\n deactivate: (walletId: string): Promise<void> =>\n this.request('DELETE', `/v1/wallets/${walletId}`),\n };\n }\n\n // ── API Keys ──────────────────────────────────────────────────────────────\n\n get apiKeys() {\n return {\n /**\n * Generate a new API key for a principal (user or agent).\n * The plaintext key is returned only in this response — never again.\n */\n create: (params: CreateApiKeyParams): Promise<CreatedApiKey> =>\n this.request('POST', '/v1/auth/api-keys', params),\n\n /** List all active API keys for a principal (key values not included). */\n list: (principalId: string, principalType: ApiKeyPrincipalType): Promise<ApiKey[]> => {\n const q = new URLSearchParams({ principalId, principalType }).toString();\n return this.request('GET', `/v1/auth/api-keys?${q}`);\n },\n\n /** Revoke (soft-delete) an API key by its UUID. */\n revoke: (id: string): Promise<{ revoked: boolean }> =>\n this.request('DELETE', `/v1/auth/api-keys/${id}`),\n };\n }\n\n // ── SSE Streaming internals ───────────────────────────────────────────────\n\n private async *_streamAgentRun(params: RunParams): AsyncGenerator<StreamEvent> {\n const res = await this._fetch(`${this.baseUrl}/v1/agents/run/stream`, {\n method: 'POST',\n headers: this.headers(),\n body: JSON.stringify(params),\n });\n\n if (!res.ok) {\n const err = await res.json().catch(() => ({ message: res.statusText }));\n throw new CommonsError(err.message ?? res.statusText, res.status, err);\n }\n\n yield* this._parseEventStream(res);\n }\n\n private async *_streamSse(path: string): AsyncGenerator<StreamEvent> {\n const res = await this._fetch(`${this.baseUrl}${path}`, {\n method: 'GET',\n headers: this.headers({ Accept: 'text/event-stream' }),\n });\n\n if (!res.ok) {\n const err = await res.json().catch(() => ({ message: res.statusText }));\n throw new CommonsError(err.message ?? res.statusText, res.status, err);\n }\n\n yield* this._parseEventStream(res);\n }\n\n private async *_parseEventStream(res: Response): AsyncGenerator<StreamEvent> {\n if (!res.body) throw new Error('No response body');\n const reader = res.body.getReader();\n const decoder = new TextDecoder();\n let buffer = '';\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += decoder.decode(value, { stream: true });\n\n const lines = buffer.split('\\n');\n buffer = lines.pop() ?? '';\n\n for (const line of lines) {\n if (line.startsWith('data: ')) {\n const raw = line.slice(6).trim();\n if (raw === '[DONE]') return;\n try {\n const event = JSON.parse(raw) as StreamEvent;\n if (event.type !== 'heartbeat') yield event;\n if (event.type === 'final' || event.type === 'completed') return;\n } catch {\n // Ignore malformed lines\n }\n }\n }\n }\n }\n\n // ── A2A ───────────────────────────────────────────────────────────────────\n\n get a2a() {\n return {\n /** Fetch the A2A Agent Card for an agent. */\n getAgentCard: (agentId: string): Promise<AgentCard> =>\n this.request('GET', `/.well-known/agent.json?agentId=${agentId}`),\n\n /** Send a task to an agent (synchronous, waits for completion). */\n sendTask: (agentId: string, params: A2ASendTaskParams): Promise<A2ATask> =>\n this.request('POST', `/v1/a2a/${agentId}`, {\n jsonrpc: '2.0',\n id: params.id ?? `sdk-${Date.now()}`,\n method: 'tasks/send',\n params,\n }).then((r: any) => r.result as A2ATask),\n\n /** Get A2A task status. */\n getTask: (agentId: string, taskId: string): Promise<A2ATask> =>\n this.request('POST', `/v1/a2a/${agentId}`, {\n jsonrpc: '2.0', id: taskId, method: 'tasks/get', params: { id: taskId },\n }).then((r: any) => r.result as A2ATask),\n\n /** Cancel a running A2A task. */\n cancelTask: (agentId: string, taskId: string): Promise<A2ATask> =>\n this.request('POST', `/v1/a2a/${agentId}`, {\n jsonrpc: '2.0', id: taskId, method: 'tasks/cancel', params: { id: taskId },\n }).then((r: any) => r.result as A2ATask),\n\n /** List recent A2A tasks for an agent. */\n listTasks: (agentId: string, limit?: number): Promise<{ tasks: A2ATask[]; total: number }> =>\n this.request('GET', `/v1/a2a/${agentId}/tasks${limit ? `?limit=${limit}` : ''}`),\n\n /** Stream A2A task updates (SSE). */\n stream: (agentId: string, taskId: string): AsyncGenerator<StreamEvent> =>\n this._streamSse(`/v1/a2a/${agentId}/tasks/${taskId}/stream`),\n };\n }\n\n // ── MCP ───────────────────────────────────────────────────────────────────\n\n get mcp() {\n return {\n /** List MCP servers for an owner. */\n listServers: (ownerId: string, ownerType: 'user' | 'agent'): Promise<{ servers: McpServer[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers?ownerId=${ownerId}&ownerType=${ownerType}`),\n\n /** Create a new MCP server. */\n createServer: (params: {\n name: string;\n description?: string;\n connectionType: McpConnectionType;\n connectionConfig: Record<string, any>;\n isPublic?: boolean;\n tags?: string[];\n ownerId: string;\n ownerType: 'user' | 'agent';\n }): Promise<McpServer> => {\n const { ownerId, ownerType, ...dto } = params;\n return this.request('POST', `/v1/mcp/servers?ownerId=${ownerId}&ownerType=${ownerType}`, dto);\n },\n\n /** Get MCP server by ID. */\n getServer: (serverId: string): Promise<McpServer> =>\n this.request('GET', `/v1/mcp/servers/${serverId}`),\n\n /** Update an MCP server's configuration. */\n updateServer: (serverId: string, params: Partial<{\n name: string;\n description: string;\n connectionConfig: Record<string, any>;\n isPublic: boolean;\n tags: string[];\n }>): Promise<McpServer> =>\n this.request('PUT', `/v1/mcp/servers/${serverId}`, params),\n\n /** Delete an MCP server. */\n deleteServer: (serverId: string): Promise<void> =>\n this.request('DELETE', `/v1/mcp/servers/${serverId}`),\n\n /** List public MCP servers (marketplace). */\n getMarketplace: (): Promise<{ servers: McpServer[]; total: number }> =>\n this.request('GET', '/v1/mcp/servers/marketplace'),\n\n /** Get connection status for an MCP server. */\n getServerStatus: (serverId: string): Promise<{\n connected: boolean;\n capabilities: string[];\n toolsDiscovered: number;\n lastConnectedAt: Date | null;\n lastError: string | null;\n }> => this.request('GET', `/v1/mcp/servers/${serverId}/status`),\n\n /** Connect to an MCP server. */\n connect: (serverId: string): Promise<{ connected: boolean }> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/connect`),\n\n /** Disconnect from an MCP server. */\n disconnect: (serverId: string): Promise<void> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/disconnect`),\n\n /** Sync tools + resources + prompts from the MCP server. */\n sync: (serverId: string): Promise<{ toolsDiscovered: number; resourcesDiscovered: number; promptsDiscovered: number }> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/sync`, {}),\n\n /** List tools discovered from an MCP server. */\n listTools: (serverId: string): Promise<{ tools: any[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/tools`),\n\n /** List all MCP tools across all servers for a given owner. */\n listToolsByOwner: (ownerId: string, ownerType: 'user' | 'agent'): Promise<{ tools: any[] }> =>\n this.request('GET', `/v1/mcp/tools?ownerId=${ownerId}&ownerType=${ownerType}`),\n\n /** List resources from an MCP server. */\n listResources: (serverId: string): Promise<{ resources: McpResource[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/resources`),\n\n /** Read a resource by URI. */\n readResource: (serverId: string, uri: string): Promise<{ uri: string; contents: any }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/resources/read?uri=${encodeURIComponent(uri)}`),\n\n /** List prompts from an MCP server. */\n listPrompts: (serverId: string): Promise<{ prompts: McpPrompt[]; total: number }> =>\n this.request('GET', `/v1/mcp/servers/${serverId}/prompts`),\n\n /** Render a prompt with arguments. */\n getPrompt: (serverId: string, promptName: string, args?: Record<string, string>): Promise<{ description?: string; messages: any[] }> =>\n this.request('POST', `/v1/mcp/servers/${serverId}/prompts/${promptName}`, { arguments: args }),\n };\n }\n\n // ── Memory ────────────────────────────────────────────────────────────────\n\n get memory() {\n return {\n /** List all memories for an agent. */\n list: (\n agentId: string,\n opts?: { type?: MemoryType; limit?: number },\n ): Promise<{ data: AgentMemory[] }> => {\n const params = new URLSearchParams();\n if (opts?.type) params.set('type', opts.type);\n if (opts?.limit) params.set('limit', String(opts.limit));\n const qs = params.toString();\n return this.request('GET', `/v1/memory/agents/${agentId}${qs ? `?${qs}` : ''}`);\n },\n\n /** Get memory stats for an agent. */\n stats: (agentId: string): Promise<{ data: MemoryStats }> =>\n this.request('GET', `/v1/memory/agents/${agentId}/stats`),\n\n /** Retrieve memories most relevant to a query. */\n retrieve: (\n agentId: string,\n query: string,\n limit?: number,\n ): Promise<{ data: AgentMemory[] }> => {\n const params = new URLSearchParams({ q: query });\n if (limit) params.set('limit', String(limit));\n return this.request('GET', `/v1/memory/agents/${agentId}/retrieve?${params}`);\n },\n\n /** Get a single memory by ID. */\n get: (memoryId: string): Promise<{ data: AgentMemory }> =>\n this.request('GET', `/v1/memory/${memoryId}`),\n\n /** Manually create a memory. */\n create: (params: CreateMemoryParams): Promise<{ data: AgentMemory }> =>\n this.request('POST', '/v1/memory', params),\n\n /** Update a memory. */\n update: (memoryId: string, params: UpdateMemoryParams): Promise<{ data: AgentMemory }> =>\n this.request('PATCH', `/v1/memory/${memoryId}`, params),\n\n /** Soft-delete (deactivate) a memory. */\n delete: (memoryId: string): Promise<void> =>\n this.request('DELETE', `/v1/memory/${memoryId}`),\n };\n }\n\n // ── Usage / Observability ─────────────────────────────────────────────────\n\n get usage() {\n return {\n /** Get aggregated token + cost usage for an agent. */\n getAgentUsage: (\n agentId: string,\n opts?: { from?: string; to?: string },\n ): Promise<{ data: UsageAggregation }> => {\n const params = new URLSearchParams();\n if (opts?.from) params.set('from', opts.from);\n if (opts?.to) params.set('to', opts.to);\n const qs = params.toString();\n return this.request('GET', `/v1/usage/agents/${agentId}${qs ? `?${qs}` : ''}`);\n },\n\n /** Get aggregated token + cost usage for a session. */\n getSessionUsage: (sessionId: string): Promise<{ data: UsageAggregation }> =>\n this.request('GET', `/v1/usage/sessions/${sessionId}`),\n };\n }\n}\n\n// ─── Error ────────────────────────────────────────────────────────────────────\n\nexport class CommonsError extends Error {\n constructor(\n message: string,\n public readonly status: number,\n public readonly data?: unknown,\n ) {\n super(message);\n this.name = 'CommonsError';\n }\n}\n"],"mappings":"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","names":[]}
|