oblien 2.0.4 → 2.0.5

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 (135) hide show
  1. package/dist/cli/auth.d.ts.map +1 -1
  2. package/dist/cli/auth.js +4 -3
  3. package/dist/cli/auth.js.map +1 -1
  4. package/dist/cli/commands/api-access.d.ts.map +1 -1
  5. package/dist/cli/commands/api-access.js +8 -14
  6. package/dist/cli/commands/api-access.js.map +1 -1
  7. package/dist/cli/commands/auth.d.ts +13 -0
  8. package/dist/cli/commands/auth.d.ts.map +1 -0
  9. package/dist/cli/commands/auth.js +181 -0
  10. package/dist/cli/commands/auth.js.map +1 -0
  11. package/dist/cli/commands/config.js +1 -1
  12. package/dist/cli/commands/exec.d.ts.map +1 -1
  13. package/dist/cli/commands/exec.js +39 -59
  14. package/dist/cli/commands/exec.js.map +1 -1
  15. package/dist/cli/commands/files.d.ts.map +1 -1
  16. package/dist/cli/commands/files.js +133 -17
  17. package/dist/cli/commands/files.js.map +1 -1
  18. package/dist/cli/commands/helpers.d.ts +29 -0
  19. package/dist/cli/commands/helpers.d.ts.map +1 -0
  20. package/dist/cli/commands/helpers.js +61 -0
  21. package/dist/cli/commands/helpers.js.map +1 -0
  22. package/dist/cli/commands/images.d.ts.map +1 -1
  23. package/dist/cli/commands/images.js +2 -5
  24. package/dist/cli/commands/images.js.map +1 -1
  25. package/dist/cli/commands/lifecycle.d.ts.map +1 -1
  26. package/dist/cli/commands/lifecycle.js +9 -14
  27. package/dist/cli/commands/lifecycle.js.map +1 -1
  28. package/dist/cli/commands/logs.d.ts.map +1 -1
  29. package/dist/cli/commands/logs.js +9 -19
  30. package/dist/cli/commands/logs.js.map +1 -1
  31. package/dist/cli/commands/metadata.d.ts.map +1 -1
  32. package/dist/cli/commands/metadata.js +5 -11
  33. package/dist/cli/commands/metadata.js.map +1 -1
  34. package/dist/cli/commands/metrics.d.ts.map +1 -1
  35. package/dist/cli/commands/metrics.js +6 -12
  36. package/dist/cli/commands/metrics.js.map +1 -1
  37. package/dist/cli/commands/namespaces.d.ts +3 -0
  38. package/dist/cli/commands/namespaces.d.ts.map +1 -0
  39. package/dist/cli/commands/namespaces.js +205 -0
  40. package/dist/cli/commands/namespaces.js.map +1 -0
  41. package/dist/cli/commands/network.d.ts.map +1 -1
  42. package/dist/cli/commands/network.js +2 -5
  43. package/dist/cli/commands/network.js.map +1 -1
  44. package/dist/cli/commands/public-access.d.ts.map +1 -1
  45. package/dist/cli/commands/public-access.js +5 -15
  46. package/dist/cli/commands/public-access.js.map +1 -1
  47. package/dist/cli/commands/search.d.ts.map +1 -1
  48. package/dist/cli/commands/search.js +4 -7
  49. package/dist/cli/commands/search.js.map +1 -1
  50. package/dist/cli/commands/skills.js +2 -2
  51. package/dist/cli/commands/snapshots.d.ts.map +1 -1
  52. package/dist/cli/commands/snapshots.js +14 -19
  53. package/dist/cli/commands/snapshots.js.map +1 -1
  54. package/dist/cli/commands/ssh.d.ts.map +1 -1
  55. package/dist/cli/commands/ssh.js +52 -19
  56. package/dist/cli/commands/ssh.js.map +1 -1
  57. package/dist/cli/commands/terminal.d.ts.map +1 -1
  58. package/dist/cli/commands/terminal.js +6 -16
  59. package/dist/cli/commands/terminal.js.map +1 -1
  60. package/dist/cli/commands/usage.d.ts.map +1 -1
  61. package/dist/cli/commands/usage.js +13 -18
  62. package/dist/cli/commands/usage.js.map +1 -1
  63. package/dist/cli/commands/watcher.d.ts.map +1 -1
  64. package/dist/cli/commands/watcher.js +6 -16
  65. package/dist/cli/commands/watcher.js.map +1 -1
  66. package/dist/cli/commands/workloads.d.ts.map +1 -1
  67. package/dist/cli/commands/workloads.js +28 -40
  68. package/dist/cli/commands/workloads.js.map +1 -1
  69. package/dist/cli/commands/workspaces.d.ts.map +1 -1
  70. package/dist/cli/commands/workspaces.js +9 -15
  71. package/dist/cli/commands/workspaces.js.map +1 -1
  72. package/dist/cli/index.d.ts +2 -2
  73. package/dist/cli/index.js +28 -7
  74. package/dist/cli/index.js.map +1 -1
  75. package/dist/cli/output.d.ts +2 -2
  76. package/dist/cli/output.js +2 -2
  77. package/dist/client.d.ts +3 -3
  78. package/dist/client.js +3 -3
  79. package/dist/index.d.ts +1 -1
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/mcp/index.d.ts +3 -0
  82. package/dist/mcp/index.d.ts.map +1 -0
  83. package/dist/mcp/index.js +29 -0
  84. package/dist/mcp/index.js.map +1 -0
  85. package/dist/mcp/tools.d.ts +4 -0
  86. package/dist/mcp/tools.d.ts.map +1 -0
  87. package/dist/mcp/tools.js +370 -0
  88. package/dist/mcp/tools.js.map +1 -0
  89. package/dist/namespace.d.ts +6 -6
  90. package/dist/namespace.js +6 -6
  91. package/dist/resources/api-access.d.ts +1 -1
  92. package/dist/resources/api-access.js +1 -1
  93. package/dist/resources/lifecycle.d.ts +2 -2
  94. package/dist/resources/lifecycle.js +2 -2
  95. package/dist/resources/logs.d.ts +1 -1
  96. package/dist/resources/logs.js +1 -1
  97. package/dist/resources/metrics.d.ts +1 -1
  98. package/dist/resources/metrics.js +1 -1
  99. package/dist/resources/network.d.ts +1 -1
  100. package/dist/resources/network.js +1 -1
  101. package/dist/resources/public-access.d.ts +1 -1
  102. package/dist/resources/public-access.js +1 -1
  103. package/dist/resources/resources.d.ts +1 -1
  104. package/dist/resources/resources.js +1 -1
  105. package/dist/runtime/exec.d.ts +2 -2
  106. package/dist/runtime/exec.js +2 -2
  107. package/dist/runtime/files.d.ts +1 -1
  108. package/dist/runtime/files.js +1 -1
  109. package/dist/runtime/transfer.d.ts +34 -0
  110. package/dist/runtime/transfer.d.ts.map +1 -0
  111. package/dist/runtime/transfer.js +49 -0
  112. package/dist/runtime/transfer.js.map +1 -0
  113. package/dist/runtime/ws.d.ts +2 -2
  114. package/dist/runtime/ws.js +2 -2
  115. package/dist/runtime-http.d.ts +7 -0
  116. package/dist/runtime-http.d.ts.map +1 -1
  117. package/dist/runtime-http.js +17 -0
  118. package/dist/runtime-http.js.map +1 -1
  119. package/dist/runtime.d.ts +9 -6
  120. package/dist/runtime.d.ts.map +1 -1
  121. package/dist/runtime.js +10 -6
  122. package/dist/runtime.js.map +1 -1
  123. package/dist/types/index.d.ts +1 -1
  124. package/dist/types/index.d.ts.map +1 -1
  125. package/dist/types/runtime.d.ts +24 -4
  126. package/dist/types/runtime.d.ts.map +1 -1
  127. package/dist/types/workspace.d.ts +6 -0
  128. package/dist/types/workspace.d.ts.map +1 -1
  129. package/dist/workspace-handle.d.ts +9 -9
  130. package/dist/workspace-handle.js +9 -9
  131. package/dist/workspace.d.ts +14 -14
  132. package/dist/workspace.d.ts.map +1 -1
  133. package/dist/workspace.js +16 -16
  134. package/dist/workspace.js.map +1 -1
  135. package/package.json +6 -2
@@ -0,0 +1,370 @@
1
+ import { z } from 'zod';
2
+ function wrap(fn) {
3
+ return fn()
4
+ .then(r => ({ content: [{ type: 'text', text: JSON.stringify(r, null, 2) }] }))
5
+ .catch(e => ({ isError: true, content: [{ type: 'text', text: String(e?.message || e) }] }));
6
+ }
7
+ const wsId = z.string().describe('Workspace ID (e.g. ws_abc123)');
8
+ // ── Registration ─────────────────────────────────────────────────────
9
+ export function registerTools(server, client) {
10
+ const ws = client.workspaces;
11
+ const http = client._http;
12
+ // ════════════════════════════════════════════════════════════════════
13
+ // Core (10 tools)
14
+ // ════════════════════════════════════════════════════════════════════
15
+ server.tool('workspace_images', 'List available base images', {}, () => wrap(() => ws.images.list()));
16
+ server.tool('workspace_create', 'Create a new workspace', {
17
+ image: z.string().optional().describe('Base image name'),
18
+ region: z.string().optional().describe('Region code'),
19
+ name: z.string().optional().describe('Workspace name'),
20
+ vcpus: z.number().optional().describe('Number of vCPUs'),
21
+ ram_mb: z.number().optional().describe('RAM in MB'),
22
+ disk_mb: z.number().optional().describe('Disk in MB'),
23
+ namespace: z.string().optional().describe('Namespace slug'),
24
+ }, (args) => wrap(() => ws.create(args)));
25
+ server.tool('workspace_list', 'List workspaces with optional filters', {
26
+ page: z.number().optional().describe('Page number'),
27
+ limit: z.number().optional().describe('Results per page'),
28
+ status: z.string().optional().describe('Filter by status'),
29
+ namespace: z.string().optional().describe('Namespace slug'),
30
+ }, (args) => wrap(() => ws.list(args)));
31
+ server.tool('workspace_usage_global', 'Get global usage across all workspaces', {}, () => wrap(() => ws.usage.global()));
32
+ server.tool('workspace_activity', 'Get recent activity log', {}, () => wrap(() => ws.usage.activity()));
33
+ server.tool('workspace_quota', 'Get account quota and limits', {}, () => wrap(() => ws.getQuota()));
34
+ server.tool('workspace_estimate', 'Estimate monthly credit cost', {
35
+ cpu: z.number().optional().describe('Number of vCPUs'),
36
+ ram_mb: z.number().optional().describe('RAM in MB'),
37
+ disk_mb: z.number().optional().describe('Disk in MB'),
38
+ }, (args) => wrap(() => ws.getEstimate(args)));
39
+ server.tool('workspace_get', 'Get a single workspace by ID', {
40
+ workspace_id: wsId,
41
+ }, (args) => wrap(() => ws.get(args.workspace_id)));
42
+ server.tool('workspace_update', 'Update workspace settings', {
43
+ workspace_id: wsId,
44
+ name: z.string().optional().describe('New workspace name'),
45
+ auto_stop_seconds: z.number().optional().describe('Auto-stop timeout'),
46
+ }, ({ workspace_id, ...params }) => wrap(() => ws.update(workspace_id, params)));
47
+ server.tool('workspace_delete', 'Permanently delete a workspace', {
48
+ workspace_id: wsId,
49
+ }, (args) => wrap(() => ws.delete(args.workspace_id)));
50
+ // ════════════════════════════════════════════════════════════════════
51
+ // Overlay / Filesystem (6 tools)
52
+ // ════════════════════════════════════════════════════════════════════
53
+ server.tool('workspace_overlay_list', 'List files in workspace overlay', {
54
+ workspace_id: wsId,
55
+ }, (args) => wrap(() => http.request({ method: 'GET', path: `/workspace/${args.workspace_id}/overlay` })));
56
+ server.tool('workspace_overlay_usage', 'Get overlay disk usage', {
57
+ workspace_id: wsId,
58
+ }, (args) => wrap(() => http.request({ method: 'GET', path: `/workspace/${args.workspace_id}/overlay/usage` })));
59
+ server.tool('workspace_overlay_read', 'Read a file from overlay', {
60
+ workspace_id: wsId,
61
+ path: z.string().describe('File path within overlay'),
62
+ }, (args) => wrap(() => http.request({
63
+ method: 'GET', path: `/workspace/${args.workspace_id}/overlay/files`,
64
+ query: { path: args.path },
65
+ })));
66
+ server.tool('workspace_overlay_write', 'Write a file to overlay', {
67
+ workspace_id: wsId,
68
+ path: z.string().describe('File path within overlay'),
69
+ content: z.string().describe('File content'),
70
+ }, (args) => wrap(() => http.request({
71
+ method: 'POST', path: `/workspace/${args.workspace_id}/overlay/files`,
72
+ body: { path: args.path, content: args.content },
73
+ })));
74
+ server.tool('workspace_overlay_resize', 'Resize overlay partition', {
75
+ workspace_id: wsId,
76
+ size_mb: z.number().describe('New size in MB'),
77
+ }, (args) => wrap(() => http.request({
78
+ method: 'PUT', path: `/workspace/${args.workspace_id}/overlay/resize`,
79
+ body: { size_mb: args.size_mb },
80
+ })));
81
+ server.tool('workspace_overlay_sync', 'Sync overlay to persistent storage', {
82
+ workspace_id: wsId,
83
+ }, (args) => wrap(() => http.request({
84
+ method: 'POST', path: `/workspace/${args.workspace_id}/overlay/sync`,
85
+ })));
86
+ // ════════════════════════════════════════════════════════════════════
87
+ // Power (5 tools)
88
+ // ════════════════════════════════════════════════════════════════════
89
+ server.tool('workspace_start', 'Start a stopped workspace', {
90
+ workspace_id: wsId,
91
+ }, (args) => wrap(() => ws.start(args.workspace_id)));
92
+ server.tool('workspace_stop', 'Stop a running workspace', {
93
+ workspace_id: wsId,
94
+ }, (args) => wrap(() => ws.stop(args.workspace_id)));
95
+ server.tool('workspace_restart', 'Restart a workspace', {
96
+ workspace_id: wsId,
97
+ }, (args) => wrap(() => ws.restart(args.workspace_id)));
98
+ server.tool('workspace_pause', 'Pause (suspend) a workspace', {
99
+ workspace_id: wsId,
100
+ }, (args) => wrap(() => ws.pause(args.workspace_id)));
101
+ server.tool('workspace_resume', 'Resume a paused workspace', {
102
+ workspace_id: wsId,
103
+ }, (args) => wrap(() => ws.resume(args.workspace_id)));
104
+ // ════════════════════════════════════════════════════════════════════
105
+ // Lifecycle (6 tools)
106
+ // ════════════════════════════════════════════════════════════════════
107
+ server.tool('workspace_lifecycle_get', 'Get lifecycle state', {
108
+ workspace_id: wsId,
109
+ }, (args) => wrap(() => ws.lifecycle.get(args.workspace_id)));
110
+ server.tool('workspace_lifecycle_permanent', 'Make workspace permanent', {
111
+ workspace_id: wsId,
112
+ }, (args) => wrap(() => ws.lifecycle.makePermanent(args.workspace_id)));
113
+ server.tool('workspace_lifecycle_temporary', 'Make workspace temporary with TTL', {
114
+ workspace_id: wsId,
115
+ ttl: z.union([z.string(), z.number()]).optional().describe('Time-to-live (seconds or duration string)'),
116
+ }, ({ workspace_id, ...params }) => wrap(() => ws.lifecycle.makeTemporary(workspace_id, params)));
117
+ server.tool('workspace_lifecycle_ttl', 'Update TTL settings', {
118
+ workspace_id: wsId,
119
+ ttl: z.union([z.string(), z.number()]).optional().describe('New TTL (seconds or duration string)'),
120
+ }, ({ workspace_id, ...params }) => wrap(() => ws.lifecycle.updateTtl(workspace_id, params)));
121
+ server.tool('workspace_ping', 'Keep-alive ping — renews TTL', {
122
+ workspace_id: wsId,
123
+ ttl_seconds: z.number().optional().describe('Override TTL in seconds'),
124
+ }, ({ workspace_id, ...params }) => wrap(() => ws.lifecycle.ping(workspace_id, params)));
125
+ server.tool('workspace_lifecycle_destroy', 'Destroy workspace lifecycle', {
126
+ workspace_id: wsId,
127
+ }, (args) => wrap(() => ws.lifecycle.destroy(args.workspace_id)));
128
+ // ════════════════════════════════════════════════════════════════════
129
+ // Logs (5 tools)
130
+ // ════════════════════════════════════════════════════════════════════
131
+ server.tool('workspace_logs', 'Get recent workspace logs', {
132
+ workspace_id: wsId,
133
+ tail_lines: z.number().optional().describe('Number of lines'),
134
+ source: z.string().optional().describe('Log source filter'),
135
+ }, ({ workspace_id, ...params }) => wrap(() => ws.logs.get(workspace_id, params)));
136
+ server.tool('workspace_logs_clear', 'Clear workspace log buffer', {
137
+ workspace_id: wsId,
138
+ }, (args) => wrap(() => ws.logs.clear(args.workspace_id)));
139
+ server.tool('workspace_logs_list', 'List available log files', {
140
+ workspace_id: wsId,
141
+ }, (args) => wrap(() => ws.logs.listFiles(args.workspace_id)));
142
+ server.tool('workspace_logs_file', 'Get a specific log file by name', {
143
+ workspace_id: wsId,
144
+ name: z.string().describe('Log file name'),
145
+ }, (args) => wrap(() => ws.logs.getFile(args.workspace_id, args.name)));
146
+ server.tool('workspace_logs_boot', 'Get boot logs', {
147
+ workspace_id: wsId,
148
+ tail_lines: z.number().optional().describe('Number of tail lines'),
149
+ }, ({ workspace_id, ...params }) => wrap(async () => {
150
+ const lines = [];
151
+ for await (const event of ws.logs.streamBoot(workspace_id, params)) {
152
+ lines.push(event);
153
+ }
154
+ return lines;
155
+ }));
156
+ // ════════════════════════════════════════════════════════════════════
157
+ // Metrics (3 tools)
158
+ // ════════════════════════════════════════════════════════════════════
159
+ server.tool('workspace_stats', 'Get CPU, memory, disk stats', {
160
+ workspace_id: wsId,
161
+ }, (args) => wrap(() => ws.metrics.stats(args.workspace_id)));
162
+ server.tool('workspace_info', 'Get system information', {
163
+ workspace_id: wsId,
164
+ }, (args) => wrap(() => ws.metrics.info(args.workspace_id)));
165
+ server.tool('workspace_config', 'Get running configuration', {
166
+ workspace_id: wsId,
167
+ }, (args) => wrap(() => ws.metrics.config(args.workspace_id)));
168
+ // ════════════════════════════════════════════════════════════════════
169
+ // Network (3 tools)
170
+ // ════════════════════════════════════════════════════════════════════
171
+ server.tool('workspace_network_get', 'Get network settings', {
172
+ workspace_id: wsId,
173
+ }, (args) => wrap(() => ws.network.get(args.workspace_id)));
174
+ server.tool('workspace_network_update', 'Update network policy', {
175
+ workspace_id: wsId,
176
+ allow_internet: z.boolean().optional().describe('Allow internet access'),
177
+ ingress_ports: z.array(z.number()).optional().describe('Allowed ingress ports'),
178
+ egress: z.array(z.string()).optional().describe('Allowed egress destinations'),
179
+ }, ({ workspace_id, ...params }) => wrap(() => ws.network.update(workspace_id, params)));
180
+ server.tool('workspace_network_ip', 'Assign outbound IP', {
181
+ workspace_id: wsId,
182
+ ip: z.string().describe('IP address to assign'),
183
+ }, ({ workspace_id, ...params }) => wrap(() => ws.network.applyOutboundIp(workspace_id, params)));
184
+ // ════════════════════════════════════════════════════════════════════
185
+ // Snapshots & Archives (7 tools)
186
+ // ════════════════════════════════════════════════════════════════════
187
+ server.tool('workspace_snapshot_create', 'Create a snapshot', {
188
+ workspace_id: wsId,
189
+ }, (args) => wrap(() => ws.snapshots.create(args.workspace_id)));
190
+ server.tool('workspace_snapshot_restore', 'Restore from the latest snapshot', {
191
+ workspace_id: wsId,
192
+ }, (args) => wrap(() => ws.snapshots.restore(args.workspace_id)));
193
+ server.tool('workspace_archive_create', 'Create an archive', {
194
+ workspace_id: wsId,
195
+ }, (args) => wrap(() => ws.snapshots.createArchive(args.workspace_id)));
196
+ server.tool('workspace_archive_list', 'List archives', {
197
+ workspace_id: wsId,
198
+ }, (args) => wrap(() => ws.snapshots.listArchives(args.workspace_id)));
199
+ server.tool('workspace_archive_get', 'Get archive details', {
200
+ workspace_id: wsId,
201
+ version: z.string().describe('Archive version ID'),
202
+ }, (args) => wrap(() => ws.snapshots.getArchive(args.workspace_id, args.version)));
203
+ server.tool('workspace_archive_delete', 'Delete a specific archive', {
204
+ workspace_id: wsId,
205
+ version: z.string().describe('Archive version ID'),
206
+ delete_file: z.boolean().optional().describe('Also delete backing file'),
207
+ }, ({ workspace_id, version, ...params }) => wrap(() => ws.snapshots.deleteArchive(workspace_id, version, params)));
208
+ server.tool('workspace_archive_delete_all', 'Delete all archives', {
209
+ workspace_id: wsId,
210
+ delete_files: z.boolean().optional().describe('Also delete backing files'),
211
+ }, ({ workspace_id, ...params }) => wrap(() => ws.snapshots.deleteAllArchives(workspace_id, params)));
212
+ // ════════════════════════════════════════════════════════════════════
213
+ // SSH (5 tools)
214
+ // ════════════════════════════════════════════════════════════════════
215
+ server.tool('workspace_ssh_status', 'Get SSH status', {
216
+ workspace_id: wsId,
217
+ }, (args) => wrap(() => ws.ssh.status(args.workspace_id)));
218
+ server.tool('workspace_ssh_enable', 'Enable SSH access', {
219
+ workspace_id: wsId,
220
+ }, (args) => wrap(() => ws.ssh.enable(args.workspace_id)));
221
+ server.tool('workspace_ssh_disable', 'Disable SSH access', {
222
+ workspace_id: wsId,
223
+ }, (args) => wrap(() => ws.ssh.disable(args.workspace_id)));
224
+ server.tool('workspace_ssh_password', 'Set SSH password', {
225
+ workspace_id: wsId,
226
+ password: z.string().describe('New SSH password'),
227
+ }, (args) => wrap(() => ws.ssh.setPassword(args.workspace_id, { password: args.password })));
228
+ server.tool('workspace_ssh_key', 'Set authorized SSH key', {
229
+ workspace_id: wsId,
230
+ public_key: z.string().describe('Public SSH key'),
231
+ }, (args) => wrap(() => ws.ssh.setKey(args.workspace_id, { public_key: args.public_key })));
232
+ // ════════════════════════════════════════════════════════════════════
233
+ // Workloads (11 tools)
234
+ // ════════════════════════════════════════════════════════════════════
235
+ server.tool('workspace_workload_create', 'Create a workload', {
236
+ workspace_id: wsId,
237
+ cmd: z.array(z.string()).describe('Command and arguments'),
238
+ name: z.string().optional().describe('Workload name'),
239
+ env: z.array(z.string()).optional().describe('Environment variables (KEY=VALUE)'),
240
+ working_dir: z.string().optional().describe('Working directory'),
241
+ restart_policy: z.enum(['never', 'on-failure', 'always']).optional().describe('Restart policy'),
242
+ }, ({ workspace_id, ...params }) => wrap(() => ws.workloads.create(workspace_id, params)));
243
+ server.tool('workspace_workload_list', 'List workloads', {
244
+ workspace_id: wsId,
245
+ }, (args) => wrap(() => ws.workloads.list(args.workspace_id)));
246
+ server.tool('workspace_workload_get', 'Get workload details', {
247
+ workspace_id: wsId,
248
+ workload_id: z.string().describe('Workload ID'),
249
+ }, (args) => wrap(() => ws.workloads.get(args.workspace_id, args.workload_id)));
250
+ server.tool('workspace_workload_update', 'Update a workload', {
251
+ workspace_id: wsId,
252
+ workload_id: z.string().describe('Workload ID'),
253
+ name: z.string().optional().describe('New name'),
254
+ cmd: z.array(z.string()).optional().describe('New command'),
255
+ restart_policy: z.enum(['never', 'on-failure', 'always']).optional().describe('Restart policy'),
256
+ }, ({ workspace_id, workload_id, ...params }) => wrap(() => ws.workloads.update(workspace_id, workload_id, params)));
257
+ server.tool('workspace_workload_delete', 'Delete a workload', {
258
+ workspace_id: wsId,
259
+ workload_id: z.string().describe('Workload ID'),
260
+ }, (args) => wrap(() => ws.workloads.delete(args.workspace_id, args.workload_id)));
261
+ server.tool('workspace_workload_delete_all', 'Delete all workloads', {
262
+ workspace_id: wsId,
263
+ }, (args) => wrap(() => ws.workloads.deleteAll(args.workspace_id)));
264
+ server.tool('workspace_workload_start', 'Start a workload', {
265
+ workspace_id: wsId,
266
+ workload_id: z.string().describe('Workload ID'),
267
+ }, (args) => wrap(() => ws.workloads.start(args.workspace_id, args.workload_id)));
268
+ server.tool('workspace_workload_stop', 'Stop a workload', {
269
+ workspace_id: wsId,
270
+ workload_id: z.string().describe('Workload ID'),
271
+ }, (args) => wrap(() => ws.workloads.stop(args.workspace_id, args.workload_id)));
272
+ server.tool('workspace_workload_status', 'Get workload status', {
273
+ workspace_id: wsId,
274
+ workload_id: z.string().describe('Workload ID'),
275
+ }, (args) => wrap(() => ws.workloads.status(args.workspace_id, args.workload_id)));
276
+ server.tool('workspace_workload_logs', 'Get workload logs', {
277
+ workspace_id: wsId,
278
+ workload_id: z.string().describe('Workload ID'),
279
+ }, (args) => wrap(() => ws.workloads.logs(args.workspace_id, args.workload_id)));
280
+ server.tool('workspace_workload_stats', 'Get workload resource stats', {
281
+ workspace_id: wsId,
282
+ workload_id: z.string().describe('Workload ID'),
283
+ }, (args) => wrap(() => ws.workloads.stats(args.workspace_id, args.workload_id)));
284
+ // ════════════════════════════════════════════════════════════════════
285
+ // Metadata (2 tools)
286
+ // ════════════════════════════════════════════════════════════════════
287
+ server.tool('workspace_metadata_get', 'Get all metadata key-values', {
288
+ workspace_id: wsId,
289
+ }, (args) => wrap(() => ws.metadata.get(args.workspace_id)));
290
+ server.tool('workspace_metadata_update', 'Set or update metadata', {
291
+ workspace_id: wsId,
292
+ metadata: z.record(z.string(), z.string()).describe('Key-value pairs to set'),
293
+ }, (args) => wrap(() => ws.metadata.update(args.workspace_id, { metadata: args.metadata })));
294
+ // ════════════════════════════════════════════════════════════════════
295
+ // Resources (2 tools)
296
+ // ════════════════════════════════════════════════════════════════════
297
+ server.tool('workspace_resources_get', 'Get resource allocation', {
298
+ workspace_id: wsId,
299
+ }, (args) => wrap(() => ws.resources.get(args.workspace_id)));
300
+ server.tool('workspace_resources_update', 'Update resource allocation (hot resize)', {
301
+ workspace_id: wsId,
302
+ cpus: z.number().optional().describe('Number of CPUs'),
303
+ memory_mb: z.number().optional().describe('RAM in MB'),
304
+ writable_size_mb: z.number().optional().describe('Disk in MB'),
305
+ }, ({ workspace_id, ...params }) => wrap(() => ws.resources.update(workspace_id, params)));
306
+ // ════════════════════════════════════════════════════════════════════
307
+ // Usage (6 tools)
308
+ // ════════════════════════════════════════════════════════════════════
309
+ server.tool('workspace_usage', 'Get workspace usage breakdown', {
310
+ workspace_id: wsId,
311
+ }, (args) => wrap(() => ws.usage.get(args.workspace_id)));
312
+ server.tool('workspace_usage_totals', 'Get workspace usage totals', {
313
+ workspace_id: wsId,
314
+ }, (args) => wrap(() => ws.usage.totals(args.workspace_id)));
315
+ server.tool('workspace_usage_tracking_start', 'Start usage tracking', {
316
+ workspace_id: wsId,
317
+ }, (args) => wrap(() => ws.usage.startTracking(args.workspace_id)));
318
+ server.tool('workspace_usage_tracking_stop', 'Stop usage tracking', {
319
+ workspace_id: wsId,
320
+ }, (args) => wrap(() => ws.usage.stopTracking(args.workspace_id)));
321
+ server.tool('workspace_credits_chart', 'Get credits usage chart data', {
322
+ workspace_id: wsId,
323
+ }, (args) => wrap(() => ws.usage.creditsChart(args.workspace_id)));
324
+ server.tool('workspace_usage_wipe', 'Wipe all usage data', {
325
+ workspace_id: wsId,
326
+ }, (args) => wrap(() => ws.usage.wipe(args.workspace_id)));
327
+ // ════════════════════════════════════════════════════════════════════
328
+ // Public Access (3 tools)
329
+ // ════════════════════════════════════════════════════════════════════
330
+ server.tool('workspace_public_access_list', 'List publicly exposed ports', {
331
+ workspace_id: wsId,
332
+ }, (args) => wrap(() => ws.publicAccess.list(args.workspace_id)));
333
+ server.tool('workspace_public_access_expose', 'Expose a port publicly', {
334
+ workspace_id: wsId,
335
+ port: z.number().describe('Port number to expose'),
336
+ label: z.string().optional().describe('Label for the exposed port'),
337
+ }, ({ workspace_id, ...params }) => wrap(() => ws.publicAccess.expose(workspace_id, params)));
338
+ server.tool('workspace_public_access_revoke', 'Revoke public access on a port', {
339
+ workspace_id: wsId,
340
+ port: z.number().describe('Port number to revoke'),
341
+ }, (args) => wrap(() => ws.publicAccess.revoke(args.workspace_id, args.port)));
342
+ // ════════════════════════════════════════════════════════════════════
343
+ // Internal API Access (6 tools)
344
+ // ════════════════════════════════════════════════════════════════════
345
+ server.tool('workspace_api_access_status', 'Get internal API access status', {
346
+ workspace_id: wsId,
347
+ }, (args) => wrap(() => ws.apiAccess.status(args.workspace_id)));
348
+ server.tool('workspace_api_access_enable', 'Enable internal API', {
349
+ workspace_id: wsId,
350
+ }, (args) => wrap(() => ws.apiAccess.enable(args.workspace_id)));
351
+ server.tool('workspace_api_access_disable', 'Disable internal API', {
352
+ workspace_id: wsId,
353
+ }, (args) => wrap(() => ws.apiAccess.disable(args.workspace_id)));
354
+ server.tool('workspace_api_access_token', 'Get gateway connection token', {
355
+ workspace_id: wsId,
356
+ }, (args) => wrap(() => ws.apiAccess.getToken(args.workspace_id)));
357
+ server.tool('workspace_api_access_token_rotate', 'Rotate gateway connection token', {
358
+ workspace_id: wsId,
359
+ }, (args) => wrap(() => ws.apiAccess.rotateToken(args.workspace_id)));
360
+ server.tool('workspace_api_access_token_raw', 'Get raw connection token', {
361
+ workspace_id: wsId,
362
+ }, (args) => wrap(() => ws.apiAccess.rawToken(args.workspace_id)));
363
+ // ════════════════════════════════════════════════════════════════════
364
+ // Details (1 tool)
365
+ // ════════════════════════════════════════════════════════════════════
366
+ server.tool('workspace_details', 'Get full workspace details (combined info)', {
367
+ workspace_id: wsId,
368
+ }, (args) => wrap(() => ws.getDetails(args.workspace_id)));
369
+ }
370
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { HttpClient } from './http.js';
2
2
  import type { ApiResponse } from './types/common.js';
3
3
  import type { NamespaceData, NamespaceCreateParams, NamespaceUpdateParams, NamespaceListParams, NamespaceListResponse, NamespaceActivityParams, NamespaceUsageParams, NamespaceDeleteParams, SetNamespaceQuotaParams, ResetNamespaceQuotaParams, NamespaceListWithQuotasParams, NamespaceDetailsParams, SetDefaultQuotaParams } from './types/namespace.js';
4
4
  /**
5
- * Namespace operations CRUD, lifecycle actions, activity, and usage.
5
+ * Namespace operations - CRUD, lifecycle actions, activity, and usage.
6
6
  *
7
7
  * ```ts
8
8
  * import Oblien from 'oblien';
@@ -89,7 +89,7 @@ export declare class Namespace {
89
89
  */
90
90
  delete(id: string, params?: NamespaceDeleteParams): Promise<ApiResponse>;
91
91
  /**
92
- * Suspend a namespace stops all running workspaces and sets status to `suspended`.
92
+ * Suspend a namespace - stops all running workspaces and sets status to `suspended`.
93
93
  *
94
94
  * ```ts
95
95
  * await client.namespaces.suspend('ns_abc');
@@ -97,7 +97,7 @@ export declare class Namespace {
97
97
  */
98
98
  suspend(id: string): Promise<ApiResponse>;
99
99
  /**
100
- * Activate a suspended namespace sets status back to `active`.
100
+ * Activate a suspended namespace - sets status back to `active`.
101
101
  *
102
102
  * ```ts
103
103
  * await client.namespaces.activate('ns_abc');
@@ -133,7 +133,7 @@ export declare class Namespace {
133
133
  *
134
134
  * Configures spending limits with optional overdraft (grace zone beyond the
135
135
  * hard limit). When usage exceeds `quotaLimit + overdraft`, the
136
- * `onOverdraftAction` fires either blocking new requests or stopping all
136
+ * `onOverdraftAction` fires - either blocking new requests or stopping all
137
137
  * running workspaces in the namespace.
138
138
  *
139
139
  * ```ts
@@ -159,7 +159,7 @@ export declare class Namespace {
159
159
  /**
160
160
  * List namespaces enriched with quota and spending data.
161
161
  *
162
- * Returns namespace entities merged with financial info total spent,
162
+ * Returns namespace entities merged with financial info - total spent,
163
163
  * active quotas, and per-service breakdown.
164
164
  *
165
165
  * ```ts
@@ -168,7 +168,7 @@ export declare class Namespace {
168
168
  */
169
169
  listWithQuotas(params?: NamespaceListWithQuotasParams): Promise<ApiResponse>;
170
170
  /**
171
- * Get comprehensive namespace details quotas, usage stats, service breakdown,
171
+ * Get comprehensive namespace details - quotas, usage stats, service breakdown,
172
172
  * daily timeline, and recent transactions.
173
173
  *
174
174
  * ```ts
package/dist/namespace.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Namespace operations CRUD, lifecycle actions, activity, and usage.
2
+ * Namespace operations - CRUD, lifecycle actions, activity, and usage.
3
3
  *
4
4
  * ```ts
5
5
  * import Oblien from 'oblien';
@@ -111,7 +111,7 @@ export class Namespace {
111
111
  }
112
112
  // ── Lifecycle actions ─────────────────────────────────────────────
113
113
  /**
114
- * Suspend a namespace stops all running workspaces and sets status to `suspended`.
114
+ * Suspend a namespace - stops all running workspaces and sets status to `suspended`.
115
115
  *
116
116
  * ```ts
117
117
  * await client.namespaces.suspend('ns_abc');
@@ -124,7 +124,7 @@ export class Namespace {
124
124
  });
125
125
  }
126
126
  /**
127
- * Activate a suspended namespace sets status back to `active`.
127
+ * Activate a suspended namespace - sets status back to `active`.
128
128
  *
129
129
  * ```ts
130
130
  * await client.namespaces.activate('ns_abc');
@@ -184,7 +184,7 @@ export class Namespace {
184
184
  *
185
185
  * Configures spending limits with optional overdraft (grace zone beyond the
186
186
  * hard limit). When usage exceeds `quotaLimit + overdraft`, the
187
- * `onOverdraftAction` fires either blocking new requests or stopping all
187
+ * `onOverdraftAction` fires - either blocking new requests or stopping all
188
188
  * running workspaces in the namespace.
189
189
  *
190
190
  * ```ts
@@ -222,7 +222,7 @@ export class Namespace {
222
222
  /**
223
223
  * List namespaces enriched with quota and spending data.
224
224
  *
225
- * Returns namespace entities merged with financial info total spent,
225
+ * Returns namespace entities merged with financial info - total spent,
226
226
  * active quotas, and per-service breakdown.
227
227
  *
228
228
  * ```ts
@@ -237,7 +237,7 @@ export class Namespace {
237
237
  });
238
238
  }
239
239
  /**
240
- * Get comprehensive namespace details quotas, usage stats, service breakdown,
240
+ * Get comprehensive namespace details - quotas, usage stats, service breakdown,
241
241
  * daily timeline, and recent transactions.
242
242
  *
243
243
  * ```ts
@@ -1,7 +1,7 @@
1
1
  import type { HttpClient } from '../http.js';
2
2
  import type { ApiResponse } from '../types/common.js';
3
3
  import type { ApiAccessStatus, RawTokenResponse } from '../types/workspace-resources.js';
4
- /** Internal API server management enable, disable, tokens. */
4
+ /** Internal API server management - enable, disable, tokens. */
5
5
  export declare class ApiAccessResource {
6
6
  private readonly _http;
7
7
  constructor(_http: HttpClient);
@@ -1,4 +1,4 @@
1
- /** Internal API server management enable, disable, tokens. */
1
+ /** Internal API server management - enable, disable, tokens. */
2
2
  export class ApiAccessResource {
3
3
  _http;
4
4
  constructor(_http) {
@@ -1,7 +1,7 @@
1
1
  import type { HttpClient } from '../http.js';
2
2
  import type { ApiResponse } from '../types/common.js';
3
3
  import type { LifecycleStatus, MakeTemporaryParams, UpdateTtlParams } from '../types/workspace-resources.js';
4
- /** Lifecycle management permanent/temporary mode, TTL, ping, destroy. */
4
+ /** Lifecycle management - permanent/temporary mode, TTL, ping, destroy. */
5
5
  export declare class LifecycleResource {
6
6
  private readonly _http;
7
7
  constructor(_http: HttpClient);
@@ -15,7 +15,7 @@ export declare class LifecycleResource {
15
15
  makeTemporary(workspaceId: string, params?: MakeTemporaryParams): Promise<ApiResponse>;
16
16
  /** Update TTL settings. */
17
17
  updateTtl(workspaceId: string, params: UpdateTtlParams): Promise<ApiResponse>;
18
- /** Keep-alive ping renews TTL. */
18
+ /** Keep-alive ping - renews TTL. */
19
19
  ping(workspaceId: string, params?: {
20
20
  ttl_seconds?: number;
21
21
  }): Promise<ApiResponse>;
@@ -1,4 +1,4 @@
1
- /** Lifecycle management permanent/temporary mode, TTL, ping, destroy. */
1
+ /** Lifecycle management - permanent/temporary mode, TTL, ping, destroy. */
2
2
  export class LifecycleResource {
3
3
  _http;
4
4
  constructor(_http) {
@@ -24,7 +24,7 @@ export class LifecycleResource {
24
24
  async updateTtl(workspaceId, params) {
25
25
  return this._http.request({ method: 'PUT', path: `/workspace/${workspaceId}/lifecycle/ttl`, body: params });
26
26
  }
27
- /** Keep-alive ping renews TTL. */
27
+ /** Keep-alive ping - renews TTL. */
28
28
  async ping(workspaceId, params) {
29
29
  return this._http.request({ method: 'POST', path: `/workspace/${workspaceId}/ping`, body: params });
30
30
  }
@@ -1,7 +1,7 @@
1
1
  import type { HttpClient } from '../http.js';
2
2
  import type { ApiResponse } from '../types/common.js';
3
3
  import type { LogsParams, LogFile, LogStreamEvent } from '../types/workspace-resources.js';
4
- /** Workspace logs boot logs, command logs, log files, streaming. */
4
+ /** Workspace logs - boot logs, command logs, log files, streaming. */
5
5
  export declare class LogsResource {
6
6
  private readonly _http;
7
7
  constructor(_http: HttpClient);
@@ -1,4 +1,4 @@
1
- /** Workspace logs boot logs, command logs, log files, streaming. */
1
+ /** Workspace logs - boot logs, command logs, log files, streaming. */
2
2
  export class LogsResource {
3
3
  _http;
4
4
  constructor(_http) {
@@ -1,7 +1,7 @@
1
1
  import type { HttpClient } from '../http.js';
2
2
  import type { ApiResponse } from '../types/common.js';
3
3
  import type { StatsEvent } from '../types/workspace-resources.js';
4
- /** Monitoring live stats, VM info, VM config, stats streaming. */
4
+ /** Monitoring - live stats, VM info, VM config, stats streaming. */
5
5
  export declare class MetricsResource {
6
6
  private readonly _http;
7
7
  constructor(_http: HttpClient);
@@ -1,4 +1,4 @@
1
- /** Monitoring live stats, VM info, VM config, stats streaming. */
1
+ /** Monitoring - live stats, VM info, VM config, stats streaming. */
2
2
  export class MetricsResource {
3
3
  _http;
4
4
  constructor(_http) {
@@ -1,7 +1,7 @@
1
1
  import type { HttpClient } from '../http.js';
2
2
  import type { ApiResponse } from '../types/common.js';
3
3
  import type { NetworkUpdateParams, NetworkConfig } from '../types/workspace-resources.js';
4
- /** Network configuration firewall, private links, public access. */
4
+ /** Network configuration - firewall, private links, public access. */
5
5
  export declare class NetworkResource {
6
6
  private readonly _http;
7
7
  constructor(_http: HttpClient);
@@ -1,4 +1,4 @@
1
- /** Network configuration firewall, private links, public access. */
1
+ /** Network configuration - firewall, private links, public access. */
2
2
  export class NetworkResource {
3
3
  _http;
4
4
  constructor(_http) {