@beeos-ai/bma-sdk 0.4.1 → 1.0.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/README.md +123 -35
- package/dist/core.d.ts +105 -0
- package/dist/core.js +406 -0
- package/dist/core.js.map +1 -0
- package/dist/errors.d.ts +77 -0
- package/dist/errors.js +109 -0
- package/dist/errors.js.map +1 -0
- package/dist/facade-extensions.d.ts +17 -61
- package/dist/facade-extensions.js +25 -112
- package/dist/facade-extensions.js.map +1 -1
- package/dist/generated/facade-extensions-operations.d.ts +133 -0
- package/dist/generated/facade-extensions-operations.js +11 -0
- package/dist/generated/facade-extensions-operations.js.map +1 -0
- package/dist/generated/facade-extensions-resources.d.ts +34 -0
- package/dist/generated/facade-extensions-resources.js +47 -0
- package/dist/generated/facade-extensions-resources.js.map +1 -0
- package/dist/generated/facade-extensions-types.d.ts +14 -0
- package/dist/generated/facade-extensions-types.js +2 -0
- package/dist/generated/facade-extensions-types.js.map +1 -0
- package/dist/generated/rest-operations.d.ts +4079 -0
- package/dist/generated/rest-operations.js +234 -0
- package/dist/generated/rest-operations.js.map +1 -0
- package/dist/generated/rest-resources.d.ts +666 -0
- package/dist/generated/rest-resources.js +1124 -0
- package/dist/generated/rest-resources.js.map +1 -0
- package/dist/generated/rest-types.d.ts +572 -0
- package/dist/generated/rest-types.js +2 -0
- package/dist/generated/rest-types.js.map +1 -0
- package/dist/generated/rest.d.ts +233 -10
- package/dist/index.d.ts +41 -76
- package/dist/index.js +49 -239
- package/dist/index.js.map +1 -1
- package/dist/lib/artifacts.d.ts +14 -0
- package/dist/lib/artifacts.js +56 -0
- package/dist/lib/artifacts.js.map +1 -0
- package/dist/lib/tool-runner.d.ts +99 -0
- package/dist/lib/tool-runner.js +140 -0
- package/dist/lib/tool-runner.js.map +1 -0
- package/dist/pagination.d.ts +31 -0
- package/dist/pagination.js +66 -0
- package/dist/pagination.js.map +1 -0
- package/dist/resource.d.ts +8 -0
- package/dist/resource.js +9 -0
- package/dist/resource.js.map +1 -0
- package/dist/streaming.d.ts +27 -0
- package/dist/streaming.js +89 -0
- package/dist/streaming.js.map +1 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +4 -0
- package/dist/version.js.map +1 -0
- package/package.json +5 -3
|
@@ -1,71 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export type
|
|
4
|
-
export type
|
|
5
|
-
export type SessionFile = components["schemas"]["SessionFile"];
|
|
6
|
-
export type SessionFilePage = components["schemas"]["SessionFilePage"];
|
|
7
|
-
/** BMA extension: a project file mounted into a session. */
|
|
8
|
-
export type FileResource = components["schemas"]["FileResource"];
|
|
9
|
-
export type FileResourcePage = components["schemas"]["FileResourcePage"];
|
|
10
|
-
export type DeletedSessionResource = components["schemas"]["DeletedSessionResource"];
|
|
11
|
-
/** BMA extension: one downloaded session file with its response metadata. */
|
|
12
|
-
export interface SessionFileContent {
|
|
13
|
-
content: Uint8Array;
|
|
14
|
-
contentType: string | null;
|
|
15
|
-
filename: string | null;
|
|
16
|
-
digest: string | null;
|
|
17
|
-
}
|
|
18
|
-
/** BMA extension: session `agent.model` object with a write-only credential override. */
|
|
19
|
-
export type ModelConfigOverride = components["schemas"]["ModelConfigOverride"];
|
|
20
|
-
/** BMA extension: `mcp_servers[].bma_auth`. */
|
|
21
|
-
export type MCPServerBMAAuth = components["schemas"]["MCPServerBMAAuth"];
|
|
22
|
-
/** BMA extension header forwarded on session create and send-events. */
|
|
23
|
-
export declare const IDEMPOTENCY_KEY_HEADER = "Idempotency-Key";
|
|
24
|
-
/**
|
|
25
|
-
* Returns the BMA extension `bma_sequence` of a facade session event, or
|
|
26
|
-
* undefined for preview and synthetic events. Send it as `Last-Event-ID` to
|
|
27
|
-
* resume `GET /v1/sessions/{id}/events/stream`.
|
|
28
|
-
*/
|
|
29
|
-
export declare function bmaSequence(event: unknown): number | undefined;
|
|
1
|
+
import { FacadeClientBase } from "./generated/facade-extensions-resources.js";
|
|
2
|
+
export type * from "./generated/facade-extensions-types.js";
|
|
3
|
+
export type * from "./generated/facade-extensions-operations.js";
|
|
4
|
+
export type { paths as FacadeExtensionPaths } from "./generated/facade-extensions.js";
|
|
30
5
|
export interface FacadeExtensionsOptions {
|
|
31
6
|
/** BMA organization API key (sent as x-api-key). */
|
|
32
7
|
apiKey: string;
|
|
33
|
-
/**
|
|
8
|
+
/** Deployment origin, without /v1 (for example https://api.bma.beeos.ai); the routes add /v1. */
|
|
34
9
|
baseUrl: string;
|
|
35
|
-
/**
|
|
10
|
+
/** Default project (x-bma-project-id); required for multi-project keys. */
|
|
36
11
|
projectId?: string;
|
|
12
|
+
timeout?: number;
|
|
13
|
+
maxRetries?: number;
|
|
37
14
|
fetch?: typeof globalThis.fetch;
|
|
38
15
|
}
|
|
39
|
-
/**
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Returns the BMA extension `bma_sequence` of a facade session event, or
|
|
18
|
+
* undefined for preview and synthetic events. Send it as `Last-Event-ID` to
|
|
19
|
+
* resume `GET /v1/sessions/{id}/events/stream`.
|
|
20
|
+
*/
|
|
21
|
+
export declare function bmaSequence(event: {
|
|
22
|
+
bma_sequence?: unknown;
|
|
23
|
+
}): number | undefined;
|
|
46
24
|
/** Client for the BMA extension routes of the Anthropic-compatible facade. */
|
|
47
|
-
export declare class FacadeExtensionsClient {
|
|
48
|
-
readonly raw: Client<paths>;
|
|
25
|
+
export declare class FacadeExtensionsClient extends FacadeClientBase {
|
|
49
26
|
constructor(options: FacadeExtensionsOptions);
|
|
50
|
-
/** BMA extension: GET /v1/sessions/{session_id}/desktop/stream. */
|
|
51
|
-
getSessionDesktopStream(sessionId: string, options: {
|
|
52
|
-
desktopSessionId: string;
|
|
53
|
-
ttlSeconds?: number;
|
|
54
|
-
origin?: string;
|
|
55
|
-
}): Promise<DesktopStream>;
|
|
56
|
-
/** BMA extension: POST /v1/sessions/{session_id}/files (multipart, at most 8 MiB). */
|
|
57
|
-
uploadSessionFile(sessionId: string, file: Blob, filename: string): Promise<SessionFile>;
|
|
58
|
-
/** BMA extension: GET /v1/sessions/{session_id}/files. */
|
|
59
|
-
listSessionFiles(sessionId: string, options?: {
|
|
60
|
-
limit?: number;
|
|
61
|
-
page?: string;
|
|
62
|
-
}): Promise<SessionFilePage>;
|
|
63
|
-
/** BMA extension: GET /v1/sessions/{session_id}/files/{file_id}/content. */
|
|
64
|
-
downloadSessionFile(sessionId: string, fileId: string): Promise<SessionFileContent>;
|
|
65
|
-
/** BMA extension: POST /v1/sessions/{session_id}/resources. */
|
|
66
|
-
addSessionResource(sessionId: string, fileId: string, mountPath?: string): Promise<FileResource>;
|
|
67
|
-
/** BMA extension: GET /v1/sessions/{session_id}/resources. */
|
|
68
|
-
listSessionResources(sessionId: string): Promise<FileResourcePage>;
|
|
69
|
-
/** BMA extension: DELETE /v1/sessions/{session_id}/resources/{resource_id}. */
|
|
70
|
-
deleteSessionResource(sessionId: string, resourceId: string): Promise<DeletedSessionResource>;
|
|
71
27
|
}
|
|
@@ -2,133 +2,46 @@
|
|
|
2
2
|
//
|
|
3
3
|
// The standard facade routes (/v1/agents, /v1/environments, /v1/sessions,
|
|
4
4
|
// events, events/stream, /v1/files, /v1/memory_stores) are served by the
|
|
5
|
-
// official Anthropic SDKs pointed at a BMA deployment.
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
/** BMA extension header forwarded on session create and send-events. */
|
|
17
|
-
export const IDEMPOTENCY_KEY_HEADER = "Idempotency-Key";
|
|
5
|
+
// official Anthropic SDKs pointed at a BMA deployment. This module covers only
|
|
6
|
+
// the BMA extensions, as resources:
|
|
7
|
+
//
|
|
8
|
+
// const ext = new FacadeExtensionsClient({ apiKey, baseUrl, projectId });
|
|
9
|
+
// await ext.sessions.files.list(sessionId);
|
|
10
|
+
//
|
|
11
|
+
// Resource classes are generated from contracts/bma/facade-extensions.openapi.yaml
|
|
12
|
+
// and the `facade` section of contracts/bma/sdk.resources.yaml.
|
|
13
|
+
import { bmaOrigin } from "./core.js";
|
|
14
|
+
import { BmaError } from "./errors.js";
|
|
15
|
+
import { FacadeClientBase } from "./generated/facade-extensions-resources.js";
|
|
18
16
|
/**
|
|
19
17
|
* Returns the BMA extension `bma_sequence` of a facade session event, or
|
|
20
18
|
* undefined for preview and synthetic events. Send it as `Last-Event-ID` to
|
|
21
19
|
* resume `GET /v1/sessions/{id}/events/stream`.
|
|
22
20
|
*/
|
|
23
21
|
export function bmaSequence(event) {
|
|
24
|
-
const value = event
|
|
22
|
+
const value = event.bma_sequence;
|
|
25
23
|
return typeof value === "number" && Number.isSafeInteger(value) && value > 0 ? value : undefined;
|
|
26
24
|
}
|
|
27
|
-
/** An Anthropic-style error envelope returned by a facade extension route. */
|
|
28
|
-
export class FacadeApiError extends Error {
|
|
29
|
-
status;
|
|
30
|
-
type;
|
|
31
|
-
code;
|
|
32
|
-
constructor(status, body) {
|
|
33
|
-
const error = (body?.error ?? {});
|
|
34
|
-
const type = typeof error.type === "string" ? error.type : "api_error";
|
|
35
|
-
const message = typeof error.message === "string" && error.message !== "" ? error.message : `HTTP ${status}`;
|
|
36
|
-
super(`bma facade: HTTP ${status} ${type}: ${message}`);
|
|
37
|
-
this.name = "FacadeApiError";
|
|
38
|
-
this.status = status;
|
|
39
|
-
this.type = type;
|
|
40
|
-
this.code = typeof error.code === "string" ? error.code : undefined;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
function check(result) {
|
|
44
|
-
if (result.response.ok)
|
|
45
|
-
return result.data;
|
|
46
|
-
throw new FacadeApiError(result.response.status, result.error);
|
|
47
|
-
}
|
|
48
25
|
/** Client for the BMA extension routes of the Anthropic-compatible facade. */
|
|
49
|
-
export class FacadeExtensionsClient {
|
|
50
|
-
raw;
|
|
26
|
+
export class FacadeExtensionsClient extends FacadeClientBase {
|
|
51
27
|
constructor(options) {
|
|
52
28
|
const apiKey = options.apiKey?.trim();
|
|
53
29
|
if (!apiKey)
|
|
54
|
-
throw new
|
|
55
|
-
const baseUrl = options.baseUrl
|
|
30
|
+
throw new BmaError("bma facade: apiKey is required");
|
|
31
|
+
const baseUrl = bmaOrigin(options.baseUrl ?? "");
|
|
56
32
|
if (!baseUrl)
|
|
57
|
-
throw new
|
|
33
|
+
throw new BmaError("bma facade: baseUrl is required");
|
|
58
34
|
if (baseUrl.endsWith("/v1"))
|
|
59
|
-
throw new
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
params: {
|
|
69
|
-
path: { session_id: sessionId },
|
|
70
|
-
query: {
|
|
71
|
-
desktop_session_id: options.desktopSessionId,
|
|
72
|
-
ttl_seconds: options.ttlSeconds,
|
|
73
|
-
origin: options.origin,
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
}));
|
|
77
|
-
}
|
|
78
|
-
/** BMA extension: POST /v1/sessions/{session_id}/files (multipart, at most 8 MiB). */
|
|
79
|
-
async uploadSessionFile(sessionId, file, filename) {
|
|
80
|
-
const form = new FormData();
|
|
81
|
-
form.append("file", file, filename);
|
|
82
|
-
return check(await this.raw.POST("/v1/sessions/{session_id}/files", {
|
|
83
|
-
params: { path: { session_id: sessionId } },
|
|
84
|
-
// The generated body type is the schema object; the wire body is FormData.
|
|
85
|
-
body: form,
|
|
86
|
-
bodySerializer: (body) => body,
|
|
87
|
-
}));
|
|
88
|
-
}
|
|
89
|
-
/** BMA extension: GET /v1/sessions/{session_id}/files. */
|
|
90
|
-
async listSessionFiles(sessionId, options = {}) {
|
|
91
|
-
return check(await this.raw.GET("/v1/sessions/{session_id}/files", {
|
|
92
|
-
params: { path: { session_id: sessionId }, query: { limit: options.limit, page: options.page } },
|
|
93
|
-
}));
|
|
94
|
-
}
|
|
95
|
-
/** BMA extension: GET /v1/sessions/{session_id}/files/{file_id}/content. */
|
|
96
|
-
async downloadSessionFile(sessionId, fileId) {
|
|
97
|
-
const result = await this.raw.GET("/v1/sessions/{session_id}/files/{file_id}/content", {
|
|
98
|
-
params: { path: { session_id: sessionId, file_id: fileId } },
|
|
99
|
-
parseAs: "arrayBuffer",
|
|
35
|
+
throw new BmaError("bma facade: baseUrl must be the origin without /v1");
|
|
36
|
+
super({
|
|
37
|
+
baseUrl,
|
|
38
|
+
fetch: options.fetch,
|
|
39
|
+
timeout: options.timeout,
|
|
40
|
+
maxRetries: options.maxRetries,
|
|
41
|
+
headers: { "x-api-key": apiKey },
|
|
42
|
+
scope: { project_id: options.projectId },
|
|
43
|
+
scopeOption: { project_id: "projectId" },
|
|
100
44
|
});
|
|
101
|
-
if (!result.response.ok)
|
|
102
|
-
throw new FacadeApiError(result.response.status, result.error);
|
|
103
|
-
return {
|
|
104
|
-
content: new Uint8Array(result.data),
|
|
105
|
-
contentType: result.response.headers.get("content-type"),
|
|
106
|
-
filename: dispositionFilename(result.response.headers.get("content-disposition")),
|
|
107
|
-
digest: result.response.headers.get("x-bma-file-digest"),
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
/** BMA extension: POST /v1/sessions/{session_id}/resources. */
|
|
111
|
-
async addSessionResource(sessionId, fileId, mountPath) {
|
|
112
|
-
return check(await this.raw.POST("/v1/sessions/{session_id}/resources", {
|
|
113
|
-
params: { path: { session_id: sessionId } },
|
|
114
|
-
body: {
|
|
115
|
-
type: "file",
|
|
116
|
-
file_id: fileId,
|
|
117
|
-
...(mountPath === undefined ? {} : { mount_path: mountPath }),
|
|
118
|
-
},
|
|
119
|
-
}));
|
|
120
|
-
}
|
|
121
|
-
/** BMA extension: GET /v1/sessions/{session_id}/resources. */
|
|
122
|
-
async listSessionResources(sessionId) {
|
|
123
|
-
return check(await this.raw.GET("/v1/sessions/{session_id}/resources", {
|
|
124
|
-
params: { path: { session_id: sessionId } },
|
|
125
|
-
}));
|
|
126
|
-
}
|
|
127
|
-
/** BMA extension: DELETE /v1/sessions/{session_id}/resources/{resource_id}. */
|
|
128
|
-
async deleteSessionResource(sessionId, resourceId) {
|
|
129
|
-
return check(await this.raw.DELETE("/v1/sessions/{session_id}/resources/{resource_id}", {
|
|
130
|
-
params: { path: { session_id: sessionId, resource_id: resourceId } },
|
|
131
|
-
}));
|
|
132
45
|
}
|
|
133
46
|
}
|
|
134
47
|
//# sourceMappingURL=facade-extensions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facade-extensions.js","sourceRoot":"","sources":["../src/facade-extensions.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,EAAE;AACF,0EAA0E;AAC1E,yEAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"facade-extensions.js","sourceRoot":"","sources":["../src/facade-extensions.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,EAAE;AACF,0EAA0E;AAC1E,yEAAyE;AACzE,+EAA+E;AAC/E,oCAAoC;AACpC,EAAE;AACF,4EAA4E;AAC5E,8CAA8C;AAC9C,EAAE;AACF,mFAAmF;AACnF,gEAAgE;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAkB9E;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAiC;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnG,CAAC;AAED,8EAA8E;AAC9E,MAAM,OAAO,sBAAuB,SAAQ,gBAAgB;IAC1D,YAAY,OAAgC;QAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,QAAQ,CAAC,gCAAgC,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,QAAQ,CAAC,iCAAiC,CAAC,CAAC;QACpE,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,QAAQ,CAAC,oDAAoD,CAAC,CAAC;QACtG,KAAK,CAAC;YACJ,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;YAChC,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE;YACxC,WAAW,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE;SACzC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { operations } from "./facade-extensions.js";
|
|
2
|
+
import type { MultipartBody } from "../core.js";
|
|
3
|
+
/** Request descriptors, one per mapped contract operation. */
|
|
4
|
+
export declare const OP: {
|
|
5
|
+
readonly addSessionResource: {
|
|
6
|
+
readonly id: "addSessionResource";
|
|
7
|
+
readonly method: "POST";
|
|
8
|
+
readonly path: "/v1/sessions/{session_id}/resources";
|
|
9
|
+
readonly pathParams: {
|
|
10
|
+
readonly session_id: "session_id";
|
|
11
|
+
};
|
|
12
|
+
readonly headers: {
|
|
13
|
+
readonly "x-bma-project-id": "project_id";
|
|
14
|
+
};
|
|
15
|
+
readonly body: "json";
|
|
16
|
+
readonly bodyRequired: true;
|
|
17
|
+
readonly response: "json";
|
|
18
|
+
};
|
|
19
|
+
readonly deleteSessionResource: {
|
|
20
|
+
readonly id: "deleteSessionResource";
|
|
21
|
+
readonly method: "DELETE";
|
|
22
|
+
readonly path: "/v1/sessions/{session_id}/resources/{resource_id}";
|
|
23
|
+
readonly pathParams: {
|
|
24
|
+
readonly session_id: "session_id";
|
|
25
|
+
readonly resource_id: "resource_id";
|
|
26
|
+
};
|
|
27
|
+
readonly headers: {
|
|
28
|
+
readonly "x-bma-project-id": "project_id";
|
|
29
|
+
};
|
|
30
|
+
readonly response: "json";
|
|
31
|
+
};
|
|
32
|
+
readonly downloadSessionFile: {
|
|
33
|
+
readonly id: "downloadSessionFile";
|
|
34
|
+
readonly method: "GET";
|
|
35
|
+
readonly path: "/v1/sessions/{session_id}/files/{file_id}/content";
|
|
36
|
+
readonly pathParams: {
|
|
37
|
+
readonly session_id: "session_id";
|
|
38
|
+
readonly file_id: "file_id";
|
|
39
|
+
};
|
|
40
|
+
readonly headers: {
|
|
41
|
+
readonly "x-bma-project-id": "project_id";
|
|
42
|
+
};
|
|
43
|
+
readonly response: "binary";
|
|
44
|
+
};
|
|
45
|
+
readonly getSessionDesktopStream: {
|
|
46
|
+
readonly id: "getSessionDesktopStream";
|
|
47
|
+
readonly method: "GET";
|
|
48
|
+
readonly path: "/v1/sessions/{session_id}/desktop/stream";
|
|
49
|
+
readonly pathParams: {
|
|
50
|
+
readonly session_id: "session_id";
|
|
51
|
+
};
|
|
52
|
+
readonly query: {
|
|
53
|
+
readonly desktop_session_id: "form";
|
|
54
|
+
readonly ttl_seconds: "form";
|
|
55
|
+
readonly origin: "form";
|
|
56
|
+
};
|
|
57
|
+
readonly headers: {
|
|
58
|
+
readonly "x-bma-project-id": "project_id";
|
|
59
|
+
};
|
|
60
|
+
readonly response: "json";
|
|
61
|
+
};
|
|
62
|
+
readonly listSessionFiles: {
|
|
63
|
+
readonly id: "listSessionFiles";
|
|
64
|
+
readonly method: "GET";
|
|
65
|
+
readonly path: "/v1/sessions/{session_id}/files";
|
|
66
|
+
readonly pathParams: {
|
|
67
|
+
readonly session_id: "session_id";
|
|
68
|
+
};
|
|
69
|
+
readonly query: {
|
|
70
|
+
readonly limit: "form";
|
|
71
|
+
readonly page: "form";
|
|
72
|
+
};
|
|
73
|
+
readonly headers: {
|
|
74
|
+
readonly "x-bma-project-id": "project_id";
|
|
75
|
+
};
|
|
76
|
+
readonly response: "json";
|
|
77
|
+
readonly page: readonly [readonly ["page", "next_page"]];
|
|
78
|
+
};
|
|
79
|
+
readonly listSessionResources: {
|
|
80
|
+
readonly id: "listSessionResources";
|
|
81
|
+
readonly method: "GET";
|
|
82
|
+
readonly path: "/v1/sessions/{session_id}/resources";
|
|
83
|
+
readonly pathParams: {
|
|
84
|
+
readonly session_id: "session_id";
|
|
85
|
+
};
|
|
86
|
+
readonly headers: {
|
|
87
|
+
readonly "x-bma-project-id": "project_id";
|
|
88
|
+
};
|
|
89
|
+
readonly response: "json";
|
|
90
|
+
};
|
|
91
|
+
readonly uploadSessionFile: {
|
|
92
|
+
readonly id: "uploadSessionFile";
|
|
93
|
+
readonly method: "POST";
|
|
94
|
+
readonly path: "/v1/sessions/{session_id}/files";
|
|
95
|
+
readonly pathParams: {
|
|
96
|
+
readonly session_id: "session_id";
|
|
97
|
+
};
|
|
98
|
+
readonly headers: {
|
|
99
|
+
readonly "x-bma-project-id": "project_id";
|
|
100
|
+
};
|
|
101
|
+
readonly body: "multipart";
|
|
102
|
+
readonly bodyRequired: true;
|
|
103
|
+
readonly response: "json";
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
/** Params of `addSessionResource`: query, header and body fields, flattened. */
|
|
107
|
+
export type AddSessionResourceParams = {
|
|
108
|
+
project_id?: string;
|
|
109
|
+
} & NonNullable<operations["addSessionResource"]["requestBody"]>["content"]["application/json"];
|
|
110
|
+
/** Params of `deleteSessionResource`: query, header and body fields, flattened. */
|
|
111
|
+
export type DeleteSessionResourceParams = {
|
|
112
|
+
project_id?: string;
|
|
113
|
+
};
|
|
114
|
+
/** Params of `downloadSessionFile`: query, header and body fields, flattened. */
|
|
115
|
+
export type DownloadSessionFileParams = {
|
|
116
|
+
project_id?: string;
|
|
117
|
+
};
|
|
118
|
+
/** Params of `getSessionDesktopStream`: query, header and body fields, flattened. */
|
|
119
|
+
export type GetSessionDesktopStreamParams = {
|
|
120
|
+
project_id?: string;
|
|
121
|
+
} & NonNullable<operations["getSessionDesktopStream"]["parameters"]["query"]>;
|
|
122
|
+
/** Params of `listSessionFiles`: query, header and body fields, flattened. */
|
|
123
|
+
export type ListSessionFilesParams = {
|
|
124
|
+
project_id?: string;
|
|
125
|
+
} & NonNullable<operations["listSessionFiles"]["parameters"]["query"]>;
|
|
126
|
+
/** Params of `listSessionResources`: query, header and body fields, flattened. */
|
|
127
|
+
export type ListSessionResourcesParams = {
|
|
128
|
+
project_id?: string;
|
|
129
|
+
};
|
|
130
|
+
/** Params of `uploadSessionFile`: query, header and body fields, flattened. */
|
|
131
|
+
export type UploadSessionFileParams = {
|
|
132
|
+
project_id?: string;
|
|
133
|
+
} & MultipartBody<NonNullable<operations["uploadSessionFile"]["requestBody"]>["content"]["multipart/form-data"], "file">;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Request descriptors, one per mapped contract operation. */
|
|
2
|
+
export const OP = {
|
|
3
|
+
addSessionResource: { "id": "addSessionResource", "method": "POST", "path": "/v1/sessions/{session_id}/resources", "pathParams": { "session_id": "session_id" }, "headers": { "x-bma-project-id": "project_id" }, "body": "json", "bodyRequired": true, "response": "json" },
|
|
4
|
+
deleteSessionResource: { "id": "deleteSessionResource", "method": "DELETE", "path": "/v1/sessions/{session_id}/resources/{resource_id}", "pathParams": { "session_id": "session_id", "resource_id": "resource_id" }, "headers": { "x-bma-project-id": "project_id" }, "response": "json" },
|
|
5
|
+
downloadSessionFile: { "id": "downloadSessionFile", "method": "GET", "path": "/v1/sessions/{session_id}/files/{file_id}/content", "pathParams": { "session_id": "session_id", "file_id": "file_id" }, "headers": { "x-bma-project-id": "project_id" }, "response": "binary" },
|
|
6
|
+
getSessionDesktopStream: { "id": "getSessionDesktopStream", "method": "GET", "path": "/v1/sessions/{session_id}/desktop/stream", "pathParams": { "session_id": "session_id" }, "query": { "desktop_session_id": "form", "ttl_seconds": "form", "origin": "form" }, "headers": { "x-bma-project-id": "project_id" }, "response": "json" },
|
|
7
|
+
listSessionFiles: { "id": "listSessionFiles", "method": "GET", "path": "/v1/sessions/{session_id}/files", "pathParams": { "session_id": "session_id" }, "query": { "limit": "form", "page": "form" }, "headers": { "x-bma-project-id": "project_id" }, "response": "json", "page": [["page", "next_page"]] },
|
|
8
|
+
listSessionResources: { "id": "listSessionResources", "method": "GET", "path": "/v1/sessions/{session_id}/resources", "pathParams": { "session_id": "session_id" }, "headers": { "x-bma-project-id": "project_id" }, "response": "json" },
|
|
9
|
+
uploadSessionFile: { "id": "uploadSessionFile", "method": "POST", "path": "/v1/sessions/{session_id}/files", "pathParams": { "session_id": "session_id" }, "headers": { "x-bma-project-id": "project_id" }, "body": "multipart", "bodyRequired": true, "response": "json" },
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=facade-extensions-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"facade-extensions-operations.js","sourceRoot":"","sources":["../../src/generated/facade-extensions-operations.ts"],"names":[],"mappings":"AAMA,8DAA8D;AAC9D,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB,kBAAkB,EAAE,EAAC,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,qCAAqC,EAAE,YAAY,EAAE,EAAC,YAAY,EAAE,YAAY,EAAC,EAAE,SAAS,EAAE,EAAC,kBAAkB,EAAE,YAAY,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAC;IACtQ,qBAAqB,EAAE,EAAC,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,mDAAmD,EAAE,YAAY,EAAE,EAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAC,EAAE,SAAS,EAAE,EAAC,kBAAkB,EAAE,YAAY,EAAC,EAAE,UAAU,EAAE,MAAM,EAAC;IACpR,mBAAmB,EAAE,EAAC,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,mDAAmD,EAAE,YAAY,EAAE,EAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAC,EAAE,SAAS,EAAE,EAAC,kBAAkB,EAAE,YAAY,EAAC,EAAE,UAAU,EAAE,QAAQ,EAAC;IACvQ,uBAAuB,EAAE,EAAC,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,0CAA0C,EAAE,YAAY,EAAE,EAAC,YAAY,EAAE,YAAY,EAAC,EAAE,OAAO,EAAE,EAAC,oBAAoB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAC,EAAE,SAAS,EAAE,EAAC,kBAAkB,EAAE,YAAY,EAAC,EAAE,UAAU,EAAE,MAAM,EAAC;IAChU,gBAAgB,EAAE,EAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,iCAAiC,EAAE,YAAY,EAAE,EAAC,YAAY,EAAE,YAAY,EAAC,EAAE,OAAO,EAAE,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE,SAAS,EAAE,EAAC,kBAAkB,EAAE,YAAY,EAAC,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAC;IACpS,oBAAoB,EAAE,EAAC,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,qCAAqC,EAAE,YAAY,EAAE,EAAC,YAAY,EAAE,YAAY,EAAC,EAAE,SAAS,EAAE,EAAC,kBAAkB,EAAE,YAAY,EAAC,EAAE,UAAU,EAAE,MAAM,EAAC;IACnO,iBAAiB,EAAE,EAAC,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,iCAAiC,EAAE,YAAY,EAAE,EAAC,YAAY,EAAE,YAAY,EAAC,EAAE,SAAS,EAAE,EAAC,kBAAkB,EAAE,YAAY,EAAC,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAC;CAC/M,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type * as T from "./facade-extensions-types.js";
|
|
2
|
+
import { ClientCore, type RequestOptions } from "../core.js";
|
|
3
|
+
import type { PagePromise } from "../pagination.js";
|
|
4
|
+
import { APIResource } from "../resource.js";
|
|
5
|
+
import type { AddSessionResourceParams, DeleteSessionResourceParams, DownloadSessionFileParams, GetSessionDesktopStreamParams, ListSessionFilesParams, ListSessionResourcesParams, UploadSessionFileParams } from "./facade-extensions-operations.js";
|
|
6
|
+
export declare class SessionsFiles extends APIResource {
|
|
7
|
+
/** `POST /v1/sessions/{session_id}/files` (uploadSessionFile) */
|
|
8
|
+
upload(sessionId: string, params: UploadSessionFileParams, options?: RequestOptions): Promise<T.SessionFile>;
|
|
9
|
+
/** `GET /v1/sessions/{session_id}/files` (listSessionFiles) */
|
|
10
|
+
list(sessionId: string, params?: ListSessionFilesParams, options?: RequestOptions): PagePromise<T.SessionFilePage>;
|
|
11
|
+
/** `GET /v1/sessions/{session_id}/files/{file_id}/content` (downloadSessionFile) */
|
|
12
|
+
download(sessionId: string, fileId: string, params?: DownloadSessionFileParams, options?: RequestOptions): Promise<Response>;
|
|
13
|
+
}
|
|
14
|
+
export declare class SessionsResources extends APIResource {
|
|
15
|
+
/** `POST /v1/sessions/{session_id}/resources` (addSessionResource) */
|
|
16
|
+
add(sessionId: string, params: AddSessionResourceParams, options?: RequestOptions): Promise<T.FileResource>;
|
|
17
|
+
/** `GET /v1/sessions/{session_id}/resources` (listSessionResources) */
|
|
18
|
+
list(sessionId: string, params?: ListSessionResourcesParams, options?: RequestOptions): Promise<T.FileResourcePage>;
|
|
19
|
+
/** `DELETE /v1/sessions/{session_id}/resources/{resource_id}` (deleteSessionResource) */
|
|
20
|
+
delete(sessionId: string, resourceId: string, params?: DeleteSessionResourceParams, options?: RequestOptions): Promise<T.DeletedSessionResource>;
|
|
21
|
+
}
|
|
22
|
+
export declare class SessionsDesktop extends APIResource {
|
|
23
|
+
/** `GET /v1/sessions/{session_id}/desktop/stream` (getSessionDesktopStream) */
|
|
24
|
+
stream(sessionId: string, params: GetSessionDesktopStreamParams, options?: RequestOptions): Promise<T.DesktopStream>;
|
|
25
|
+
}
|
|
26
|
+
export declare class Sessions extends APIResource {
|
|
27
|
+
readonly files: SessionsFiles;
|
|
28
|
+
readonly resources: SessionsResources;
|
|
29
|
+
readonly desktop: SessionsDesktop;
|
|
30
|
+
}
|
|
31
|
+
/** Client with the top-level resources of the facade API. */
|
|
32
|
+
export declare class FacadeClientBase extends ClientCore {
|
|
33
|
+
readonly sessions: Sessions;
|
|
34
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ClientCore } from "../core.js";
|
|
2
|
+
import { APIResource } from "../resource.js";
|
|
3
|
+
import { OP } from "./facade-extensions-operations.js";
|
|
4
|
+
export class SessionsFiles extends APIResource {
|
|
5
|
+
/** `POST /v1/sessions/{session_id}/files` (uploadSessionFile) */
|
|
6
|
+
upload(sessionId, params, options) {
|
|
7
|
+
return this._client._request(OP.uploadSessionFile, { session_id: sessionId }, params, options);
|
|
8
|
+
}
|
|
9
|
+
/** `GET /v1/sessions/{session_id}/files` (listSessionFiles) */
|
|
10
|
+
list(sessionId, params = {}, options) {
|
|
11
|
+
return this._client._page(OP.listSessionFiles, { session_id: sessionId }, params, options);
|
|
12
|
+
}
|
|
13
|
+
/** `GET /v1/sessions/{session_id}/files/{file_id}/content` (downloadSessionFile) */
|
|
14
|
+
download(sessionId, fileId, params = {}, options) {
|
|
15
|
+
return this._client._request(OP.downloadSessionFile, { session_id: sessionId, file_id: fileId }, params, options);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class SessionsResources extends APIResource {
|
|
19
|
+
/** `POST /v1/sessions/{session_id}/resources` (addSessionResource) */
|
|
20
|
+
add(sessionId, params, options) {
|
|
21
|
+
return this._client._request(OP.addSessionResource, { session_id: sessionId }, params, options);
|
|
22
|
+
}
|
|
23
|
+
/** `GET /v1/sessions/{session_id}/resources` (listSessionResources) */
|
|
24
|
+
list(sessionId, params = {}, options) {
|
|
25
|
+
return this._client._request(OP.listSessionResources, { session_id: sessionId }, params, options);
|
|
26
|
+
}
|
|
27
|
+
/** `DELETE /v1/sessions/{session_id}/resources/{resource_id}` (deleteSessionResource) */
|
|
28
|
+
delete(sessionId, resourceId, params = {}, options) {
|
|
29
|
+
return this._client._request(OP.deleteSessionResource, { session_id: sessionId, resource_id: resourceId }, params, options);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export class SessionsDesktop extends APIResource {
|
|
33
|
+
/** `GET /v1/sessions/{session_id}/desktop/stream` (getSessionDesktopStream) */
|
|
34
|
+
stream(sessionId, params, options) {
|
|
35
|
+
return this._client._request(OP.getSessionDesktopStream, { session_id: sessionId }, params, options);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export class Sessions extends APIResource {
|
|
39
|
+
files = new SessionsFiles(this._client);
|
|
40
|
+
resources = new SessionsResources(this._client);
|
|
41
|
+
desktop = new SessionsDesktop(this._client);
|
|
42
|
+
}
|
|
43
|
+
/** Client with the top-level resources of the facade API. */
|
|
44
|
+
export class FacadeClientBase extends ClientCore {
|
|
45
|
+
sessions = new Sessions(this);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=facade-extensions-resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"facade-extensions-resources.js","sourceRoot":"","sources":["../../src/generated/facade-extensions-resources.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAuB,MAAM,YAAY,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,mCAAmC,CAAC;AAGvD,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5C,iEAAiE;IACjE,MAAM,CAAC,SAAiB,EAAE,MAA+B,EAAE,OAAwB;QACjF,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAgB,EAAE,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAChH,CAAC;IAED,+DAA+D;IAC/D,IAAI,CAAC,SAAiB,EAAE,SAAiC,EAAE,EAAE,OAAwB;QACnF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAoB,EAAE,CAAC,gBAAgB,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAChH,CAAC;IAED,oFAAoF;IACpF,QAAQ,CAAC,SAAiB,EAAE,MAAc,EAAE,SAAoC,EAAE,EAAE,OAAwB;QAC1G,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAW,EAAE,CAAC,mBAAmB,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9H,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAChD,sEAAsE;IACtE,GAAG,CAAC,SAAiB,EAAE,MAAgC,EAAE,OAAwB;QAC/E,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAiB,EAAE,CAAC,kBAAkB,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClH,CAAC;IAED,uEAAuE;IACvE,IAAI,CAAC,SAAiB,EAAE,SAAqC,EAAE,EAAE,OAAwB;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAqB,EAAE,CAAC,oBAAoB,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACxH,CAAC;IAED,yFAAyF;IACzF,MAAM,CAAC,SAAiB,EAAE,UAAkB,EAAE,SAAsC,EAAE,EAAE,OAAwB;QAC9G,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAA2B,EAAE,CAAC,qBAAqB,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACxJ,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAC9C,+EAA+E;IAC/E,MAAM,CAAC,SAAiB,EAAE,MAAqC,EAAE,OAAwB;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAkB,EAAE,CAAC,uBAAuB,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACxH,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,WAAW;IAC9B,KAAK,GAAkB,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,SAAS,GAAsB,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnE,OAAO,GAAoB,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;CACvE;AAED,6DAA6D;AAC7D,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IACrC,QAAQ,GAAa,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;CAClD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { components } from "./facade-extensions.js";
|
|
2
|
+
type S = components["schemas"];
|
|
3
|
+
export type BMASequence = S["BMASequence"];
|
|
4
|
+
export type DeletedSessionResource = S["DeletedSessionResource"];
|
|
5
|
+
export type DesktopStream = S["DesktopStream"];
|
|
6
|
+
export type ErrorEnvelope = S["ErrorEnvelope"];
|
|
7
|
+
export type FileResource = S["FileResource"];
|
|
8
|
+
export type FileResourcePage = S["FileResourcePage"];
|
|
9
|
+
export type FileResourceParams = S["FileResourceParams"];
|
|
10
|
+
export type MCPServerBMAAuth = S["MCPServerBMAAuth"];
|
|
11
|
+
export type ModelConfigOverride = S["ModelConfigOverride"];
|
|
12
|
+
export type SessionFile = S["SessionFile"];
|
|
13
|
+
export type SessionFilePage = S["SessionFilePage"];
|
|
14
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"facade-extensions-types.js","sourceRoot":"","sources":["../../src/generated/facade-extensions-types.ts"],"names":[],"mappings":""}
|