veryfront 0.1.90 → 0.1.92

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 (66) hide show
  1. package/esm/deno.js +1 -1
  2. package/esm/src/config/environment-config.js +1 -1
  3. package/esm/src/jobs/schemas.d.ts +44 -44
  4. package/esm/src/jobs/schemas.js +3 -3
  5. package/esm/src/observability/metrics/manager.js +2 -2
  6. package/esm/src/observability/tracing/otlp-setup.js +2 -2
  7. package/esm/src/platform/adapters/fs/veryfront/adapter.d.ts +1 -0
  8. package/esm/src/platform/adapters/fs/veryfront/adapter.d.ts.map +1 -1
  9. package/esm/src/platform/adapters/fs/veryfront/adapter.js +11 -5
  10. package/esm/src/platform/adapters/veryfront-api-client/client.d.ts +3 -1
  11. package/esm/src/platform/adapters/veryfront-api-client/client.d.ts.map +1 -1
  12. package/esm/src/platform/adapters/veryfront-api-client/client.js +6 -0
  13. package/esm/src/platform/adapters/veryfront-api-client/index.d.ts +2 -2
  14. package/esm/src/platform/adapters/veryfront-api-client/index.d.ts.map +1 -1
  15. package/esm/src/platform/adapters/veryfront-api-client/index.js +1 -1
  16. package/esm/src/platform/adapters/veryfront-api-client/operations.d.ts +24 -0
  17. package/esm/src/platform/adapters/veryfront-api-client/operations.d.ts.map +1 -1
  18. package/esm/src/platform/adapters/veryfront-api-client/operations.js +65 -3
  19. package/esm/src/platform/adapters/veryfront-api-client/schemas/api.schema.d.ts +28 -0
  20. package/esm/src/platform/adapters/veryfront-api-client/schemas/api.schema.d.ts.map +1 -1
  21. package/esm/src/platform/adapters/veryfront-api-client/schemas/api.schema.js +13 -0
  22. package/esm/src/platform/adapters/veryfront-api-client/schemas/index.d.ts +1 -1
  23. package/esm/src/platform/adapters/veryfront-api-client/schemas/index.d.ts.map +1 -1
  24. package/esm/src/platform/adapters/veryfront-api-client/schemas/index.js +1 -1
  25. package/esm/src/proxy/logger.d.ts.map +1 -1
  26. package/esm/src/proxy/logger.js +2 -6
  27. package/esm/src/proxy/tracing.d.ts.map +1 -1
  28. package/esm/src/proxy/tracing.js +2 -5
  29. package/esm/src/proxy/version.d.ts +2 -0
  30. package/esm/src/proxy/version.d.ts.map +1 -0
  31. package/esm/src/proxy/version.js +18 -0
  32. package/esm/src/sandbox/index.d.ts +1 -1
  33. package/esm/src/sandbox/index.d.ts.map +1 -1
  34. package/esm/src/sandbox/index.js +1 -1
  35. package/esm/src/sandbox/sandbox.d.ts +58 -0
  36. package/esm/src/sandbox/sandbox.d.ts.map +1 -1
  37. package/esm/src/sandbox/sandbox.js +111 -0
  38. package/esm/src/server/handlers/dev/styles-css.handler.d.ts +5 -0
  39. package/esm/src/server/handlers/dev/styles-css.handler.d.ts.map +1 -1
  40. package/esm/src/server/handlers/dev/styles-css.handler.js +121 -1
  41. package/esm/src/server/handlers/monitoring/health.handler.js +2 -2
  42. package/esm/src/utils/logger/logger.js +2 -2
  43. package/esm/src/utils/version.d.ts +9 -1
  44. package/esm/src/utils/version.d.ts.map +1 -1
  45. package/esm/src/utils/version.js +29 -2
  46. package/package.json +1 -1
  47. package/src/deno.js +1 -1
  48. package/src/src/config/environment-config.ts +1 -1
  49. package/src/src/jobs/schemas.ts +3 -3
  50. package/src/src/observability/metrics/manager.ts +2 -2
  51. package/src/src/observability/tracing/otlp-setup.ts +2 -2
  52. package/src/src/platform/adapters/fs/veryfront/adapter.ts +12 -5
  53. package/src/src/platform/adapters/veryfront-api-client/client.ts +17 -0
  54. package/src/src/platform/adapters/veryfront-api-client/index.ts +6 -0
  55. package/src/src/platform/adapters/veryfront-api-client/operations.ts +110 -3
  56. package/src/src/platform/adapters/veryfront-api-client/schemas/api.schema.ts +16 -0
  57. package/src/src/platform/adapters/veryfront-api-client/schemas/index.ts +2 -0
  58. package/src/src/proxy/logger.ts +2 -8
  59. package/src/src/proxy/tracing.ts +2 -6
  60. package/src/src/proxy/version.ts +21 -0
  61. package/src/src/sandbox/index.ts +13 -1
  62. package/src/src/sandbox/sandbox.ts +183 -0
  63. package/src/src/server/handlers/dev/styles-css.handler.ts +179 -1
  64. package/src/src/server/handlers/monitoring/health.handler.ts +2 -2
  65. package/src/src/utils/logger/logger.ts +2 -2
  66. package/src/src/utils/version.ts +37 -2
@@ -2,7 +2,7 @@ import { logger as baseLogger } from "../../../utils/index.js";
2
2
  import { z } from "zod";
3
3
  import { requestWithRetry } from "./retry-handler.js";
4
4
  import { API_CLIENT_ERROR } from "./types.js";
5
- import { BranchFileDetailSchema, EnvironmentFileDetailSchema, ListBranchFilesResponseSchema, ListEnvironmentFilesResponseSchema, ListProjectsResponseSchema, ListReleaseFilesResponseSchema, ProjectSchema, ReleaseFileDetailSchema, } from "./schemas/index.js";
5
+ import { BranchFileDetailSchema, EnvironmentFileDetailSchema, ListBranchFilesResponseSchema, ListEnvironmentFilesResponseSchema, ListProjectsResponseSchema, ListReleaseFilesResponseSchema, ProjectSchema, ReleaseFileDetailSchema, StyleArtifactResolveResponseSchema, } from "./schemas/index.js";
6
6
  import { withSpan } from "../../../observability/tracing/otlp-setup.js";
7
7
  import { SpanNames } from "../../../observability/tracing/span-names.js";
8
8
  const logger = baseLogger.component("api");
@@ -31,6 +31,29 @@ function mapProjectFile(file) {
31
31
  updated_at: file.updated_at,
32
32
  };
33
33
  }
34
+ function buildStyleArtifactParams(input) {
35
+ const params = new URLSearchParams({
36
+ style_profile_hash: input.styleProfileHash,
37
+ });
38
+ if (input.branch)
39
+ params.set("branch", input.branch);
40
+ if (input.environmentName)
41
+ params.set("environment_name", input.environmentName);
42
+ if (input.releaseId)
43
+ params.set("release_id", input.releaseId);
44
+ return params;
45
+ }
46
+ function mapStyleArtifactResolution(raw) {
47
+ const response = StyleArtifactResolveResponseSchema.parse(raw);
48
+ return {
49
+ status: response.status,
50
+ artifactHash: response.artifact_hash,
51
+ assetPath: response.asset_path,
52
+ etag: response.etag,
53
+ contentType: response.content_type,
54
+ updatedAt: response.updated_at,
55
+ };
56
+ }
34
57
  async function listAllFiles(list) {
35
58
  const allFiles = [];
36
59
  let cursor;
@@ -265,7 +288,46 @@ export class VeryfrontAPIOperations {
265
288
  }
266
289
  }, { "api.domain": domain });
267
290
  }
268
- request(endpoint) {
269
- return withSpan(SpanNames.API_REQUEST, () => requestWithRetry(`${this.apiBaseUrl}${endpoint}`, this.tokenProvider(), this.retryConfig), { "api.endpoint": endpoint, "api.base_url": this.apiBaseUrl });
291
+ async resolveStyleArtifact(projectRef, input) {
292
+ const params = buildStyleArtifactParams(input);
293
+ const url = `/projects/${encodeURIComponent(projectRef)}/style-artifacts/current?${params}`;
294
+ logger.debug("resolveStyleArtifact", {
295
+ projectRef,
296
+ branch: input.branch,
297
+ environmentName: input.environmentName,
298
+ releaseId: input.releaseId,
299
+ styleProfileHash: input.styleProfileHash,
300
+ });
301
+ return mapStyleArtifactResolution(await this.request(url));
302
+ }
303
+ async upsertStyleArtifact(projectRef, input) {
304
+ const url = `/projects/${encodeURIComponent(projectRef)}/style-artifacts/current`;
305
+ logger.debug("upsertStyleArtifact", {
306
+ projectRef,
307
+ branch: input.branch,
308
+ environmentName: input.environmentName,
309
+ releaseId: input.releaseId,
310
+ styleProfileHash: input.styleProfileHash,
311
+ artifactHash: input.artifactHash,
312
+ });
313
+ return mapStyleArtifactResolution(await this.request(url, {
314
+ method: "PUT",
315
+ headers: {
316
+ "Content-Type": "application/json",
317
+ },
318
+ body: JSON.stringify({
319
+ style_profile_hash: input.styleProfileHash,
320
+ branch: input.branch,
321
+ environment_name: input.environmentName,
322
+ release_id: input.releaseId,
323
+ artifact_hash: input.artifactHash,
324
+ asset_path: input.assetPath,
325
+ content_type: input.contentType,
326
+ etag: input.etag,
327
+ }),
328
+ }));
329
+ }
330
+ request(endpoint, options = {}) {
331
+ return withSpan(SpanNames.API_REQUEST, () => requestWithRetry(`${this.apiBaseUrl}${endpoint}`, this.tokenProvider(), this.retryConfig, options), { "api.endpoint": endpoint, "api.base_url": this.apiBaseUrl });
270
332
  }
271
333
  }
@@ -3352,6 +3352,28 @@ export declare const LookupDomainResponseSchema: z.ZodObject<{
3352
3352
  } | null;
3353
3353
  project_name: string;
3354
3354
  }>;
3355
+ export declare const StyleArtifactResolveResponseSchema: z.ZodObject<{
3356
+ status: z.ZodEnum<["ready", "missing"]>;
3357
+ artifact_hash: z.ZodOptional<z.ZodString>;
3358
+ asset_path: z.ZodOptional<z.ZodString>;
3359
+ etag: z.ZodOptional<z.ZodString>;
3360
+ content_type: z.ZodOptional<z.ZodString>;
3361
+ updated_at: z.ZodOptional<z.ZodString>;
3362
+ }, "strip", z.ZodTypeAny, {
3363
+ status: "ready" | "missing";
3364
+ updated_at?: string | undefined;
3365
+ artifact_hash?: string | undefined;
3366
+ asset_path?: string | undefined;
3367
+ etag?: string | undefined;
3368
+ content_type?: string | undefined;
3369
+ }, {
3370
+ status: "ready" | "missing";
3371
+ updated_at?: string | undefined;
3372
+ artifact_hash?: string | undefined;
3373
+ asset_path?: string | undefined;
3374
+ etag?: string | undefined;
3375
+ content_type?: string | undefined;
3376
+ }>;
3355
3377
  export type Project = z.infer<typeof ProjectSchema>;
3356
3378
  export type ProjectFile = z.infer<typeof ProjectFileSchema>;
3357
3379
  export type PageInfo = z.infer<typeof PageInfoSchema>;
@@ -3366,6 +3388,7 @@ export type ReleaseFileListItem = z.infer<typeof ReleaseFileListItemSchema>;
3366
3388
  export type ListReleaseFilesResponse = z.infer<typeof ListReleaseFilesResponseSchema>;
3367
3389
  export type ReleaseFileDetail = z.infer<typeof ReleaseFileDetailSchema>;
3368
3390
  export type LookupDomainResponse = z.infer<typeof LookupDomainResponseSchema>;
3391
+ export type StyleArtifactResolveResponse = z.infer<typeof StyleArtifactResolveResponseSchema>;
3369
3392
  export declare const API_ENDPOINTS: {
3370
3393
  readonly listProjects: {
3371
3394
  readonly method: "GET";
@@ -3412,5 +3435,10 @@ export declare const API_ENDPOINTS: {
3412
3435
  readonly path: "/projects/{domain}";
3413
3436
  readonly description: "Look up project by custom domain (resolved via project_reference)";
3414
3437
  };
3438
+ readonly resolveStyleArtifact: {
3439
+ readonly method: "GET";
3440
+ readonly path: "/projects/{projectRef}/style-artifacts/current";
3441
+ readonly description: "Resolve metadata for the latest ready style artifact for a branch, environment, or release selector";
3442
+ };
3415
3443
  };
3416
3444
  //# sourceMappingURL=api.schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.schema.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/veryfront-api-client/schemas/api.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.schema.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/veryfront-api-client/schemas/api.schema.ts"],"names":[],"mappings":"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"}
@@ -122,6 +122,14 @@ export const LookupDomainResponseSchema = z.object({
122
122
  environment: EnvironmentSchema.nullable(),
123
123
  release_id: z.string().uuid().nullable(),
124
124
  });
125
+ export const StyleArtifactResolveResponseSchema = z.object({
126
+ status: z.enum(["ready", "missing"]),
127
+ artifact_hash: z.string().optional(),
128
+ asset_path: z.string().optional(),
129
+ etag: z.string().optional(),
130
+ content_type: z.string().optional(),
131
+ updated_at: z.string().optional(),
132
+ });
125
133
  export const API_ENDPOINTS = {
126
134
  listProjects: {
127
135
  method: "GET",
@@ -168,4 +176,9 @@ export const API_ENDPOINTS = {
168
176
  path: "/projects/{domain}",
169
177
  description: "Look up project by custom domain (resolved via project_reference)",
170
178
  },
179
+ resolveStyleArtifact: {
180
+ method: "GET",
181
+ path: "/projects/{projectRef}/style-artifacts/current",
182
+ description: "Resolve metadata for the latest ready style artifact for a branch, environment, or release selector",
183
+ },
171
184
  };
@@ -3,5 +3,5 @@
3
3
  *
4
4
  * @module platform/adapters/veryfront-api-client/schemas
5
5
  */
6
- export { API_ENDPOINTS, type BranchFileDetail, BranchFileDetailSchema, type BranchFileListItem, BranchFileListItemSchema, type Environment, type EnvironmentFileDetail, EnvironmentFileDetailSchema, type EnvironmentFileListItem, EnvironmentFileListItemSchema, EnvironmentSchema, type ListBranchFilesResponse, ListBranchFilesResponseSchema, type ListEnvironmentFilesResponse, ListEnvironmentFilesResponseSchema, ListProjectsResponseSchema, type ListReleaseFilesResponse, ListReleaseFilesResponseSchema, type LookupDomainResponse, LookupDomainResponseSchema, type PageInfo, PageInfoSchema, type Project, type ProjectFile, ProjectFileSchema, ProjectSchema, type ReleaseFileDetail, ReleaseFileDetailSchema, type ReleaseFileListItem, ReleaseFileListItemSchema, } from "./api.schema.js";
6
+ export { API_ENDPOINTS, type BranchFileDetail, BranchFileDetailSchema, type BranchFileListItem, BranchFileListItemSchema, type Environment, type EnvironmentFileDetail, EnvironmentFileDetailSchema, type EnvironmentFileListItem, EnvironmentFileListItemSchema, EnvironmentSchema, type ListBranchFilesResponse, ListBranchFilesResponseSchema, type ListEnvironmentFilesResponse, ListEnvironmentFilesResponseSchema, ListProjectsResponseSchema, type ListReleaseFilesResponse, ListReleaseFilesResponseSchema, type LookupDomainResponse, LookupDomainResponseSchema, type PageInfo, PageInfoSchema, type Project, type ProjectFile, ProjectFileSchema, ProjectSchema, type ReleaseFileDetail, ReleaseFileDetailSchema, type ReleaseFileListItem, ReleaseFileListItemSchema, type StyleArtifactResolveResponse, StyleArtifactResolveResponseSchema, } from "./api.schema.js";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/veryfront-api-client/schemas/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,aAAa,EACb,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,wBAAwB,EACxB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,iBAAiB,EACjB,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,KAAK,4BAA4B,EACjC,kCAAkC,EAClC,0BAA0B,EAC1B,KAAK,wBAAwB,EAC7B,8BAA8B,EAC9B,KAAK,oBAAoB,EACzB,0BAA0B,EAC1B,KAAK,QAAQ,EACb,cAAc,EACd,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,iBAAiB,EACjB,aAAa,EACb,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,KAAK,mBAAmB,EACxB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/veryfront-api-client/schemas/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,aAAa,EACb,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,wBAAwB,EACxB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,iBAAiB,EACjB,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,KAAK,4BAA4B,EACjC,kCAAkC,EAClC,0BAA0B,EAC1B,KAAK,wBAAwB,EAC7B,8BAA8B,EAC9B,KAAK,oBAAoB,EACzB,0BAA0B,EAC1B,KAAK,QAAQ,EACb,cAAc,EACd,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,iBAAiB,EACjB,aAAa,EACb,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,KAAK,mBAAmB,EACxB,yBAAyB,EACzB,KAAK,4BAA4B,EACjC,kCAAkC,GACnC,MAAM,iBAAiB,CAAC"}
@@ -3,4 +3,4 @@
3
3
  *
4
4
  * @module platform/adapters/veryfront-api-client/schemas
5
5
  */
6
- export { API_ENDPOINTS, BranchFileDetailSchema, BranchFileListItemSchema, EnvironmentFileDetailSchema, EnvironmentFileListItemSchema, EnvironmentSchema, ListBranchFilesResponseSchema, ListEnvironmentFilesResponseSchema, ListProjectsResponseSchema, ListReleaseFilesResponseSchema, LookupDomainResponseSchema, PageInfoSchema, ProjectFileSchema, ProjectSchema, ReleaseFileDetailSchema, ReleaseFileListItemSchema, } from "./api.schema.js";
6
+ export { API_ENDPOINTS, BranchFileDetailSchema, BranchFileListItemSchema, EnvironmentFileDetailSchema, EnvironmentFileListItemSchema, EnvironmentSchema, ListBranchFilesResponseSchema, ListEnvironmentFilesResponseSchema, ListProjectsResponseSchema, ListReleaseFilesResponseSchema, LookupDomainResponseSchema, PageInfoSchema, ProjectFileSchema, ProjectSchema, ReleaseFileDetailSchema, ReleaseFileListItemSchema, StyleArtifactResolveResponseSchema, } from "./api.schema.js";
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/logger.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAC1C,OAAO,EAAE,mBAAmB,EAC5B,EAAE,EAAE,MAAM,CAAC,GACV,CAAC,CAEH;AAaD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AA+N3D,cAAM,WAAW;IACf,OAAO,CAAC,MAAM,CAAkB;IAEhC,OAAO,CAAC,GAAG;IA0CX,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI/D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAC7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAmB/E;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB;CAG1D;AAED,cAAM,gBAAgB;IAElB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;gBADZ,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAG/C,OAAO,CAAC,KAAK;IAIb,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI/D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAC7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAwB/E,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB;CAG1D;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/logger.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAC1C,OAAO,EAAE,mBAAmB,EAC5B,EAAE,EAAE,MAAM,CAAC,GACV,CAAC,CAEH;AASD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AA+N3D,cAAM,WAAW;IACf,OAAO,CAAC,MAAM,CAAkB;IAEhC,OAAO,CAAC,GAAG;IA0CX,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI/D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAC7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAmB/E;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB;CAG1D;AAED,cAAM,gBAAgB;IAElB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;gBADZ,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAG/C,OAAO,CAAC,KAAK;IAIb,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI/D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAC7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAwB/E,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB;CAG1D;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
@@ -1,9 +1,8 @@
1
- // Import version from root deno.json (the source of truth)
2
1
  import * as dntShim from "../../_dnt.shims.js";
3
- import denoConfig from "../../deno.js";
4
2
  import { getEnv } from "./env.js";
5
3
  import { getTraceContext } from "./tracing.js";
6
4
  import { AsyncLocalStorage } from "node:async_hooks";
5
+ import { PROXY_RUNTIME_VERSION } from "./version.js";
7
6
  const requestContextStore = new AsyncLocalStorage();
8
7
  /**
9
8
  * Run a function with proxy request context.
@@ -18,9 +17,6 @@ export function runWithProxyRequestContext(context, fn) {
18
17
  function getProxyRequestContext() {
19
18
  return requestContextStore.getStore();
20
19
  }
21
- // Get version from environment variable or root deno.json
22
- const VERYFRONT_VERSION = getEnv("VERYFRONT_VERSION") ??
23
- (typeof denoConfig.version === "string" ? denoConfig.version : "0.0.0");
24
20
  const LOG_LEVEL_ORDER = {
25
21
  debug: 0,
26
22
  info: 1,
@@ -208,7 +204,7 @@ class ProxyLogger {
208
204
  timestamp: new Date().toISOString(),
209
205
  level,
210
206
  service: "proxy",
211
- veryfrontVersion: VERYFRONT_VERSION,
207
+ veryfrontVersion: PROXY_RUNTIME_VERSION,
212
208
  message,
213
209
  ...(traceCtx.traceId && { traceId: traceCtx.traceId, spanId: traceCtx.spanId }),
214
210
  // Include request context fields at top level (like renderer logs)
@@ -1 +1 @@
1
- {"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/tracing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAG/C,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAU,MAAM,oBAAoB,CAAC;AAiEhE,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAyD5D;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CASlD;AAOD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,GAAG,SAAS,CAgB5E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAgB5D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,GACtB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAMzC;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAiBvF;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAGrF;AAWD,wBAAgB,eAAe,IAAI;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAIvE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,OAAO,CAAC,CAAC,CAAC,CA0BZ"}
1
+ {"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/tracing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAG/C,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAU,MAAM,oBAAoB,CAAC;AA6DhE,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAyD5D;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CASlD;AAOD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,GAAG,SAAS,CAgB5E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAgB5D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,GACtB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAMzC;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAiBvF;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAGrF;AAWD,wBAAgB,eAAe,IAAI;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAIvE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,OAAO,CAAC,CAAC,CAAC,CA0BZ"}
@@ -1,9 +1,6 @@
1
- import denoConfig from "../../deno.js";
2
1
  import { getEnv } from "./env.js";
3
2
  import { proxyLogger } from "./logger.js";
4
- // Get version from environment variable or root deno.json
5
- const VERYFRONT_VERSION = getEnv("VERYFRONT_VERSION") ??
6
- (typeof denoConfig.version === "string" ? denoConfig.version : "0.0.0");
3
+ import { PROXY_RUNTIME_VERSION } from "./version.js";
7
4
  let initialized = false;
8
5
  let tracerProvider = null;
9
6
  let tracer = null;
@@ -72,7 +69,7 @@ export async function initializeOTLPWithApis() {
72
69
  const resourceAttrs = parseResourceAttributes(getEnv("OTEL_RESOURCE_ATTRIBUTES"));
73
70
  const resource = new Resource({
74
71
  [ATTR_SERVICE_NAME]: config.serviceName,
75
- [ATTR_SERVICE_VERSION]: VERYFRONT_VERSION,
72
+ [ATTR_SERVICE_VERSION]: PROXY_RUNTIME_VERSION,
76
73
  ...resourceAttrs,
77
74
  });
78
75
  const exporter = new OTLPTraceExporter({
@@ -0,0 +1,2 @@
1
+ export declare const PROXY_RUNTIME_VERSION: string;
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/version.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,qBAAqB,QAIzB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import denoConfig from "../../deno.js";
2
+ import { getEnv } from "./env.js";
3
+ function normalizeVersion(version) {
4
+ if (!version)
5
+ return undefined;
6
+ return version.replace(/^v(?=\d)/, "");
7
+ }
8
+ function getVersionEnv(name) {
9
+ try {
10
+ return getEnv(name);
11
+ }
12
+ catch {
13
+ return undefined;
14
+ }
15
+ }
16
+ export const PROXY_RUNTIME_VERSION = normalizeVersion(getVersionEnv("VERYFRONT_VERSION") ?? getVersionEnv("RELEASE_VERSION")) ??
17
+ normalizeVersion(typeof denoConfig.version === "string" ? denoConfig.version : undefined) ??
18
+ "0.0.0";
@@ -17,5 +17,5 @@
17
17
  * @module
18
18
  */
19
19
  import "../../_dnt.polyfills.js";
20
- export { type ExecResult, type ExecStreamEvent, Sandbox, type SandboxOptions } from "./sandbox.js";
20
+ export { type CommandJob, type CommandJobHeartbeatStatus, type CommandJobOutput, type CommandJobStatus, type ExecResult, type ExecStreamEvent, Sandbox, type SandboxListOptions, type SandboxListResult, type SandboxOptions, type SandboxSession, } from "./sandbox.js";
21
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/sandbox/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/sandbox/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,OAAO,EACP,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC"}
@@ -17,4 +17,4 @@
17
17
  * @module
18
18
  */
19
19
  import "../../_dnt.polyfills.js";
20
- export { Sandbox } from "./sandbox.js";
20
+ export { Sandbox, } from "./sandbox.js";
@@ -17,6 +17,53 @@ export interface ExecStreamEvent {
17
17
  data?: string;
18
18
  exitCode?: number;
19
19
  }
20
+ /** Status of an async command job. */
21
+ export type CommandJobStatus = "running" | "completed" | "failed" | "canceled";
22
+ /** Heartbeat health status for a command job. */
23
+ export type CommandJobHeartbeatStatus = "disabled" | "healthy" | "degraded";
24
+ /** An async command job running in a sandbox. */
25
+ export interface CommandJob {
26
+ id: string;
27
+ status: CommandJobStatus;
28
+ exitCode: number | null;
29
+ signal: string | null;
30
+ startedAt: string;
31
+ finishedAt: string | null;
32
+ heartbeatStatus: CommandJobHeartbeatStatus;
33
+ lastHeartbeatAt: string | null;
34
+ lastHeartbeatError: string | null;
35
+ heartbeatFailureCount: number;
36
+ }
37
+ /** A command job with its captured output. */
38
+ export interface CommandJobOutput extends CommandJob {
39
+ stdout: string;
40
+ stderr: string;
41
+ stdoutTruncated: boolean;
42
+ stderrTruncated: boolean;
43
+ }
44
+ /** A sandbox session summary returned by list. */
45
+ export interface SandboxSession {
46
+ id: string;
47
+ shortId: string;
48
+ endpoint: string;
49
+ status: string;
50
+ createdAt: string;
51
+ }
52
+ /** Options for listing sandbox sessions. */
53
+ export interface SandboxListOptions extends SandboxOptions {
54
+ cursor?: string;
55
+ limit?: number;
56
+ }
57
+ /** Paginated result of sandbox sessions. */
58
+ export interface SandboxListResult {
59
+ data: SandboxSession[];
60
+ pageInfo: {
61
+ self: string | null;
62
+ first: null;
63
+ next: string | null;
64
+ prev: string | null;
65
+ };
66
+ }
20
67
  /** Client for isolated ephemeral compute environments with command execution and file I/O. */
21
68
  export declare class Sandbox {
22
69
  private endpoint;
@@ -30,6 +77,8 @@ export declare class Sandbox {
30
77
  static create(options?: SandboxOptions): Promise<Sandbox>;
31
78
  /** Reconnect to an existing sandbox session. */
32
79
  static get(id: string, options?: SandboxOptions): Promise<Sandbox>;
80
+ /** List sandbox sessions with optional pagination. */
81
+ static list(options?: SandboxListOptions): Promise<SandboxListResult>;
33
82
  private static waitForReady;
34
83
  /** Execute a bash command in the sandbox and return buffered result. */
35
84
  executeCommand(command: string): Promise<ExecResult>;
@@ -42,6 +91,15 @@ export declare class Sandbox {
42
91
  path: string;
43
92
  content: string;
44
93
  }>): Promise<void>;
94
+ /** Start an async command job in the sandbox. */
95
+ startCommandJob(command: string): Promise<CommandJob>;
96
+ /** Get the status of an async command job. */
97
+ getCommandJob(jobId: string): Promise<CommandJob>;
98
+ /** Get the output of an async command job. */
99
+ getCommandJobOutput(jobId: string): Promise<CommandJobOutput>;
100
+ /** Cancel an async command job. */
101
+ cancelCommandJob(jobId: string): Promise<CommandJob>;
102
+ private static mapCommandJob;
45
103
  /** Send a heartbeat to prevent idle timeout. */
46
104
  heartbeat(): Promise<void>;
47
105
  /** Close the sandbox session and mark for deletion. */
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../src/src/sandbox/sandbox.ts"],"names":[],"mappings":"AAqBA,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wDAAwD;AACxD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8FAA8F;AAC9F,qBAAa,OAAO;IAEhB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;IAJhB,OAAO;IAOP,OAAO,CAAC,MAAM,CAAC,aAAa;IAM5B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAa/B,4EAA4E;WAC/D,MAAM,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BnE,gDAAgD;WACnC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;mBAkBvD,YAAY;IA6BjC,wEAAwE;IAClE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAsB1D,6DAA6D;IACtD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAAC,eAAe,CAAC;IAyCtE,8CAA8C;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAe7C,4CAA4C;IACtC,UAAU,CACd,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC;IAiBhB,gDAAgD;IAC1C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAOhC,uDAAuD;IACjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,0BAA0B;IAC1B,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,oCAAoC;IACpC,IAAI,GAAG,IAAI,MAAM,CAEhB;CACF"}
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../src/src/sandbox/sandbox.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,42 @@ export class Sandbox {
74
74
  const { endpoint } = await res.json();
75
75
  return new Sandbox(endpoint, id, authToken, apiUrl);
76
76
  }
77
+ /** List sandbox sessions with optional pagination. */
78
+ static async list(options = {}) {
79
+ const apiUrl = Sandbox.resolveApiUrl(options);
80
+ const authToken = Sandbox.resolveAuthToken(options);
81
+ const params = new URLSearchParams();
82
+ if (options.cursor)
83
+ params.set("cursor", options.cursor);
84
+ if (options.limit !== undefined)
85
+ params.set("limit", String(options.limit));
86
+ const query = params.toString();
87
+ const url = `${apiUrl}/sandbox-sessions${query ? `?${query}` : ""}`;
88
+ const res = await dntShim.fetch(url, {
89
+ headers: { Authorization: `Bearer ${authToken}` },
90
+ });
91
+ if (!res.ok) {
92
+ throw REQUEST_ERROR.create({
93
+ detail: `Failed to list sandboxes: ${res.status} ${await res.text()}`,
94
+ });
95
+ }
96
+ const json = await res.json();
97
+ return {
98
+ data: json.data.map((s) => ({
99
+ id: s.id,
100
+ shortId: s.short_id,
101
+ endpoint: s.endpoint,
102
+ status: s.status,
103
+ createdAt: s.created_at,
104
+ })),
105
+ pageInfo: {
106
+ self: json.page_info?.self ?? null,
107
+ first: null,
108
+ next: json.page_info?.next ?? null,
109
+ prev: json.page_info?.prev ?? null,
110
+ },
111
+ };
112
+ }
77
113
  static async waitForReady(apiUrl, id, authToken, maxWaitMs = 60_000, pollIntervalMs = 2_000) {
78
114
  const start = Date.now();
79
115
  while (Date.now() - start < maxWaitMs) {
@@ -177,6 +213,81 @@ export class Sandbox {
177
213
  });
178
214
  }
179
215
  }
216
+ /** Start an async command job in the sandbox. */
217
+ async startCommandJob(command) {
218
+ const res = await dntShim.fetch(`${this.endpoint}/exec/jobs`, {
219
+ method: "POST",
220
+ headers: {
221
+ Authorization: `Bearer ${this.authToken}`,
222
+ "Content-Type": "application/json",
223
+ },
224
+ body: JSON.stringify({ command }),
225
+ });
226
+ if (!res.ok) {
227
+ throw REQUEST_ERROR.create({
228
+ detail: `Start command job failed: ${res.status} ${await res.text()}`,
229
+ });
230
+ }
231
+ return Sandbox.mapCommandJob(await res.json());
232
+ }
233
+ /** Get the status of an async command job. */
234
+ async getCommandJob(jobId) {
235
+ const res = await dntShim.fetch(`${this.endpoint}/exec/jobs/${jobId}`, {
236
+ headers: { Authorization: `Bearer ${this.authToken}` },
237
+ });
238
+ if (!res.ok) {
239
+ throw REQUEST_ERROR.create({
240
+ detail: `Get command job failed: ${res.status} ${await res.text()}`,
241
+ });
242
+ }
243
+ return Sandbox.mapCommandJob(await res.json());
244
+ }
245
+ /** Get the output of an async command job. */
246
+ async getCommandJobOutput(jobId) {
247
+ const res = await dntShim.fetch(`${this.endpoint}/exec/jobs/${jobId}/output`, {
248
+ headers: { Authorization: `Bearer ${this.authToken}` },
249
+ });
250
+ if (!res.ok) {
251
+ throw REQUEST_ERROR.create({
252
+ detail: `Get command job output failed: ${res.status} ${await res.text()}`,
253
+ });
254
+ }
255
+ const json = await res.json();
256
+ return {
257
+ ...Sandbox.mapCommandJob(json),
258
+ stdout: json.stdout,
259
+ stderr: json.stderr,
260
+ stdoutTruncated: json.stdout_truncated,
261
+ stderrTruncated: json.stderr_truncated,
262
+ };
263
+ }
264
+ /** Cancel an async command job. */
265
+ async cancelCommandJob(jobId) {
266
+ const res = await dntShim.fetch(`${this.endpoint}/exec/jobs/${jobId}/cancel`, {
267
+ method: "POST",
268
+ headers: { Authorization: `Bearer ${this.authToken}` },
269
+ });
270
+ if (!res.ok) {
271
+ throw REQUEST_ERROR.create({
272
+ detail: `Cancel command job failed: ${res.status} ${await res.text()}`,
273
+ });
274
+ }
275
+ return Sandbox.mapCommandJob(await res.json());
276
+ }
277
+ static mapCommandJob(json) {
278
+ return {
279
+ id: json.id,
280
+ status: json.status,
281
+ exitCode: json.exit_code,
282
+ signal: json.signal,
283
+ startedAt: json.started_at,
284
+ finishedAt: json.finished_at,
285
+ heartbeatStatus: json.heartbeat_status,
286
+ lastHeartbeatAt: json.last_heartbeat_at,
287
+ lastHeartbeatError: json.last_heartbeat_error,
288
+ heartbeatFailureCount: json.heartbeat_failure_count,
289
+ };
290
+ }
180
291
  /** Send a heartbeat to prevent idle timeout. */
181
292
  async heartbeat() {
182
293
  await dntShim.fetch(`${this.apiUrl}/sandbox-sessions/${this.sessionId}/heartbeat`, {
@@ -13,6 +13,11 @@ export declare class StylesCSSHandler extends BaseHandler {
13
13
  private loadStylesheet;
14
14
  private generateStylesheet;
15
15
  private getContentContext;
16
+ private getVeryfrontApiClient;
16
17
  private createPreparedCSSContext;
18
+ private resolveStyleArtifactSelector;
19
+ private tryResolveRemotePreparedCSS;
20
+ private getPreparedCSSByHash;
21
+ private registerPreparedCSSArtifact;
17
22
  }
18
23
  //# sourceMappingURL=styles-css.handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles-css.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/dev/styles-css.handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAoBnG,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,QAAQ,EAAE,eAAe,CAKvB;IAEI,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;YAqIjE,cAAc;IAkB5B,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,wBAAwB;CAyBjC"}
1
+ {"version":3,"file":"styles-css.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/dev/styles-css.handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AA+BnG,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,QAAQ,EAAE,eAAe,CAKvB;IAEI,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;YAiKjE,cAAc;IAkB5B,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,wBAAwB;IA0BhC,OAAO,CAAC,4BAA4B;YA2CtB,2BAA2B;YAiD3B,oBAAoB;YASpB,2BAA2B;CA0B1C"}