@agentuity/core 1.0.41 → 1.0.42

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 (254) hide show
  1. package/dist/services/api-reference.d.ts +68 -0
  2. package/dist/services/api-reference.d.ts.map +1 -0
  3. package/dist/services/api-reference.js +91 -0
  4. package/dist/services/api-reference.js.map +1 -0
  5. package/dist/services/apikey/api-reference.d.ts +4 -0
  6. package/dist/services/apikey/api-reference.d.ts.map +1 -0
  7. package/dist/services/apikey/api-reference.js +96 -0
  8. package/dist/services/apikey/api-reference.js.map +1 -0
  9. package/dist/services/db/api-reference.d.ts +4 -0
  10. package/dist/services/db/api-reference.d.ts.map +1 -0
  11. package/dist/services/db/api-reference.js +149 -0
  12. package/dist/services/db/api-reference.js.map +1 -0
  13. package/dist/services/db/types.d.ts +7 -0
  14. package/dist/services/db/types.d.ts.map +1 -0
  15. package/dist/services/db/types.js +9 -0
  16. package/dist/services/db/types.js.map +1 -0
  17. package/dist/services/email/api-reference.d.ts +4 -0
  18. package/dist/services/email/api-reference.d.ts.map +1 -0
  19. package/dist/services/email/api-reference.js +342 -0
  20. package/dist/services/email/api-reference.js.map +1 -0
  21. package/dist/services/email/service.d.ts.map +1 -1
  22. package/dist/services/email/service.js +1 -2
  23. package/dist/services/email/service.js.map +1 -1
  24. package/dist/services/email/types.d.ts +13 -0
  25. package/dist/services/email/types.d.ts.map +1 -0
  26. package/dist/services/email/types.js +11 -0
  27. package/dist/services/email/types.js.map +1 -0
  28. package/dist/services/eval/api-reference.d.ts +4 -0
  29. package/dist/services/eval/api-reference.d.ts.map +1 -0
  30. package/dist/services/eval/api-reference.js +121 -0
  31. package/dist/services/eval/api-reference.js.map +1 -0
  32. package/dist/services/index.d.ts +2 -0
  33. package/dist/services/index.d.ts.map +1 -1
  34. package/dist/services/index.js +2 -0
  35. package/dist/services/index.js.map +1 -1
  36. package/dist/services/keyvalue/api-reference.d.ts +4 -0
  37. package/dist/services/keyvalue/api-reference.d.ts.map +1 -0
  38. package/dist/services/keyvalue/api-reference.js +270 -0
  39. package/dist/services/keyvalue/api-reference.js.map +1 -0
  40. package/dist/services/keyvalue/types.d.ts +18 -0
  41. package/dist/services/keyvalue/types.d.ts.map +1 -0
  42. package/dist/services/keyvalue/types.js +19 -0
  43. package/dist/services/keyvalue/types.js.map +1 -0
  44. package/dist/services/machine/api-reference.d.ts +4 -0
  45. package/dist/services/machine/api-reference.d.ts.map +1 -0
  46. package/dist/services/machine/api-reference.js +152 -0
  47. package/dist/services/machine/api-reference.js.map +1 -0
  48. package/dist/services/machine/types.d.ts +18 -0
  49. package/dist/services/machine/types.d.ts.map +1 -0
  50. package/dist/services/machine/types.js +15 -0
  51. package/dist/services/machine/types.js.map +1 -0
  52. package/dist/services/monitoring/index.d.ts +3 -0
  53. package/dist/services/monitoring/index.d.ts.map +1 -0
  54. package/dist/services/monitoring/index.js +3 -0
  55. package/dist/services/monitoring/index.js.map +1 -0
  56. package/dist/services/monitoring/service.d.ts +55 -0
  57. package/dist/services/monitoring/service.d.ts.map +1 -0
  58. package/dist/services/monitoring/service.js +503 -0
  59. package/dist/services/monitoring/service.js.map +1 -0
  60. package/dist/services/monitoring/types.d.ts +173 -0
  61. package/dist/services/monitoring/types.d.ts.map +1 -0
  62. package/dist/services/monitoring/types.js +2 -0
  63. package/dist/services/monitoring/types.js.map +1 -0
  64. package/dist/services/oauth/activity.d.ts +5 -0
  65. package/dist/services/oauth/activity.d.ts.map +1 -0
  66. package/dist/services/oauth/activity.js +17 -0
  67. package/dist/services/oauth/activity.js.map +1 -0
  68. package/dist/services/oauth/api-reference.d.ts +4 -0
  69. package/dist/services/oauth/api-reference.d.ts.map +1 -0
  70. package/dist/services/oauth/api-reference.js +344 -0
  71. package/dist/services/oauth/api-reference.js.map +1 -0
  72. package/dist/services/oauth/clients.d.ts +18 -0
  73. package/dist/services/oauth/clients.d.ts.map +1 -0
  74. package/dist/services/oauth/clients.js +66 -0
  75. package/dist/services/oauth/clients.js.map +1 -0
  76. package/dist/services/oauth/consent.d.ts +7 -0
  77. package/dist/services/oauth/consent.d.ts.map +1 -0
  78. package/dist/services/oauth/consent.js +17 -0
  79. package/dist/services/oauth/consent.js.map +1 -0
  80. package/dist/services/oauth/index.d.ts +9 -0
  81. package/dist/services/oauth/index.d.ts.map +1 -0
  82. package/dist/services/oauth/index.js +9 -0
  83. package/dist/services/oauth/index.js.map +1 -0
  84. package/dist/services/oauth/keys.d.ts +5 -0
  85. package/dist/services/oauth/keys.d.ts.map +1 -0
  86. package/dist/services/oauth/keys.js +10 -0
  87. package/dist/services/oauth/keys.js.map +1 -0
  88. package/dist/services/oauth/members.d.ts +4 -0
  89. package/dist/services/oauth/members.d.ts.map +1 -0
  90. package/dist/services/oauth/members.js +10 -0
  91. package/dist/services/oauth/members.js.map +1 -0
  92. package/dist/services/oauth/scopes.d.ts +4 -0
  93. package/dist/services/oauth/scopes.d.ts.map +1 -0
  94. package/dist/services/oauth/scopes.js +10 -0
  95. package/dist/services/oauth/scopes.js.map +1 -0
  96. package/dist/services/oauth/types.d.ts +587 -0
  97. package/dist/services/oauth/types.d.ts.map +1 -0
  98. package/dist/services/oauth/types.js +160 -0
  99. package/dist/services/oauth/types.js.map +1 -0
  100. package/dist/services/oauth/util.d.ts +23 -0
  101. package/dist/services/oauth/util.d.ts.map +1 -0
  102. package/dist/services/oauth/util.js +3 -0
  103. package/dist/services/oauth/util.js.map +1 -0
  104. package/dist/services/org/api-reference.d.ts +4 -0
  105. package/dist/services/org/api-reference.d.ts.map +1 -0
  106. package/dist/services/org/api-reference.js +145 -0
  107. package/dist/services/org/api-reference.js.map +1 -0
  108. package/dist/services/org/types.d.ts +8 -0
  109. package/dist/services/org/types.d.ts.map +1 -0
  110. package/dist/services/org/types.js +7 -0
  111. package/dist/services/org/types.js.map +1 -0
  112. package/dist/services/project/api-reference.d.ts +4 -0
  113. package/dist/services/project/api-reference.d.ts.map +1 -0
  114. package/dist/services/project/api-reference.js +618 -0
  115. package/dist/services/project/api-reference.js.map +1 -0
  116. package/dist/services/project/types.d.ts +29 -0
  117. package/dist/services/project/types.d.ts.map +1 -0
  118. package/dist/services/project/types.js +40 -0
  119. package/dist/services/project/types.js.map +1 -0
  120. package/dist/services/queue/api-reference.d.ts +4 -0
  121. package/dist/services/queue/api-reference.d.ts.map +1 -0
  122. package/dist/services/queue/api-reference.js +713 -0
  123. package/dist/services/queue/api-reference.js.map +1 -0
  124. package/dist/services/queue/types.d.ts +281 -0
  125. package/dist/services/queue/types.d.ts.map +1 -1
  126. package/dist/services/queue/types.js +81 -0
  127. package/dist/services/queue/types.js.map +1 -1
  128. package/dist/services/region/api-reference.d.ts +4 -0
  129. package/dist/services/region/api-reference.d.ts.map +1 -0
  130. package/dist/services/region/api-reference.js +98 -0
  131. package/dist/services/region/api-reference.js.map +1 -0
  132. package/dist/services/region/types.d.ts +18 -0
  133. package/dist/services/region/types.d.ts.map +1 -0
  134. package/dist/services/region/types.js +18 -0
  135. package/dist/services/region/types.js.map +1 -0
  136. package/dist/services/sandbox/api-reference.d.ts +4 -0
  137. package/dist/services/sandbox/api-reference.d.ts.map +1 -0
  138. package/dist/services/sandbox/api-reference.js +1006 -0
  139. package/dist/services/sandbox/api-reference.js.map +1 -0
  140. package/dist/services/sandbox/run.d.ts +1 -1
  141. package/dist/services/sandbox/types.d.ts +64 -1
  142. package/dist/services/sandbox/types.d.ts.map +1 -1
  143. package/dist/services/sandbox/types.js +87 -0
  144. package/dist/services/sandbox/types.js.map +1 -1
  145. package/dist/services/schedule/api-reference.d.ts +4 -0
  146. package/dist/services/schedule/api-reference.d.ts.map +1 -0
  147. package/dist/services/schedule/api-reference.js +216 -0
  148. package/dist/services/schedule/api-reference.js.map +1 -0
  149. package/dist/services/schedule/types.d.ts +36 -0
  150. package/dist/services/schedule/types.d.ts.map +1 -0
  151. package/dist/services/schedule/types.js +20 -0
  152. package/dist/services/schedule/types.js.map +1 -0
  153. package/dist/services/session/api-reference.d.ts +4 -0
  154. package/dist/services/session/api-reference.d.ts.map +1 -0
  155. package/dist/services/session/api-reference.js +154 -0
  156. package/dist/services/session/api-reference.js.map +1 -0
  157. package/dist/services/storage/api-reference.d.ts +4 -0
  158. package/dist/services/storage/api-reference.d.ts.map +1 -0
  159. package/dist/services/storage/api-reference.js +196 -0
  160. package/dist/services/storage/api-reference.js.map +1 -0
  161. package/dist/services/storage/types.d.ts.map +1 -1
  162. package/dist/services/storage/types.js +9 -3
  163. package/dist/services/storage/types.js.map +1 -1
  164. package/dist/services/stream/api-reference.d.ts +4 -0
  165. package/dist/services/stream/api-reference.d.ts.map +1 -0
  166. package/dist/services/stream/api-reference.js +153 -0
  167. package/dist/services/stream/api-reference.js.map +1 -0
  168. package/dist/services/stream/types.d.ts +49 -0
  169. package/dist/services/stream/types.d.ts.map +1 -0
  170. package/dist/services/stream/types.js +49 -0
  171. package/dist/services/stream/types.js.map +1 -0
  172. package/dist/services/task/api-reference.d.ts +4 -0
  173. package/dist/services/task/api-reference.d.ts.map +1 -0
  174. package/dist/services/task/api-reference.js +802 -0
  175. package/dist/services/task/api-reference.js.map +1 -0
  176. package/dist/services/task/service.d.ts.map +1 -1
  177. package/dist/services/task/service.js +35 -39
  178. package/dist/services/task/service.js.map +1 -1
  179. package/dist/services/task/types.d.ts +48 -0
  180. package/dist/services/task/types.d.ts.map +1 -0
  181. package/dist/services/task/types.js +55 -0
  182. package/dist/services/task/types.js.map +1 -0
  183. package/dist/services/thread/api-reference.d.ts +4 -0
  184. package/dist/services/thread/api-reference.d.ts.map +1 -0
  185. package/dist/services/thread/api-reference.js +89 -0
  186. package/dist/services/thread/api-reference.js.map +1 -0
  187. package/dist/services/user/api-reference.d.ts +4 -0
  188. package/dist/services/user/api-reference.d.ts.map +1 -0
  189. package/dist/services/user/api-reference.js +27 -0
  190. package/dist/services/user/api-reference.js.map +1 -0
  191. package/dist/services/vector/api-reference.d.ts +4 -0
  192. package/dist/services/vector/api-reference.d.ts.map +1 -0
  193. package/dist/services/vector/api-reference.js +213 -0
  194. package/dist/services/vector/api-reference.js.map +1 -0
  195. package/dist/services/vector/types.d.ts +63 -0
  196. package/dist/services/vector/types.d.ts.map +1 -0
  197. package/dist/services/vector/types.js +90 -0
  198. package/dist/services/vector/types.js.map +1 -0
  199. package/dist/services/webhook/api-reference.d.ts +4 -0
  200. package/dist/services/webhook/api-reference.d.ts.map +1 -0
  201. package/dist/services/webhook/api-reference.js +388 -0
  202. package/dist/services/webhook/api-reference.js.map +1 -0
  203. package/package.json +2 -2
  204. package/src/services/api-reference.ts +198 -0
  205. package/src/services/apikey/api-reference.ts +99 -0
  206. package/src/services/db/api-reference.ts +152 -0
  207. package/src/services/db/types.ts +12 -0
  208. package/src/services/email/api-reference.ts +349 -0
  209. package/src/services/email/service.ts +1 -6
  210. package/src/services/email/types.ts +15 -0
  211. package/src/services/eval/api-reference.ts +124 -0
  212. package/src/services/index.ts +2 -0
  213. package/src/services/keyvalue/api-reference.ts +280 -0
  214. package/src/services/keyvalue/types.ts +25 -0
  215. package/src/services/machine/api-reference.ts +158 -0
  216. package/src/services/machine/types.ts +21 -0
  217. package/src/services/monitoring/index.ts +2 -0
  218. package/src/services/monitoring/service.ts +639 -0
  219. package/src/services/monitoring/types.ts +209 -0
  220. package/src/services/oauth/activity.ts +41 -0
  221. package/src/services/oauth/api-reference.ts +380 -0
  222. package/src/services/oauth/clients.ts +161 -0
  223. package/src/services/oauth/consent.ts +33 -0
  224. package/src/services/oauth/index.ts +8 -0
  225. package/src/services/oauth/keys.ts +13 -0
  226. package/src/services/oauth/members.ts +13 -0
  227. package/src/services/oauth/scopes.ts +13 -0
  228. package/src/services/oauth/types.ts +240 -0
  229. package/src/services/oauth/util.ts +3 -0
  230. package/src/services/org/api-reference.ts +148 -0
  231. package/src/services/org/types.ts +9 -0
  232. package/src/services/project/api-reference.ts +636 -0
  233. package/src/services/project/types.ts +47 -0
  234. package/src/services/queue/api-reference.ts +734 -0
  235. package/src/services/queue/types.ts +112 -0
  236. package/src/services/region/api-reference.ts +105 -0
  237. package/src/services/region/types.ts +27 -0
  238. package/src/services/sandbox/api-reference.ts +1042 -0
  239. package/src/services/sandbox/types.ts +100 -0
  240. package/src/services/schedule/api-reference.ts +228 -0
  241. package/src/services/schedule/types.ts +26 -0
  242. package/src/services/session/api-reference.ts +160 -0
  243. package/src/services/storage/api-reference.ts +207 -0
  244. package/src/services/storage/types.ts +9 -3
  245. package/src/services/stream/api-reference.ts +163 -0
  246. package/src/services/stream/types.ts +64 -0
  247. package/src/services/task/api-reference.ts +830 -0
  248. package/src/services/task/service.ts +35 -93
  249. package/src/services/task/types.ts +73 -0
  250. package/src/services/thread/api-reference.ts +91 -0
  251. package/src/services/user/api-reference.ts +31 -0
  252. package/src/services/vector/api-reference.ts +231 -0
  253. package/src/services/vector/types.ts +112 -0
  254. package/src/services/webhook/api-reference.ts +403 -0
@@ -0,0 +1,207 @@
1
+ import {
2
+ BucketConfigSchema,
3
+ BucketConfigUpdateSchema,
4
+ StorageAnalyticsResponseSchema,
5
+ StorageDeleteResponseSchema,
6
+ StorageListResponseSchema,
7
+ StoragePresignResponseSchema,
8
+ StorageStatsResponseSchema,
9
+ } from './types.ts';
10
+ import type { Service } from '../api-reference.ts';
11
+
12
+ const service: Service = {
13
+ name: 'Object Storage',
14
+ slug: 'object-storage',
15
+ description: 'Store and manage files and binary objects in buckets',
16
+ endpoints: [
17
+ {
18
+ id: 'list-objects',
19
+ title: 'List Objects',
20
+ method: 'GET',
21
+ path: '/storage/objects/{bucket}',
22
+ description: 'List objects in a bucket with optional prefix and pagination.',
23
+ pathParams: [{ name: 'bucket', type: 'string', description: 'Bucket name' }],
24
+ queryParams: [
25
+ {
26
+ name: 'prefix',
27
+ type: 'string',
28
+ description: 'Only return keys with this prefix',
29
+ required: false,
30
+ },
31
+ {
32
+ name: 'limit',
33
+ type: 'number',
34
+ description: 'Maximum objects to return',
35
+ required: false,
36
+ },
37
+ {
38
+ name: 'offset',
39
+ type: 'number',
40
+ description: 'Offset for pagination',
41
+ required: false,
42
+ },
43
+ ],
44
+ requestBody: null,
45
+ responseDescription: 'Paginated object listing.',
46
+ responseFields: { schema: StorageListResponseSchema },
47
+ statuses: [
48
+ { code: 200, description: 'Object list returned' },
49
+ { code: 401, description: 'Unauthorized' },
50
+ ],
51
+ examplePath: '/storage/objects/my-bucket?prefix=images/&limit=50',
52
+ },
53
+ {
54
+ id: 'delete-objects',
55
+ title: 'Delete Objects',
56
+ method: 'DELETE',
57
+ path: '/storage/objects/{bucket}',
58
+ description:
59
+ 'Delete objects by key or by prefix. `key` and `prefix` are mutually exclusive query parameters.',
60
+ pathParams: [{ name: 'bucket', type: 'string', description: 'Bucket name' }],
61
+ queryParams: [
62
+ {
63
+ name: 'key',
64
+ type: 'string',
65
+ description: 'Delete a single object key',
66
+ required: false,
67
+ },
68
+ {
69
+ name: 'prefix',
70
+ type: 'string',
71
+ description: 'Delete all objects matching prefix',
72
+ required: false,
73
+ },
74
+ ],
75
+ requestBody: null,
76
+ responseDescription: 'JSON response with deleted object count.',
77
+ responseFields: { schema: StorageDeleteResponseSchema },
78
+ statuses: [
79
+ { code: 200, description: 'Delete operation completed' },
80
+ { code: 401, description: 'Unauthorized' },
81
+ ],
82
+ examplePath: '/storage/objects/my-bucket?key=images/photo.jpg',
83
+ },
84
+ {
85
+ id: 'generate-presigned-url',
86
+ title: 'Generate Presigned URL',
87
+ method: 'GET',
88
+ path: '/storage/presign/{bucket}',
89
+ description: 'Generate a time-limited URL for uploading or downloading an object.',
90
+ pathParams: [{ name: 'bucket', type: 'string', description: 'Bucket name' }],
91
+ queryParams: [
92
+ { name: 'key', type: 'string', description: 'Object key to access', required: true },
93
+ {
94
+ name: 'operation',
95
+ type: 'string',
96
+ description: 'Operation type: `download` or `upload` (default: `download`)',
97
+ required: false,
98
+ },
99
+ ],
100
+ requestBody: null,
101
+ responseDescription: 'JSON response containing presigned URL and expiry.',
102
+ responseFields: { schema: StoragePresignResponseSchema },
103
+ statuses: [
104
+ { code: 200, description: 'Presigned URL generated' },
105
+ { code: 401, description: 'Unauthorized' },
106
+ ],
107
+ examplePath: '/storage/presign/my-bucket?key=images/photo.jpg&operation=download',
108
+ },
109
+ {
110
+ id: 'get-bucket-stats',
111
+ title: 'Get Bucket Stats',
112
+ method: 'GET',
113
+ path: '/storage/stats/{bucket}',
114
+ description: 'Get object count and total size for a bucket.',
115
+ pathParams: [{ name: 'bucket', type: 'string', description: 'Bucket name' }],
116
+ queryParams: [],
117
+ requestBody: null,
118
+ responseDescription: 'Bucket-level usage and activity statistics.',
119
+ responseFields: { schema: StorageStatsResponseSchema },
120
+ statuses: [
121
+ { code: 200, description: 'Bucket stats returned' },
122
+ { code: 401, description: 'Unauthorized' },
123
+ ],
124
+ examplePath: '/storage/stats/my-bucket',
125
+ },
126
+ {
127
+ id: 'get-storage-analytics',
128
+ title: 'Get Storage Analytics',
129
+ method: 'GET',
130
+ path: '/storage/analytics',
131
+ description: 'Get aggregated analytics across buckets and daily snapshots.',
132
+ pathParams: [],
133
+ queryParams: [
134
+ {
135
+ name: 'days',
136
+ type: 'number',
137
+ description: 'Days of history to include (default: 180)',
138
+ required: false,
139
+ },
140
+ ],
141
+ requestBody: null,
142
+ responseDescription: 'Analytics summary, per-bucket breakdown, and daily trend data.',
143
+ responseFields: { schema: StorageAnalyticsResponseSchema },
144
+ statuses: [
145
+ { code: 200, description: 'Analytics returned' },
146
+ { code: 401, description: 'Unauthorized' },
147
+ ],
148
+ examplePath: '/storage/analytics?days=30',
149
+ },
150
+ {
151
+ id: 'get-bucket-config',
152
+ title: 'Get Bucket Config',
153
+ method: 'GET',
154
+ path: '/bucket/config/{bucket}',
155
+ description: 'Retrieve effective configuration for a bucket.',
156
+ pathParams: [{ name: 'bucket', type: 'string', description: 'Bucket name' }],
157
+ queryParams: [],
158
+ requestBody: null,
159
+ responseDescription: 'Bucket configuration settings and location metadata.',
160
+ responseFields: { schema: BucketConfigSchema },
161
+ statuses: [
162
+ { code: 200, description: 'Bucket config returned' },
163
+ { code: 401, description: 'Unauthorized' },
164
+ ],
165
+ examplePath: '/bucket/config/my-bucket',
166
+ },
167
+ {
168
+ id: 'update-bucket-config',
169
+ title: 'Update Bucket Config',
170
+ method: 'PUT',
171
+ path: '/bucket/config/{bucket}',
172
+ description: 'Update bucket configuration fields. Omitted fields remain unchanged.',
173
+ pathParams: [{ name: 'bucket', type: 'string', description: 'Bucket name' }],
174
+ queryParams: [],
175
+ requestBody: {
176
+ description: 'Partial bucket config update payload.',
177
+ fields: { schema: BucketConfigUpdateSchema },
178
+ },
179
+ responseDescription: 'Updated bucket configuration object.',
180
+ responseFields: { schema: BucketConfigSchema },
181
+ statuses: [
182
+ { code: 200, description: 'Bucket config updated' },
183
+ { code: 401, description: 'Unauthorized' },
184
+ ],
185
+ examplePath: '/bucket/config/my-bucket',
186
+ exampleBody: { ttl: 86400, public: true, cache_control: 'max-age=3600' },
187
+ },
188
+ {
189
+ id: 'delete-bucket-config',
190
+ title: 'Delete Bucket Config',
191
+ method: 'DELETE',
192
+ path: '/bucket/config/{bucket}',
193
+ description: 'Delete custom bucket config and reset to defaults.',
194
+ pathParams: [{ name: 'bucket', type: 'string', description: 'Bucket name' }],
195
+ queryParams: [],
196
+ requestBody: null,
197
+ responseDescription: 'Empty response on success.',
198
+ statuses: [
199
+ { code: 200, description: 'Bucket config deleted/reset' },
200
+ { code: 401, description: 'Unauthorized' },
201
+ ],
202
+ examplePath: '/bucket/config/my-bucket',
203
+ },
204
+ ],
205
+ };
206
+
207
+ export default service;
@@ -4,7 +4,9 @@ import { z } from 'zod';
4
4
  export const StorageTierValues = ['STANDARD', 'INFREQUENT_ACCESS', 'ARCHIVE'] as const;
5
5
 
6
6
  /** Storage tier enum schema */
7
- export const StorageTierSchema = z.enum(StorageTierValues).describe('Storage tier for the bucket');
7
+ export const StorageTierSchema = z
8
+ .enum(StorageTierValues)
9
+ .describe('Storage tier: `STANDARD`, `INFREQUENT_ACCESS`, or `ARCHIVE`');
8
10
 
9
11
  /** Storage tier type */
10
12
  export type StorageTier = z.infer<typeof StorageTierSchema>;
@@ -39,7 +41,9 @@ export const CORSConfigSchema = z.object({
39
41
  /** Full bucket config (response from GET/PUT) */
40
42
  export const BucketConfigSchema = z.object({
41
43
  bucket_name: z.string().describe('The name of the storage bucket'),
42
- storage_tier: StorageTierSchema.nullable().optional().describe('Storage tier for the bucket'),
44
+ storage_tier: StorageTierSchema.nullable()
45
+ .optional()
46
+ .describe('Storage tier: `STANDARD`, `INFREQUENT_ACCESS`, or `ARCHIVE`'),
43
47
  ttl: z.number().int().min(0).nullable().optional().describe('Object TTL in seconds'),
44
48
  public: z.boolean().nullable().optional().describe('Whether the bucket is publicly accessible'),
45
49
  cache_control: z
@@ -61,7 +65,9 @@ export const BucketConfigSchema = z.object({
61
65
  * Send a field with a value to set it, send null to unset it, omit to leave unchanged.
62
66
  */
63
67
  export const BucketConfigUpdateSchema = z.object({
64
- storage_tier: StorageTierSchema.nullable().optional().describe('Storage tier for the bucket'),
68
+ storage_tier: StorageTierSchema.nullable()
69
+ .optional()
70
+ .describe('Storage tier: `STANDARD`, `INFREQUENT_ACCESS`, or `ARCHIVE`'),
65
71
  ttl: z
66
72
  .number()
67
73
  .int()
@@ -0,0 +1,163 @@
1
+ import {
2
+ CreateStreamApiRequestSchema,
3
+ CreateStreamApiResponseSchema,
4
+ ListStreamsApiRequestSchema,
5
+ ListStreamsApiResponseSchema,
6
+ StreamInfoApiSchema,
7
+ } from './types.ts';
8
+ import type { Service } from '../api-reference.ts';
9
+
10
+ const service: Service = {
11
+ name: 'Durable Streams',
12
+ slug: 'streams',
13
+ description: 'Create durable, resumable data streams with public URLs',
14
+ host: 'streams',
15
+ endpoints: [
16
+ {
17
+ id: 'create-stream',
18
+ title: 'Create Stream',
19
+ method: 'POST',
20
+ path: '/stream',
21
+ description: 'Create a new stream and receive its stream ID.',
22
+ pathParams: [],
23
+ queryParams: [],
24
+ requestBody: {
25
+ description: 'Stream creation payload.',
26
+ fields: { schema: CreateStreamApiRequestSchema },
27
+ },
28
+ responseDescription: 'JSON response containing the new stream ID.',
29
+ responseFields: { schema: CreateStreamApiResponseSchema, stripRequired: true },
30
+ statuses: [
31
+ { code: 200, description: 'Stream created successfully' },
32
+ { code: 401, description: 'Unauthorized' },
33
+ { code: 402, description: 'Payment required' },
34
+ ],
35
+ examplePath: '/stream',
36
+ exampleBody: {
37
+ name: 'agent-logs',
38
+ metadata: { exportDate: '2024-01-15' },
39
+ headers: { 'content-type': 'application/json' },
40
+ },
41
+ ttlNote:
42
+ 'TTL behavior:\n- **Omitted**: Stream expires after the service default period\n- **`null` or `0`**: Stream never expires\n- **60–7,776,000**: Expires after specified seconds (values outside range are clamped)',
43
+ },
44
+ {
45
+ id: 'get-stream-info',
46
+ title: 'Get Stream Info',
47
+ method: 'POST',
48
+ path: '/stream/{id}/info',
49
+ description: 'Get stream metadata, size, public URL, and expiration info.',
50
+ pathParams: [{ name: 'id', type: 'string', description: 'The stream ID' }],
51
+ queryParams: [],
52
+ requestBody: {
53
+ description: 'Empty JSON object is required.',
54
+ },
55
+ responseDescription: 'JSON object with stream details.',
56
+ responseFields: { schema: StreamInfoApiSchema, stripRequired: true },
57
+ statuses: [
58
+ { code: 200, description: 'Stream info returned' },
59
+ { code: 401, description: 'Unauthorized' },
60
+ { code: 404, description: 'Stream not found' },
61
+ ],
62
+ examplePath: '/stream/stream_abc123/info',
63
+ exampleBody: {},
64
+ },
65
+ {
66
+ id: 'download-stream',
67
+ title: 'Download Stream',
68
+ method: 'GET',
69
+ path: '/stream/{id}',
70
+ description: 'Download the finalized stream contents as raw binary data.',
71
+ pathParams: [{ name: 'id', type: 'string', description: 'The stream ID' }],
72
+ queryParams: [],
73
+ requestBody: null,
74
+ responseDescription: 'Raw binary stream data with original content type.',
75
+ statuses: [
76
+ { code: 200, description: 'Stream data returned' },
77
+ { code: 401, description: 'Unauthorized' },
78
+ { code: 404, description: 'Stream not found' },
79
+ ],
80
+ examplePath: '/stream/stream_abc123',
81
+ },
82
+ {
83
+ id: 'list-streams',
84
+ title: 'List Streams',
85
+ method: 'POST',
86
+ path: '/stream/list',
87
+ description: 'List streams with filtering, pagination, and sorting.',
88
+ pathParams: [],
89
+ queryParams: [],
90
+ requestBody: {
91
+ description: 'Optional list filters and pagination controls.',
92
+ fields: { schema: ListStreamsApiRequestSchema },
93
+ },
94
+ responseDescription: 'JSON response with stream list and total count.',
95
+ responseFields: { schema: ListStreamsApiResponseSchema, stripRequired: true },
96
+ statuses: [
97
+ { code: 200, description: 'Stream list returned' },
98
+ { code: 401, description: 'Unauthorized' },
99
+ ],
100
+ examplePath: '/stream/list',
101
+ exampleBody: { name: 'agent-logs', limit: 50 },
102
+ },
103
+ {
104
+ id: 'delete-stream',
105
+ title: 'Delete Stream',
106
+ method: 'DELETE',
107
+ path: '/stream/{id}',
108
+ description: 'Delete a stream by ID.',
109
+ pathParams: [{ name: 'id', type: 'string', description: 'The stream ID' }],
110
+ queryParams: [],
111
+ requestBody: null,
112
+ responseDescription: 'Empty response on success.',
113
+ statuses: [
114
+ { code: 200, description: 'Stream deleted' },
115
+ { code: 401, description: 'Unauthorized' },
116
+ { code: 404, description: 'Stream not found' },
117
+ ],
118
+ examplePath: '/stream/stream_abc123',
119
+ },
120
+ {
121
+ id: 'append-data',
122
+ title: 'Append Data',
123
+ method: 'POST',
124
+ path: '/stream/{id}/append',
125
+ description: 'Append a binary chunk (up to 5MB) to an open stream.',
126
+ pathParams: [{ name: 'id', type: 'string', description: 'The stream ID' }],
127
+ queryParams: [],
128
+ requestBody: {
129
+ description: 'Raw binary body. Set `Content-Type: application/octet-stream`.',
130
+ },
131
+ responseDescription: 'Empty response on success.',
132
+ statuses: [
133
+ { code: 200, description: 'Data appended' },
134
+ { code: 401, description: 'Unauthorized' },
135
+ { code: 413, description: 'Chunk too large' },
136
+ ],
137
+ examplePath: '/stream/stream_abc123/append',
138
+ exampleHeaders: { 'Content-Type': 'application/octet-stream' },
139
+ exampleBody: '<binary data>',
140
+ },
141
+ {
142
+ id: 'complete-stream',
143
+ title: 'Complete Stream',
144
+ method: 'POST',
145
+ path: '/stream/{id}/complete',
146
+ description: 'Finalize stream writing and make it available for reading.',
147
+ pathParams: [{ name: 'id', type: 'string', description: 'The stream ID' }],
148
+ queryParams: [],
149
+ requestBody: {
150
+ description:
151
+ 'Empty body. Optional header: `X-Compress: gzip` for server-side compression.',
152
+ },
153
+ responseDescription: 'Empty response on success.',
154
+ statuses: [
155
+ { code: 200, description: 'Stream completed' },
156
+ { code: 401, description: 'Unauthorized' },
157
+ ],
158
+ examplePath: '/stream/stream_abc123/complete',
159
+ },
160
+ ],
161
+ };
162
+
163
+ export default service;
@@ -0,0 +1,64 @@
1
+ import { z } from 'zod';
2
+
3
+ // ---------------------------------------------------------------------------
4
+ // API-level Zod schemas for the Durable Streams HTTP API.
5
+ //
6
+ // These use snake_case field names matching the raw HTTP contract.
7
+ // The SDK-layer schemas in service.ts use camelCase (JS convention).
8
+ // ---------------------------------------------------------------------------
9
+
10
+ /** Request body for POST /stream (create stream) */
11
+ export const CreateStreamApiRequestSchema = z.object({
12
+ name: z.string().describe('The namespace/group name (1–254 chars)'),
13
+ metadata: z.record(z.string(), z.string()).optional().describe('Optional key-value metadata'),
14
+ headers: z
15
+ .record(z.string(), z.string())
16
+ .optional()
17
+ .describe('Optional headers map (commonly includes `content-type`)'),
18
+ ttl: z.number().nullable().optional().describe('Stream TTL in seconds'),
19
+ });
20
+
21
+ export type CreateStreamApiRequest = z.infer<typeof CreateStreamApiRequestSchema>;
22
+
23
+ /** Response for POST /stream (create stream) */
24
+ export const CreateStreamApiResponseSchema = z.object({
25
+ id: z.string().describe('Created stream ID'),
26
+ });
27
+
28
+ export type CreateStreamApiResponse = z.infer<typeof CreateStreamApiResponseSchema>;
29
+
30
+ /** Request body for POST /stream/list (list streams) */
31
+ export const ListStreamsApiRequestSchema = z.object({
32
+ name: z.string().optional().describe('Filter by namespace'),
33
+ metadata: z.record(z.string(), z.string()).optional().describe('Filter by metadata fields'),
34
+ limit: z.number().optional().describe('Maximum streams to return'),
35
+ offset: z.number().optional().describe('Offset for pagination'),
36
+ sort: z
37
+ .string()
38
+ .optional()
39
+ .describe('Sort by `name`, `created`, `updated`, `size`, `count`, or `lastUsed`'),
40
+ direction: z.string().optional().describe('Sort direction: `asc` or `desc`'),
41
+ });
42
+
43
+ export type ListStreamsApiRequest = z.infer<typeof ListStreamsApiRequestSchema>;
44
+
45
+ /** Single stream info object (snake_case, matches API response) */
46
+ export const StreamInfoApiSchema = z.object({
47
+ id: z.string().describe('Stream ID'),
48
+ name: z.string().describe('Namespace name'),
49
+ metadata: z.record(z.string(), z.string()).describe('Stream metadata'),
50
+ url: z.string().describe('Public stream URL'),
51
+ size_bytes: z.number().describe('Current stream size in bytes'),
52
+ expires_at: z.string().nullable().describe('ISO 8601 expiration timestamp'),
53
+ });
54
+
55
+ export type StreamInfoApi = z.infer<typeof StreamInfoApiSchema>;
56
+
57
+ /** Response for POST /stream/list. */
58
+ export const ListStreamsApiResponseSchema = z.object({
59
+ success: z.boolean().describe('Whether the request succeeded'),
60
+ streams: z.array(StreamInfoApiSchema).describe('Matching streams'),
61
+ total: z.number().describe('Total matches'),
62
+ });
63
+
64
+ export type ListStreamsApiResponse = z.infer<typeof ListStreamsApiResponseSchema>;