@imdanibytes/nexus-sdk 0.10.3 → 0.11.1
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/index.d.ts +2 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/sdk.gen.d.ts +18 -1
- package/dist/client/sdk.gen.d.ts.map +1 -1
- package/dist/client/sdk.gen.js +29 -0
- package/dist/client/sdk.gen.js.map +1 -1
- package/dist/client/types.gen.d.ts +96 -0
- package/dist/client/types.gen.d.ts.map +1 -1
- package/dist/index.d.ts +30 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +64 -41
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +113 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +232 -0
- package/dist/server.js.map +1 -0
- package/openapi.json +213 -1
- package/package.json +6 -1
package/dist/client/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { containerStats, editFile, execCommand, getSettings, globFiles, grepFiles, listContainers, listDir, listProcesses, type Options, proxyRequest, putSettings, readFile, systemInfo, writeFile } from './sdk.gen';
|
|
2
|
-
export type { ClientOptions, ContainerInfo, ContainerStatsData, ContainerStatsErrors, ContainerStatsResponse, ContainerStatsResponses, DirEntry, DirListing, EditFileData, EditFileErrors, EditFileResponses, EditRequest, ExecCommandData, ExecCommandErrors, ExecCommandResponse, ExecCommandResponses, ExecRequest, ExecResult, FileContent, GetSettingsData, GetSettingsErrors, GetSettingsResponse, GetSettingsResponses, GlobFilesData, GlobFilesErrors, GlobFilesResponse, GlobFilesResponses, GlobResult, GrepFileMatch, GrepFilesData, GrepFilesErrors, GrepFilesResponse, GrepFilesResponses, GrepLine, GrepResult, ListContainersData, ListContainersErrors, ListContainersResponse, ListContainersResponses, ListDirData, ListDirErrors, ListDirResponse, ListDirResponses, ListProcessesData, ListProcessesErrors, ListProcessesResponse, ListProcessesResponses, ProcessInfo, ProxyRequest, ProxyRequestData, ProxyRequestErrors, ProxyRequestResponse, ProxyRequestResponses, ProxyResponse, PutSettingsData, PutSettingsErrors, PutSettingsResponses, ReadFileData, ReadFileErrors, ReadFileResponse, ReadFileResponses, SystemInfo, SystemInfoData, SystemInfoErrors, SystemInfoResponse, SystemInfoResponses, WriteFileData, WriteFileErrors, WriteFileResponses, WriteRequest } from './types.gen';
|
|
1
|
+
export { callExtension, containerStats, editFile, execCommand, getSettings, globFiles, grepFiles, listContainers, listDir, listExtensions, listProcesses, type Options, proxyRequest, putSettings, readFile, systemInfo, writeFile } from './sdk.gen';
|
|
2
|
+
export type { CallExtensionData, CallExtensionErrors, CallExtensionRequest, CallExtensionResponse, CallExtensionResponse2, CallExtensionResponses, ClientOptions, ContainerInfo, ContainerStatsData, ContainerStatsErrors, ContainerStatsResponse, ContainerStatsResponses, DirEntry, DirListing, EditFileData, EditFileErrors, EditFileResponses, EditRequest, ExecCommandData, ExecCommandErrors, ExecCommandResponse, ExecCommandResponses, ExecRequest, ExecResult, ExtensionErrorResponse, FileContent, GetSettingsData, GetSettingsErrors, GetSettingsResponse, GetSettingsResponses, GlobFilesData, GlobFilesErrors, GlobFilesResponse, GlobFilesResponses, GlobResult, GrepFileMatch, GrepFilesData, GrepFilesErrors, GrepFilesResponse, GrepFilesResponses, GrepLine, GrepResult, ListContainersData, ListContainersErrors, ListContainersResponse, ListContainersResponses, ListDirData, ListDirErrors, ListDirResponse, ListDirResponses, ListExtensionsData, ListExtensionsErrors, ListExtensionsResponse, ListExtensionsResponse2, ListExtensionsResponses, ListProcessesData, ListProcessesErrors, ListProcessesResponse, ListProcessesResponses, PluginExtensionView, PluginOperationView, ProcessInfo, ProxyRequest, ProxyRequestData, ProxyRequestErrors, ProxyRequestResponse, ProxyRequestResponses, ProxyResponse, PutSettingsData, PutSettingsErrors, PutSettingsResponses, ReadFileData, ReadFileErrors, ReadFileResponse, ReadFileResponses, SystemInfo, SystemInfoData, SystemInfoErrors, SystemInfoResponse, SystemInfoResponses, WriteFileData, WriteFileErrors, WriteFileResponses, WriteRequest } from './types.gen';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtP,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,EAAE,sBAAsB,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/client/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// This file is auto-generated by @hey-api/openapi-ts
|
|
2
|
-
export { containerStats, editFile, execCommand, getSettings, globFiles, grepFiles, listContainers, listDir, listProcesses, proxyRequest, putSettings, readFile, systemInfo, writeFile } from './sdk.gen';
|
|
2
|
+
export { callExtension, containerStats, editFile, execCommand, getSettings, globFiles, grepFiles, listContainers, listDir, listExtensions, listProcesses, proxyRequest, putSettings, readFile, systemInfo, writeFile } from './sdk.gen';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAgB,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAgB,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/client/sdk.gen.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Client, Options as Options2, TDataShape } from './client';
|
|
2
|
-
import type { ContainerStatsData, ContainerStatsErrors, ContainerStatsResponses, EditFileData, EditFileErrors, EditFileResponses, ExecCommandData, ExecCommandErrors, ExecCommandResponses, GetSettingsData, GetSettingsErrors, GetSettingsResponses, GlobFilesData, GlobFilesErrors, GlobFilesResponses, GrepFilesData, GrepFilesErrors, GrepFilesResponses, ListContainersData, ListContainersErrors, ListContainersResponses, ListDirData, ListDirErrors, ListDirResponses, ListProcessesData, ListProcessesErrors, ListProcessesResponses, ProxyRequestData, ProxyRequestErrors, ProxyRequestResponses, PutSettingsData, PutSettingsErrors, PutSettingsResponses, ReadFileData, ReadFileErrors, ReadFileResponses, SystemInfoData, SystemInfoErrors, SystemInfoResponses, WriteFileData, WriteFileErrors, WriteFileResponses } from './types.gen';
|
|
2
|
+
import type { CallExtensionData, CallExtensionErrors, CallExtensionResponses, ContainerStatsData, ContainerStatsErrors, ContainerStatsResponses, EditFileData, EditFileErrors, EditFileResponses, ExecCommandData, ExecCommandErrors, ExecCommandResponses, GetSettingsData, GetSettingsErrors, GetSettingsResponses, GlobFilesData, GlobFilesErrors, GlobFilesResponses, GrepFilesData, GrepFilesErrors, GrepFilesResponses, ListContainersData, ListContainersErrors, ListContainersResponses, ListDirData, ListDirErrors, ListDirResponses, ListExtensionsData, ListExtensionsErrors, ListExtensionsResponses, ListProcessesData, ListProcessesErrors, ListProcessesResponses, ProxyRequestData, ProxyRequestErrors, ProxyRequestResponses, PutSettingsData, PutSettingsErrors, PutSettingsResponses, ReadFileData, ReadFileErrors, ReadFileResponses, SystemInfoData, SystemInfoErrors, SystemInfoResponses, WriteFileData, WriteFileErrors, WriteFileResponses } from './types.gen';
|
|
3
3
|
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {
|
|
4
4
|
/**
|
|
5
5
|
* You can provide a client instance returned by `createClient()` instead of
|
|
@@ -15,6 +15,23 @@ export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends
|
|
|
15
15
|
};
|
|
16
16
|
export declare const listContainers: <ThrowOnError extends boolean = false>(options?: Options<ListContainersData, ThrowOnError>) => import("./client").RequestResult<ListContainersResponses, ListContainersErrors, ThrowOnError, "fields">;
|
|
17
17
|
export declare const containerStats: <ThrowOnError extends boolean = false>(options: Options<ContainerStatsData, ThrowOnError>) => import("./client").RequestResult<ContainerStatsResponses, ContainerStatsErrors, ThrowOnError, "fields">;
|
|
18
|
+
/**
|
|
19
|
+
* List extensions declared by the calling plugin.
|
|
20
|
+
*
|
|
21
|
+
* Only returns extensions the plugin declared in its manifest `"extensions"` field.
|
|
22
|
+
* Includes availability status (is it installed and running?) and per-operation
|
|
23
|
+
* permission status. Plugins cannot see extensions they didn't declare.
|
|
24
|
+
*/
|
|
25
|
+
export declare const listExtensions: <ThrowOnError extends boolean = false>(options?: Options<ListExtensionsData, ThrowOnError>) => import("./client").RequestResult<ListExtensionsResponses, ListExtensionsErrors, ThrowOnError, "fields">;
|
|
26
|
+
/**
|
|
27
|
+
* Execute an extension operation.
|
|
28
|
+
*
|
|
29
|
+
* Three-layer security model:
|
|
30
|
+
* 1. PERMISSION: Does this plugin have `ext:{ext_id}:{operation}`?
|
|
31
|
+
* 2. SCOPE: If the operation declares `scope_key`, is the scope value approved?
|
|
32
|
+
* 3. RISK: If risk_level is high, per-invocation runtime approval.
|
|
33
|
+
*/
|
|
34
|
+
export declare const callExtension: <ThrowOnError extends boolean = false>(options: Options<CallExtensionData, ThrowOnError>) => import("./client").RequestResult<CallExtensionResponses, CallExtensionErrors, ThrowOnError, "fields">;
|
|
18
35
|
export declare const editFile: <ThrowOnError extends boolean = false>(options: Options<EditFileData, ThrowOnError>) => import("./client").RequestResult<EditFileResponses, EditFileErrors, ThrowOnError, "fields">;
|
|
19
36
|
export declare const globFiles: <ThrowOnError extends boolean = false>(options: Options<GlobFilesData, ThrowOnError>) => import("./client").RequestResult<GlobFilesResponses, GlobFilesErrors, ThrowOnError, "fields">;
|
|
20
37
|
export declare const grepFiles: <ThrowOnError extends boolean = false>(options: Options<GrepFilesData, ThrowOnError>) => import("./client").RequestResult<GrepFilesResponses, GrepFilesErrors, ThrowOnError, "fields">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.gen.d.ts","sourceRoot":"","sources":["../../src/client/sdk.gen.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,IAAI,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAExE,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sdk.gen.d.ts","sourceRoot":"","sources":["../../src/client/sdk.gen.ts"],"names":[],"mappings":"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"}
|
package/dist/client/sdk.gen.js
CHANGED
|
@@ -10,6 +10,35 @@ export const containerStats = (options) => (options.client ?? client).get({
|
|
|
10
10
|
url: '/api/v1/docker/stats/{id}',
|
|
11
11
|
...options
|
|
12
12
|
});
|
|
13
|
+
/**
|
|
14
|
+
* List extensions declared by the calling plugin.
|
|
15
|
+
*
|
|
16
|
+
* Only returns extensions the plugin declared in its manifest `"extensions"` field.
|
|
17
|
+
* Includes availability status (is it installed and running?) and per-operation
|
|
18
|
+
* permission status. Plugins cannot see extensions they didn't declare.
|
|
19
|
+
*/
|
|
20
|
+
export const listExtensions = (options) => (options?.client ?? client).get({
|
|
21
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
22
|
+
url: '/api/v1/extensions',
|
|
23
|
+
...options
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* Execute an extension operation.
|
|
27
|
+
*
|
|
28
|
+
* Three-layer security model:
|
|
29
|
+
* 1. PERMISSION: Does this plugin have `ext:{ext_id}:{operation}`?
|
|
30
|
+
* 2. SCOPE: If the operation declares `scope_key`, is the scope value approved?
|
|
31
|
+
* 3. RISK: If risk_level is high, per-invocation runtime approval.
|
|
32
|
+
*/
|
|
33
|
+
export const callExtension = (options) => (options.client ?? client).post({
|
|
34
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
35
|
+
url: '/api/v1/extensions/{ext_id}/{operation}',
|
|
36
|
+
...options,
|
|
37
|
+
headers: {
|
|
38
|
+
'Content-Type': 'application/json',
|
|
39
|
+
...options.headers
|
|
40
|
+
}
|
|
41
|
+
});
|
|
13
42
|
export const editFile = (options) => (options.client ?? client).post({
|
|
14
43
|
security: [{ scheme: 'bearer', type: 'http' }],
|
|
15
44
|
url: '/api/v1/fs/edit',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.gen.js","sourceRoot":"","sources":["../../src/client/sdk.gen.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sdk.gen.js","sourceRoot":"","sources":["../../src/client/sdk.gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
export type ClientOptions = {
|
|
2
2
|
baseUrl: `${string}://${string}` | (string & {});
|
|
3
3
|
};
|
|
4
|
+
/**
|
|
5
|
+
* Request body for POST /v1/extensions/{ext_id}/{operation}
|
|
6
|
+
*/
|
|
7
|
+
export type CallExtensionRequest = {
|
|
8
|
+
input?: unknown;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Response for POST /v1/extensions/{ext_id}/{operation}
|
|
12
|
+
*/
|
|
13
|
+
export type CallExtensionResponse = {
|
|
14
|
+
data: unknown;
|
|
15
|
+
message?: string | null;
|
|
16
|
+
success: boolean;
|
|
17
|
+
};
|
|
4
18
|
export type ContainerInfo = {
|
|
5
19
|
id: string;
|
|
6
20
|
image: string;
|
|
@@ -51,6 +65,13 @@ export type ExecResult = {
|
|
|
51
65
|
*/
|
|
52
66
|
timed_out: boolean;
|
|
53
67
|
};
|
|
68
|
+
/**
|
|
69
|
+
* Error response body
|
|
70
|
+
*/
|
|
71
|
+
export type ExtensionErrorResponse = {
|
|
72
|
+
details?: string | null;
|
|
73
|
+
error: string;
|
|
74
|
+
};
|
|
54
75
|
export type FileContent = {
|
|
55
76
|
content: string;
|
|
56
77
|
path: string;
|
|
@@ -78,6 +99,30 @@ export type GrepResult = {
|
|
|
78
99
|
pattern: string;
|
|
79
100
|
search_path: string;
|
|
80
101
|
};
|
|
102
|
+
/**
|
|
103
|
+
* Response for GET /v1/extensions
|
|
104
|
+
*/
|
|
105
|
+
export type ListExtensionsResponse = {
|
|
106
|
+
extensions: Array<PluginExtensionView>;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* A plugin's view of an extension it declared as a dependency.
|
|
110
|
+
*/
|
|
111
|
+
export type PluginExtensionView = {
|
|
112
|
+
available: boolean;
|
|
113
|
+
description?: string | null;
|
|
114
|
+
display_name?: string | null;
|
|
115
|
+
id: string;
|
|
116
|
+
operations: Array<PluginOperationView>;
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* A plugin's view of an operation on a declared extension.
|
|
120
|
+
*/
|
|
121
|
+
export type PluginOperationView = {
|
|
122
|
+
available: boolean;
|
|
123
|
+
name: string;
|
|
124
|
+
permitted: boolean;
|
|
125
|
+
};
|
|
81
126
|
export type ProcessInfo = {
|
|
82
127
|
cpu_usage: number;
|
|
83
128
|
memory: number;
|
|
@@ -165,6 +210,57 @@ export type ContainerStatsResponses = {
|
|
|
165
210
|
};
|
|
166
211
|
};
|
|
167
212
|
export type ContainerStatsResponse = ContainerStatsResponses[keyof ContainerStatsResponses];
|
|
213
|
+
export type ListExtensionsData = {
|
|
214
|
+
body?: never;
|
|
215
|
+
path?: never;
|
|
216
|
+
query?: never;
|
|
217
|
+
url: '/api/v1/extensions';
|
|
218
|
+
};
|
|
219
|
+
export type ListExtensionsErrors = {
|
|
220
|
+
/**
|
|
221
|
+
* Unauthorized
|
|
222
|
+
*/
|
|
223
|
+
401: unknown;
|
|
224
|
+
};
|
|
225
|
+
export type ListExtensionsResponses = {
|
|
226
|
+
/**
|
|
227
|
+
* Extensions declared by this plugin
|
|
228
|
+
*/
|
|
229
|
+
200: ListExtensionsResponse;
|
|
230
|
+
};
|
|
231
|
+
export type ListExtensionsResponse2 = ListExtensionsResponses[keyof ListExtensionsResponses];
|
|
232
|
+
export type CallExtensionData = {
|
|
233
|
+
body: CallExtensionRequest;
|
|
234
|
+
path: {
|
|
235
|
+
/**
|
|
236
|
+
* Extension ID
|
|
237
|
+
*/
|
|
238
|
+
ext_id: string;
|
|
239
|
+
/**
|
|
240
|
+
* Operation name
|
|
241
|
+
*/
|
|
242
|
+
operation: string;
|
|
243
|
+
};
|
|
244
|
+
query?: never;
|
|
245
|
+
url: '/api/v1/extensions/{ext_id}/{operation}';
|
|
246
|
+
};
|
|
247
|
+
export type CallExtensionErrors = {
|
|
248
|
+
/**
|
|
249
|
+
* Unauthorized
|
|
250
|
+
*/
|
|
251
|
+
401: unknown;
|
|
252
|
+
/**
|
|
253
|
+
* Forbidden — extension not found, missing permission, or scope denied
|
|
254
|
+
*/
|
|
255
|
+
403: unknown;
|
|
256
|
+
};
|
|
257
|
+
export type CallExtensionResponses = {
|
|
258
|
+
/**
|
|
259
|
+
* Operation result
|
|
260
|
+
*/
|
|
261
|
+
200: CallExtensionResponse;
|
|
262
|
+
};
|
|
263
|
+
export type CallExtensionResponse2 = CallExtensionResponses[keyof CallExtensionResponses];
|
|
168
264
|
export type EditFileData = {
|
|
169
265
|
body: EditRequest;
|
|
170
266
|
path?: never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.gen.d.ts","sourceRoot":"","sources":["../../src/client/types.gen.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.gen.d.ts","sourceRoot":"","sources":["../../src/client/types.gen.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* TypeScript SDK for Nexus plugins. Generated HTTP client from the Host API
|
|
5
5
|
* OpenAPI spec, with a hand-written convenience wrapper.
|
|
6
6
|
*
|
|
7
|
-
* Usage inside a plugin:
|
|
7
|
+
* Usage inside a plugin UI (browser):
|
|
8
8
|
*
|
|
9
9
|
* ```ts
|
|
10
10
|
* import { NexusPlugin } from "@imdanibytes/nexus-sdk";
|
|
@@ -12,9 +12,13 @@
|
|
|
12
12
|
* const nexus = await NexusPlugin.init();
|
|
13
13
|
* const info = await nexus.systemInfo();
|
|
14
14
|
* const settings = await nexus.getSettings();
|
|
15
|
+
* const result = await nexus.callExtension("my-ext", "my-op", { key: "val" });
|
|
15
16
|
* ```
|
|
17
|
+
*
|
|
18
|
+
* Auth is fully transparent — the SDK handles token acquisition, refresh,
|
|
19
|
+
* and retry automatically. Plugins never touch credentials.
|
|
16
20
|
*/
|
|
17
|
-
export type { SystemInfo, FileContent, DirListing, DirEntry, ProcessInfo, ContainerInfo, ProxyRequest, ProxyResponse, WriteRequest, } from "./client/types.gen";
|
|
21
|
+
export type { SystemInfo, FileContent, DirListing, DirEntry, ProcessInfo, ContainerInfo, ProxyRequest, ProxyResponse, WriteRequest, CallExtensionRequest, CallExtensionResponse, ListExtensionsResponse, PluginExtensionView, PluginOperationView, } from "./client/types.gen";
|
|
18
22
|
/** Payload shape for host → plugin system events via postMessage. */
|
|
19
23
|
export interface NexusHostEvent {
|
|
20
24
|
type: "nexus:system";
|
|
@@ -25,27 +29,21 @@ export interface NexusHostEvent {
|
|
|
25
29
|
export type NexusEventHandler = (event: string, data: unknown) => void;
|
|
26
30
|
export * as sdk from "./client/sdk.gen";
|
|
27
31
|
export { client } from "./client/client.gen";
|
|
28
|
-
interface PluginConfig {
|
|
29
|
-
token: string;
|
|
30
|
-
apiUrl: string;
|
|
31
|
-
}
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
34
|
-
* plugin's `/api/config` endpoint and configures the HTTP client.
|
|
35
|
-
*
|
|
36
|
-
* The plugin server handles the secret-to-token exchange. The browser
|
|
37
|
-
* only ever sees the short-lived access token.
|
|
33
|
+
* Browser-side SDK for Nexus plugin UIs.
|
|
38
34
|
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
35
|
+
* Auth is fully transparent: the plugin server handles credential management,
|
|
36
|
+
* and this class automatically retries on 401 by re-fetching config.
|
|
37
|
+
* Plugins never see tokens, secrets, or auth protocol details.
|
|
41
38
|
*/
|
|
42
39
|
export declare class NexusPlugin {
|
|
43
|
-
config: PluginConfig;
|
|
44
40
|
private configUrl;
|
|
41
|
+
private token;
|
|
42
|
+
private apiUrl;
|
|
45
43
|
private constructor();
|
|
46
44
|
/**
|
|
47
|
-
* Initialize the SDK. Fetches
|
|
48
|
-
* configures the HTTP client
|
|
45
|
+
* Initialize the SDK. Fetches config from the plugin server and
|
|
46
|
+
* configures the HTTP client. Auth is handled automatically.
|
|
49
47
|
*
|
|
50
48
|
* @param configUrl - Override the config endpoint (defaults to `/api/config`)
|
|
51
49
|
*/
|
|
@@ -54,15 +52,14 @@ export declare class NexusPlugin {
|
|
|
54
52
|
* Configure the SDK manually (for use outside plugin iframes, e.g. tests).
|
|
55
53
|
*/
|
|
56
54
|
static configure(apiUrl: string, token: string): NexusPlugin;
|
|
57
|
-
/**
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
refreshToken(): Promise<string>;
|
|
55
|
+
/** Re-fetch config from the plugin server (which handles credential refresh). */
|
|
56
|
+
private _refreshConfig;
|
|
57
|
+
/** Execute a generated SDK call with automatic 401 retry. */
|
|
58
|
+
private _withRetry;
|
|
62
59
|
systemInfo(): Promise<import(".").SystemInfo>;
|
|
63
60
|
readFile(path: string): Promise<import(".").FileContent>;
|
|
64
61
|
listDir(path: string): Promise<import(".").DirListing>;
|
|
65
|
-
writeFile(path: string, content: string): Promise<
|
|
62
|
+
writeFile(path: string, content: string): Promise<unknown>;
|
|
66
63
|
listProcesses(): Promise<import(".").ProcessInfo[]>;
|
|
67
64
|
listContainers(): Promise<import(".").ContainerInfo[]>;
|
|
68
65
|
containerStats(id: string): Promise<{
|
|
@@ -75,7 +72,17 @@ export declare class NexusPlugin {
|
|
|
75
72
|
getSettings(): Promise<{
|
|
76
73
|
[key: string]: unknown;
|
|
77
74
|
}>;
|
|
78
|
-
saveSettings(values: Record<string, unknown>): Promise<
|
|
75
|
+
saveSettings(values: Record<string, unknown>): Promise<unknown>;
|
|
76
|
+
/**
|
|
77
|
+
* Call an extension operation.
|
|
78
|
+
*
|
|
79
|
+
* ```ts
|
|
80
|
+
* const result = await nexus.callExtension("my-ext", "my-op", { key: "val" });
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
callExtension(extensionId: string, operation: string, input?: Record<string, unknown>): Promise<import(".").CallExtensionResponse>;
|
|
84
|
+
/** List extensions available to this plugin. */
|
|
85
|
+
listExtensions(): Promise<import(".").ListExtensionsResponse>;
|
|
79
86
|
/**
|
|
80
87
|
* Listen for system events pushed from the Nexus host via postMessage.
|
|
81
88
|
*
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAkBH,YAAY,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,qEAAqE;AACrE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAED,uCAAuC;AACvC,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAGvE,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAQ7C;;;;;;GAMG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO;IAMP;;;;;OAKG;WACU,IAAI,CAAC,SAAS,SAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAkBlE;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW;IAO5D,iFAAiF;YACnE,cAAc;IAoB5B,6DAA6D;YAC/C,UAAU;IAmBlB,UAAU;IAMV,QAAQ,CAAC,IAAI,EAAE,MAAM;IAIrB,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAMvC,aAAa;IAMb,cAAc;IAId,cAAc,CAAC,EAAE,EAAE,MAAM;;;IAMzB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAQvG,WAAW;;;IAIX,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAMlD;;;;;;OAMG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAO/F,gDAAgD;IAC1C,cAAc;IAMpB;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,IAAI;CAUpD"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* TypeScript SDK for Nexus plugins. Generated HTTP client from the Host API
|
|
5
5
|
* OpenAPI spec, with a hand-written convenience wrapper.
|
|
6
6
|
*
|
|
7
|
-
* Usage inside a plugin:
|
|
7
|
+
* Usage inside a plugin UI (browser):
|
|
8
8
|
*
|
|
9
9
|
* ```ts
|
|
10
10
|
* import { NexusPlugin } from "@imdanibytes/nexus-sdk";
|
|
@@ -12,33 +12,36 @@
|
|
|
12
12
|
* const nexus = await NexusPlugin.init();
|
|
13
13
|
* const info = await nexus.systemInfo();
|
|
14
14
|
* const settings = await nexus.getSettings();
|
|
15
|
+
* const result = await nexus.callExtension("my-ext", "my-op", { key: "val" });
|
|
15
16
|
* ```
|
|
17
|
+
*
|
|
18
|
+
* Auth is fully transparent — the SDK handles token acquisition, refresh,
|
|
19
|
+
* and retry automatically. Plugins never touch credentials.
|
|
16
20
|
*/
|
|
17
21
|
import { client } from "./client/client.gen";
|
|
18
|
-
import { systemInfo as _systemInfo, readFile as _readFile, listDir as _listDir, writeFile as _writeFile, listProcesses as _listProcesses, listContainers as _listContainers, containerStats as _containerStats, proxyRequest as _proxyRequest, getSettings as _getSettings, putSettings as _putSettings, } from "./client/sdk.gen";
|
|
22
|
+
import { systemInfo as _systemInfo, readFile as _readFile, listDir as _listDir, writeFile as _writeFile, listProcesses as _listProcesses, listContainers as _listContainers, containerStats as _containerStats, proxyRequest as _proxyRequest, getSettings as _getSettings, putSettings as _putSettings, listExtensions as _listExtensions, callExtension as _callExtension, } from "./client/sdk.gen";
|
|
19
23
|
// Re-export raw generated SDK for advanced use
|
|
20
24
|
export * as sdk from "./client/sdk.gen";
|
|
21
25
|
export { client } from "./client/client.gen";
|
|
22
26
|
/**
|
|
23
|
-
*
|
|
24
|
-
* plugin's `/api/config` endpoint and configures the HTTP client.
|
|
25
|
-
*
|
|
26
|
-
* The plugin server handles the secret-to-token exchange. The browser
|
|
27
|
-
* only ever sees the short-lived access token.
|
|
27
|
+
* Browser-side SDK for Nexus plugin UIs.
|
|
28
28
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
29
|
+
* Auth is fully transparent: the plugin server handles credential management,
|
|
30
|
+
* and this class automatically retries on 401 by re-fetching config.
|
|
31
|
+
* Plugins never see tokens, secrets, or auth protocol details.
|
|
31
32
|
*/
|
|
32
33
|
export class NexusPlugin {
|
|
33
|
-
config;
|
|
34
34
|
configUrl;
|
|
35
|
+
token;
|
|
36
|
+
apiUrl;
|
|
35
37
|
constructor(config, configUrl) {
|
|
36
|
-
this.
|
|
38
|
+
this.token = config.token;
|
|
39
|
+
this.apiUrl = config.apiUrl;
|
|
37
40
|
this.configUrl = configUrl;
|
|
38
41
|
}
|
|
39
42
|
/**
|
|
40
|
-
* Initialize the SDK. Fetches
|
|
41
|
-
* configures the HTTP client
|
|
43
|
+
* Initialize the SDK. Fetches config from the plugin server and
|
|
44
|
+
* configures the HTTP client. Auth is handled automatically.
|
|
42
45
|
*
|
|
43
46
|
* @param configUrl - Override the config endpoint (defaults to `/api/config`)
|
|
44
47
|
*/
|
|
@@ -61,71 +64,91 @@ export class NexusPlugin {
|
|
|
61
64
|
client.setConfig({ baseUrl: apiUrl, auth: token });
|
|
62
65
|
return new NexusPlugin({ token, apiUrl }, "");
|
|
63
66
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
*/
|
|
68
|
-
async refreshToken() {
|
|
67
|
+
// ── Internal: transparent auth retry ──────────────────────
|
|
68
|
+
/** Re-fetch config from the plugin server (which handles credential refresh). */
|
|
69
|
+
async _refreshConfig() {
|
|
69
70
|
if (!this.configUrl) {
|
|
70
|
-
throw new Error("Cannot refresh
|
|
71
|
+
throw new Error("Cannot refresh in manual configuration mode");
|
|
71
72
|
}
|
|
72
73
|
const res = await fetch(this.configUrl);
|
|
73
74
|
if (!res.ok) {
|
|
74
|
-
throw new Error(`Failed to refresh
|
|
75
|
+
throw new Error(`Failed to refresh config: ${res.status}`);
|
|
75
76
|
}
|
|
76
77
|
const config = await res.json();
|
|
77
|
-
this.
|
|
78
|
+
this.token = config.token;
|
|
79
|
+
this.apiUrl = config.apiUrl;
|
|
78
80
|
client.setConfig({
|
|
79
81
|
baseUrl: config.apiUrl,
|
|
80
82
|
auth: config.token,
|
|
81
83
|
});
|
|
82
|
-
|
|
84
|
+
}
|
|
85
|
+
/** Execute a generated SDK call with automatic 401 retry. */
|
|
86
|
+
async _withRetry(fn) {
|
|
87
|
+
let result = await fn();
|
|
88
|
+
if (result.response.status === 401) {
|
|
89
|
+
await this._refreshConfig();
|
|
90
|
+
result = await fn();
|
|
91
|
+
}
|
|
92
|
+
if (result.data === undefined) {
|
|
93
|
+
throw new Error(`Request failed: ${result.response.status}`);
|
|
94
|
+
}
|
|
95
|
+
return result.data;
|
|
83
96
|
}
|
|
84
97
|
// ── System ──────────────────────────────────────────────
|
|
85
98
|
async systemInfo() {
|
|
86
|
-
|
|
87
|
-
return data;
|
|
99
|
+
return this._withRetry(() => _systemInfo());
|
|
88
100
|
}
|
|
89
101
|
// ── Filesystem ──────────────────────────────────────────
|
|
90
102
|
async readFile(path) {
|
|
91
|
-
|
|
92
|
-
return data;
|
|
103
|
+
return this._withRetry(() => _readFile({ query: { path } }));
|
|
93
104
|
}
|
|
94
105
|
async listDir(path) {
|
|
95
|
-
|
|
96
|
-
return data;
|
|
106
|
+
return this._withRetry(() => _listDir({ query: { path } }));
|
|
97
107
|
}
|
|
98
108
|
async writeFile(path, content) {
|
|
99
|
-
|
|
109
|
+
return this._withRetry(() => _writeFile({ body: { path, content } }));
|
|
100
110
|
}
|
|
101
111
|
// ── Process ─────────────────────────────────────────────
|
|
102
112
|
async listProcesses() {
|
|
103
|
-
|
|
104
|
-
return data;
|
|
113
|
+
return this._withRetry(() => _listProcesses());
|
|
105
114
|
}
|
|
106
115
|
// ── Docker ──────────────────────────────────────────────
|
|
107
116
|
async listContainers() {
|
|
108
|
-
|
|
109
|
-
return data;
|
|
117
|
+
return this._withRetry(() => _listContainers());
|
|
110
118
|
}
|
|
111
119
|
async containerStats(id) {
|
|
112
|
-
|
|
113
|
-
return data;
|
|
120
|
+
return this._withRetry(() => _containerStats({ path: { id } }));
|
|
114
121
|
}
|
|
115
122
|
// ── Network ─────────────────────────────────────────────
|
|
116
123
|
async proxyRequest(url, method, options) {
|
|
117
|
-
|
|
124
|
+
return this._withRetry(() => _proxyRequest({
|
|
118
125
|
body: { url, method, headers: options?.headers ?? {}, body: options?.body },
|
|
119
|
-
});
|
|
120
|
-
return data;
|
|
126
|
+
}));
|
|
121
127
|
}
|
|
122
128
|
// ── Settings ────────────────────────────────────────────
|
|
123
129
|
async getSettings() {
|
|
124
|
-
|
|
125
|
-
return data;
|
|
130
|
+
return this._withRetry(() => _getSettings());
|
|
126
131
|
}
|
|
127
132
|
async saveSettings(values) {
|
|
128
|
-
|
|
133
|
+
return this._withRetry(() => _putSettings({ body: values }));
|
|
134
|
+
}
|
|
135
|
+
// ── Extensions ──────────────────────────────────────────
|
|
136
|
+
/**
|
|
137
|
+
* Call an extension operation.
|
|
138
|
+
*
|
|
139
|
+
* ```ts
|
|
140
|
+
* const result = await nexus.callExtension("my-ext", "my-op", { key: "val" });
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
async callExtension(extensionId, operation, input = {}) {
|
|
144
|
+
return this._withRetry(() => _callExtension({
|
|
145
|
+
path: { ext_id: extensionId, operation },
|
|
146
|
+
body: { input },
|
|
147
|
+
}));
|
|
148
|
+
}
|
|
149
|
+
/** List extensions available to this plugin. */
|
|
150
|
+
async listExtensions() {
|
|
151
|
+
return this._withRetry(() => _listExtensions());
|
|
129
152
|
}
|
|
130
153
|
// ── Host Events ──────────────────────────────────────────
|
|
131
154
|
/**
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @imdanibytes/nexus-sdk/server
|
|
3
|
+
*
|
|
4
|
+
* Server-side SDK for Nexus plugins. Handles auth transparently —
|
|
5
|
+
* plugins never touch credentials or know the auth protocol.
|
|
6
|
+
*
|
|
7
|
+
* Usage inside a plugin server (Node.js):
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { NexusServer } from "@imdanibytes/nexus-sdk/server";
|
|
11
|
+
*
|
|
12
|
+
* const nexus = new NexusServer();
|
|
13
|
+
* const settings = await nexus.getSettings();
|
|
14
|
+
* const file = await nexus.readFile("/some/path");
|
|
15
|
+
* const result = await nexus.callExtension("my-ext", "my-op", { key: "val" });
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* Reads NEXUS_OAUTH_CLIENT_ID, NEXUS_OAUTH_CLIENT_SECRET, NEXUS_HOST_URL,
|
|
19
|
+
* and NEXUS_API_URL from environment variables automatically.
|
|
20
|
+
*/
|
|
21
|
+
export interface NexusServerOptions {
|
|
22
|
+
/** Override NEXUS_OAUTH_CLIENT_ID env var. */
|
|
23
|
+
clientId?: string;
|
|
24
|
+
/** Override NEXUS_OAUTH_CLIENT_SECRET env var. */
|
|
25
|
+
clientSecret?: string;
|
|
26
|
+
/** Override NEXUS_HOST_URL env var (used for auth endpoint). */
|
|
27
|
+
hostUrl?: string;
|
|
28
|
+
/** Override NEXUS_API_URL env var (used as base for API calls). */
|
|
29
|
+
apiUrl?: string;
|
|
30
|
+
/** Milliseconds before expiry to trigger proactive refresh. Default: 30000. */
|
|
31
|
+
refreshBuffer?: number;
|
|
32
|
+
}
|
|
33
|
+
export declare class NexusServer {
|
|
34
|
+
private clientId;
|
|
35
|
+
private clientSecret;
|
|
36
|
+
private hostUrl;
|
|
37
|
+
readonly apiUrl: string;
|
|
38
|
+
private refreshBuffer;
|
|
39
|
+
private accessToken;
|
|
40
|
+
private refreshToken;
|
|
41
|
+
private expiresAt;
|
|
42
|
+
/** Prevent concurrent token requests. */
|
|
43
|
+
private pendingAuth;
|
|
44
|
+
constructor(options?: NexusServerOptions);
|
|
45
|
+
/** Get a valid access token. Safe to call concurrently. */
|
|
46
|
+
getAccessToken(): Promise<string>;
|
|
47
|
+
/**
|
|
48
|
+
* Opaque config for the browser SDK. Returns whatever the browser needs
|
|
49
|
+
* to make authenticated calls — no auth protocol details leak.
|
|
50
|
+
*/
|
|
51
|
+
getClientConfig(): {
|
|
52
|
+
token: string;
|
|
53
|
+
apiUrl: string;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Fetch with automatic auth. Relative paths resolve against `apiUrl`.
|
|
57
|
+
* Low-level escape hatch for endpoints not yet wrapped as typed methods.
|
|
58
|
+
*/
|
|
59
|
+
fetch(path: string, init?: RequestInit): Promise<Response>;
|
|
60
|
+
/** GET /api/v1/system/info */
|
|
61
|
+
systemInfo(): Promise<Record<string, unknown>>;
|
|
62
|
+
/** GET /api/v1/settings — returns plugin settings as key-value map. */
|
|
63
|
+
getSettings(): Promise<Record<string, unknown>>;
|
|
64
|
+
/** PUT /api/v1/settings — update plugin settings. */
|
|
65
|
+
saveSettings(values: Record<string, unknown>): Promise<void>;
|
|
66
|
+
/** GET /api/v1/fs/read?path=... */
|
|
67
|
+
readFile(path: string): Promise<{
|
|
68
|
+
path: string;
|
|
69
|
+
content: string;
|
|
70
|
+
}>;
|
|
71
|
+
/** GET /api/v1/fs/list?path=... */
|
|
72
|
+
listDir(path: string): Promise<{
|
|
73
|
+
path: string;
|
|
74
|
+
entries: unknown[];
|
|
75
|
+
}>;
|
|
76
|
+
/** POST /api/v1/fs/write */
|
|
77
|
+
writeFile(path: string, content: string): Promise<void>;
|
|
78
|
+
/** GET /api/v1/process/list */
|
|
79
|
+
listProcesses(): Promise<unknown[]>;
|
|
80
|
+
/** GET /api/v1/docker/containers */
|
|
81
|
+
listContainers(): Promise<unknown[]>;
|
|
82
|
+
/** POST /api/v1/network/proxy */
|
|
83
|
+
proxyRequest(url: string, method: string, options?: {
|
|
84
|
+
headers?: Record<string, string>;
|
|
85
|
+
body?: string;
|
|
86
|
+
}): Promise<{
|
|
87
|
+
status: number;
|
|
88
|
+
headers: Record<string, string>;
|
|
89
|
+
body: string;
|
|
90
|
+
}>;
|
|
91
|
+
/**
|
|
92
|
+
* Call an extension operation.
|
|
93
|
+
*
|
|
94
|
+
* ```ts
|
|
95
|
+
* const result = await nexus.callExtension("my-ext", "my-operation", {
|
|
96
|
+
* key: "value",
|
|
97
|
+
* });
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
callExtension(extensionId: string, operation: string, input?: Record<string, unknown>): Promise<{
|
|
101
|
+
success: boolean;
|
|
102
|
+
data: unknown;
|
|
103
|
+
message?: string;
|
|
104
|
+
}>;
|
|
105
|
+
/** List extensions available to this plugin. */
|
|
106
|
+
listExtensions(): Promise<unknown[]>;
|
|
107
|
+
private _get;
|
|
108
|
+
private _acquireToken;
|
|
109
|
+
private _clientCredentialsGrant;
|
|
110
|
+
private _refreshGrant;
|
|
111
|
+
private _handleTokenResponse;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AASD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,SAAS,CAAK;IAEtB,yCAAyC;IACzC,OAAO,CAAC,WAAW,CAAgC;gBAEvC,OAAO,CAAC,EAAE,kBAAkB;IAkBxC,2DAA2D;IACrD,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAcvC;;;OAGG;IACH,eAAe,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IASpD;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAUhE,8BAA8B;IACxB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIpD,uEAAuE;IACjE,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIrD,qDAAqD;IAC/C,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlE,mCAAmC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIxE,mCAAmC;IAC7B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IAI1E,4BAA4B;IACtB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7D,+BAA+B;IACzB,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAIzC,oCAAoC;IAC9B,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI1C,iCAAiC;IAC3B,YAAY,CAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5D,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAmB7E;;;;;;;;OAQG;IACG,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAClC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAgBjE,gDAAgD;IAC1C,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAM5B,IAAI;YAQJ,aAAa;YAab,uBAAuB;YAmBvB,aAAa;IAgB3B,OAAO,CAAC,oBAAoB;CAQ7B"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @imdanibytes/nexus-sdk/server
|
|
3
|
+
*
|
|
4
|
+
* Server-side SDK for Nexus plugins. Handles auth transparently —
|
|
5
|
+
* plugins never touch credentials or know the auth protocol.
|
|
6
|
+
*
|
|
7
|
+
* Usage inside a plugin server (Node.js):
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { NexusServer } from "@imdanibytes/nexus-sdk/server";
|
|
11
|
+
*
|
|
12
|
+
* const nexus = new NexusServer();
|
|
13
|
+
* const settings = await nexus.getSettings();
|
|
14
|
+
* const file = await nexus.readFile("/some/path");
|
|
15
|
+
* const result = await nexus.callExtension("my-ext", "my-op", { key: "val" });
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* Reads NEXUS_OAUTH_CLIENT_ID, NEXUS_OAUTH_CLIENT_SECRET, NEXUS_HOST_URL,
|
|
19
|
+
* and NEXUS_API_URL from environment variables automatically.
|
|
20
|
+
*/
|
|
21
|
+
export class NexusServer {
|
|
22
|
+
clientId;
|
|
23
|
+
clientSecret;
|
|
24
|
+
hostUrl;
|
|
25
|
+
apiUrl;
|
|
26
|
+
refreshBuffer;
|
|
27
|
+
accessToken = null;
|
|
28
|
+
refreshToken = null;
|
|
29
|
+
expiresAt = 0;
|
|
30
|
+
/** Prevent concurrent token requests. */
|
|
31
|
+
pendingAuth = null;
|
|
32
|
+
constructor(options) {
|
|
33
|
+
this.clientId =
|
|
34
|
+
options?.clientId || process.env.NEXUS_OAUTH_CLIENT_ID || "";
|
|
35
|
+
this.clientSecret =
|
|
36
|
+
options?.clientSecret || process.env.NEXUS_OAUTH_CLIENT_SECRET || "";
|
|
37
|
+
this.hostUrl =
|
|
38
|
+
options?.hostUrl ||
|
|
39
|
+
process.env.NEXUS_HOST_URL ||
|
|
40
|
+
"http://host.docker.internal:9600";
|
|
41
|
+
this.apiUrl =
|
|
42
|
+
options?.apiUrl ||
|
|
43
|
+
process.env.NEXUS_API_URL ||
|
|
44
|
+
"http://host.docker.internal:9600";
|
|
45
|
+
this.refreshBuffer = options?.refreshBuffer ?? 30_000;
|
|
46
|
+
}
|
|
47
|
+
// ── Auth (internal) ───────────────────────────────────────
|
|
48
|
+
/** Get a valid access token. Safe to call concurrently. */
|
|
49
|
+
async getAccessToken() {
|
|
50
|
+
if (this.accessToken && Date.now() < this.expiresAt - this.refreshBuffer) {
|
|
51
|
+
return this.accessToken;
|
|
52
|
+
}
|
|
53
|
+
if (this.pendingAuth)
|
|
54
|
+
return this.pendingAuth;
|
|
55
|
+
this.pendingAuth = this._acquireToken().finally(() => {
|
|
56
|
+
this.pendingAuth = null;
|
|
57
|
+
});
|
|
58
|
+
return this.pendingAuth;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Opaque config for the browser SDK. Returns whatever the browser needs
|
|
62
|
+
* to make authenticated calls — no auth protocol details leak.
|
|
63
|
+
*/
|
|
64
|
+
getClientConfig() {
|
|
65
|
+
return {
|
|
66
|
+
token: this.accessToken || "",
|
|
67
|
+
apiUrl: this.apiUrl,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
// ── Authenticated fetch ───────────────────────────────────
|
|
71
|
+
/**
|
|
72
|
+
* Fetch with automatic auth. Relative paths resolve against `apiUrl`.
|
|
73
|
+
* Low-level escape hatch for endpoints not yet wrapped as typed methods.
|
|
74
|
+
*/
|
|
75
|
+
async fetch(path, init) {
|
|
76
|
+
const token = await this.getAccessToken();
|
|
77
|
+
const url = path.startsWith("http") ? path : `${this.apiUrl}${path}`;
|
|
78
|
+
const headers = new Headers(init?.headers);
|
|
79
|
+
headers.set("Authorization", `Bearer ${token}`);
|
|
80
|
+
return globalThis.fetch(url, { ...init, headers });
|
|
81
|
+
}
|
|
82
|
+
// ── Typed API methods ─────────────────────────────────────
|
|
83
|
+
/** GET /api/v1/system/info */
|
|
84
|
+
async systemInfo() {
|
|
85
|
+
return this._get("/api/v1/system/info");
|
|
86
|
+
}
|
|
87
|
+
/** GET /api/v1/settings — returns plugin settings as key-value map. */
|
|
88
|
+
async getSettings() {
|
|
89
|
+
return this._get("/api/v1/settings");
|
|
90
|
+
}
|
|
91
|
+
/** PUT /api/v1/settings — update plugin settings. */
|
|
92
|
+
async saveSettings(values) {
|
|
93
|
+
const res = await this.fetch("/api/v1/settings", {
|
|
94
|
+
method: "PUT",
|
|
95
|
+
headers: { "Content-Type": "application/json" },
|
|
96
|
+
body: JSON.stringify(values),
|
|
97
|
+
});
|
|
98
|
+
if (!res.ok) {
|
|
99
|
+
throw new Error(`saveSettings failed: ${res.status}`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/** GET /api/v1/fs/read?path=... */
|
|
103
|
+
async readFile(path) {
|
|
104
|
+
return this._get(`/api/v1/fs/read?path=${encodeURIComponent(path)}`);
|
|
105
|
+
}
|
|
106
|
+
/** GET /api/v1/fs/list?path=... */
|
|
107
|
+
async listDir(path) {
|
|
108
|
+
return this._get(`/api/v1/fs/list?path=${encodeURIComponent(path)}`);
|
|
109
|
+
}
|
|
110
|
+
/** POST /api/v1/fs/write */
|
|
111
|
+
async writeFile(path, content) {
|
|
112
|
+
const res = await this.fetch("/api/v1/fs/write", {
|
|
113
|
+
method: "POST",
|
|
114
|
+
headers: { "Content-Type": "application/json" },
|
|
115
|
+
body: JSON.stringify({ path, content }),
|
|
116
|
+
});
|
|
117
|
+
if (!res.ok) {
|
|
118
|
+
throw new Error(`writeFile failed: ${res.status}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/** GET /api/v1/process/list */
|
|
122
|
+
async listProcesses() {
|
|
123
|
+
return this._get("/api/v1/process/list");
|
|
124
|
+
}
|
|
125
|
+
/** GET /api/v1/docker/containers */
|
|
126
|
+
async listContainers() {
|
|
127
|
+
return this._get("/api/v1/docker/containers");
|
|
128
|
+
}
|
|
129
|
+
/** POST /api/v1/network/proxy */
|
|
130
|
+
async proxyRequest(url, method, options) {
|
|
131
|
+
const res = await this.fetch("/api/v1/network/proxy", {
|
|
132
|
+
method: "POST",
|
|
133
|
+
headers: { "Content-Type": "application/json" },
|
|
134
|
+
body: JSON.stringify({
|
|
135
|
+
url,
|
|
136
|
+
method,
|
|
137
|
+
headers: options?.headers ?? {},
|
|
138
|
+
body: options?.body,
|
|
139
|
+
}),
|
|
140
|
+
});
|
|
141
|
+
if (!res.ok) {
|
|
142
|
+
throw new Error(`proxyRequest failed: ${res.status}`);
|
|
143
|
+
}
|
|
144
|
+
return res.json();
|
|
145
|
+
}
|
|
146
|
+
// ── Extensions ────────────────────────────────────────────
|
|
147
|
+
/**
|
|
148
|
+
* Call an extension operation.
|
|
149
|
+
*
|
|
150
|
+
* ```ts
|
|
151
|
+
* const result = await nexus.callExtension("my-ext", "my-operation", {
|
|
152
|
+
* key: "value",
|
|
153
|
+
* });
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
async callExtension(extensionId, operation, input = {}) {
|
|
157
|
+
const res = await this.fetch(`/api/v1/extensions/${encodeURIComponent(extensionId)}/${encodeURIComponent(operation)}`, {
|
|
158
|
+
method: "POST",
|
|
159
|
+
headers: { "Content-Type": "application/json" },
|
|
160
|
+
body: JSON.stringify({ input }),
|
|
161
|
+
});
|
|
162
|
+
if (!res.ok) {
|
|
163
|
+
const body = await res.text().catch(() => "");
|
|
164
|
+
throw new Error(`callExtension(${extensionId}/${operation}) failed: ${res.status} ${body}`);
|
|
165
|
+
}
|
|
166
|
+
return res.json();
|
|
167
|
+
}
|
|
168
|
+
/** List extensions available to this plugin. */
|
|
169
|
+
async listExtensions() {
|
|
170
|
+
return this._get("/api/v1/extensions");
|
|
171
|
+
}
|
|
172
|
+
// ── Internal helpers ──────────────────────────────────────
|
|
173
|
+
async _get(path) {
|
|
174
|
+
const res = await this.fetch(path);
|
|
175
|
+
if (!res.ok) {
|
|
176
|
+
throw new Error(`GET ${path} failed: ${res.status}`);
|
|
177
|
+
}
|
|
178
|
+
return res.json();
|
|
179
|
+
}
|
|
180
|
+
async _acquireToken() {
|
|
181
|
+
if (this.refreshToken) {
|
|
182
|
+
try {
|
|
183
|
+
const token = await this._refreshGrant();
|
|
184
|
+
if (token)
|
|
185
|
+
return token;
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
this.refreshToken = null;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return this._clientCredentialsGrant();
|
|
192
|
+
}
|
|
193
|
+
async _clientCredentialsGrant() {
|
|
194
|
+
const res = await globalThis.fetch(`${this.hostUrl}/oauth/token`, {
|
|
195
|
+
method: "POST",
|
|
196
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
197
|
+
body: new URLSearchParams({
|
|
198
|
+
grant_type: "client_credentials",
|
|
199
|
+
client_id: this.clientId,
|
|
200
|
+
client_secret: this.clientSecret,
|
|
201
|
+
}),
|
|
202
|
+
});
|
|
203
|
+
if (!res.ok) {
|
|
204
|
+
const body = await res.text().catch(() => "");
|
|
205
|
+
throw new Error(`Auth failed: ${res.status} ${body}`);
|
|
206
|
+
}
|
|
207
|
+
return this._handleTokenResponse(await res.json());
|
|
208
|
+
}
|
|
209
|
+
async _refreshGrant() {
|
|
210
|
+
const res = await globalThis.fetch(`${this.hostUrl}/oauth/token`, {
|
|
211
|
+
method: "POST",
|
|
212
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
213
|
+
body: new URLSearchParams({
|
|
214
|
+
grant_type: "refresh_token",
|
|
215
|
+
client_id: this.clientId,
|
|
216
|
+
refresh_token: this.refreshToken,
|
|
217
|
+
}),
|
|
218
|
+
});
|
|
219
|
+
if (!res.ok)
|
|
220
|
+
return null;
|
|
221
|
+
return this._handleTokenResponse(await res.json());
|
|
222
|
+
}
|
|
223
|
+
_handleTokenResponse(data) {
|
|
224
|
+
this.accessToken = data.access_token;
|
|
225
|
+
if (data.refresh_token) {
|
|
226
|
+
this.refreshToken = data.refresh_token;
|
|
227
|
+
}
|
|
228
|
+
this.expiresAt = Date.now() + data.expires_in * 1000;
|
|
229
|
+
return this.accessToken;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/openapi.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.1.0",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "Nexus Host API",
|
|
5
|
-
"description": "API available to Nexus plugins for interacting with the host system. Plugins
|
|
5
|
+
"description": "API available to Nexus plugins for interacting with the host system. Plugins authenticate via OAuth 2.1 client_credentials grant (POST /oauth/token) and use the access token as a Bearer token.",
|
|
6
6
|
"contact": {
|
|
7
7
|
"name": "danibytes"
|
|
8
8
|
},
|
|
@@ -88,6 +88,99 @@
|
|
|
88
88
|
]
|
|
89
89
|
}
|
|
90
90
|
},
|
|
91
|
+
"/api/v1/extensions": {
|
|
92
|
+
"get": {
|
|
93
|
+
"tags": [
|
|
94
|
+
"extensions"
|
|
95
|
+
],
|
|
96
|
+
"summary": "List extensions declared by the calling plugin.",
|
|
97
|
+
"description": "Only returns extensions the plugin declared in its manifest `\"extensions\"` field.\nIncludes availability status (is it installed and running?) and per-operation\npermission status. Plugins cannot see extensions they didn't declare.",
|
|
98
|
+
"operationId": "list_extensions",
|
|
99
|
+
"responses": {
|
|
100
|
+
"200": {
|
|
101
|
+
"description": "Extensions declared by this plugin",
|
|
102
|
+
"content": {
|
|
103
|
+
"application/json": {
|
|
104
|
+
"schema": {
|
|
105
|
+
"$ref": "#/components/schemas/ListExtensionsResponse"
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"401": {
|
|
111
|
+
"description": "Unauthorized"
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"security": [
|
|
115
|
+
{
|
|
116
|
+
"bearer_auth": []
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"/api/v1/extensions/{ext_id}/{operation}": {
|
|
122
|
+
"post": {
|
|
123
|
+
"tags": [
|
|
124
|
+
"extensions"
|
|
125
|
+
],
|
|
126
|
+
"summary": "Execute an extension operation.",
|
|
127
|
+
"description": "Three-layer security model:\n1. PERMISSION: Does this plugin have `ext:{ext_id}:{operation}`?\n2. SCOPE: If the operation declares `scope_key`, is the scope value approved?\n3. RISK: If risk_level is high, per-invocation runtime approval.",
|
|
128
|
+
"operationId": "call_extension",
|
|
129
|
+
"parameters": [
|
|
130
|
+
{
|
|
131
|
+
"name": "ext_id",
|
|
132
|
+
"in": "path",
|
|
133
|
+
"description": "Extension ID",
|
|
134
|
+
"required": true,
|
|
135
|
+
"schema": {
|
|
136
|
+
"type": "string"
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"name": "operation",
|
|
141
|
+
"in": "path",
|
|
142
|
+
"description": "Operation name",
|
|
143
|
+
"required": true,
|
|
144
|
+
"schema": {
|
|
145
|
+
"type": "string"
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
],
|
|
149
|
+
"requestBody": {
|
|
150
|
+
"content": {
|
|
151
|
+
"application/json": {
|
|
152
|
+
"schema": {
|
|
153
|
+
"$ref": "#/components/schemas/CallExtensionRequest"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"required": true
|
|
158
|
+
},
|
|
159
|
+
"responses": {
|
|
160
|
+
"200": {
|
|
161
|
+
"description": "Operation result",
|
|
162
|
+
"content": {
|
|
163
|
+
"application/json": {
|
|
164
|
+
"schema": {
|
|
165
|
+
"$ref": "#/components/schemas/CallExtensionResponse"
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
"401": {
|
|
171
|
+
"description": "Unauthorized"
|
|
172
|
+
},
|
|
173
|
+
"403": {
|
|
174
|
+
"description": "Forbidden — extension not found, missing permission, or scope denied"
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
"security": [
|
|
178
|
+
{
|
|
179
|
+
"bearer_auth": []
|
|
180
|
+
}
|
|
181
|
+
]
|
|
182
|
+
}
|
|
183
|
+
},
|
|
91
184
|
"/api/v1/fs/edit": {
|
|
92
185
|
"post": {
|
|
93
186
|
"tags": [
|
|
@@ -603,6 +696,33 @@
|
|
|
603
696
|
},
|
|
604
697
|
"components": {
|
|
605
698
|
"schemas": {
|
|
699
|
+
"CallExtensionRequest": {
|
|
700
|
+
"type": "object",
|
|
701
|
+
"description": "Request body for POST /v1/extensions/{ext_id}/{operation}",
|
|
702
|
+
"properties": {
|
|
703
|
+
"input": {}
|
|
704
|
+
}
|
|
705
|
+
},
|
|
706
|
+
"CallExtensionResponse": {
|
|
707
|
+
"type": "object",
|
|
708
|
+
"description": "Response for POST /v1/extensions/{ext_id}/{operation}",
|
|
709
|
+
"required": [
|
|
710
|
+
"success",
|
|
711
|
+
"data"
|
|
712
|
+
],
|
|
713
|
+
"properties": {
|
|
714
|
+
"data": {},
|
|
715
|
+
"message": {
|
|
716
|
+
"type": [
|
|
717
|
+
"string",
|
|
718
|
+
"null"
|
|
719
|
+
]
|
|
720
|
+
},
|
|
721
|
+
"success": {
|
|
722
|
+
"type": "boolean"
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
},
|
|
606
726
|
"ContainerInfo": {
|
|
607
727
|
"type": "object",
|
|
608
728
|
"required": [
|
|
@@ -760,6 +880,24 @@
|
|
|
760
880
|
}
|
|
761
881
|
}
|
|
762
882
|
},
|
|
883
|
+
"ExtensionErrorResponse": {
|
|
884
|
+
"type": "object",
|
|
885
|
+
"description": "Error response body",
|
|
886
|
+
"required": [
|
|
887
|
+
"error"
|
|
888
|
+
],
|
|
889
|
+
"properties": {
|
|
890
|
+
"details": {
|
|
891
|
+
"type": [
|
|
892
|
+
"string",
|
|
893
|
+
"null"
|
|
894
|
+
]
|
|
895
|
+
},
|
|
896
|
+
"error": {
|
|
897
|
+
"type": "string"
|
|
898
|
+
}
|
|
899
|
+
}
|
|
900
|
+
},
|
|
763
901
|
"FileContent": {
|
|
764
902
|
"type": "object",
|
|
765
903
|
"required": [
|
|
@@ -864,6 +1002,76 @@
|
|
|
864
1002
|
}
|
|
865
1003
|
}
|
|
866
1004
|
},
|
|
1005
|
+
"ListExtensionsResponse": {
|
|
1006
|
+
"type": "object",
|
|
1007
|
+
"description": "Response for GET /v1/extensions",
|
|
1008
|
+
"required": [
|
|
1009
|
+
"extensions"
|
|
1010
|
+
],
|
|
1011
|
+
"properties": {
|
|
1012
|
+
"extensions": {
|
|
1013
|
+
"type": "array",
|
|
1014
|
+
"items": {
|
|
1015
|
+
"$ref": "#/components/schemas/PluginExtensionView"
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
},
|
|
1020
|
+
"PluginExtensionView": {
|
|
1021
|
+
"type": "object",
|
|
1022
|
+
"description": "A plugin's view of an extension it declared as a dependency.",
|
|
1023
|
+
"required": [
|
|
1024
|
+
"id",
|
|
1025
|
+
"available",
|
|
1026
|
+
"operations"
|
|
1027
|
+
],
|
|
1028
|
+
"properties": {
|
|
1029
|
+
"available": {
|
|
1030
|
+
"type": "boolean"
|
|
1031
|
+
},
|
|
1032
|
+
"description": {
|
|
1033
|
+
"type": [
|
|
1034
|
+
"string",
|
|
1035
|
+
"null"
|
|
1036
|
+
]
|
|
1037
|
+
},
|
|
1038
|
+
"display_name": {
|
|
1039
|
+
"type": [
|
|
1040
|
+
"string",
|
|
1041
|
+
"null"
|
|
1042
|
+
]
|
|
1043
|
+
},
|
|
1044
|
+
"id": {
|
|
1045
|
+
"type": "string"
|
|
1046
|
+
},
|
|
1047
|
+
"operations": {
|
|
1048
|
+
"type": "array",
|
|
1049
|
+
"items": {
|
|
1050
|
+
"$ref": "#/components/schemas/PluginOperationView"
|
|
1051
|
+
}
|
|
1052
|
+
}
|
|
1053
|
+
}
|
|
1054
|
+
},
|
|
1055
|
+
"PluginOperationView": {
|
|
1056
|
+
"type": "object",
|
|
1057
|
+
"description": "A plugin's view of an operation on a declared extension.",
|
|
1058
|
+
"required": [
|
|
1059
|
+
"name",
|
|
1060
|
+
"permitted",
|
|
1061
|
+
"available"
|
|
1062
|
+
],
|
|
1063
|
+
"properties": {
|
|
1064
|
+
"available": {
|
|
1065
|
+
"type": "boolean"
|
|
1066
|
+
},
|
|
1067
|
+
"name": {
|
|
1068
|
+
"type": "string"
|
|
1069
|
+
},
|
|
1070
|
+
"permitted": {
|
|
1071
|
+
"type": "boolean"
|
|
1072
|
+
}
|
|
1073
|
+
}
|
|
1074
|
+
},
|
|
867
1075
|
"ProcessInfo": {
|
|
868
1076
|
"type": "object",
|
|
869
1077
|
"required": [
|
|
@@ -1036,6 +1244,10 @@
|
|
|
1036
1244
|
{
|
|
1037
1245
|
"name": "settings",
|
|
1038
1246
|
"description": "Per-plugin settings (scoped to authenticated plugin)"
|
|
1247
|
+
},
|
|
1248
|
+
{
|
|
1249
|
+
"name": "extensions",
|
|
1250
|
+
"description": "Host extension operations"
|
|
1039
1251
|
}
|
|
1040
1252
|
]
|
|
1041
1253
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@imdanibytes/nexus-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "TypeScript SDK for Nexus plugins — generated HTTP client + hand-written convenience wrapper",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org",
|
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
"import": "./dist/index.js",
|
|
20
20
|
"types": "./dist/index.d.ts"
|
|
21
21
|
},
|
|
22
|
+
"./server": {
|
|
23
|
+
"import": "./dist/server.js",
|
|
24
|
+
"types": "./dist/server.d.ts"
|
|
25
|
+
},
|
|
22
26
|
"./client": {
|
|
23
27
|
"import": "./dist/client/index.js",
|
|
24
28
|
"types": "./dist/client/index.d.ts"
|
|
@@ -35,6 +39,7 @@
|
|
|
35
39
|
},
|
|
36
40
|
"devDependencies": {
|
|
37
41
|
"@hey-api/openapi-ts": "^0.92.3",
|
|
42
|
+
"@types/node": "^22.0.0",
|
|
38
43
|
"typescript": "~5.9.3"
|
|
39
44
|
},
|
|
40
45
|
"dependencies": {},
|