@basilica/openclaw 0.1.0 → 0.2.0

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 (71) hide show
  1. package/dist/gateway/status.d.ts +3 -6
  2. package/dist/gateway/status.d.ts.map +1 -1
  3. package/dist/gateway/status.js +11 -14
  4. package/dist/gateway/status.js.map +1 -1
  5. package/dist/gateway/webhook.d.ts +2 -1
  6. package/dist/gateway/webhook.d.ts.map +1 -1
  7. package/dist/gateway/webhook.js +28 -1
  8. package/dist/gateway/webhook.js.map +1 -1
  9. package/dist/hooks/index.d.ts.map +1 -1
  10. package/dist/hooks/index.js +0 -4
  11. package/dist/hooks/index.js.map +1 -1
  12. package/dist/tools/auth.d.ts +3 -0
  13. package/dist/tools/auth.d.ts.map +1 -0
  14. package/dist/tools/auth.js +170 -0
  15. package/dist/tools/auth.js.map +1 -0
  16. package/dist/tools/billing.d.ts +3 -0
  17. package/dist/tools/billing.d.ts.map +1 -0
  18. package/dist/tools/billing.js +37 -0
  19. package/dist/tools/billing.js.map +1 -0
  20. package/dist/tools/context.d.ts +6 -1
  21. package/dist/tools/context.d.ts.map +1 -1
  22. package/dist/tools/context.js +18 -9
  23. package/dist/tools/context.js.map +1 -1
  24. package/dist/tools/deployments.d.ts.map +1 -1
  25. package/dist/tools/deployments.js +97 -24
  26. package/dist/tools/deployments.js.map +1 -1
  27. package/dist/tools/index.js +10 -10
  28. package/dist/tools/index.js.map +1 -1
  29. package/dist/tools/jobs.d.ts.map +1 -1
  30. package/dist/tools/jobs.js +68 -22
  31. package/dist/tools/jobs.js.map +1 -1
  32. package/dist/tools/rentals.d.ts +3 -0
  33. package/dist/tools/rentals.d.ts.map +1 -0
  34. package/dist/tools/rentals.js +114 -0
  35. package/dist/tools/rentals.js.map +1 -0
  36. package/dist/tools/schemas.d.ts +25 -15
  37. package/dist/tools/schemas.d.ts.map +1 -1
  38. package/dist/tools/schemas.js +139 -69
  39. package/dist/tools/schemas.js.map +1 -1
  40. package/dist/tools/secure-cloud.d.ts +3 -0
  41. package/dist/tools/secure-cloud.d.ts.map +1 -0
  42. package/dist/tools/secure-cloud.js +41 -0
  43. package/dist/tools/secure-cloud.js.map +1 -0
  44. package/openclaw.plugin.json +3 -23
  45. package/package.json +3 -2
  46. package/skills/basilica-operator/index.md +43 -31
  47. package/skills/basilica-platform/index.md +87 -54
  48. package/dist/hooks/model-routing.d.ts +0 -3
  49. package/dist/hooks/model-routing.d.ts.map +0 -1
  50. package/dist/hooks/model-routing.js +0 -11
  51. package/dist/hooks/model-routing.js.map +0 -1
  52. package/dist/hooks/tool-policy.d.ts +0 -3
  53. package/dist/hooks/tool-policy.d.ts.map +0 -1
  54. package/dist/hooks/tool-policy.js +0 -44
  55. package/dist/hooks/tool-policy.js.map +0 -1
  56. package/dist/tools/datasets.d.ts +0 -3
  57. package/dist/tools/datasets.d.ts.map +0 -1
  58. package/dist/tools/datasets.js +0 -57
  59. package/dist/tools/datasets.js.map +0 -1
  60. package/dist/tools/gpu.d.ts +0 -3
  61. package/dist/tools/gpu.d.ts.map +0 -1
  62. package/dist/tools/gpu.js +0 -63
  63. package/dist/tools/gpu.js.map +0 -1
  64. package/dist/tools/inference.d.ts +0 -3
  65. package/dist/tools/inference.d.ts.map +0 -1
  66. package/dist/tools/inference.js +0 -42
  67. package/dist/tools/inference.js.map +0 -1
  68. package/dist/tools/logs.d.ts +0 -3
  69. package/dist/tools/logs.d.ts.map +0 -1
  70. package/dist/tools/logs.js +0 -44
  71. package/dist/tools/logs.js.map +0 -1
@@ -2,66 +2,99 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- Basilica is a GPU compute and AI infrastructure platform. It provides managed inference, training jobs, model deployments, and dataset management through a unified API.
5
+ Basilica is a decentralized GPU cloud infrastructure platform built on the Bittensor network. It provides bare-metal GPU rentals with SSH access, Kubernetes container deployments, stateful container jobs, and a secure cloud GPU marketplace -- all accessible through a unified API at api.basilica.ai.
6
6
 
7
7
  ## Resource Model
8
8
 
9
- ### Organizations
10
- - Top-level grouping for teams and billing
11
- - Each org has one or more projects
12
-
13
- ### Projects
14
- - Primary scope for all resources (jobs, deployments, datasets, GPU allocations)
15
- - Tools require a project scope -- either from config or explicit parameter
16
- - Format: `org-name/project-name`
17
-
18
- ### Models
19
- - Identified by `modelId` (e.g., `basilica/llama-3-70b`)
20
- - Available for inference and deployment
21
- - Some models require specific GPU types
22
-
23
- ### Jobs
24
- - Types: training, inference, fine-tune, evaluation
25
- - Lifecycle: queued -> running -> completed/failed/cancelled
26
- - Each job is scoped to a project
27
-
28
- ### GPU/Compute
29
- - Types: A100, H100, H200, L40S, T4
30
- - Allocations are time-bound and region-specific
31
- - Request compute before submitting large jobs
32
-
33
- ### Deployments
34
- - Serve models as persistent endpoints
35
- - Lifecycle: deploying -> active/failed -> stopped
36
- - Support health checks, restart, and rolling updates
37
-
38
- ### Datasets
39
- - Immutable versioned data artifacts
40
- - Metadata includes format, size, row count
41
- - Artifacts are the physical storage locations
9
+ ### Rentals (Bare Metal GPU Servers)
10
+ - Rent GPU servers directly from miners on the Bittensor network
11
+ - Full SSH access to bare-metal hardware
12
+ - Supports: A100, H100, H200, L40S, and other GPU categories
13
+ - Pay per hour with configurable max rate in cents
14
+ - Lifecycle: starting -> running -> stopped
15
+
16
+ ### Deployments (Kubernetes Containers)
17
+ - Deploy Docker containers on Basilica's managed Kubernetes cluster
18
+ - Auto-scaled with configurable replica count
19
+ - Built-in load balancing, health checks, and public URL assignment
20
+ - GPU acceleration optional (specify gpuCount and gpuModels)
21
+ - Lifecycle: deploying -> running -> stopped
22
+
23
+ ### Jobs (Stateful Container Workloads)
24
+ - Run one-off or long-running container jobs
25
+ - Configurable CPU, memory, and GPU resources
26
+ - Time-to-live (TTL) for automatic cleanup
27
+ - Can be suspended and resumed
28
+ - Lifecycle: pending -> running -> completed/failed
29
+
30
+ ### Secure Cloud GPU Marketplace
31
+ - Browse available GPU offerings from vetted providers
32
+ - Compare pricing by GPU type, interconnect, region
33
+ - Rent managed GPU instances (not bare-metal) with SSH
34
+ - Supports both on-demand and spot instances
35
+
36
+ ### Volumes
37
+ - Persistent storage that can be attached to rentals
38
+ - Managed across providers and regions
39
+
40
+ ### Billing
41
+ - Account balance tracking
42
+ - Usage history per rental
43
+ - Deposit account management (Bittensor TAO deposits)
42
44
 
43
45
  ## Authentication
44
46
 
45
- Basilica supports two authentication methods:
46
-
47
- 1. **OAuth (device code flow)** -- interactive login, produces refreshable credentials
48
- 2. **API Token** -- non-interactive, exchanged for short-lived access tokens
49
-
50
- Credentials are stored in OpenClaw's standard auth-profile store.
47
+ Basilica uses API key authentication. Tokens are prefixed with `basilica_` and passed as Bearer tokens.
48
+
49
+ ## Available Tools
50
+
51
+ ### Rental Management
52
+ - `basilica_start_rental` -- Start a bare-metal GPU rental
53
+ - `basilica_get_rental` -- Get rental status and SSH credentials
54
+ - `basilica_stop_rental` -- Stop a running rental
55
+ - `basilica_list_rentals` -- List active rentals
56
+ - `basilica_restart_rental` -- Restart a rental container
57
+ - `basilica_rental_history` -- View historical rental records
58
+
59
+ ### Deployment Management
60
+ - `basilica_create_deployment` -- Create a container deployment
61
+ - `basilica_get_deployment` -- Get deployment status
62
+ - `basilica_list_deployments` -- List all deployments
63
+ - `basilica_delete_deployment` -- Delete a deployment
64
+ - `basilica_restart_deployment` -- Restart a deployment
65
+ - `basilica_scale_deployment` -- Scale deployment replicas
66
+ - `basilica_deployment_logs` -- Get deployment logs
67
+
68
+ ### Job Management
69
+ - `basilica_create_job` -- Create a container job
70
+ - `basilica_job_status` -- Get job status
71
+ - `basilica_delete_job` -- Delete a job
72
+ - `basilica_job_logs` -- Get job logs
73
+ - `basilica_suspend_job` -- Suspend a running job
74
+
75
+ ### GPU Marketplace
76
+ - `basilica_list_gpu_prices` -- Browse available GPU offerings and pricing
77
+ - `basilica_list_gpu_rentals` -- List secure cloud GPU rentals
78
+
79
+ ### Billing
80
+ - `basilica_get_balance` -- Get current account balance
81
+ - `basilica_usage_history` -- View usage and billing history
51
82
 
52
83
  ## Common Workflows
53
84
 
54
- ### Run inference
55
- 1. Verify auth: `openclaw models auth login --provider basilica`
56
- 2. Use `basilica_start_inference` with model and input
57
- 3. Poll with `basilica_query_inference` if async
58
-
59
- ### Submit a training job
60
- 1. Request compute: `basilica_request_compute` for required GPU type
61
- 2. Submit job: `basilica_submit_job` with training config
62
- 3. Monitor: `basilica_job_status`
63
-
64
- ### Deploy a model
65
- 1. Deploy: `basilica_deploy` with model and config
66
- 2. Health check: `basilica_deployment_health`
67
- 3. Restart if needed: `basilica_restart_deployment`
85
+ ### Rent a GPU Server
86
+ 1. Check pricing: `basilica_list_gpu_prices`
87
+ 2. Start rental: `basilica_start_rental` with gpu_category, gpu_count, container_image, ssh_public_key
88
+ 3. Monitor: `basilica_get_rental` to get SSH credentials once running
89
+ 4. Stop when done: `basilica_stop_rental`
90
+
91
+ ### Deploy a Container Service
92
+ 1. Create: `basilica_create_deployment` with instanceName, image, port
93
+ 2. Check status: `basilica_get_deployment`
94
+ 3. Scale if needed: `basilica_scale_deployment`
95
+ 4. View logs: `basilica_deployment_logs`
96
+
97
+ ### Run a Batch Job
98
+ 1. Create: `basilica_create_job` with image, command, resources, ttl_seconds
99
+ 2. Monitor: `basilica_job_status`
100
+ 3. Get output: `basilica_job_logs`
@@ -1,3 +0,0 @@
1
- import type { OpenClawPluginApi } from "openclaw-plugin-types";
2
- export declare function registerModelRouting(api: OpenClawPluginApi, config: Record<string, unknown>): void;
3
- //# sourceMappingURL=model-routing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-routing.d.ts","sourceRoot":"","sources":["../../src/hooks/model-routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAyC,MAAM,uBAAuB,CAAC;AAEtG,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CASlG"}
@@ -1,11 +0,0 @@
1
- export function registerModelRouting(api, config) {
2
- const routing = config.routing;
3
- if (!routing?.preferBasilicaModels)
4
- return;
5
- api.on("before_model_resolve", (event) => {
6
- if (event.requestedModel)
7
- return;
8
- return { modelOverride: "basilica/default" };
9
- }, { priority: 10 });
10
- }
11
- //# sourceMappingURL=model-routing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-routing.js","sourceRoot":"","sources":["../../src/hooks/model-routing.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,GAAsB,EAAE,MAA+B;IAC1F,MAAM,OAAO,GAAG,MAAM,CAAC,OAAyD,CAAC;IAEjF,IAAI,CAAC,OAAO,EAAE,oBAAoB;QAAE,OAAO;IAE3C,GAAG,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAAC,KAAwB,EAA6B,EAAE;QACrF,IAAI,KAAK,CAAC,cAAc;YAAE,OAAO;QACjC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;IAC/C,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { OpenClawPluginApi } from "openclaw-plugin-types";
2
- export declare function registerToolPolicy(api: OpenClawPluginApi, config: Record<string, unknown>): void;
3
- //# sourceMappingURL=tool-policy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-policy.d.ts","sourceRoot":"","sources":["../../src/hooks/tool-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAiC,MAAM,uBAAuB,CAAC;AAS9F,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAyBhG"}
@@ -1,44 +0,0 @@
1
- const BASILICA_TOOL_PREFIX = "basilica_";
2
- const DESTRUCTIVE_TOOLS = new Set([
3
- "basilica_cancel_job",
4
- "basilica_restart_deployment",
5
- ]);
6
- export function registerToolPolicy(api, config) {
7
- const toolGroups = config.toolGroups;
8
- api.on("before_tool_call", (event) => {
9
- if (!event.toolName.startsWith(BASILICA_TOOL_PREFIX))
10
- return;
11
- if (toolGroups && !isToolGroupEnabled(event.toolName, toolGroups)) {
12
- return {
13
- blocked: true,
14
- reason: `Tool group for "${event.toolName}" is disabled in plugin configuration`,
15
- };
16
- }
17
- if (DESTRUCTIVE_TOOLS.has(event.toolName)) {
18
- const params = event.params;
19
- if (!params.projectId && !config.defaultProject) {
20
- return {
21
- blocked: true,
22
- reason: `Destructive operation "${event.toolName}" requires an explicit project scope`,
23
- };
24
- }
25
- }
26
- return undefined;
27
- }, { priority: 5 });
28
- }
29
- function isToolGroupEnabled(toolName, groups) {
30
- if (toolName.includes("inference"))
31
- return groups.inference !== false;
32
- if (toolName.includes("job"))
33
- return groups.jobs !== false;
34
- if (toolName.includes("gpu") || toolName.includes("compute") || toolName.includes("allocation"))
35
- return groups.gpu !== false;
36
- if (toolName.includes("deploy"))
37
- return groups.deployments !== false;
38
- if (toolName.includes("dataset"))
39
- return groups.datasets !== false;
40
- if (toolName.includes("log") || toolName.includes("error"))
41
- return groups.logs !== false;
42
- return true;
43
- }
44
- //# sourceMappingURL=tool-policy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-policy.js","sourceRoot":"","sources":["../../src/hooks/tool-policy.ts"],"names":[],"mappings":"AAEA,MAAM,oBAAoB,GAAG,WAAW,CAAC;AAEzC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,qBAAqB;IACrB,6BAA6B;CAC9B,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAAC,GAAsB,EAAE,MAA+B;IACxF,MAAM,UAAU,GAAG,MAAM,CAAC,UAAiD,CAAC;IAE5E,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,KAAoB,EAAyB,EAAE;QACzE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAAE,OAAO;QAE7D,IAAI,UAAU,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;YAClE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,mBAAmB,KAAK,CAAC,QAAQ,uCAAuC;aACjF,CAAC;QACJ,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAChD,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,0BAA0B,KAAK,CAAC,QAAQ,sCAAsC;iBACvF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,MAA+B;IAC3E,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC;IACtE,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC;IAC3D,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC;IAC7H,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC,WAAW,KAAK,KAAK,CAAC;IACrE,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC;IACnE,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC;IACzF,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { OpenClawPluginApi } from "openclaw-plugin-types";
2
- export declare function registerDatasetTools(api: OpenClawPluginApi): void;
3
- //# sourceMappingURL=datasets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"datasets.d.ts","sourceRoot":"","sources":["../../src/tools/datasets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAI/D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAoDjE"}
@@ -1,57 +0,0 @@
1
- import { resolveBasilicaClient, resolveProjectId, formatError } from "./context.js";
2
- import { datasetListSchema, datasetGetSchema, datasetArtifactsSchema } from "./schemas.js";
3
- export function registerDatasetTools(api) {
4
- api.registerTool((ctx) => ({
5
- name: "basilica_list_datasets",
6
- label: "List Basilica Datasets",
7
- description: "List datasets available on Basilica",
8
- parameters: datasetListSchema,
9
- async execute(_toolCallId, params) {
10
- try {
11
- const client = resolveBasilicaClient(ctx);
12
- const result = await client.datasets.list({
13
- projectId: resolveProjectId(ctx, params),
14
- page: params.page,
15
- pageSize: params.pageSize,
16
- });
17
- return { content: JSON.stringify(result, null, 2) };
18
- }
19
- catch (err) {
20
- return { content: formatError(err) };
21
- }
22
- },
23
- }));
24
- api.registerTool((ctx) => ({
25
- name: "basilica_get_dataset",
26
- label: "Get Basilica Dataset",
27
- description: "Get metadata for a Basilica dataset",
28
- parameters: datasetGetSchema,
29
- async execute(_toolCallId, params) {
30
- try {
31
- const client = resolveBasilicaClient(ctx);
32
- const result = await client.datasets.get(params.datasetId);
33
- return { content: JSON.stringify(result, null, 2) };
34
- }
35
- catch (err) {
36
- return { content: formatError(err) };
37
- }
38
- },
39
- }));
40
- api.registerTool((ctx) => ({
41
- name: "basilica_dataset_artifacts",
42
- label: "Basilica Dataset Artifacts",
43
- description: "Locate artifacts for a Basilica dataset",
44
- parameters: datasetArtifactsSchema,
45
- async execute(_toolCallId, params) {
46
- try {
47
- const client = resolveBasilicaClient(ctx);
48
- const result = await client.datasets.getArtifacts(params.datasetId);
49
- return { content: JSON.stringify(result, null, 2) };
50
- }
51
- catch (err) {
52
- return { content: formatError(err) };
53
- }
54
- },
55
- }));
56
- }
57
- //# sourceMappingURL=datasets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"datasets.js","sourceRoot":"","sources":["../../src/tools/datasets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3F,MAAM,UAAU,oBAAoB,CAAC,GAAsB;IACzD,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,qCAAqC;QAClD,UAAU,EAAE,iBAAiB;QAC7B,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;YAC/B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACxC,SAAS,EAAE,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC;oBACxC,IAAI,EAAE,MAAM,CAAC,IAA0B;oBACvC,QAAQ,EAAE,MAAM,CAAC,QAA8B;iBAChD,CAAC,CAAC;gBACH,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,CAAC;QACH,CAAC;KACF,CAAC,CAAC,CAAC;IAEJ,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,qCAAqC;QAClD,UAAU,EAAE,gBAAgB;QAC5B,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;YAC/B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAmB,CAAC,CAAC;gBACrE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,CAAC;QACH,CAAC;KACF,CAAC,CAAC,CAAC;IAEJ,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,EAAE,4BAA4B;QAClC,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE,yCAAyC;QACtD,UAAU,EAAE,sBAAsB;QAClC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;YAC/B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,SAAmB,CAAC,CAAC;gBAC9E,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,CAAC;QACH,CAAC;KACF,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { OpenClawPluginApi } from "openclaw-plugin-types";
2
- export declare function registerGpuTools(api: OpenClawPluginApi): void;
3
- //# sourceMappingURL=gpu.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gpu.d.ts","sourceRoot":"","sources":["../../src/tools/gpu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAK/D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CA0D7D"}
package/dist/tools/gpu.js DELETED
@@ -1,63 +0,0 @@
1
- import { resolveBasilicaClient, resolveProjectId, formatError } from "./context.js";
2
- import { gpuListSchema, gpuRequestSchema, gpuInspectSchema } from "./schemas.js";
3
- export function registerGpuTools(api) {
4
- api.registerTool((ctx) => ({
5
- name: "basilica_list_gpu",
6
- label: "List Basilica GPU Resources",
7
- description: "List available GPU resources on Basilica",
8
- parameters: gpuListSchema,
9
- async execute(_toolCallId, params) {
10
- try {
11
- const client = resolveBasilicaClient(ctx);
12
- const result = await client.gpu.listResources({
13
- projectId: resolveProjectId(ctx, params),
14
- page: params.page,
15
- pageSize: params.pageSize,
16
- });
17
- return { content: JSON.stringify(result, null, 2) };
18
- }
19
- catch (err) {
20
- return { content: formatError(err) };
21
- }
22
- },
23
- }));
24
- api.registerTool((ctx) => ({
25
- name: "basilica_request_compute",
26
- label: "Request Basilica Compute",
27
- description: "Request GPU compute allocation on Basilica",
28
- parameters: gpuRequestSchema,
29
- async execute(_toolCallId, params) {
30
- try {
31
- const client = resolveBasilicaClient(ctx);
32
- const result = await client.gpu.requestCompute({
33
- gpuType: params.gpuType,
34
- count: params.count,
35
- region: params.region,
36
- projectId: resolveProjectId(ctx, params),
37
- durationHours: params.durationHours,
38
- });
39
- return { content: JSON.stringify(result, null, 2) };
40
- }
41
- catch (err) {
42
- return { content: formatError(err) };
43
- }
44
- },
45
- }));
46
- api.registerTool((ctx) => ({
47
- name: "basilica_inspect_allocation",
48
- label: "Inspect Basilica Allocation",
49
- description: "Inspect a GPU compute allocation on Basilica",
50
- parameters: gpuInspectSchema,
51
- async execute(_toolCallId, params) {
52
- try {
53
- const client = resolveBasilicaClient(ctx);
54
- const result = await client.gpu.getAllocation(params.allocationId);
55
- return { content: JSON.stringify(result, null, 2) };
56
- }
57
- catch (err) {
58
- return { content: formatError(err) };
59
- }
60
- },
61
- }));
62
- }
63
- //# sourceMappingURL=gpu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gpu.js","sourceRoot":"","sources":["../../src/tools/gpu.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { OpenClawPluginApi } from "openclaw-plugin-types";
2
- export declare function registerInferenceTools(api: OpenClawPluginApi): void;
3
- //# sourceMappingURL=inference.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inference.d.ts","sourceRoot":"","sources":["../../src/tools/inference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAI/D,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAqCnE"}
@@ -1,42 +0,0 @@
1
- import { resolveBasilicaClient, resolveProjectId, formatError } from "./context.js";
2
- import { inferenceStartSchema, inferenceQuerySchema } from "./schemas.js";
3
- export function registerInferenceTools(api) {
4
- api.registerTool((ctx) => ({
5
- name: "basilica_start_inference",
6
- label: "Start Basilica Inference",
7
- description: "Start an inference run on a Basilica model",
8
- parameters: inferenceStartSchema,
9
- async execute(_toolCallId, params) {
10
- try {
11
- const client = resolveBasilicaClient(ctx);
12
- const result = await client.inference.start({
13
- modelId: params.modelId,
14
- input: params.input,
15
- parameters: params.parameters,
16
- projectId: resolveProjectId(ctx, params),
17
- });
18
- return { content: JSON.stringify(result, null, 2) };
19
- }
20
- catch (err) {
21
- return { content: formatError(err) };
22
- }
23
- },
24
- }));
25
- api.registerTool((ctx) => ({
26
- name: "basilica_query_inference",
27
- label: "Query Basilica Inference",
28
- description: "Query the status and result of a Basilica inference run",
29
- parameters: inferenceQuerySchema,
30
- async execute(_toolCallId, params) {
31
- try {
32
- const client = resolveBasilicaClient(ctx);
33
- const result = await client.inference.get(params.inferenceId);
34
- return { content: JSON.stringify(result, null, 2) };
35
- }
36
- catch (err) {
37
- return { content: formatError(err) };
38
- }
39
- },
40
- }));
41
- }
42
- //# sourceMappingURL=inference.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inference.js","sourceRoot":"","sources":["../../src/tools/inference.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE1E,MAAM,UAAU,sBAAsB,CAAC,GAAsB;IAC3D,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,EAAE,0BAA0B;QAChC,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,4CAA4C;QACzD,UAAU,EAAE,oBAAoB;QAChC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;YAC/B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;oBAC1C,OAAO,EAAE,MAAM,CAAC,OAAiB;oBACjC,KAAK,EAAE,MAAM,CAAC,KAAe;oBAC7B,UAAU,EAAE,MAAM,CAAC,UAAqC;oBACxD,SAAS,EAAE,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC;iBACzC,CAAC,CAAC;gBACH,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,CAAC;QACH,CAAC;KACF,CAAC,CAAC,CAAC;IAEJ,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,EAAE,0BAA0B;QAChC,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,yDAAyD;QACtE,UAAU,EAAE,oBAAoB;QAChC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;YAC/B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,WAAqB,CAAC,CAAC;gBACxE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,CAAC;QACH,CAAC;KACF,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { OpenClawPluginApi } from "openclaw-plugin-types";
2
- export declare function registerLogTools(api: OpenClawPluginApi): void;
3
- //# sourceMappingURL=logs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/tools/logs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAK/D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CA0C7D"}
@@ -1,44 +0,0 @@
1
- import { resolveBasilicaClient, resolveProjectId, formatError } from "./context.js";
2
- import { logsQuerySchema, logsRecentErrorsSchema } from "./schemas.js";
3
- export function registerLogTools(api) {
4
- api.registerTool((ctx) => ({
5
- name: "basilica_query_logs",
6
- label: "Query Basilica Logs",
7
- description: "Query logs from Basilica platform",
8
- parameters: logsQuerySchema,
9
- async execute(_toolCallId, params) {
10
- try {
11
- const client = resolveBasilicaClient(ctx);
12
- const result = await client.logs.query({
13
- source: params.source,
14
- level: params.level,
15
- since: params.since,
16
- until: params.until,
17
- limit: params.limit,
18
- projectId: resolveProjectId(ctx, params),
19
- });
20
- return { content: JSON.stringify(result, null, 2) };
21
- }
22
- catch (err) {
23
- return { content: formatError(err) };
24
- }
25
- },
26
- }));
27
- api.registerTool((ctx) => ({
28
- name: "basilica_recent_errors",
29
- label: "Basilica Recent Errors",
30
- description: "Get recent error logs from Basilica",
31
- parameters: logsRecentErrorsSchema,
32
- async execute(_toolCallId, params) {
33
- try {
34
- const client = resolveBasilicaClient(ctx);
35
- const result = await client.logs.getRecentErrors(resolveProjectId(ctx, params), params.limit);
36
- return { content: JSON.stringify(result, null, 2) };
37
- }
38
- catch (err) {
39
- return { content: formatError(err) };
40
- }
41
- },
42
- }));
43
- }
44
- //# sourceMappingURL=logs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/tools/logs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEvE,MAAM,UAAU,gBAAgB,CAAC,GAAsB;IACrD,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,mCAAmC;QAChD,UAAU,EAAE,eAAe;QAC3B,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;YAC/B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;oBACrC,MAAM,EAAE,MAAM,CAAC,MAA4B;oBAC3C,KAAK,EAAE,MAAM,CAAC,KAA6B;oBAC3C,KAAK,EAAE,MAAM,CAAC,KAA2B;oBACzC,KAAK,EAAE,MAAM,CAAC,KAA2B;oBACzC,KAAK,EAAE,MAAM,CAAC,KAA2B;oBACzC,SAAS,EAAE,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC;iBACzC,CAAC,CAAC;gBACH,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,CAAC;QACH,CAAC;KACF,CAAC,CAAC,CAAC;IAEJ,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,qCAAqC;QAClD,UAAU,EAAE,sBAAsB;QAClC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;YAC/B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,CAC9C,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,EAC7B,MAAM,CAAC,KAA2B,CACnC,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,CAAC;QACH,CAAC;KACF,CAAC,CAAC,CAAC;AACN,CAAC"}