@agentuity/core 1.0.41 → 1.0.43

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,124 @@
1
+ import type { Service } from '../api-reference.ts';
2
+ import { EvaluationSchema } from './list.ts';
3
+ import { EvalRunSchema } from './run-list.ts';
4
+
5
+ const service: Service = {
6
+ name: 'Evaluations',
7
+ slug: 'evaluations',
8
+ description: 'List and retrieve evaluations and their run history',
9
+ endpoints: [
10
+ {
11
+ id: 'list-evaluations',
12
+ title: 'List Evaluations',
13
+ method: 'GET',
14
+ path: '/cli/eval',
15
+ description:
16
+ 'List evaluations with optional filtering by organization, project, or agent.',
17
+ pathParams: [],
18
+ queryParams: [
19
+ {
20
+ name: 'orgId',
21
+ type: 'string',
22
+ description: 'Filter by organization ID',
23
+ required: false,
24
+ },
25
+ {
26
+ name: 'projectId',
27
+ type: 'string',
28
+ description: 'Filter by project ID',
29
+ required: false,
30
+ },
31
+ { name: 'agentId', type: 'string', description: 'Filter by agent ID', required: false },
32
+ ],
33
+ requestBody: null,
34
+ responseDescription: 'Array of evaluation objects.',
35
+ responseFields: { schema: EvaluationSchema },
36
+ statuses: [
37
+ { code: 200, description: 'Evaluations returned' },
38
+ { code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
39
+ ],
40
+ examplePath: '/cli/eval',
41
+ },
42
+ {
43
+ id: 'get-evaluation',
44
+ title: 'Get Evaluation',
45
+ method: 'GET',
46
+ path: '/cli/eval/{id}',
47
+ description: 'Get a specific evaluation by ID.',
48
+ pathParams: [{ name: 'id', type: 'string', description: 'Evaluation ID', required: true }],
49
+ queryParams: [],
50
+ requestBody: null,
51
+ responseDescription: 'Evaluation object.',
52
+ statuses: [
53
+ { code: 200, description: 'Evaluation returned' },
54
+ { code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
55
+ { code: 404, description: 'Evaluation not found' },
56
+ ],
57
+ examplePath: '/cli/eval/eval_abc123',
58
+ },
59
+ {
60
+ id: 'list-eval-runs',
61
+ title: 'List Eval Runs',
62
+ sectionTitle: 'Eval Runs',
63
+ method: 'GET',
64
+ path: '/cli/eval-run',
65
+ description: 'List evaluation runs with optional filtering.',
66
+ pathParams: [],
67
+ queryParams: [
68
+ {
69
+ name: 'orgId',
70
+ type: 'string',
71
+ description: 'Filter by organization ID',
72
+ required: false,
73
+ },
74
+ {
75
+ name: 'projectId',
76
+ type: 'string',
77
+ description: 'Filter by project ID',
78
+ required: false,
79
+ },
80
+ { name: 'agentId', type: 'string', description: 'Filter by agent ID', required: false },
81
+ {
82
+ name: 'evalId',
83
+ type: 'string',
84
+ description: 'Filter by evaluation ID',
85
+ required: false,
86
+ },
87
+ {
88
+ name: 'sessionId',
89
+ type: 'string',
90
+ description: 'Filter by session ID',
91
+ required: false,
92
+ },
93
+ ],
94
+ requestBody: null,
95
+ responseDescription: 'Array of evaluation run objects.',
96
+ responseFields: { schema: EvalRunSchema },
97
+ statuses: [
98
+ { code: 200, description: 'Eval runs returned' },
99
+ { code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
100
+ ],
101
+ examplePath: '/cli/eval-run',
102
+ },
103
+ {
104
+ id: 'get-eval-run',
105
+ title: 'Get Eval Run',
106
+ sectionTitle: 'Eval Runs',
107
+ method: 'GET',
108
+ path: '/cli/eval-run/{id}',
109
+ description: 'Get a specific evaluation run by ID.',
110
+ pathParams: [{ name: 'id', type: 'string', description: 'Eval run ID', required: true }],
111
+ queryParams: [],
112
+ requestBody: null,
113
+ responseDescription: 'Evaluation run object.',
114
+ statuses: [
115
+ { code: 200, description: 'Eval run returned' },
116
+ { code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
117
+ { code: 404, description: 'Eval run not found' },
118
+ ],
119
+ examplePath: '/cli/eval-run/er_abc123',
120
+ },
121
+ ],
122
+ };
123
+
124
+ export default service;
@@ -16,6 +16,8 @@ export * from './apikey/index.ts';
16
16
  export * from './db/index.ts';
17
17
  export * from './eval/index.ts';
18
18
  export * from './machine/index.ts';
19
+ export * from './monitoring/index.ts';
20
+ export * from './oauth/index.ts';
19
21
  export * from './org/index.ts';
20
22
  export * from './project/index.ts';
21
23
  export * from './queue/index.ts';
@@ -0,0 +1,280 @@
1
+ import { KeyValueStatsPaginatedSchema, KeyValueStatsSchema } from './service.ts';
2
+ import { CreateNamespaceApiRequestSchema, KeyValueItemMetadataSchema } from './types.ts';
3
+ import type { Service } from '../api-reference.ts';
4
+
5
+ const service: Service = {
6
+ name: 'Key-Value Storage',
7
+ slug: 'key-value',
8
+ description: 'Store and retrieve arbitrary data by key within namespaces',
9
+ endpoints: [
10
+ {
11
+ id: 'get-value',
12
+ title: 'Get Value',
13
+ method: 'GET',
14
+ path: '/kv/{namespace}/{key}',
15
+ description:
16
+ 'Retrieve a stored value by its namespace and key. Returns the raw value with the original content type.',
17
+ pathParams: [
18
+ { name: 'namespace', type: 'string', description: 'The namespace name' },
19
+ { name: 'key', type: 'string', description: 'The key to retrieve' },
20
+ ],
21
+ queryParams: [],
22
+ requestBody: null,
23
+ responseDescription:
24
+ 'Returns the raw stored value with the original content type. The response body is the value itself (not wrapped in JSON).',
25
+ responseHeaders: [
26
+ {
27
+ name: 'Content-Type',
28
+ description:
29
+ 'MIME type of the stored value (e.g., `application/json`, `text/plain`, `application/octet-stream`)',
30
+ },
31
+ {
32
+ name: 'x-expires-at',
33
+ description: 'ISO 8601 expiration timestamp. Omitted if the key does not expire.',
34
+ },
35
+ ],
36
+ statuses: [
37
+ { code: 200, description: 'Value found and returned' },
38
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
39
+ { code: 404, description: 'Key does not exist in the namespace' },
40
+ ],
41
+ examplePath: '/kv/my-namespace/user-123',
42
+ },
43
+ {
44
+ id: 'set-value',
45
+ title: 'Store Value',
46
+ method: 'PUT',
47
+ path: '/kv/{namespace}/{key}[/{ttl}]',
48
+ description:
49
+ "Store a value in key-value storage. The namespace is auto-created if it doesn't exist. Set the Content-Type header to match your data format.",
50
+ pathParams: [
51
+ {
52
+ name: 'namespace',
53
+ type: 'string',
54
+ description: 'The namespace name (auto-created if not exists)',
55
+ },
56
+ { name: 'key', type: 'string', description: 'The key to store the value under' },
57
+ {
58
+ name: 'ttl',
59
+ type: 'number',
60
+ description:
61
+ 'Optional TTL in seconds (60–31,536,000). Omit for namespace default. Use `0` for no expiration.',
62
+ required: false,
63
+ },
64
+ ],
65
+ queryParams: [],
66
+ requestBody: {
67
+ description: 'The raw value to store. Can be any content type — JSON, text, or binary.',
68
+ },
69
+ responseDescription: 'Empty response on success.',
70
+ responseHeaders: [],
71
+ statuses: [
72
+ { code: 200, description: 'Value stored successfully' },
73
+ { code: 401, description: 'Unauthorized — invalid or missing API key' },
74
+ { code: 402, description: 'Payment required — upgrade to a paid plan' },
75
+ ],
76
+ examplePath: '/kv/my-namespace/user-123',
77
+ exampleBody: { name: 'Alice', email: 'alice@example.com' },
78
+ ttlNote:
79
+ 'TTL behavior:\n- **Omitted**: Key inherits namespace default TTL (7 days if not configured)\n- **`0`**: Key never expires\n- **60–31,536,000**: Expires after specified seconds (values outside range are clamped)',
80
+ },
81
+ {
82
+ id: 'delete-value',
83
+ title: 'Delete Value',
84
+ method: 'DELETE',
85
+ path: '/kv/{namespace}/{key}',
86
+ description: 'Delete a specific key from a namespace.',
87
+ pathParams: [
88
+ { name: 'namespace', type: 'string', description: 'The namespace name' },
89
+ { name: 'key', type: 'string', description: 'The key to delete' },
90
+ ],
91
+ queryParams: [],
92
+ requestBody: null,
93
+ responseDescription: 'Empty response on success.',
94
+ responseHeaders: [],
95
+ statuses: [
96
+ { code: 200, description: 'Key deleted successfully' },
97
+ { code: 401, description: 'Unauthorized' },
98
+ ],
99
+ examplePath: '/kv/my-namespace/user-123',
100
+ },
101
+ {
102
+ id: 'search-keys',
103
+ title: 'Search Keys',
104
+ method: 'GET',
105
+ path: '/kv/search/{namespace}/{keyword}',
106
+ description:
107
+ 'Search for keys matching a keyword within a namespace. Returns matching keys with their values and metadata.',
108
+ pathParams: [
109
+ { name: 'namespace', type: 'string', description: 'The namespace to search in' },
110
+ {
111
+ name: 'keyword',
112
+ type: 'string',
113
+ description: 'The keyword to search for in key names',
114
+ },
115
+ ],
116
+ queryParams: [],
117
+ requestBody: null,
118
+ responseDescription: 'JSON object mapping key names to their values and metadata.',
119
+ responseFields: {
120
+ schema: KeyValueItemMetadataSchema,
121
+ prefix: '{key}',
122
+ stripRequired: true,
123
+ },
124
+ statuses: [
125
+ { code: 200, description: 'Search results returned' },
126
+ { code: 401, description: 'Unauthorized' },
127
+ ],
128
+ examplePath: '/kv/search/my-namespace/user',
129
+ },
130
+ {
131
+ id: 'get-keys',
132
+ title: 'List Keys',
133
+ method: 'GET',
134
+ path: '/kv/keys/{namespace}',
135
+ description: 'Get all key names in a namespace.',
136
+ pathParams: [
137
+ { name: 'namespace', type: 'string', description: 'The namespace to list keys from' },
138
+ ],
139
+ queryParams: [],
140
+ requestBody: null,
141
+ responseDescription: 'JSON array of key name strings.',
142
+ responseHeaders: [],
143
+ statuses: [
144
+ { code: 200, description: 'Key list returned' },
145
+ { code: 401, description: 'Unauthorized' },
146
+ ],
147
+ examplePath: '/kv/keys/my-namespace',
148
+ },
149
+ {
150
+ id: 'get-namespace-stats',
151
+ title: 'Get Namespace Stats',
152
+ method: 'GET',
153
+ path: '/kv/stats/{namespace}',
154
+ description: 'Get statistics for a specific namespace including record count and size.',
155
+ pathParams: [
156
+ { name: 'namespace', type: 'string', description: 'The namespace to get stats for' },
157
+ ],
158
+ queryParams: [],
159
+ requestBody: null,
160
+ responseDescription: 'JSON object with namespace statistics.',
161
+ responseFields: { schema: KeyValueStatsSchema, omit: ['internal'] },
162
+ statuses: [
163
+ { code: 200, description: 'Stats returned' },
164
+ { code: 401, description: 'Unauthorized' },
165
+ ],
166
+ examplePath: '/kv/stats/my-namespace',
167
+ },
168
+ {
169
+ id: 'get-all-stats',
170
+ title: 'List All Namespace Stats',
171
+ method: 'GET',
172
+ path: '/kv/stats',
173
+ description: 'Get statistics for all namespaces with optional pagination and filtering.',
174
+ pathParams: [],
175
+ queryParams: [
176
+ {
177
+ name: 'limit',
178
+ type: 'number',
179
+ description: 'Maximum namespaces to return (default: 100, max: 1000)',
180
+ required: false,
181
+ },
182
+ {
183
+ name: 'offset',
184
+ type: 'number',
185
+ description: 'Number of namespaces to skip (default: 0)',
186
+ required: false,
187
+ },
188
+ {
189
+ name: 'sort',
190
+ type: 'string',
191
+ description: 'Sort field: `name`, `size`, `records`, `created`, or `lastUsed`',
192
+ required: false,
193
+ },
194
+ {
195
+ name: 'direction',
196
+ type: 'string',
197
+ description: 'Sort direction: `asc` or `desc` (default: `desc`)',
198
+ required: false,
199
+ },
200
+ {
201
+ name: 'name',
202
+ type: 'string',
203
+ description: 'Filter namespaces by name substring',
204
+ required: false,
205
+ },
206
+ ],
207
+ requestBody: null,
208
+ responseDescription: 'Paginated response with namespace statistics.',
209
+ responseFields: { schema: KeyValueStatsPaginatedSchema, stripRequired: true },
210
+ statuses: [
211
+ { code: 200, description: 'Stats returned' },
212
+ { code: 401, description: 'Unauthorized' },
213
+ ],
214
+ examplePath: '/kv/stats?limit=10&sort=size&direction=desc',
215
+ },
216
+ {
217
+ id: 'list-namespaces',
218
+ title: 'List Namespaces',
219
+ method: 'GET',
220
+ path: '/kv/namespaces',
221
+ description:
222
+ 'Get all namespace names (up to 1000, ordered by creation date, most recent first).',
223
+ pathParams: [],
224
+ queryParams: [],
225
+ requestBody: null,
226
+ responseDescription: 'JSON array of namespace name strings.',
227
+ responseHeaders: [],
228
+ statuses: [
229
+ { code: 200, description: 'Namespace list returned' },
230
+ { code: 401, description: 'Unauthorized' },
231
+ ],
232
+ examplePath: '/kv/namespaces',
233
+ },
234
+ {
235
+ id: 'create-namespace',
236
+ title: 'Create Namespace',
237
+ method: 'POST',
238
+ path: '/kv/{namespace}',
239
+ description: 'Create a new namespace with optional default TTL configuration.',
240
+ pathParams: [
241
+ { name: 'namespace', type: 'string', description: 'The namespace name to create' },
242
+ ],
243
+ queryParams: [],
244
+ requestBody: {
245
+ description: 'Optional JSON body with namespace configuration.',
246
+ fields: { schema: CreateNamespaceApiRequestSchema },
247
+ },
248
+ responseDescription: 'Empty response on success.',
249
+ responseHeaders: [],
250
+ statuses: [
251
+ { code: 200, description: 'Namespace created successfully' },
252
+ { code: 401, description: 'Unauthorized' },
253
+ { code: 402, description: 'Payment required' },
254
+ ],
255
+ examplePath: '/kv/my-namespace',
256
+ exampleBody: { default_ttl_seconds: 86400 },
257
+ },
258
+ {
259
+ id: 'delete-namespace',
260
+ title: 'Delete Namespace',
261
+ method: 'DELETE',
262
+ path: '/kv/{namespace}',
263
+ description: 'Delete an entire namespace and all its keys.',
264
+ pathParams: [
265
+ { name: 'namespace', type: 'string', description: 'The namespace to delete' },
266
+ ],
267
+ queryParams: [],
268
+ requestBody: null,
269
+ responseDescription: 'Empty response on success.',
270
+ responseHeaders: [],
271
+ statuses: [
272
+ { code: 200, description: 'Namespace deleted successfully' },
273
+ { code: 401, description: 'Unauthorized' },
274
+ ],
275
+ examplePath: '/kv/my-namespace',
276
+ },
277
+ ],
278
+ };
279
+
280
+ export default service;
@@ -0,0 +1,25 @@
1
+ import { z } from 'zod';
2
+
3
+ /** API-level request for creating a namespace (uses snake_case field names) */
4
+ export const CreateNamespaceApiRequestSchema = z.object({
5
+ default_ttl_seconds: z
6
+ .number()
7
+ .optional()
8
+ .describe(
9
+ 'Default TTL for keys in this namespace (in seconds). If omitted, defaults to 7 days (604,800). Use 0 for keys that never expire.'
10
+ ),
11
+ });
12
+
13
+ /** Metadata for a key-value item in search results */
14
+ export const KeyValueItemMetadataSchema = z.object({
15
+ value: z.unknown().describe('The stored value (base64-encoded for binary)'),
16
+ contentType: z.string().describe('MIME type of the stored value'),
17
+ size: z.number().describe('Size in bytes'),
18
+ expiresAt: z.string().nullable().describe('ISO 8601 expiration timestamp'),
19
+ firstUsed: z.number().nullable().describe('Unix timestamp (ms) of first access'),
20
+ lastUsed: z.number().nullable().describe('Unix timestamp (ms) of last access'),
21
+ count: z.number().nullable().describe('Number of times accessed'),
22
+ });
23
+
24
+ export type CreateNamespaceApiRequest = z.infer<typeof CreateNamespaceApiRequestSchema>;
25
+ export type KeyValueItemMetadata = z.infer<typeof KeyValueItemMetadataSchema>;
@@ -0,0 +1,158 @@
1
+ import { MachineSchema } from './machine.ts';
2
+ import {
3
+ OrgAuthEnrollRequestSchema,
4
+ OrgAuthEnrollDataSchema,
5
+ OrgAuthStatusDataSchema,
6
+ } from './types.ts';
7
+ import type { Service } from '../api-reference.ts';
8
+
9
+ const service: Service = {
10
+ name: 'Machines',
11
+ slug: 'machines',
12
+ description: 'Manage compute nodes and organization authentication enrollment',
13
+ endpoints: [
14
+ {
15
+ id: 'list-machines',
16
+ title: 'List Machines',
17
+ sectionTitle: 'Machine Management',
18
+ method: 'GET',
19
+ path: '/machine',
20
+ description: 'List all machines visible to the authenticated user.',
21
+ pathParams: [],
22
+ queryParams: [],
23
+ requestBody: null,
24
+ responseDescription: 'Returns all machines visible to the authenticated user.',
25
+ statuses: [
26
+ { code: 200, description: 'Machines returned' },
27
+ { code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
28
+ ],
29
+ examplePath: '/machine',
30
+ },
31
+ {
32
+ id: 'get-machine',
33
+ title: 'Get Machine',
34
+ sectionTitle: 'Machine Management',
35
+ method: 'GET',
36
+ path: '/machine/{machineId}',
37
+ description: 'Get details for a specific machine.',
38
+ pathParams: [
39
+ { name: 'machineId', type: 'string', description: 'Machine ID', required: true },
40
+ ],
41
+ queryParams: [],
42
+ requestBody: null,
43
+ responseDescription: 'Returns machine details.',
44
+ responseFields: { schema: MachineSchema },
45
+ statuses: [
46
+ { code: 200, description: 'Machine returned' },
47
+ { code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
48
+ { code: 404, description: 'Machine not found' },
49
+ ],
50
+ examplePath: '/machine/mch_abc123',
51
+ },
52
+ {
53
+ id: 'delete-machine',
54
+ title: 'Delete Machine',
55
+ sectionTitle: 'Machine Management',
56
+ method: 'DELETE',
57
+ path: '/machine/{machineId}',
58
+ description: 'Delete a machine by ID.',
59
+ pathParams: [
60
+ { name: 'machineId', type: 'string', description: 'Machine ID', required: true },
61
+ ],
62
+ queryParams: [],
63
+ requestBody: null,
64
+ responseDescription: 'Empty response on success.',
65
+ statuses: [
66
+ { code: 204, description: 'Machine deleted' },
67
+ { code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
68
+ { code: 404, description: 'Machine not found' },
69
+ ],
70
+ examplePath: '/machine/mch_abc123',
71
+ },
72
+ {
73
+ id: 'list-machine-deployments',
74
+ title: 'List Machine Deployments',
75
+ sectionTitle: 'Machine Management',
76
+ method: 'GET',
77
+ path: '/machine/deployments/{machineId}',
78
+ description: 'List all deployments currently running on a specific machine.',
79
+ pathParams: [
80
+ { name: 'machineId', type: 'string', description: 'Machine ID', required: true },
81
+ ],
82
+ queryParams: [],
83
+ requestBody: null,
84
+ responseDescription: 'Returns all deployments currently running on the specified machine.',
85
+ statuses: [
86
+ { code: 200, description: 'Deployments returned' },
87
+ { code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
88
+ { code: 404, description: 'Machine not found' },
89
+ ],
90
+ examplePath: '/machine/deployments/mch_abc123',
91
+ },
92
+ {
93
+ id: 'enroll-organization',
94
+ title: 'Enroll Organization',
95
+ sectionTitle: 'Auth Enrollment',
96
+ method: 'POST',
97
+ path: '/cli/auth/org/enroll',
98
+ description: 'Enroll an organization for machine authentication.',
99
+ pathParams: [],
100
+ queryParams: [],
101
+ requestBody: {
102
+ description: 'Enrollment payload with organization ID and public key.',
103
+ fields: { schema: OrgAuthEnrollRequestSchema },
104
+ },
105
+ responseDescription: 'Returns the enrolled organization ID.',
106
+ responseFields: { schema: OrgAuthEnrollDataSchema, stripRequired: true },
107
+ statuses: [
108
+ { code: 200, description: 'Organization enrolled' },
109
+ { code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
110
+ ],
111
+ examplePath: '/cli/auth/org/enroll',
112
+ exampleBody: { orgId: 'org_abc123', publicKey: 'ssh-ed25519 AAAA...' },
113
+ },
114
+ {
115
+ id: 'get-enrollment-status',
116
+ title: 'Get Enrollment Status',
117
+ sectionTitle: 'Auth Enrollment',
118
+ method: 'GET',
119
+ path: '/cli/auth/org/status/{orgId}',
120
+ description: 'Get the enrollment status for an organization.',
121
+ pathParams: [
122
+ { name: 'orgId', type: 'string', description: 'Organization ID', required: true },
123
+ ],
124
+ queryParams: [],
125
+ requestBody: null,
126
+ responseDescription: 'Returns the enrollment status. A null publicKey means not enrolled.',
127
+ responseFields: { schema: OrgAuthStatusDataSchema, stripRequired: true },
128
+ statuses: [
129
+ { code: 200, description: 'Enrollment status returned' },
130
+ { code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
131
+ { code: 404, description: 'Organization not found' },
132
+ ],
133
+ examplePath: '/cli/auth/org/status/org_abc123',
134
+ },
135
+ {
136
+ id: 'unenroll-organization',
137
+ title: 'Unenroll Organization',
138
+ sectionTitle: 'Auth Enrollment',
139
+ method: 'DELETE',
140
+ path: '/cli/auth/org/unenroll/{orgId}',
141
+ description: 'Remove enrollment for an organization.',
142
+ pathParams: [
143
+ { name: 'orgId', type: 'string', description: 'Organization ID', required: true },
144
+ ],
145
+ queryParams: [],
146
+ requestBody: null,
147
+ responseDescription: 'Empty response on success.',
148
+ statuses: [
149
+ { code: 204, description: 'Organization unenrolled' },
150
+ { code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
151
+ { code: 404, description: 'Organization not found' },
152
+ ],
153
+ examplePath: '/cli/auth/org/unenroll/org_abc123',
154
+ },
155
+ ],
156
+ };
157
+
158
+ export default service;
@@ -0,0 +1,21 @@
1
+ import { z } from 'zod';
2
+
3
+ /** Request payload for enrolling an organization */
4
+ export const OrgAuthEnrollRequestSchema = z.object({
5
+ orgId: z.string().describe('Organization ID'),
6
+ publicKey: z.string().describe('Public key for machine authentication'),
7
+ });
8
+
9
+ /** Response data from enrolling an organization */
10
+ export const OrgAuthEnrollDataSchema = z.object({
11
+ orgId: z.string().describe('The enrolled organization ID'),
12
+ });
13
+
14
+ /** Response data from getting enrollment status */
15
+ export const OrgAuthStatusDataSchema = z.object({
16
+ publicKey: z.string().nullable().describe('Public key or null if not enrolled'),
17
+ });
18
+
19
+ export type OrgAuthEnrollRequest = z.infer<typeof OrgAuthEnrollRequestSchema>;
20
+ export type OrgAuthEnrollData = z.infer<typeof OrgAuthEnrollDataSchema>;
21
+ export type OrgAuthStatusData = z.infer<typeof OrgAuthStatusDataSchema>;
@@ -0,0 +1,2 @@
1
+ export * from './types.ts';
2
+ export * from './service.ts';