@aexhq/sdk 0.54.1 → 0.55.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.
Files changed (57) hide show
  1. package/README.md +16 -123
  2. package/dist/errors.d.ts +33 -0
  3. package/dist/errors.js +69 -0
  4. package/dist/index.d.ts +16 -23
  5. package/dist/index.js +18 -16
  6. package/dist/json.d.ts +4 -0
  7. package/dist/json.js +46 -0
  8. package/dist/session.d.ts +74 -0
  9. package/dist/session.js +255 -0
  10. package/dist/transport.d.ts +22 -0
  11. package/dist/transport.js +196 -0
  12. package/package.json +16 -64
  13. package/LICENSE +0 -201
  14. package/NOTICE +0 -38
  15. package/dist/client/aex.d.ts +0 -38
  16. package/dist/client/aex.js +0 -149
  17. package/dist/client/aex.js.map +0 -1
  18. package/dist/client/credentials.d.ts +0 -25
  19. package/dist/client/credentials.js +0 -97
  20. package/dist/client/credentials.js.map +0 -1
  21. package/dist/client/routing.d.ts +0 -7
  22. package/dist/client/routing.js +0 -26
  23. package/dist/client/routing.js.map +0 -1
  24. package/dist/downloads/download.d.ts +0 -18
  25. package/dist/downloads/download.js +0 -67
  26. package/dist/downloads/download.js.map +0 -1
  27. package/dist/files/workspace-files.d.ts +0 -55
  28. package/dist/files/workspace-files.js +0 -150
  29. package/dist/files/workspace-files.js.map +0 -1
  30. package/dist/generated/errors.d.ts +0 -12
  31. package/dist/generated/errors.js +0 -66
  32. package/dist/generated/errors.js.map +0 -1
  33. package/dist/generated/models.d.ts +0 -853
  34. package/dist/generated/models.js +0 -62
  35. package/dist/generated/models.js.map +0 -1
  36. package/dist/generated/resources.d.ts +0 -265
  37. package/dist/generated/resources.js +0 -207
  38. package/dist/generated/resources.js.map +0 -1
  39. package/dist/generated/routes.d.ts +0 -44
  40. package/dist/generated/routes.js +0 -510
  41. package/dist/generated/routes.js.map +0 -1
  42. package/dist/index.js.map +0 -1
  43. package/dist/observations/stream.d.ts +0 -1
  44. package/dist/observations/stream.js +0 -18
  45. package/dist/observations/stream.js.map +0 -1
  46. package/dist/transport/errors.d.ts +0 -60
  47. package/dist/transport/errors.js +0 -107
  48. package/dist/transport/errors.js.map +0 -1
  49. package/dist/transport/pagination.d.ts +0 -8
  50. package/dist/transport/pagination.js +0 -34
  51. package/dist/transport/pagination.js.map +0 -1
  52. package/dist/transport/retry.d.ts +0 -21
  53. package/dist/transport/retry.js +0 -37
  54. package/dist/transport/retry.js.map +0 -1
  55. package/dist/transport/transport.d.ts +0 -33
  56. package/dist/transport/transport.js +0 -111
  57. package/dist/transport/transport.js.map +0 -1
@@ -1,67 +0,0 @@
1
- import { AexConfigError } from "../transport/errors.js";
2
- export const MAX_SINGLE_GET_BYTES = 5_000_000_000_000;
3
- export function planDownloadRanges(sizeBytes, selected) {
4
- if (!Number.isSafeInteger(sizeBytes) || sizeBytes < 0)
5
- throw new AexConfigError("invalid sizeBytes");
6
- if (selected) {
7
- if (!Number.isSafeInteger(selected.start) || !Number.isSafeInteger(selected.endExclusive)
8
- || selected.start < 0 || selected.endExclusive <= selected.start || selected.endExclusive > sizeBytes) {
9
- throw new AexConfigError("invalid half-open download range");
10
- }
11
- return [selected];
12
- }
13
- if (sizeBytes === 0)
14
- return [];
15
- const ranges = [];
16
- for (let start = 0; start < sizeBytes; start += MAX_SINGLE_GET_BYTES) {
17
- ranges.push({ start, endExclusive: Math.min(sizeBytes, start + MAX_SINGLE_GET_BYTES) });
18
- }
19
- return ranges;
20
- }
21
- export class Download {
22
- grant;
23
- #fetch;
24
- constructor(grant, fetchLike = globalThis.fetch) {
25
- this.grant = grant;
26
- this.#fetch = fetchLike.bind(globalThis);
27
- }
28
- async bytes() {
29
- if (Date.parse(this.grant.expiresAt) <= Date.now()) {
30
- throw new AexConfigError("download grant expired");
31
- }
32
- const sizeBytes = parseCanonicalBytes(this.grant.sizeBytes, "sizeBytes");
33
- const authorizedBytes = parseCanonicalBytes(this.grant.authorizedBytes, "authorizedBytes");
34
- if (authorizedBytes > sizeBytes) {
35
- throw new AexConfigError("download grant authorizes more bytes than the object contains");
36
- }
37
- const response = await this.#fetch(this.grant.url, {
38
- redirect: "error",
39
- });
40
- if (!response.ok)
41
- throw new AexConfigError(`download failed with status ${response.status}`);
42
- const bytes = new Uint8Array(await response.arrayBuffer());
43
- if (bytes.byteLength !== authorizedBytes) {
44
- throw new AexConfigError(`download length mismatch: expected ${authorizedBytes}, received ${bytes.byteLength}`);
45
- }
46
- if (authorizedBytes === sizeBytes) {
47
- const digest = await crypto.subtle.digest("SHA-256", bytes);
48
- const actual = `sha256:${Array.from(new Uint8Array(digest), (value) => value.toString(16).padStart(2, "0")).join("")}`;
49
- if (actual !== this.grant.sha256)
50
- throw new AexConfigError("download digest mismatch");
51
- }
52
- return bytes;
53
- }
54
- async text() { return new TextDecoder().decode(await this.bytes()); }
55
- async json() { return JSON.parse(await this.text()); }
56
- }
57
- function parseCanonicalBytes(value, field) {
58
- if (!/^(0|[1-9][0-9]*)$/.test(value)) {
59
- throw new AexConfigError(`download grant ${field} is not a canonical decimal`);
60
- }
61
- const parsed = Number(value);
62
- if (!Number.isSafeInteger(parsed)) {
63
- throw new AexConfigError(`download grant ${field} exceeds SDK precision`);
64
- }
65
- return parsed;
66
- }
67
- //# sourceMappingURL=download.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/downloads/download.ts"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- import type { ResourceExecutor } from "../generated/resources.js";
2
- /** Inline, URL and direct-upload inputs accepted by the latest-only file API. */
3
- export type WorkspaceFileInput = {
4
- readonly type: "bytes";
5
- readonly bytes: Uint8Array;
6
- } | {
7
- readonly type: "text";
8
- readonly text: string;
9
- } | {
10
- readonly type: "url";
11
- readonly url: string;
12
- };
13
- /** One current workspace-file response. No public version identity exists. */
14
- export interface CurrentWorkspaceFile {
15
- readonly name: string;
16
- readonly state: "pending" | "ready" | "failed";
17
- readonly value?: {
18
- readonly content: {
19
- readonly sha256: string;
20
- readonly sizeBytes: string;
21
- };
22
- readonly mediaType: string;
23
- readonly mode: "0644" | "0755";
24
- };
25
- }
26
- export interface WorkspaceFilePutOptions {
27
- readonly mediaType?: string;
28
- readonly mode?: "0644" | "0755";
29
- readonly idempotencyKey?: string;
30
- }
31
- /**
32
- * Convenience surface over the seven latest-only file/upload operations.
33
- *
34
- * Direct object-store transfers replay only the exact signed headers returned
35
- * by Aex. The guest is never given AWS credentials; `storage.persist` uses the
36
- * same private grant shape from inside Tool Mux.
37
- */
38
- export declare class WorkspaceFiles {
39
- #private;
40
- constructor(executor: ResourceExecutor, fetchLike?: typeof fetch);
41
- put(name: string, input: WorkspaceFileInput, options?: WorkspaceFilePutOptions): Promise<CurrentWorkspaceFile>;
42
- /** Uploads arbitrary bytes and publishes them to the admitted logical name. */
43
- upload(name: string, bytes: Uint8Array, options?: WorkspaceFilePutOptions): Promise<CurrentWorkspaceFile>;
44
- get(name: string): Promise<CurrentWorkspaceFile>;
45
- list(query?: {
46
- readonly cursor?: string;
47
- readonly limit?: number;
48
- }): Promise<{
49
- readonly items: ReadonlyArray<CurrentWorkspaceFile>;
50
- readonly nextCursor?: string;
51
- }>;
52
- delete(name: string): Promise<void>;
53
- /** Downloads and verifies the exact current ready bytes. */
54
- download(name: string): Promise<Uint8Array>;
55
- }
@@ -1,150 +0,0 @@
1
- const UPLOAD_MIN_PART_BYTES = 5 * 1024 * 1024;
2
- const UPLOAD_MAX_PART_BYTES = 5 * 1024 * 1024 * 1024;
3
- const UPLOAD_MAX_PARTS = 1_000;
4
- /**
5
- * Convenience surface over the seven latest-only file/upload operations.
6
- *
7
- * Direct object-store transfers replay only the exact signed headers returned
8
- * by Aex. The guest is never given AWS credentials; `storage.persist` uses the
9
- * same private grant shape from inside Tool Mux.
10
- */
11
- export class WorkspaceFiles {
12
- #executor;
13
- #fetch;
14
- constructor(executor, fetchLike = globalThis.fetch) {
15
- this.#executor = executor;
16
- this.#fetch = fetchLike.bind(globalThis);
17
- }
18
- async put(name, input, options = {}) {
19
- const mediaType = options.mediaType ?? (input.type === "text" ? "text/plain" : "application/octet-stream");
20
- const mode = options.mode ?? "0644";
21
- const content = input.type === "url"
22
- ? { type: "url", url: input.url }
23
- : await inlineInput(input.type === "text" ? new TextEncoder().encode(input.text) : input.bytes);
24
- return this.#executor.execute("registry_files_put", { name }, {
25
- idempotencyKey: options.idempotencyKey ?? globalThis.crypto.randomUUID(),
26
- body: { content, mediaType, mode },
27
- });
28
- }
29
- /** Uploads arbitrary bytes and publishes them to the admitted logical name. */
30
- async upload(name, bytes, options = {}) {
31
- const plannedParts = planUploadParts(bytes.byteLength);
32
- const wholeHash = await sha256(bytes);
33
- const declaredParts = await Promise.all(plannedParts.map(async ({ partNumber, start, end }) => ({
34
- partNumber,
35
- sha256: await sha256(bytes.subarray(start, end)),
36
- sizeBytes: String(end - start),
37
- })));
38
- const admission = await this.#executor.execute("upload_create", {}, {
39
- idempotencyKey: options.idempotencyKey ?? globalThis.crypto.randomUUID(),
40
- body: {
41
- name,
42
- sizeBytes: String(bytes.byteLength),
43
- sha256: wholeHash,
44
- contentType: options.mediaType ?? "application/octet-stream",
45
- parts: declaredParts,
46
- },
47
- });
48
- if (admission.upload.partCount !== declaredParts.length
49
- || admission.grants.length !== admission.upload.partCount) {
50
- throw new Error("upload admission omitted one or more part grants");
51
- }
52
- const partSize = Number(admission.upload.partSizeBytes);
53
- if (!Number.isSafeInteger(partSize)
54
- || partSize <= 0
55
- || partSize !== plannedParts[0]?.end) {
56
- throw new Error("upload admission returned an invalid part size");
57
- }
58
- const parts = [];
59
- for (const [index, grant] of admission.grants.entries()) {
60
- if (grant.partNumber !== index + 1) {
61
- throw new Error("upload admission returned non-contiguous part grants");
62
- }
63
- const start = index * partSize;
64
- const end = Math.min(start + partSize, bytes.byteLength);
65
- const headers = new Headers(grant.headers.map(({ name: header, value }) => [header, value]));
66
- const response = await this.#fetch(grant.url, {
67
- method: "PUT",
68
- headers,
69
- body: toBody(bytes.slice(start, end)),
70
- redirect: "error",
71
- });
72
- if (!response.ok)
73
- throw new Error(`object-store upload failed with HTTP ${response.status}`);
74
- const etag = response.headers.get("etag");
75
- if (etag === null)
76
- throw new Error("object-store upload response omitted ETag");
77
- parts.push({ partNumber: grant.partNumber, etag });
78
- }
79
- return this.#executor.execute("upload_complete", { uploadId: admission.upload.id }, {
80
- idempotencyKey: globalThis.crypto.randomUUID(),
81
- body: { parts },
82
- });
83
- }
84
- async get(name) {
85
- return this.#executor.execute("registry_files_get", { name });
86
- }
87
- async list(query = {}) {
88
- return this.#executor.execute("registry_files_list", {}, {
89
- query: {
90
- ...(query.cursor === undefined ? {} : { cursor: query.cursor }),
91
- ...(query.limit === undefined ? {} : { limit: String(query.limit) }),
92
- },
93
- });
94
- }
95
- async delete(name) {
96
- await this.#executor.execute("registry_files_delete", { name });
97
- }
98
- /** Downloads and verifies the exact current ready bytes. */
99
- async download(name) {
100
- const grant = await this.#executor.execute("registry_files_download_create", { name }, { idempotencyKey: globalThis.crypto.randomUUID(), body: {} });
101
- const response = await this.#fetch(grant.url, { redirect: "error" });
102
- if (!response.ok)
103
- throw new Error(`workspace-file download failed with HTTP ${response.status}`);
104
- const bytes = new Uint8Array(await response.arrayBuffer());
105
- if (String(bytes.byteLength) !== grant.sizeBytes || await sha256(bytes) !== grant.sha256) {
106
- throw new Error("workspace-file download failed exact length/hash verification");
107
- }
108
- return bytes;
109
- }
110
- }
111
- function planUploadParts(sizeBytes) {
112
- if (!Number.isSafeInteger(sizeBytes) || sizeBytes <= 0) {
113
- throw new TypeError("direct upload requires a non-empty safe-integer byte length");
114
- }
115
- let partSize = Math.min(sizeBytes, UPLOAD_MIN_PART_BYTES);
116
- while (Math.ceil(sizeBytes / partSize) > UPLOAD_MAX_PARTS) {
117
- partSize = Math.min(partSize * 2, UPLOAD_MAX_PART_BYTES);
118
- if (partSize === UPLOAD_MAX_PART_BYTES && Math.ceil(sizeBytes / partSize) > UPLOAD_MAX_PARTS) {
119
- throw new RangeError("direct upload exceeds the 1000-part admission limit");
120
- }
121
- }
122
- const parts = [];
123
- for (let start = 0, partNumber = 1; start < sizeBytes; start += partSize, partNumber += 1) {
124
- parts.push({ partNumber, start, end: Math.min(start + partSize, sizeBytes) });
125
- }
126
- return parts;
127
- }
128
- async function inlineInput(bytes) {
129
- return { type: "inline", encoding: "base64", data: base64(bytes), sha256: await sha256(bytes) };
130
- }
131
- function base64(bytes) {
132
- let binary = "";
133
- for (let offset = 0; offset < bytes.length; offset += 0x8000) {
134
- binary += String.fromCharCode(...bytes.subarray(offset, offset + 0x8000));
135
- }
136
- return btoa(binary);
137
- }
138
- async function sha256(bytes) {
139
- const digest = new Uint8Array(await globalThis.crypto.subtle.digest("SHA-256", toBufferSource(bytes)));
140
- return `sha256:${[...digest].map((byte) => byte.toString(16).padStart(2, "0")).join("")}`;
141
- }
142
- function toBufferSource(bytes) {
143
- return bytes.buffer instanceof ArrayBuffer
144
- ? new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength)
145
- : Uint8Array.from(bytes);
146
- }
147
- function toBody(bytes) {
148
- return toBufferSource(bytes);
149
- }
150
- //# sourceMappingURL=workspace-files.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-files.js","sourceRoot":"","sources":["../../src/files/workspace-files.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * The public error vocabulary, projected from the authored contract.
3
- *
4
- * `ERROR_METADATA` is keyed by `string` rather than by a closed union: a
5
- * deployed platform can answer with a code newer than the installed SDK, and
6
- * the transport decides what to construct from the lookup miss instead of
7
- * failing to compile.
8
- */
9
- export type ErrorClass = "auth" | "conflict" | "internal" | "not_found" | "precondition" | "quota" | "state" | "unavailable" | "validation";
10
- export declare const ERROR_METADATA: Readonly<Record<string, {
11
- readonly class: ErrorClass;
12
- }>>;
@@ -1,66 +0,0 @@
1
- // @generated by aex-contract-gen; DO NOT EDIT.
2
- // Contract digest: sha256:ec8637e9442587d0020caccfed0ab6fccef5a6d61dae1c162fe2d78e2af0dec8
3
- export const ERROR_METADATA = Object.freeze({
4
- unauthenticated: { class: "auth" },
5
- forbidden: { class: "auth" },
6
- insufficient_scope: { class: "auth" },
7
- token_invalid: { class: "auth" },
8
- token_revoked: { class: "auth" },
9
- token_expired: { class: "auth" },
10
- malformed_token: { class: "auth" },
11
- slow_down: { class: "quota" },
12
- not_found: { class: "not_found" },
13
- gone: { class: "not_found" },
14
- idempotency_conflict: { class: "conflict" },
15
- idempotency_in_flight: { class: "conflict" },
16
- api_key_secret_unavailable: { class: "conflict" },
17
- operation_idempotency_conflict: { class: "conflict" },
18
- invalid_request: { class: "validation" },
19
- invalid_scope: { class: "validation" },
20
- invalid_cursor: { class: "validation" },
21
- invalid_file_selection: { class: "validation" },
22
- invalid_range: { class: "validation" },
23
- unsupported_media_type: { class: "validation" },
24
- payload_too_large: { class: "validation" },
25
- limit_exceeded: { class: "quota" },
26
- session_not_idle: { class: "state" },
27
- session_terminated: { class: "state" },
28
- workspace_activation_required: { class: "state" },
29
- workspace_not_live: { class: "state" },
30
- session_deleting: { class: "state" },
31
- session_deleted: { class: "not_found" },
32
- deletion_in_progress: { class: "conflict" },
33
- resource_conflict: { class: "conflict" },
34
- last_owner_required: { class: "state" },
35
- operation_not_cancelable: { class: "state" },
36
- approval_not_found: { class: "not_found" },
37
- approval_already_resolved: { class: "conflict" },
38
- approval_binding_changed: { class: "conflict" },
39
- file_not_found: { class: "not_found" },
40
- content_missing: { class: "state" },
41
- download_grant_expired: { class: "not_found" },
42
- invalid_query: { class: "validation" },
43
- invalid_network_policy: { class: "validation" },
44
- unsupported_package_ecosystem: { class: "validation" },
45
- package_resolution_failed: { class: "state" },
46
- package_artifact_unavailable: { class: "state" },
47
- package_integrity_mismatch: { class: "state" },
48
- unknown_provider: { class: "validation" },
49
- unknown_model: { class: "validation" },
50
- invalid_auto_topup_policy: { class: "validation" },
51
- payment_method_required: { class: "state" },
52
- authentication_unavailable: { class: "unavailable" },
53
- account_paused: { class: "state" },
54
- account_state_unavailable: { class: "unavailable" },
55
- precondition_failed: { class: "precondition" },
56
- wrong_workspace_region: { class: "conflict" },
57
- usage_unavailable: { class: "unavailable" },
58
- usage_coverage_gap: { class: "state" },
59
- rate_limited: { class: "quota" },
60
- upstream_error: { class: "unavailable" },
61
- workspace_provision_pending: { class: "unavailable" },
62
- commit_outcome_unknown: { class: "unavailable" },
63
- not_implemented: { class: "state" },
64
- internal_error: { class: "internal" },
65
- });
66
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/generated/errors.ts"],"names":[],"mappings":"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"}