@blazingagents/sdk 0.1.0
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/LICENSE +21 -0
- package/README.md +366 -0
- package/dist/chat-transport.d.ts +17 -0
- package/dist/chat-transport.js +58 -0
- package/dist/client.d.ts +38 -0
- package/dist/client.js +86 -0
- package/dist/contracts/api.d.ts +256 -0
- package/dist/contracts/api.js +189 -0
- package/dist/contracts/entities/agent-tools.d.ts +26 -0
- package/dist/contracts/entities/agent-tools.js +52 -0
- package/dist/contracts/entities/agents.d.ts +183 -0
- package/dist/contracts/entities/agents.js +153 -0
- package/dist/contracts/entities/artifacts.d.ts +71 -0
- package/dist/contracts/entities/artifacts.js +71 -0
- package/dist/contracts/entities/attribution.d.ts +27 -0
- package/dist/contracts/entities/attribution.js +27 -0
- package/dist/contracts/entities/chat.d.ts +269 -0
- package/dist/contracts/entities/chat.js +198 -0
- package/dist/contracts/entities/mcp-connections.d.ts +421 -0
- package/dist/contracts/entities/mcp-connections.js +473 -0
- package/dist/contracts/entities/memories.d.ts +56 -0
- package/dist/contracts/entities/memories.js +62 -0
- package/dist/contracts/entities/prompts.d.ts +61 -0
- package/dist/contracts/entities/prompts.js +96 -0
- package/dist/contracts/entities/providers.d.ts +123 -0
- package/dist/contracts/entities/providers.js +111 -0
- package/dist/contracts/entities/sessions.d.ts +156 -0
- package/dist/contracts/entities/sessions.js +120 -0
- package/dist/contracts/entities/skills.d.ts +167 -0
- package/dist/contracts/entities/skills.js +153 -0
- package/dist/contracts/entities/tasks.d.ts +457 -0
- package/dist/contracts/entities/tasks.js +252 -0
- package/dist/contracts/entities/tenants.d.ts +69 -0
- package/dist/contracts/entities/tenants.js +54 -0
- package/dist/contracts/entities/usage.d.ts +95 -0
- package/dist/contracts/entities/usage.js +117 -0
- package/dist/contracts/entities/workspaces.d.ts +89 -0
- package/dist/contracts/entities/workspaces.js +71 -0
- package/dist/contracts/ids.d.ts +57 -0
- package/dist/contracts/ids.js +79 -0
- package/dist/contracts/index.d.ts +15 -0
- package/dist/contracts/index.js +16 -0
- package/dist/contracts/limitations.d.ts +138 -0
- package/dist/contracts/limitations.js +140 -0
- package/dist/contracts/utils.d.ts +3 -0
- package/dist/contracts/utils.js +7 -0
- package/dist/errors.d.ts +33 -0
- package/dist/errors.js +48 -0
- package/dist/generation.d.ts +5 -0
- package/dist/generation.js +422 -0
- package/dist/http.d.ts +21 -0
- package/dist/http.js +307 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.js +13 -0
- package/dist/relay.d.ts +20 -0
- package/dist/relay.js +113 -0
- package/dist/resources/agents.d.ts +8 -0
- package/dist/resources/agents.js +82 -0
- package/dist/resources/artifacts.d.ts +5 -0
- package/dist/resources/artifacts.js +29 -0
- package/dist/resources/mcp-connections.d.ts +2 -0
- package/dist/resources/mcp-connections.js +40 -0
- package/dist/resources/memories.d.ts +7 -0
- package/dist/resources/memories.js +33 -0
- package/dist/resources/prompts.d.ts +6 -0
- package/dist/resources/prompts.js +36 -0
- package/dist/resources/providers.d.ts +5 -0
- package/dist/resources/providers.js +38 -0
- package/dist/resources/sessions.d.ts +8 -0
- package/dist/resources/sessions.js +49 -0
- package/dist/resources/skills.d.ts +2 -0
- package/dist/resources/skills.js +49 -0
- package/dist/resources/tasks.d.ts +7 -0
- package/dist/resources/tasks.js +63 -0
- package/dist/resources/tenant.d.ts +6 -0
- package/dist/resources/tenant.js +19 -0
- package/dist/resources/usage.d.ts +7 -0
- package/dist/resources/usage.js +19 -0
- package/dist/resources/workspaces.d.ts +2 -0
- package/dist/resources/workspaces.js +31 -0
- package/dist/types.d.ts +381 -0
- package/dist/types.js +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { memoriesListResponseSchema, memoryResponseSchema, } from "../contracts/entities/memories.js";
|
|
2
|
+
import { requestJson } from "../http.js";
|
|
3
|
+
/**
|
|
4
|
+
* `client.memories` — CRUD and query over `/v1/agents/:agentId/memories`.
|
|
5
|
+
* Memories are Agent-nested; `userId` is stamped at creation and immutable,
|
|
6
|
+
* while list can filter it (including explicit `''`) or full-text search.
|
|
7
|
+
*/
|
|
8
|
+
export function createMemoriesResource(config) {
|
|
9
|
+
return {
|
|
10
|
+
async list(agentId, options = {}) {
|
|
11
|
+
return await requestJson(config, `/v1/agents/${agentId}/memories`, {
|
|
12
|
+
query: {
|
|
13
|
+
...(options.userId === undefined ? {} : { userId: options.userId }),
|
|
14
|
+
search: options.search,
|
|
15
|
+
cursor: options.cursor,
|
|
16
|
+
limit: options.limit,
|
|
17
|
+
},
|
|
18
|
+
}, memoriesListResponseSchema);
|
|
19
|
+
},
|
|
20
|
+
async create(agentId, body) {
|
|
21
|
+
return await requestJson(config, `/v1/agents/${agentId}/memories`, { json: body, method: "POST" }, memoryResponseSchema);
|
|
22
|
+
},
|
|
23
|
+
async get(agentId, memoryId) {
|
|
24
|
+
return await requestJson(config, `/v1/agents/${agentId}/memories/${memoryId}`, {}, memoryResponseSchema);
|
|
25
|
+
},
|
|
26
|
+
async update(agentId, memoryId, body) {
|
|
27
|
+
return await requestJson(config, `/v1/agents/${agentId}/memories/${memoryId}`, { json: body, method: "PATCH" }, memoryResponseSchema);
|
|
28
|
+
},
|
|
29
|
+
async delete(agentId, memoryId) {
|
|
30
|
+
await requestJson(config, `/v1/agents/${agentId}/memories/${memoryId}`, { method: "DELETE" });
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { HttpConfig, PromptsResource } from "../types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* `client.prompts` — CRUD over `/v1/prompts`. The list endpoint is
|
|
4
|
+
* unpaginated (bounded by the 100/tenant cap).
|
|
5
|
+
*/
|
|
6
|
+
export declare function createPromptsResource(config: HttpConfig): PromptsResource;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { promptResponseSchema, promptsResponseSchema, } from "../contracts/entities/prompts.js";
|
|
2
|
+
import { requestJson } from "../http.js";
|
|
3
|
+
/**
|
|
4
|
+
* `client.prompts` — CRUD over `/v1/prompts`. The list endpoint is
|
|
5
|
+
* unpaginated (bounded by the 100/tenant cap).
|
|
6
|
+
*/
|
|
7
|
+
export function createPromptsResource(config) {
|
|
8
|
+
return {
|
|
9
|
+
async create(body) {
|
|
10
|
+
return await requestJson(config, "/v1/prompts", {
|
|
11
|
+
json: body,
|
|
12
|
+
method: "POST",
|
|
13
|
+
}, promptResponseSchema);
|
|
14
|
+
},
|
|
15
|
+
async list(userId) {
|
|
16
|
+
return await requestJson(config, "/v1/prompts", {
|
|
17
|
+
// Stryker disable next-line ConditionalExpression: URL serialization omits an undefined query value.
|
|
18
|
+
...(userId === undefined ? {} : { query: { userId } }),
|
|
19
|
+
}, promptsResponseSchema);
|
|
20
|
+
},
|
|
21
|
+
async get(promptId) {
|
|
22
|
+
return await requestJson(config, `/v1/prompts/${promptId}`, {}, promptResponseSchema);
|
|
23
|
+
},
|
|
24
|
+
async update(promptId, body) {
|
|
25
|
+
return await requestJson(config, `/v1/prompts/${promptId}`, {
|
|
26
|
+
json: body,
|
|
27
|
+
method: "PATCH",
|
|
28
|
+
}, promptResponseSchema);
|
|
29
|
+
},
|
|
30
|
+
async delete(promptId) {
|
|
31
|
+
await requestJson(config, `/v1/prompts/${promptId}`, {
|
|
32
|
+
method: "DELETE",
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { providerModelsResponseSchema, providerResponseSchema, providersResponseSchema, } from "../contracts/entities/providers.js";
|
|
2
|
+
import { requestJson } from "../http.js";
|
|
3
|
+
/**
|
|
4
|
+
* `client.providers` — CRUD and cost-free model discovery.
|
|
5
|
+
*/
|
|
6
|
+
export function createProvidersResource(config) {
|
|
7
|
+
return {
|
|
8
|
+
async create(body) {
|
|
9
|
+
return await requestJson(config, "/v1/providers", {
|
|
10
|
+
json: body,
|
|
11
|
+
method: "POST",
|
|
12
|
+
}, providerResponseSchema);
|
|
13
|
+
},
|
|
14
|
+
async list() {
|
|
15
|
+
return await requestJson(config, "/v1/providers", {}, providersResponseSchema);
|
|
16
|
+
},
|
|
17
|
+
async get(id) {
|
|
18
|
+
return await requestJson(config, `/v1/providers/${id}`, {}, providerResponseSchema);
|
|
19
|
+
},
|
|
20
|
+
async listModels(id) {
|
|
21
|
+
return await requestJson(config, `/v1/providers/${id}/models`, {}, providerModelsResponseSchema);
|
|
22
|
+
},
|
|
23
|
+
async update(id, body) {
|
|
24
|
+
return await requestJson(config, `/v1/providers/${id}`, {
|
|
25
|
+
json: body,
|
|
26
|
+
method: "PATCH",
|
|
27
|
+
}, providerResponseSchema);
|
|
28
|
+
},
|
|
29
|
+
async delete(id, options = {}) {
|
|
30
|
+
await requestJson(config, `/v1/providers/${id}`, {
|
|
31
|
+
method: "DELETE",
|
|
32
|
+
query: {
|
|
33
|
+
confirmVersionInvalidation: options.confirmVersionInvalidation,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { HttpConfig, SessionsResource } from "../types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* `client.sessions` — list/get-messages/delete over
|
|
4
|
+
* `/v1/agents/:agentId/sessions`. Pagination is manual: the SDK returns
|
|
5
|
+
* the page as-is (`{ data, nextCursor }` verbatim); the caller passes
|
|
6
|
+
* `nextCursor` back as `cursor` on the next call.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createSessionsResource(config: HttpConfig): SessionsResource;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { sessionMessagesResponseSchema, sessionsListResponseSchema, toolApprovalDecisionResponseSchema, toolApprovalsResponseSchema, } from "../contracts/entities/sessions.js";
|
|
2
|
+
import { buildTerminalStreamResult } from "../generation.js";
|
|
3
|
+
import { requestJson, requestStream } from "../http.js";
|
|
4
|
+
/**
|
|
5
|
+
* `client.sessions` — list/get-messages/delete over
|
|
6
|
+
* `/v1/agents/:agentId/sessions`. Pagination is manual: the SDK returns
|
|
7
|
+
* the page as-is (`{ data, nextCursor }` verbatim); the caller passes
|
|
8
|
+
* `nextCursor` back as `cursor` on the next call.
|
|
9
|
+
*/
|
|
10
|
+
export function createSessionsResource(config) {
|
|
11
|
+
return {
|
|
12
|
+
async decideToolApproval(agentId, sessionId, approvalId, decision, options = {}) {
|
|
13
|
+
return await requestJson(config, `/v1/agents/${agentId}/sessions/${sessionId}/tool-approvals/${approvalId}`, {
|
|
14
|
+
json: decision,
|
|
15
|
+
method: "POST",
|
|
16
|
+
...(options.signal ? { signal: options.signal } : {}),
|
|
17
|
+
}, toolApprovalDecisionResponseSchema);
|
|
18
|
+
},
|
|
19
|
+
async list(agentId, options = {}) {
|
|
20
|
+
return await requestJson(config, `/v1/agents/${agentId}/sessions`, {
|
|
21
|
+
query: {
|
|
22
|
+
cursor: options.cursor,
|
|
23
|
+
limit: options.limit,
|
|
24
|
+
// Stryker disable next-line ConditionalExpression: URL serialization omits an undefined query value.
|
|
25
|
+
...(options.userId === undefined ? {} : { userId: options.userId }),
|
|
26
|
+
},
|
|
27
|
+
}, sessionsListResponseSchema);
|
|
28
|
+
},
|
|
29
|
+
async messages(agentId, sessionId, options = {}) {
|
|
30
|
+
return await requestJson(config, `/v1/agents/${agentId}/sessions/${sessionId}/messages`, {
|
|
31
|
+
query: {
|
|
32
|
+
cursor: options.cursor,
|
|
33
|
+
after: options.after,
|
|
34
|
+
limit: options.limit,
|
|
35
|
+
},
|
|
36
|
+
}, sessionMessagesResponseSchema);
|
|
37
|
+
},
|
|
38
|
+
async joinToolApprovalContinuation(agentId, sessionId, continuationId, options = {}) {
|
|
39
|
+
const response = await requestStream(config, `/v1/agents/${agentId}/sessions/${sessionId}/tool-approval-continuations/${continuationId}`, options.signal ? { signal: options.signal } : {});
|
|
40
|
+
return buildTerminalStreamResult(response, "continuation");
|
|
41
|
+
},
|
|
42
|
+
async toolApprovals(agentId, sessionId) {
|
|
43
|
+
return await requestJson(config, `/v1/agents/${agentId}/sessions/${sessionId}/tool-approvals`, {}, toolApprovalsResponseSchema);
|
|
44
|
+
},
|
|
45
|
+
async delete(agentId, sessionId, deleteArtifacts) {
|
|
46
|
+
await requestJson(config, `/v1/agents/${agentId}/sessions/${sessionId}`, { method: "DELETE", query: { deleteArtifacts } });
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { skillCopyResultsSchema, skillDetailSchema, skillsListResponseSchema, } from "../contracts/entities/skills.js";
|
|
2
|
+
import { requestJson, requestStream } from "../http.js";
|
|
3
|
+
function fileUrl(agentId, input) {
|
|
4
|
+
const path = input.path.split("/").map(encodeURIComponent).join("/");
|
|
5
|
+
return `/v1/agents/${encodeURIComponent(agentId)}/skills/${encodeURIComponent(input.skillId)}/files/${path}`;
|
|
6
|
+
}
|
|
7
|
+
export function createAgentSkillsResource(config, agentId) {
|
|
8
|
+
return {
|
|
9
|
+
async copy({ skillId, to }) {
|
|
10
|
+
return await requestJson(config, `/v1/agents/${encodeURIComponent(agentId)}/skills/${encodeURIComponent(skillId)}/copies`, { json: to, method: "POST" }, skillCopyResultsSchema);
|
|
11
|
+
},
|
|
12
|
+
async create(body) {
|
|
13
|
+
return await requestJson(config, `/v1/agents/${encodeURIComponent(agentId)}/skills`, { json: body, method: "POST" }, skillDetailSchema);
|
|
14
|
+
},
|
|
15
|
+
async delete({ skillId }) {
|
|
16
|
+
await requestJson(config, `/v1/agents/${encodeURIComponent(agentId)}/skills/${encodeURIComponent(skillId)}`, { method: "DELETE" });
|
|
17
|
+
},
|
|
18
|
+
async deleteFile(input) {
|
|
19
|
+
return await requestJson(config, fileUrl(agentId, input), {
|
|
20
|
+
method: "DELETE",
|
|
21
|
+
}, skillDetailSchema);
|
|
22
|
+
},
|
|
23
|
+
async get({ skillId }) {
|
|
24
|
+
return await requestJson(config, `/v1/agents/${encodeURIComponent(agentId)}/skills/${encodeURIComponent(skillId)}`, {}, skillDetailSchema);
|
|
25
|
+
},
|
|
26
|
+
async getFile(input) {
|
|
27
|
+
const response = await requestStream(config, fileUrl(agentId, input));
|
|
28
|
+
return new Uint8Array(await response.arrayBuffer());
|
|
29
|
+
},
|
|
30
|
+
async list({ cursor, limit } = {}) {
|
|
31
|
+
return await requestJson(config, `/v1/agents/${encodeURIComponent(agentId)}/skills`, { query: { cursor, limit } }, skillsListResponseSchema);
|
|
32
|
+
},
|
|
33
|
+
async putFile({ content, ...input }) {
|
|
34
|
+
return await requestJson(config, fileUrl(agentId, input), {
|
|
35
|
+
body: content,
|
|
36
|
+
method: "PUT",
|
|
37
|
+
}, skillDetailSchema);
|
|
38
|
+
},
|
|
39
|
+
async upload({ source }) {
|
|
40
|
+
const form = new FormData();
|
|
41
|
+
form.set("type", source.type);
|
|
42
|
+
const file = source.file instanceof Blob
|
|
43
|
+
? source.file
|
|
44
|
+
: new Blob([source.file]);
|
|
45
|
+
form.set("file", file, `skill.${source.type}`);
|
|
46
|
+
return await requestJson(config, `/v1/agents/${encodeURIComponent(agentId)}/skills/upload`, { body: form, method: "POST" }, skillDetailSchema);
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { HttpConfig, TasksResource } from "../types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* `client.tasks` — CRUD + runs over `/v1/tasks`. Runs are listed/get/
|
|
4
|
+
* canceled/transcripted via `/v1/tasks/:taskId/runs/...`. All lists are
|
|
5
|
+
* keyset-cursored.
|
|
6
|
+
*/
|
|
7
|
+
export declare function createTasksResource(config: HttpConfig): TasksResource;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { createTaskResponseSchema, createTaskRunResponseSchema, taskResponseSchema, taskRunMessagesResponseSchema, taskRunResponseSchema, taskRunsListResponseSchema, tasksListResponseSchema, } from "../contracts/entities/tasks.js";
|
|
2
|
+
import { requestJson } from "../http.js";
|
|
3
|
+
/**
|
|
4
|
+
* `client.tasks` — CRUD + runs over `/v1/tasks`. Runs are listed/get/
|
|
5
|
+
* canceled/transcripted via `/v1/tasks/:taskId/runs/...`. All lists are
|
|
6
|
+
* keyset-cursored.
|
|
7
|
+
*/
|
|
8
|
+
export function createTasksResource(config) {
|
|
9
|
+
return {
|
|
10
|
+
async create(body) {
|
|
11
|
+
return await requestJson(config, "/v1/tasks", {
|
|
12
|
+
json: body,
|
|
13
|
+
method: "POST",
|
|
14
|
+
}, createTaskResponseSchema);
|
|
15
|
+
},
|
|
16
|
+
async list(options = {}) {
|
|
17
|
+
return await requestJson(config, "/v1/tasks", {
|
|
18
|
+
query: {
|
|
19
|
+
agentId: options.agentId,
|
|
20
|
+
cursor: options.cursor,
|
|
21
|
+
limit: options.limit,
|
|
22
|
+
// Stryker disable next-line ConditionalExpression: URL serialization omits an undefined query value.
|
|
23
|
+
...(options.userId === undefined ? {} : { userId: options.userId }),
|
|
24
|
+
},
|
|
25
|
+
}, tasksListResponseSchema);
|
|
26
|
+
},
|
|
27
|
+
async get(taskId) {
|
|
28
|
+
return await requestJson(config, `/v1/tasks/${taskId}`, {}, taskResponseSchema);
|
|
29
|
+
},
|
|
30
|
+
async update(taskId, body) {
|
|
31
|
+
return await requestJson(config, `/v1/tasks/${taskId}`, {
|
|
32
|
+
json: body,
|
|
33
|
+
method: "PATCH",
|
|
34
|
+
}, taskResponseSchema);
|
|
35
|
+
},
|
|
36
|
+
async delete(taskId) {
|
|
37
|
+
await requestJson(config, `/v1/tasks/${taskId}`, {
|
|
38
|
+
method: "DELETE",
|
|
39
|
+
});
|
|
40
|
+
},
|
|
41
|
+
async createRun(taskId, body = {}) {
|
|
42
|
+
return await requestJson(config, `/v1/tasks/${taskId}/runs`, { json: body, method: "POST" }, createTaskRunResponseSchema);
|
|
43
|
+
},
|
|
44
|
+
async listRuns(taskId, options = {}) {
|
|
45
|
+
return await requestJson(config, `/v1/tasks/${taskId}/runs`, { query: { cursor: options.cursor, limit: options.limit } }, taskRunsListResponseSchema);
|
|
46
|
+
},
|
|
47
|
+
async getRun(taskId, runId) {
|
|
48
|
+
return await requestJson(config, `/v1/tasks/${taskId}/runs/${runId}`, {}, taskRunResponseSchema);
|
|
49
|
+
},
|
|
50
|
+
async runMessages(taskId, runId, options = {}) {
|
|
51
|
+
return await requestJson(config, `/v1/tasks/${taskId}/runs/${runId}/messages`, {
|
|
52
|
+
query: {
|
|
53
|
+
cursor: options.cursor,
|
|
54
|
+
after: options.after,
|
|
55
|
+
limit: options.limit,
|
|
56
|
+
},
|
|
57
|
+
}, taskRunMessagesResponseSchema);
|
|
58
|
+
},
|
|
59
|
+
async cancelRun(taskId, runId) {
|
|
60
|
+
await requestJson(config, `/v1/tasks/${taskId}/runs/${runId}/cancel`, { method: "POST" });
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { HttpConfig, TenantResource } from "../types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* `client.tenant` — get/patch over `/v1/tenant` (the tenant's self-set
|
|
4
|
+
* quota row). `quota: null` means unlimited (no row).
|
|
5
|
+
*/
|
|
6
|
+
export declare function createTenantResource(config: HttpConfig): TenantResource;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { tenantSettingsResponseSchema } from "../contracts/entities/tenants.js";
|
|
2
|
+
import { requestJson } from "../http.js";
|
|
3
|
+
/**
|
|
4
|
+
* `client.tenant` — get/patch over `/v1/tenant` (the tenant's self-set
|
|
5
|
+
* quota row). `quota: null` means unlimited (no row).
|
|
6
|
+
*/
|
|
7
|
+
export function createTenantResource(config) {
|
|
8
|
+
return {
|
|
9
|
+
async get() {
|
|
10
|
+
return await requestJson(config, "/v1/tenant", {}, tenantSettingsResponseSchema);
|
|
11
|
+
},
|
|
12
|
+
async patch(body) {
|
|
13
|
+
return await requestJson(config, "/v1/tenant", {
|
|
14
|
+
json: body,
|
|
15
|
+
method: "PATCH",
|
|
16
|
+
}, tenantSettingsResponseSchema);
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { HttpConfig, UsageResource } from "../types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* `client.usage` — get over `/v1/usage` (tenant-wide) and
|
|
4
|
+
* `/v1/agents/:agentId/usage` (per-agent). The query shape is the core
|
|
5
|
+
* `usageQuerySchema`; the SDK passes it through as query params.
|
|
6
|
+
*/
|
|
7
|
+
export declare function createUsageResource(config: HttpConfig): UsageResource;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { usageResponseSchema } from "../contracts/entities/usage.js";
|
|
2
|
+
import { requestJson } from "../http.js";
|
|
3
|
+
/**
|
|
4
|
+
* `client.usage` — get over `/v1/usage` (tenant-wide) and
|
|
5
|
+
* `/v1/agents/:agentId/usage` (per-agent). The query shape is the core
|
|
6
|
+
* `usageQuerySchema`; the SDK passes it through as query params.
|
|
7
|
+
*/
|
|
8
|
+
export function createUsageResource(config) {
|
|
9
|
+
return {
|
|
10
|
+
async get(query = {}) {
|
|
11
|
+
return await requestJson(config, "/v1/usage", {
|
|
12
|
+
query,
|
|
13
|
+
}, usageResponseSchema);
|
|
14
|
+
},
|
|
15
|
+
async getForAgent(agentId, query = {}) {
|
|
16
|
+
return await requestJson(config, `/v1/agents/${agentId}/usage`, { query }, usageResponseSchema);
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { workspaceSchema, workspacesListResponseSchema, } from "../contracts/entities/workspaces.js";
|
|
2
|
+
import { requestJson, requestStream } from "../http.js";
|
|
3
|
+
export function createWorkspacesResource(config) {
|
|
4
|
+
return {
|
|
5
|
+
async create(body = {}) {
|
|
6
|
+
return await requestJson(config, "/v1/workspaces", {
|
|
7
|
+
json: body,
|
|
8
|
+
method: "POST",
|
|
9
|
+
}, workspaceSchema);
|
|
10
|
+
},
|
|
11
|
+
async delete({ workspaceId }) {
|
|
12
|
+
const response = await requestStream(config, `/v1/workspaces/${encodeURIComponent(workspaceId)}`, { method: "DELETE" });
|
|
13
|
+
return response.status === 202 ? "pending" : "completed";
|
|
14
|
+
},
|
|
15
|
+
async get({ workspaceId }) {
|
|
16
|
+
return await requestJson(config, `/v1/workspaces/${encodeURIComponent(workspaceId)}`, {}, workspaceSchema);
|
|
17
|
+
},
|
|
18
|
+
async list(options = {}) {
|
|
19
|
+
return await requestJson(config, "/v1/workspaces", {
|
|
20
|
+
query: {
|
|
21
|
+
cursor: options.cursor,
|
|
22
|
+
limit: options.limit,
|
|
23
|
+
userId: options.userId,
|
|
24
|
+
},
|
|
25
|
+
}, workspacesListResponseSchema);
|
|
26
|
+
},
|
|
27
|
+
async update({ workspaceId, ...body }) {
|
|
28
|
+
return await requestJson(config, `/v1/workspaces/${encodeURIComponent(workspaceId)}`, { json: body, method: "PUT" }, workspaceSchema);
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
}
|