oblien 2.0.2 → 2.0.3

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.
package/dist/client.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { HttpClient } from './http.js';
2
2
  import { Workspace } from './workspace.js';
3
+ import { WorkspaceHandle } from './workspace-handle.js';
3
4
  import type { OblienOptions } from './types/index.js';
4
5
  /**
5
6
  * Oblien API client.
@@ -12,20 +13,37 @@ import type { OblienOptions } from './types/index.js';
12
13
  * clientSecret: process.env.OBLIEN_CLIENT_SECRET!,
13
14
  * });
14
15
  *
15
- * // Via the client
16
+ * // Collection-level operations (list, create, quota)
16
17
  * const data = await client.workspaces.create({ image: 'node' });
17
- * await client.workspaces.start(data.id);
18
18
  *
19
- * // Or standalone (same class)
20
- * import { Workspace } from 'oblien/workspace';
21
- * const ws = new Workspace(client);
19
+ * // Scoped handle bind to a single workspace
20
+ * const ws = client.workspace(data.id);
21
+ * await ws.start();
22
+ * const rt = await ws.runtime();
23
+ * await rt.exec.run(['node', '--version']);
22
24
  * ```
23
25
  */
24
26
  export declare class Oblien {
25
27
  /** @internal — used by resource classes to make HTTP requests. */
26
28
  readonly _http: HttpClient;
27
- /** Workspace operations (CRUD, power, quota). */
29
+ /** Workspace operations (CRUD, power, quota, and sub-resources). */
28
30
  readonly workspaces: Workspace;
29
31
  constructor(options: OblienOptions);
32
+ /**
33
+ * Get a scoped {@link WorkspaceHandle} bound to a single workspace ID.
34
+ *
35
+ * Every method on the handle delegates to `client.workspaces` with
36
+ * the ID pre-filled, so you never have to pass it again.
37
+ *
38
+ * ```ts
39
+ * const ws = client.workspace('ws_abc');
40
+ *
41
+ * await ws.start();
42
+ * const rt = await ws.runtime();
43
+ * await rt.files.list({ dirPath: '/' });
44
+ * await ws.stop();
45
+ * ```
46
+ */
47
+ workspace(workspaceId: string): WorkspaceHandle;
30
48
  }
31
49
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,MAAM;IACjB,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAE3B,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;gBAEnB,OAAO,EAAE,aAAa;CAInC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,MAAM;IACjB,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAE3B,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;gBAEnB,OAAO,EAAE,aAAa;IAKlC;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe;CAGhD"}
package/dist/client.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { HttpClient } from './http.js';
2
2
  import { Workspace } from './workspace.js';
3
+ import { WorkspaceHandle } from './workspace-handle.js';
3
4
  /**
4
5
  * Oblien API client.
5
6
  *
@@ -11,23 +12,42 @@ import { Workspace } from './workspace.js';
11
12
  * clientSecret: process.env.OBLIEN_CLIENT_SECRET!,
12
13
  * });
13
14
  *
14
- * // Via the client
15
+ * // Collection-level operations (list, create, quota)
15
16
  * const data = await client.workspaces.create({ image: 'node' });
16
- * await client.workspaces.start(data.id);
17
17
  *
18
- * // Or standalone (same class)
19
- * import { Workspace } from 'oblien/workspace';
20
- * const ws = new Workspace(client);
18
+ * // Scoped handle bind to a single workspace
19
+ * const ws = client.workspace(data.id);
20
+ * await ws.start();
21
+ * const rt = await ws.runtime();
22
+ * await rt.exec.run(['node', '--version']);
21
23
  * ```
22
24
  */
23
25
  export class Oblien {
24
26
  /** @internal — used by resource classes to make HTTP requests. */
25
27
  _http;
26
- /** Workspace operations (CRUD, power, quota). */
28
+ /** Workspace operations (CRUD, power, quota, and sub-resources). */
27
29
  workspaces;
28
30
  constructor(options) {
29
31
  this._http = new HttpClient(options);
30
32
  this.workspaces = new Workspace(this);
31
33
  }
34
+ /**
35
+ * Get a scoped {@link WorkspaceHandle} bound to a single workspace ID.
36
+ *
37
+ * Every method on the handle delegates to `client.workspaces` with
38
+ * the ID pre-filled, so you never have to pass it again.
39
+ *
40
+ * ```ts
41
+ * const ws = client.workspace('ws_abc');
42
+ *
43
+ * await ws.start();
44
+ * const rt = await ws.runtime();
45
+ * await rt.files.list({ dirPath: '/' });
46
+ * await ws.stop();
47
+ * ```
48
+ */
49
+ workspace(workspaceId) {
50
+ return new WorkspaceHandle(this.workspaces, workspaceId);
51
+ }
32
52
  }
33
53
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,MAAM;IACjB,kEAAkE;IACzD,KAAK,CAAa;IAE3B,iDAAiD;IACxC,UAAU,CAAY;IAE/B,YAAY,OAAsB;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,MAAM;IACjB,kEAAkE;IACzD,KAAK,CAAa;IAE3B,oEAAoE;IAC3D,UAAU,CAAY;IAE/B,YAAY,OAAsB;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,WAAmB;QAC3B,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { Oblien as default } from './client.js';
2
2
  export { Oblien } from './client.js';
3
3
  export { Workspace } from './workspace.js';
4
+ export { WorkspaceHandle } from './workspace-handle.js';
4
5
  export { Runtime } from './runtime.js';
5
6
  export { RuntimeWebSocket } from './runtime/ws.js';
6
7
  export { OblienError, AuthenticationError, NotFoundError, RateLimitError, ValidationError, PaymentRequiredError, ConflictError, } from './error.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,YAAY,EAEV,aAAa,EACb,cAAc,EACd,WAAW,EAEX,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,EAEX,cAAc,EACd,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EAEnB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,cAAc,EAEd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,OAAO,EACP,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,YAAY,EAEV,aAAa,EACb,cAAc,EACd,WAAW,EAEX,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,EAEX,cAAc,EACd,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EAEnB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,cAAc,EAEd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,OAAO,EACP,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ export { Oblien as default } from './client.js';
3
3
  // ── Named exports ──────────────────────────────────────────────────
4
4
  export { Oblien } from './client.js';
5
5
  export { Workspace } from './workspace.js';
6
+ export { WorkspaceHandle } from './workspace-handle.js';
6
7
  export { Runtime } from './runtime.js';
7
8
  export { RuntimeWebSocket } from './runtime/ws.js';
8
9
  // Errors
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AAEhD,sEAAsE;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,SAAS;AACT,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,aAAa,GACd,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AAEhD,sEAAsE;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,SAAS;AACT,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,aAAa,GACd,MAAM,YAAY,CAAC"}
@@ -0,0 +1,112 @@
1
+ import type { Workspace } from './workspace.js';
2
+ import { Runtime } from './runtime.js';
3
+ import type { LifecycleResource } from './resources/lifecycle.js';
4
+ import type { NetworkResource } from './resources/network.js';
5
+ import type { SshResource } from './resources/ssh.js';
6
+ import type { PublicAccessResource } from './resources/public-access.js';
7
+ import type { ResourcesResource } from './resources/resources.js';
8
+ import type { SnapshotsResource } from './resources/snapshots.js';
9
+ import type { WorkloadsResource } from './resources/workloads.js';
10
+ import type { MetricsResource } from './resources/metrics.js';
11
+ import type { UsageResource } from './resources/usage.js';
12
+ import type { MetadataResource } from './resources/metadata.js';
13
+ import type { ApiAccessResource } from './resources/api-access.js';
14
+ import type { LogsResource } from './resources/logs.js';
15
+ import type { ApiResponse, WorkspaceUpdateParams, WorkspaceData } from './types/index.js';
16
+ /** Strip the first arg (workspaceId) from a function's parameters. */
17
+ type DropFirst<F> = F extends (first: string, ...rest: infer R) => infer Ret ? (...args: R) => Ret : F;
18
+ /** Every method on T, but with the first string param pre-filled. */
19
+ type Scoped<T> = {
20
+ [K in keyof T]: DropFirst<T[K]>;
21
+ };
22
+ /**
23
+ * A scoped handle bound to a single workspace ID.
24
+ *
25
+ * Instead of passing the workspace ID to every method:
26
+ * ```ts
27
+ * await client.workspaces.start('ws_abc');
28
+ * await client.workspaces.runtime('ws_abc');
29
+ * ```
30
+ *
31
+ * You bind it once:
32
+ * ```ts
33
+ * const ws = client.workspace('ws_abc');
34
+ * await ws.start();
35
+ * const rt = await ws.runtime();
36
+ * await rt.exec.run(['ls']);
37
+ * ```
38
+ *
39
+ * The handle delegates to the underlying {@link Workspace} class,
40
+ * pre-filling the workspace ID on every call.
41
+ */
42
+ export declare class WorkspaceHandle {
43
+ /** The workspace ID this handle is bound to. */
44
+ readonly id: string;
45
+ /** @internal */
46
+ private readonly _ws;
47
+ /** Lifecycle — permanent/temporary mode, TTL, ping. */
48
+ readonly lifecycle: Scoped<LifecycleResource>;
49
+ /** Network — firewall, private links, outbound IP. */
50
+ readonly network: Scoped<NetworkResource>;
51
+ /** SSH access — enable, disable, set password/key. */
52
+ readonly ssh: Scoped<SshResource>;
53
+ /** Public port access — expose and revoke ports. */
54
+ readonly publicAccess: Scoped<PublicAccessResource>;
55
+ /** Resources — CPU, memory, disk allocation. */
56
+ readonly resources: Scoped<ResourcesResource>;
57
+ /** Snapshots and archives. */
58
+ readonly snapshots: Scoped<SnapshotsResource>;
59
+ /** Managed workloads (long-running processes). */
60
+ readonly workloads: Scoped<WorkloadsResource>;
61
+ /** Monitoring — live CPU/memory/disk/network stats, VM info. */
62
+ readonly metrics: Scoped<MetricsResource>;
63
+ /** Usage tracking. */
64
+ readonly usage: Scoped<UsageResource>;
65
+ /** Metadata key-values. */
66
+ readonly metadata: Scoped<MetadataResource>;
67
+ /** Internal API server management — enable, disable, rotate tokens. */
68
+ readonly apiAccess: Scoped<ApiAccessResource>;
69
+ /** Logs — boot and command logs. */
70
+ readonly logs: Scoped<LogsResource>;
71
+ constructor(workspace: Workspace, workspaceId: string);
72
+ /** Fetch the workspace data. */
73
+ get(): Promise<WorkspaceData>;
74
+ /** Update workspace settings. */
75
+ update(params: WorkspaceUpdateParams): Promise<WorkspaceData>;
76
+ /** Permanently delete the workspace. */
77
+ delete(): Promise<ApiResponse>;
78
+ /** Get aggregated workspace details. */
79
+ getDetails(): Promise<ApiResponse>;
80
+ /** Start the workspace. */
81
+ start(params?: {
82
+ force?: boolean;
83
+ }): Promise<ApiResponse>;
84
+ /** Stop the workspace. */
85
+ stop(): Promise<ApiResponse>;
86
+ /** Restart the workspace. */
87
+ restart(): Promise<ApiResponse>;
88
+ /** Pause the workspace (preserves memory state). */
89
+ pause(): Promise<ApiResponse>;
90
+ /** Resume a paused workspace. */
91
+ resume(): Promise<ApiResponse>;
92
+ /** Keep-alive ping — renews TTL for temporary workspaces. */
93
+ ping(params?: {
94
+ ttl_seconds?: number;
95
+ }): Promise<ApiResponse>;
96
+ /**
97
+ * Get a {@link Runtime} handle (smart enable-if-needed + token caching).
98
+ *
99
+ * ```ts
100
+ * const ws = client.workspace('ws_abc');
101
+ * const rt = await ws.runtime();
102
+ * await rt.exec.run(['ls', '-la']);
103
+ * ```
104
+ */
105
+ runtime(options?: {
106
+ force?: boolean;
107
+ }): Promise<Runtime>;
108
+ /** Invalidate the cached Runtime for this workspace. */
109
+ invalidateRuntime(): void;
110
+ }
111
+ export {};
112
+ //# sourceMappingURL=workspace-handle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-handle.d.ts","sourceRoot":"","sources":["../src/workspace-handle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * @internal
3
+ * Wrap a resource so every method call automatically prepends `workspaceId`.
4
+ */
5
+ function scopeResource(resource, workspaceId) {
6
+ return new Proxy(resource, {
7
+ get(target, prop, _receiver) {
8
+ const val = Reflect.get(target, prop, target);
9
+ if (typeof val !== 'function')
10
+ return val;
11
+ return (...args) => val.call(target, workspaceId, ...args);
12
+ },
13
+ });
14
+ }
15
+ // ─── WorkspaceHandle ─────────────────────────────────────────────────
16
+ /**
17
+ * A scoped handle bound to a single workspace ID.
18
+ *
19
+ * Instead of passing the workspace ID to every method:
20
+ * ```ts
21
+ * await client.workspaces.start('ws_abc');
22
+ * await client.workspaces.runtime('ws_abc');
23
+ * ```
24
+ *
25
+ * You bind it once:
26
+ * ```ts
27
+ * const ws = client.workspace('ws_abc');
28
+ * await ws.start();
29
+ * const rt = await ws.runtime();
30
+ * await rt.exec.run(['ls']);
31
+ * ```
32
+ *
33
+ * The handle delegates to the underlying {@link Workspace} class,
34
+ * pre-filling the workspace ID on every call.
35
+ */
36
+ export class WorkspaceHandle {
37
+ /** The workspace ID this handle is bound to. */
38
+ id;
39
+ /** @internal */
40
+ _ws;
41
+ /** Lifecycle — permanent/temporary mode, TTL, ping. */
42
+ lifecycle;
43
+ /** Network — firewall, private links, outbound IP. */
44
+ network;
45
+ /** SSH access — enable, disable, set password/key. */
46
+ ssh;
47
+ /** Public port access — expose and revoke ports. */
48
+ publicAccess;
49
+ /** Resources — CPU, memory, disk allocation. */
50
+ resources;
51
+ /** Snapshots and archives. */
52
+ snapshots;
53
+ /** Managed workloads (long-running processes). */
54
+ workloads;
55
+ /** Monitoring — live CPU/memory/disk/network stats, VM info. */
56
+ metrics;
57
+ /** Usage tracking. */
58
+ usage;
59
+ /** Metadata key-values. */
60
+ metadata;
61
+ /** Internal API server management — enable, disable, rotate tokens. */
62
+ apiAccess;
63
+ /** Logs — boot and command logs. */
64
+ logs;
65
+ constructor(workspace, workspaceId) {
66
+ this.id = workspaceId;
67
+ this._ws = workspace;
68
+ this.lifecycle = scopeResource(workspace.lifecycle, workspaceId);
69
+ this.network = scopeResource(workspace.network, workspaceId);
70
+ this.ssh = scopeResource(workspace.ssh, workspaceId);
71
+ this.publicAccess = scopeResource(workspace.publicAccess, workspaceId);
72
+ this.resources = scopeResource(workspace.resources, workspaceId);
73
+ this.snapshots = scopeResource(workspace.snapshots, workspaceId);
74
+ this.workloads = scopeResource(workspace.workloads, workspaceId);
75
+ this.metrics = scopeResource(workspace.metrics, workspaceId);
76
+ this.usage = scopeResource(workspace.usage, workspaceId);
77
+ this.metadata = scopeResource(workspace.metadata, workspaceId);
78
+ this.apiAccess = scopeResource(workspace.apiAccess, workspaceId);
79
+ this.logs = scopeResource(workspace.logs, workspaceId);
80
+ }
81
+ // ── Core operations ─────────────────────────────────────────────
82
+ /** Fetch the workspace data. */
83
+ async get() {
84
+ return this._ws.get(this.id);
85
+ }
86
+ /** Update workspace settings. */
87
+ async update(params) {
88
+ return this._ws.update(this.id, params);
89
+ }
90
+ /** Permanently delete the workspace. */
91
+ async delete() {
92
+ return this._ws.delete(this.id);
93
+ }
94
+ /** Get aggregated workspace details. */
95
+ async getDetails() {
96
+ return this._ws.getDetails(this.id);
97
+ }
98
+ // ── Power / lifecycle shortcuts ─────────────────────────────────
99
+ /** Start the workspace. */
100
+ async start(params) {
101
+ return this._ws.start(this.id, params);
102
+ }
103
+ /** Stop the workspace. */
104
+ async stop() {
105
+ return this._ws.stop(this.id);
106
+ }
107
+ /** Restart the workspace. */
108
+ async restart() {
109
+ return this._ws.restart(this.id);
110
+ }
111
+ /** Pause the workspace (preserves memory state). */
112
+ async pause() {
113
+ return this._ws.pause(this.id);
114
+ }
115
+ /** Resume a paused workspace. */
116
+ async resume() {
117
+ return this._ws.resume(this.id);
118
+ }
119
+ /** Keep-alive ping — renews TTL for temporary workspaces. */
120
+ async ping(params) {
121
+ return this._ws.ping(this.id, params);
122
+ }
123
+ // ── Runtime ─────────────────────────────────────────────────────
124
+ /**
125
+ * Get a {@link Runtime} handle (smart enable-if-needed + token caching).
126
+ *
127
+ * ```ts
128
+ * const ws = client.workspace('ws_abc');
129
+ * const rt = await ws.runtime();
130
+ * await rt.exec.run(['ls', '-la']);
131
+ * ```
132
+ */
133
+ async runtime(options) {
134
+ return this._ws.runtime(this.id, options);
135
+ }
136
+ /** Invalidate the cached Runtime for this workspace. */
137
+ invalidateRuntime() {
138
+ this._ws.invalidateRuntime(this.id);
139
+ }
140
+ }
141
+ //# sourceMappingURL=workspace-handle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-handle.js","sourceRoot":"","sources":["../src/workspace-handle.ts"],"names":[],"mappings":"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"}
@@ -35,8 +35,10 @@ export declare class Workspace {
35
35
  /** @internal */
36
36
  readonly _http: HttpClient;
37
37
  private readonly _base;
38
- /** Cached Runtime instances per workspace ID. */
38
+ /** Cached Runtime instances per workspace ID (with creation timestamp). */
39
39
  private readonly _runtimes;
40
+ /** Token TTL in ms — cached runtimes older than this are refreshed. */
41
+ private _tokenTtlMs;
40
42
  /** Lifecycle — permanent/temporary mode, TTL, ping. */
41
43
  readonly lifecycle: LifecycleResource;
42
44
  /** Network — firewall, private links, public access, outbound IP. */
@@ -108,12 +110,13 @@ export declare class Workspace {
108
110
  /**
109
111
  * Get a {@link Runtime} handle for a workspace.
110
112
  *
111
- * On first call, enables the internal API server (if needed) and
112
- * caches the Gateway JWT. Subsequent calls for the same workspace ID
113
- * return the cached Runtime instantly.
113
+ * Follows a smart enable-if-needed flow (mirrors the dashboard):
114
+ * 1. Return cached Runtime if the token hasn't expired.
115
+ * 2. Check server status if already enabled, fetch a read-only
116
+ * gateway JWT (`GET /token`) without re-enabling.
117
+ * 3. If not enabled, call `POST /enable` once and cache the JWT.
114
118
  *
115
- * Pass `{ force: true }` to bypass the cache and fetch a fresh token
116
- * (useful when a cached JWT has expired).
119
+ * Pass `{ force: true }` to bypass the cache and fetch a fresh token.
117
120
  *
118
121
  * ```ts
119
122
  * const rt = await client.workspaces.runtime('ws_abc');
@@ -124,9 +127,16 @@ export declare class Workspace {
124
127
  runtime(workspaceId: string, options?: {
125
128
  force?: boolean;
126
129
  }): Promise<Runtime>;
130
+ /**
131
+ * Set the token TTL used by the runtime cache.
132
+ * Cached runtimes older than this value are automatically refreshed
133
+ * on the next `runtime()` call.
134
+ * @param ms - TTL in milliseconds (default: 55 minutes).
135
+ */
136
+ setTokenTtl(ms: number): void;
127
137
  /**
128
138
  * Invalidate the cached Runtime for a workspace.
129
- * Next call to `runtime()` will fetch a fresh token.
139
+ * Next call to `runtime()` will check status and fetch a fresh token.
130
140
  */
131
141
  invalidateRuntime(workspaceId: string): void;
132
142
  /** Clear all cached Runtime instances. */
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
package/dist/workspace.js CHANGED
@@ -12,6 +12,11 @@ import { MetadataResource } from './resources/metadata.js';
12
12
  import { ApiAccessResource } from './resources/api-access.js';
13
13
  import { LogsResource } from './resources/logs.js';
14
14
  import { ImagesResource } from './resources/images.js';
15
+ /**
16
+ * Default token TTL — 55 minutes.
17
+ * Gateway JWTs typically expire in 60 min; we refresh a bit early.
18
+ */
19
+ const DEFAULT_TOKEN_TTL_MS = 55 * 60 * 1000;
15
20
  /**
16
21
  * Workspace operations namespace.
17
22
  *
@@ -33,8 +38,10 @@ export class Workspace {
33
38
  /** @internal */
34
39
  _http;
35
40
  _base = '/workspace';
36
- /** Cached Runtime instances per workspace ID. */
41
+ /** Cached Runtime instances per workspace ID (with creation timestamp). */
37
42
  _runtimes = new Map();
43
+ /** Token TTL in ms — cached runtimes older than this are refreshed. */
44
+ _tokenTtlMs = DEFAULT_TOKEN_TTL_MS;
38
45
  // ── Sub-resource namespaces ───────────────────────────────────────
39
46
  /** Lifecycle — permanent/temporary mode, TTL, ping. */
40
47
  lifecycle;
@@ -155,12 +162,13 @@ export class Workspace {
155
162
  /**
156
163
  * Get a {@link Runtime} handle for a workspace.
157
164
  *
158
- * On first call, enables the internal API server (if needed) and
159
- * caches the Gateway JWT. Subsequent calls for the same workspace ID
160
- * return the cached Runtime instantly.
165
+ * Follows a smart enable-if-needed flow (mirrors the dashboard):
166
+ * 1. Return cached Runtime if the token hasn't expired.
167
+ * 2. Check server status if already enabled, fetch a read-only
168
+ * gateway JWT (`GET /token`) without re-enabling.
169
+ * 3. If not enabled, call `POST /enable` once and cache the JWT.
161
170
  *
162
- * Pass `{ force: true }` to bypass the cache and fetch a fresh token
163
- * (useful when a cached JWT has expired).
171
+ * Pass `{ force: true }` to bypass the cache and fetch a fresh token.
164
172
  *
165
173
  * ```ts
166
174
  * const rt = await client.workspaces.runtime('ws_abc');
@@ -169,19 +177,46 @@ export class Workspace {
169
177
  * ```
170
178
  */
171
179
  async runtime(workspaceId, options) {
180
+ /* ── 1. Cache hit — return if token is still fresh ── */
172
181
  if (!options?.force) {
173
182
  const cached = this._runtimes.get(workspaceId);
174
- if (cached)
175
- return cached;
183
+ if (cached && (Date.now() - cached.fetchedAt) < this._tokenTtlMs) {
184
+ return cached.runtime;
185
+ }
186
+ }
187
+ /* ── 2. Check status (lightweight GET, no side-effects) ── */
188
+ const status = await this.apiAccess.status(workspaceId);
189
+ let token;
190
+ if (status.enabled) {
191
+ /* Already enabled → just fetch the gateway JWT (read-only GET) */
192
+ const tokenRes = await this.apiAccess.getToken(workspaceId);
193
+ token = tokenRes.token;
194
+ }
195
+ else {
196
+ /* Not enabled → enable once (also returns a gateway JWT) */
197
+ const enableRes = await this.apiAccess.enable(workspaceId);
198
+ token = enableRes.token;
176
199
  }
177
- const access = await this.apiAccess.enable(workspaceId);
178
- const rt = new Runtime({ token: access.token });
179
- this._runtimes.set(workspaceId, rt);
200
+ if (!token) {
201
+ throw new Error(`Failed to obtain a runtime token for workspace ${workspaceId}. ` +
202
+ 'Ensure the workspace is running and the internal API is available.');
203
+ }
204
+ const rt = new Runtime({ token });
205
+ this._runtimes.set(workspaceId, { runtime: rt, fetchedAt: Date.now() });
180
206
  return rt;
181
207
  }
208
+ /**
209
+ * Set the token TTL used by the runtime cache.
210
+ * Cached runtimes older than this value are automatically refreshed
211
+ * on the next `runtime()` call.
212
+ * @param ms - TTL in milliseconds (default: 55 minutes).
213
+ */
214
+ setTokenTtl(ms) {
215
+ this._tokenTtlMs = ms;
216
+ }
182
217
  /**
183
218
  * Invalidate the cached Runtime for a workspace.
184
- * Next call to `runtime()` will fetch a fresh token.
219
+ * Next call to `runtime()` will check status and fetch a fresh token.
185
220
  */
186
221
  invalidateRuntime(workspaceId) {
187
222
  this._runtimes.delete(workspaceId);
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oblien",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "description": "Official TypeScript SDK for the Oblien Workspace API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",