@agentuity/server 1.0.15 → 1.0.17

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 (68) hide show
  1. package/dist/api/api.d.ts +6 -0
  2. package/dist/api/api.d.ts.map +1 -1
  3. package/dist/api/api.js +27 -5
  4. package/dist/api/api.js.map +1 -1
  5. package/dist/api/queue/index.d.ts +2 -1
  6. package/dist/api/queue/index.d.ts.map +1 -1
  7. package/dist/api/queue/index.js +5 -1
  8. package/dist/api/queue/index.js.map +1 -1
  9. package/dist/api/queue/types.d.ts +61 -0
  10. package/dist/api/queue/types.d.ts.map +1 -1
  11. package/dist/api/queue/types.js +41 -0
  12. package/dist/api/queue/types.js.map +1 -1
  13. package/dist/api/queue/websocket.d.ts +144 -0
  14. package/dist/api/queue/websocket.d.ts.map +1 -0
  15. package/dist/api/queue/websocket.js +376 -0
  16. package/dist/api/queue/websocket.js.map +1 -0
  17. package/dist/api/region/create.d.ts.map +1 -1
  18. package/dist/api/region/create.js +7 -0
  19. package/dist/api/region/create.js.map +1 -1
  20. package/dist/api/sandbox/cli-list.d.ts +1 -1
  21. package/dist/api/sandbox/cli-list.d.ts.map +1 -1
  22. package/dist/api/sandbox/create.d.ts +7 -0
  23. package/dist/api/sandbox/create.d.ts.map +1 -1
  24. package/dist/api/sandbox/create.js +11 -1
  25. package/dist/api/sandbox/create.js.map +1 -1
  26. package/dist/api/sandbox/get.d.ts +8 -0
  27. package/dist/api/sandbox/get.d.ts.map +1 -1
  28. package/dist/api/sandbox/get.js +6 -1
  29. package/dist/api/sandbox/get.js.map +1 -1
  30. package/dist/api/sandbox/index.d.ts +1 -1
  31. package/dist/api/sandbox/index.d.ts.map +1 -1
  32. package/dist/api/sandbox/index.js +1 -1
  33. package/dist/api/sandbox/index.js.map +1 -1
  34. package/dist/api/sandbox/list.d.ts +9 -0
  35. package/dist/api/sandbox/list.d.ts.map +1 -1
  36. package/dist/api/sandbox/list.js +1 -1
  37. package/dist/api/sandbox/list.js.map +1 -1
  38. package/dist/api/sandbox/snapshot-build.d.ts +14 -1
  39. package/dist/api/sandbox/snapshot-build.d.ts.map +1 -1
  40. package/dist/api/sandbox/snapshot-build.js +21 -3
  41. package/dist/api/sandbox/snapshot-build.js.map +1 -1
  42. package/dist/api/sandbox/snapshot.d.ts +1 -0
  43. package/dist/api/sandbox/snapshot.d.ts.map +1 -1
  44. package/dist/api/sandbox/snapshot.js +10 -1
  45. package/dist/api/sandbox/snapshot.js.map +1 -1
  46. package/dist/index.d.ts +1 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +2 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/util/mime.d.ts +10 -0
  51. package/dist/util/mime.d.ts.map +1 -0
  52. package/dist/util/mime.js +102 -0
  53. package/dist/util/mime.js.map +1 -0
  54. package/package.json +4 -4
  55. package/src/api/api.ts +43 -7
  56. package/src/api/queue/index.ts +19 -0
  57. package/src/api/queue/types.ts +51 -0
  58. package/src/api/queue/websocket.ts +488 -0
  59. package/src/api/region/create.ts +7 -0
  60. package/src/api/sandbox/cli-list.ts +1 -1
  61. package/src/api/sandbox/create.ts +16 -1
  62. package/src/api/sandbox/get.ts +6 -1
  63. package/src/api/sandbox/index.ts +1 -1
  64. package/src/api/sandbox/list.ts +1 -1
  65. package/src/api/sandbox/snapshot-build.ts +29 -3
  66. package/src/api/sandbox/snapshot.ts +15 -1
  67. package/src/index.ts +3 -0
  68. package/src/util/mime.ts +109 -0
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { type APIClient, APIResponseSchema, APIResponseSchemaNoData } from '../api';
3
+ import { NPM_PACKAGE_NAME_PATTERN } from './snapshot-build';
3
4
  import { API_VERSION, SandboxResponseError, throwSandboxError } from './util';
4
5
 
5
6
  export const SnapshotFileInfoSchema = z
@@ -594,6 +595,17 @@ const _SnapshotBuildFinalizeParamsSchema = z
594
595
  fileCount: z.number().describe('Number of files in the snapshot'),
595
596
  files: z.array(SnapshotFileInfoSchema).describe('List of files with path and size'),
596
597
  dependencies: z.array(z.string()).optional().describe('List of apt packages to install'),
598
+ packages: z
599
+ .array(
600
+ z
601
+ .string()
602
+ .regex(
603
+ NPM_PACKAGE_NAME_PATTERN,
604
+ 'Invalid npm/bun package specifier: must not contain whitespace, semicolons, backticks, pipes, or dollar signs'
605
+ )
606
+ )
607
+ .optional()
608
+ .describe('List of npm/bun packages to install globally'),
597
609
  env: z.record(z.string(), z.string()).optional().describe('Environment variables to set'),
598
610
  metadata: z
599
611
  .record(z.string(), z.string())
@@ -671,7 +683,8 @@ export async function snapshotBuildFinalize(
671
683
  client: APIClient,
672
684
  params: SnapshotBuildFinalizeParams
673
685
  ): Promise<SnapshotInfo> {
674
- const { snapshotId, sizeBytes, fileCount, files, dependencies, env, metadata, orgId } = params;
686
+ const { snapshotId, sizeBytes, fileCount, files, dependencies, packages, env, metadata, orgId } =
687
+ params;
675
688
  const queryString = buildQueryString({ orgId });
676
689
  const url = `/sandbox/${API_VERSION}/snapshots/${snapshotId}/finalize${queryString}`;
677
690
 
@@ -681,6 +694,7 @@ export async function snapshotBuildFinalize(
681
694
  files,
682
695
  };
683
696
  if (dependencies) body.dependencies = dependencies;
697
+ if (packages) body.packages = packages;
684
698
  if (env) body.env = env;
685
699
  if (metadata) body.metadata = metadata;
686
700
 
package/src/index.ts CHANGED
@@ -13,6 +13,9 @@ export { createServerFetchAdapter } from './server';
13
13
  // schema.ts exports
14
14
  export { toJSONSchema } from './schema';
15
15
 
16
+ // util/mime.ts exports
17
+ export { getContentType, mimeTypes } from './util/mime';
18
+
16
19
  // util/resources.ts exports
17
20
  export {
18
21
  validateCPUSpec,
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Canonical MIME type map and content-type lookup.
3
+ *
4
+ * This is the single source of truth for extension → MIME type mappings
5
+ * used across the CLI (build metadata, generated entry code) and runtime
6
+ * (serveStatic).
7
+ */
8
+
9
+ export const mimeTypes: Record<string, string> = {
10
+ // Text and code
11
+ css: 'text/css',
12
+ csv: 'text/csv',
13
+ htm: 'text/html',
14
+ html: 'text/html',
15
+ ics: 'text/calendar',
16
+ js: 'application/javascript',
17
+ mjs: 'application/javascript',
18
+ cjs: 'application/javascript',
19
+ json: 'application/json',
20
+ jsonld: 'application/ld+json',
21
+ map: 'application/json',
22
+ md: 'text/markdown',
23
+ markdown: 'text/markdown',
24
+ txt: 'text/plain',
25
+ text: 'text/plain',
26
+ vcf: 'text/vcard',
27
+ xml: 'application/xml',
28
+ yaml: 'text/yaml',
29
+ yml: 'text/yaml',
30
+
31
+ // Images
32
+ apng: 'image/apng',
33
+ avif: 'image/avif',
34
+ bmp: 'image/bmp',
35
+ gif: 'image/gif',
36
+ ico: 'image/x-icon',
37
+ jpeg: 'image/jpeg',
38
+ jpg: 'image/jpeg',
39
+ jxl: 'image/jxl',
40
+ png: 'image/png',
41
+ svg: 'image/svg+xml',
42
+ tif: 'image/tiff',
43
+ tiff: 'image/tiff',
44
+ webp: 'image/webp',
45
+
46
+ // Fonts
47
+ eot: 'application/vnd.ms-fontobject',
48
+ otf: 'font/otf',
49
+ ttf: 'font/ttf',
50
+ woff: 'font/woff',
51
+ woff2: 'font/woff2',
52
+
53
+ // Audio
54
+ aac: 'audio/aac',
55
+ flac: 'audio/flac',
56
+ m4a: 'audio/mp4',
57
+ mid: 'audio/midi',
58
+ midi: 'audio/midi',
59
+ mp3: 'audio/mpeg',
60
+ ogg: 'audio/ogg',
61
+ oga: 'audio/ogg',
62
+ opus: 'audio/opus',
63
+ wav: 'audio/wav',
64
+ weba: 'audio/webm',
65
+
66
+ // Video
67
+ avi: 'video/x-msvideo',
68
+ m4v: 'video/mp4',
69
+ mkv: 'video/x-matroska',
70
+ mov: 'video/quicktime',
71
+ mp4: 'video/mp4',
72
+ ogv: 'video/ogg',
73
+ webm: 'video/webm',
74
+
75
+ // Documents and archives
76
+ doc: 'application/msword',
77
+ docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
78
+ gz: 'application/gzip',
79
+ odp: 'application/vnd.oasis.opendocument.presentation',
80
+ ods: 'application/vnd.oasis.opendocument.spreadsheet',
81
+ odt: 'application/vnd.oasis.opendocument.text',
82
+ pdf: 'application/pdf',
83
+ ppt: 'application/vnd.ms-powerpoint',
84
+ pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
85
+ rtf: 'application/rtf',
86
+ tar: 'application/x-tar',
87
+ xls: 'application/vnd.ms-excel',
88
+ xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
89
+ zip: 'application/zip',
90
+ '7z': 'application/x-7z-compressed',
91
+
92
+ // Web and application
93
+ atom: 'application/atom+xml',
94
+ glb: 'model/gltf-binary',
95
+ gltf: 'model/gltf+json',
96
+ rss: 'application/rss+xml',
97
+ wasm: 'application/wasm',
98
+ webmanifest: 'application/manifest+json',
99
+ xsl: 'application/xslt+xml',
100
+ xslt: 'application/xslt+xml',
101
+ };
102
+
103
+ export function getContentType(filename: string): string {
104
+ const ext = filename.split('.').pop()?.toLowerCase();
105
+ if (ext && ext in mimeTypes) {
106
+ return mimeTypes[ext]!;
107
+ }
108
+ return 'application/octet-stream';
109
+ }