@nosana/types 2.14.2 → 2.21.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.
- package/dist/Common/index.d.ts +29 -7
- package/dist/Common/index.d.ts.map +1 -1
- package/dist/Common/index.js +6 -0
- package/dist/Common/index.js.map +1 -1
- package/dist/Jobs/Flows/index.d.ts +9 -5
- package/dist/Jobs/Flows/index.d.ts.map +1 -1
- package/dist/Jobs/JobDefinition/args/expose.d.ts +17 -2
- package/dist/Jobs/JobDefinition/args/expose.d.ts.map +1 -1
- package/dist/Jobs/JobDefinition/args/expose.js.map +1 -1
- package/dist/Jobs/JobDefinition/args/index.d.ts +38 -0
- package/dist/Jobs/JobDefinition/args/index.d.ts.map +1 -1
- package/dist/Jobs/JobDefinition/args/index.js +660 -41
- package/dist/Jobs/JobDefinition/args/index.js.map +1 -1
- package/dist/Jobs/JobDefinition/args/output.d.ts +2 -0
- package/dist/Jobs/JobDefinition/args/output.d.ts.map +1 -0
- package/dist/Jobs/JobDefinition/args/output.js +2 -0
- package/dist/Jobs/JobDefinition/args/output.js.map +1 -0
- package/dist/Jobs/JobDefinition/args/required_vram.d.ts +2 -0
- package/dist/Jobs/JobDefinition/args/required_vram.d.ts.map +1 -0
- package/dist/Jobs/JobDefinition/args/required_vram.js +2 -0
- package/dist/Jobs/JobDefinition/args/required_vram.js.map +1 -0
- package/dist/Jobs/JobDefinition/args/trusted_execution_env.d.ts +6 -0
- package/dist/Jobs/JobDefinition/args/trusted_execution_env.d.ts.map +1 -0
- package/dist/Jobs/JobDefinition/args/trusted_execution_env.js +5 -0
- package/dist/Jobs/JobDefinition/args/trusted_execution_env.js.map +1 -0
- package/dist/Jobs/JobDefinition/index.d.ts +8 -4
- package/dist/Jobs/JobDefinition/index.d.ts.map +1 -1
- package/dist/Jobs/JobDefinition/logistics/index.d.ts +2 -2
- package/dist/Jobs/JobDefinition/logistics/index.d.ts.map +1 -1
- package/dist/Jobs/JobDefinition/logistics/index.js +10 -10
- package/dist/Jobs/JobDefinition/meta/index.d.ts +1 -1
- package/dist/Jobs/JobDefinition/meta/index.d.ts.map +1 -1
- package/dist/Jobs/JobDefinition/meta/index.js +2 -48
- package/dist/Jobs/JobDefinition/meta/index.js.map +1 -1
- package/dist/Jobs/JobDefinition/operations/index.d.ts +18 -3
- package/dist/Jobs/JobDefinition/operations/index.d.ts.map +1 -1
- package/dist/Jobs/JobDefinition/operations/index.js +759 -201
- package/dist/Jobs/JobDefinition/operations/index.js.map +1 -1
- package/dist/Jobs/JobDefinition/operations/rules.d.ts +1 -0
- package/dist/Jobs/JobDefinition/operations/rules.d.ts.map +1 -1
- package/dist/Jobs/JobDefinition/operations/rules.js +3 -0
- package/dist/Jobs/JobDefinition/operations/rules.js.map +1 -1
- package/dist/Jobs/index.d.ts +2 -2
- package/dist/Jobs/index.d.ts.map +1 -1
- package/dist/Jobs/index.js +450 -215
- package/dist/Jobs/index.js.map +1 -1
- package/dist/Schemas/job.js +198 -85
- package/dist/Schemas/job.js.map +1 -1
- package/dist/Schemas/node.d.ts +81 -24
- package/dist/Schemas/node.d.ts.map +1 -1
- package/dist/Schemas/nodeOpenApi.d.ts.map +1 -1
- package/dist/Schemas/nodeOpenApi.js +234 -79
- package/dist/Schemas/nodeOpenApi.js.map +1 -1
- package/openapi/node.openapi.json +289 -97
- package/package.json +2 -2
package/dist/Common/index.d.ts
CHANGED
|
@@ -12,14 +12,36 @@ export declare const NOS_MINT_ADDRESSES: Record<NosanaNetwork, string>;
|
|
|
12
12
|
/**
|
|
13
13
|
* Nosana program addresses per network. Single source of truth for all
|
|
14
14
|
* packages; localnet runs the devnet programs (pre-baked in @nosana/localnet).
|
|
15
|
+
*
|
|
16
|
+
* `rewardsPool` is not a program but the AddFee pool that pays the rewards
|
|
17
|
+
* vault, which a stake topup claims first. It has rotated before, so it is
|
|
18
|
+
* kept here beside the programs rather than in code. Localnet has none.
|
|
15
19
|
*/
|
|
16
|
-
export declare const NOSANA_PROGRAM_ADDRESSES:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
export declare const NOSANA_PROGRAM_ADDRESSES: {
|
|
21
|
+
readonly mainnet: {
|
|
22
|
+
readonly jobs: "nosJhNRqr2bc9g1nfGDcXXTXvYUmxD4cVwy2pMWhrYM";
|
|
23
|
+
readonly rewards: "nosRB8DUV67oLNrL45bo2pFLrmsWPiewe2Lk2DRNYCp";
|
|
24
|
+
readonly stake: "nosScmHY2uR24Zh751PmGj9ww9QRNHewh9H59AfrTJE";
|
|
25
|
+
readonly pools: "nosPdZrfDzND1LAR28FLMDEATUPK53K8xbRBXAirevD";
|
|
26
|
+
readonly merkleDistributor: "merkp8F8f5EgYSYKadk3YiuQQdo3JPdnJWKviaaF425";
|
|
27
|
+
readonly rewardsPool: "5SdnB8ZMqqfVKPUHFqx3KVfx4Aj4y352uCe8C71GHUqU";
|
|
28
|
+
};
|
|
29
|
+
readonly devnet: {
|
|
30
|
+
readonly jobs: "nosJTmGQxvwXy23vng5UjkTbfv91Bzf9jEuro78dAGR";
|
|
31
|
+
readonly rewards: "nosRB8DUV67oLNrL45bo2pFLrmsWPiewe2Lk2DRNYCp";
|
|
32
|
+
readonly stake: "nosScmHY2uR24Zh751PmGj9ww9QRNHewh9H59AfrTJE";
|
|
33
|
+
readonly pools: "nosPdZrfDzND1LAR28FLMDEATUPK53K8xbRBXAirevD";
|
|
34
|
+
readonly merkleDistributor: "merkp8F8f5EgYSYKadk3YiuQQdo3JPdnJWKviaaF425";
|
|
35
|
+
readonly rewardsPool: "miF9saGY5WS747oia48WR3CMFZMAGG8xt6ajB7rdV3e";
|
|
36
|
+
};
|
|
37
|
+
readonly localnet: {
|
|
38
|
+
readonly jobs: "nosJTmGQxvwXy23vng5UjkTbfv91Bzf9jEuro78dAGR";
|
|
39
|
+
readonly rewards: "nosRB8DUV67oLNrL45bo2pFLrmsWPiewe2Lk2DRNYCp";
|
|
40
|
+
readonly stake: "nosScmHY2uR24Zh751PmGj9ww9QRNHewh9H59AfrTJE";
|
|
41
|
+
readonly pools: "nosPdZrfDzND1LAR28FLMDEATUPK53K8xbRBXAirevD";
|
|
42
|
+
readonly merkleDistributor: "merkp8F8f5EgYSYKadk3YiuQQdo3JPdnJWKviaaF425";
|
|
43
|
+
};
|
|
44
|
+
};
|
|
23
45
|
/** A Solana address: base58 without the ambiguous characters, 32 to 44 characters long. */
|
|
24
46
|
export declare const SOLANA_ADDRESS_PATTERN = "^[1-9A-HJ-NP-Za-km-z]{32,44}$";
|
|
25
47
|
export declare function isSolanaAddress(value: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Common/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAInD,CAAC;AAEX
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Common/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAInD,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;CAkCpC,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB,kCAAkC,CAAC;AAItE,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD"}
|
package/dist/Common/index.js
CHANGED
|
@@ -15,6 +15,10 @@ export const NOS_MINT_ADDRESSES = {
|
|
|
15
15
|
/**
|
|
16
16
|
* Nosana program addresses per network. Single source of truth for all
|
|
17
17
|
* packages; localnet runs the devnet programs (pre-baked in @nosana/localnet).
|
|
18
|
+
*
|
|
19
|
+
* `rewardsPool` is not a program but the AddFee pool that pays the rewards
|
|
20
|
+
* vault, which a stake topup claims first. It has rotated before, so it is
|
|
21
|
+
* kept here beside the programs rather than in code. Localnet has none.
|
|
18
22
|
*/
|
|
19
23
|
export const NOSANA_PROGRAM_ADDRESSES = {
|
|
20
24
|
[NosanaNetwork.MAINNET]: {
|
|
@@ -23,6 +27,7 @@ export const NOSANA_PROGRAM_ADDRESSES = {
|
|
|
23
27
|
stake: 'nosScmHY2uR24Zh751PmGj9ww9QRNHewh9H59AfrTJE',
|
|
24
28
|
pools: 'nosPdZrfDzND1LAR28FLMDEATUPK53K8xbRBXAirevD',
|
|
25
29
|
merkleDistributor: 'merkp8F8f5EgYSYKadk3YiuQQdo3JPdnJWKviaaF425',
|
|
30
|
+
rewardsPool: '5SdnB8ZMqqfVKPUHFqx3KVfx4Aj4y352uCe8C71GHUqU',
|
|
26
31
|
},
|
|
27
32
|
[NosanaNetwork.DEVNET]: {
|
|
28
33
|
jobs: 'nosJTmGQxvwXy23vng5UjkTbfv91Bzf9jEuro78dAGR',
|
|
@@ -30,6 +35,7 @@ export const NOSANA_PROGRAM_ADDRESSES = {
|
|
|
30
35
|
stake: 'nosScmHY2uR24Zh751PmGj9ww9QRNHewh9H59AfrTJE',
|
|
31
36
|
pools: 'nosPdZrfDzND1LAR28FLMDEATUPK53K8xbRBXAirevD',
|
|
32
37
|
merkleDistributor: 'merkp8F8f5EgYSYKadk3YiuQQdo3JPdnJWKviaaF425',
|
|
38
|
+
rewardsPool: 'miF9saGY5WS747oia48WR3CMFZMAGG8xt6ajB7rdV3e',
|
|
33
39
|
},
|
|
34
40
|
[NosanaNetwork.LOCALNET]: {
|
|
35
41
|
jobs: 'nosJTmGQxvwXy23vng5UjkTbfv91Bzf9jEuro78dAGR',
|
package/dist/Common/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Common/index.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAIX;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAkC;IAC/D,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,6CAA6C;IACtE,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,6CAA6C;IACrE,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,6CAA6C;CAC/D,CAAC;AAEX
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Common/index.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAIX;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAkC;IAC/D,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,6CAA6C;IACtE,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,6CAA6C;IACrE,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,6CAA6C;CAC/D,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;QACvB,IAAI,EAAE,6CAA6C;QACnD,OAAO,EAAE,6CAA6C;QACtD,KAAK,EAAE,6CAA6C;QACpD,KAAK,EAAE,6CAA6C;QACpD,iBAAiB,EAAE,6CAA6C;QAChE,WAAW,EAAE,8CAA8C;KAC5D;IACD,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;QACtB,IAAI,EAAE,6CAA6C;QACnD,OAAO,EAAE,6CAA6C;QACtD,KAAK,EAAE,6CAA6C;QACpD,KAAK,EAAE,6CAA6C;QACpD,iBAAiB,EAAE,6CAA6C;QAChE,WAAW,EAAE,6CAA6C;KAC3D;IACD,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;QACxB,IAAI,EAAE,6CAA6C;QACnD,OAAO,EAAE,6CAA6C;QACtD,KAAK,EAAE,6CAA6C;QACpD,KAAK,EAAE,6CAA6C;QACpD,iBAAiB,EAAE,6CAA6C;KACjE;CAWF,CAAC;AAEF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,sBAAsB,GAAG,+BAA+B,CAAC;AAEtE,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAE1D,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -30,6 +30,11 @@ export type FlowSecrets = {
|
|
|
30
30
|
urlmode?: 'private' | 'public';
|
|
31
31
|
[jobId: string]: JobExposeSecrets | 'private' | 'public' | undefined;
|
|
32
32
|
};
|
|
33
|
+
export type OpStateError = {
|
|
34
|
+
event: string;
|
|
35
|
+
message: string;
|
|
36
|
+
code?: number;
|
|
37
|
+
};
|
|
33
38
|
export type OpState = {
|
|
34
39
|
providerId: string | null;
|
|
35
40
|
operationId: string | null;
|
|
@@ -42,11 +47,10 @@ export type OpState = {
|
|
|
42
47
|
results?: {
|
|
43
48
|
[key: string]: string | string[];
|
|
44
49
|
};
|
|
45
|
-
error
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
};
|
|
50
|
+
/** Every error the operation hit, in order. */
|
|
51
|
+
errors: Array<OpStateError>;
|
|
52
|
+
/** Single-error form; the node records each error in `errors`. */
|
|
53
|
+
error?: OpStateError;
|
|
50
54
|
diagnostics: {
|
|
51
55
|
reason: DiagnosticsReason;
|
|
52
56
|
state?: DiagnosticsState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Jobs/Flows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC;CACpC;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,cAAc,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC/B,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;CACtE,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;KAClC,CAAC;IACF,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Jobs/Flows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC;CACpC;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,cAAc,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC/B,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;CACtE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;KAClC,CAAC;IACF,+CAA+C;IAC/C,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5B,kEAAkE;IAClE,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE;QACX,MAAM,EAAE,iBAAiB,CAAC;QAC1B,KAAK,CAAC,EAAE,gBAAgB,CAAC;KAC1B,CAAA;CACF,CAAC"}
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
import type { tags } from "typia";
|
|
2
2
|
import type { LiteralString, SpreadMarker } from "./literals.js";
|
|
3
|
+
export type PortRangeString = string & tags.TagBase<{
|
|
4
|
+
kind: 'portRange';
|
|
5
|
+
target: 'string';
|
|
6
|
+
value: 'portRange';
|
|
7
|
+
validate: `
|
|
8
|
+
typeof $input === "string" &&
|
|
9
|
+
(() => {
|
|
10
|
+
const match = /^([0-9]+)-([0-9]+)$/.exec($input);
|
|
11
|
+
if (!match) return false;
|
|
12
|
+
const a = Number(match[1]), b = Number(match[2]);
|
|
13
|
+
return a < b;
|
|
14
|
+
})()
|
|
15
|
+
`;
|
|
16
|
+
message: "Port range must be in the format 'start-end' with start < end";
|
|
17
|
+
}>;
|
|
3
18
|
export type UniqueExposedPorts = Array<ExposeBase> & tags.TagBase<{
|
|
4
19
|
kind: 'uniqueExposedPorts';
|
|
5
20
|
target: 'array';
|
|
@@ -69,10 +84,10 @@ export type WebSocketHealthCheck = {
|
|
|
69
84
|
export type HealthCheck = HttpHealthCheck | WebSocketHealthCheck;
|
|
70
85
|
export type Port = number;
|
|
71
86
|
export type ExposedPort = {
|
|
72
|
-
port:
|
|
87
|
+
port: Port | PortRangeString;
|
|
73
88
|
type?: ServiceType;
|
|
74
89
|
health_checks?: HealthCheck[];
|
|
75
90
|
};
|
|
76
|
-
export type ExposeBase = Port | ExposedPort | LiteralString | SpreadMarker;
|
|
91
|
+
export type ExposeBase = Port | PortRangeString | ExposedPort | LiteralString | SpreadMarker;
|
|
77
92
|
export type Expose = ExposeBase | UniqueExposedPorts;
|
|
78
93
|
//# sourceMappingURL=expose.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expose.d.ts","sourceRoot":"","sources":["../../../../src/Jobs/JobDefinition/args/expose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"expose.d.ts","sourceRoot":"","sources":["../../../../src/Jobs/JobDefinition/args/expose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGjE,MAAM,MAAM,eAAe,GAAG,MAAM,GAClC,IAAI,CAAC,OAAO,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE;;;;;;;;KAQT,CAAC;IACF,OAAO,EAAE,+DAA+D,CAAC;CAC1E,CAAC,CAAC;AAEL,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAAC,GAChD,IAAI,CAAC,OAAO,CAAC;IACX,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgCT,CAAC;IACF,OAAO,EAAE,0IAA0I,CAAC;CACrJ,CAAC,CAAC;AAEL,eAAO,MAAM,WAAW;;;;;;CAMd,CAAC;AAGX,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEvE,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAGX,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAEnF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,OAAO,eAAe,CAAC,IAAI,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,OAAO,eAAe,CAAC,SAAS,CAAC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,oBAAoB,CAAC;AAEjE,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC;AAC1B,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,IAAI,GAAG,eAAe,CAAC;IAC7B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,eAAe,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC;AAC7F,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expose.js","sourceRoot":"","sources":["../../../../src/Jobs/JobDefinition/args/expose.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"expose.js","sourceRoot":"","sources":["../../../../src/Jobs/JobDefinition/args/expose.ts"],"names":[],"mappings":"AA8DA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;CACJ,CAAC;AAKX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;CACd,CAAC"}
|
|
@@ -6,9 +6,12 @@ import type { Env } from "./env.js";
|
|
|
6
6
|
import type { Expose } from "./expose.js";
|
|
7
7
|
import type { GPU } from "./gpu.js";
|
|
8
8
|
import type { Image } from "./image.js";
|
|
9
|
+
import type { Output } from "./output.js";
|
|
9
10
|
import type { Private } from "./private.js";
|
|
11
|
+
import type { RequiredVRAM } from "./required_vram.js";
|
|
10
12
|
import type { Resources } from "./resources.js";
|
|
11
13
|
import { RestartPolicy } from "./restart_policy.js";
|
|
14
|
+
import type { TrustedExecutionEnv } from "./trusted_execution_env.js";
|
|
12
15
|
import type { Variables } from "./variables.js";
|
|
13
16
|
import type { Volume } from "./volumes.js";
|
|
14
17
|
import type { WorkDir } from "./work_dir.js";
|
|
@@ -20,9 +23,12 @@ export * from "./expose.js";
|
|
|
20
23
|
export * from "./gpu.js";
|
|
21
24
|
export * from "./image.js";
|
|
22
25
|
export * from "./literals.js";
|
|
26
|
+
export * from "./output.js";
|
|
23
27
|
export * from "./private.js";
|
|
28
|
+
export * from "./required_vram.js";
|
|
24
29
|
export * from "./resources.js";
|
|
25
30
|
export * from "./restart_policy.js";
|
|
31
|
+
export * from "./trusted_execution_env.js";
|
|
26
32
|
export * from "./variables.js";
|
|
27
33
|
export * from "./volumes.js";
|
|
28
34
|
export * from "./work_dir.js";
|
|
@@ -34,12 +40,43 @@ export interface ContainerRun {
|
|
|
34
40
|
expose?: Expose;
|
|
35
41
|
gpu?: GPU;
|
|
36
42
|
work_dir?: WorkDir;
|
|
43
|
+
output?: Output;
|
|
37
44
|
entrypoint?: CMDString | CMDArray;
|
|
38
45
|
env?: Env;
|
|
39
46
|
restart_policy?: RestartPolicy;
|
|
47
|
+
required_vram?: RequiredVRAM;
|
|
40
48
|
private?: Private;
|
|
41
49
|
resources?: Resources;
|
|
42
50
|
authentication?: Authentication;
|
|
51
|
+
trusted_execution_env?: TrustedExecutionEnv;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Arguments for a `vm/run` / `cvm/run` hypervisor operation — a declarative
|
|
55
|
+
* façade over the VM orchestrator that mirrors `container/run` (the QEMU knobs
|
|
56
|
+
* are hidden). `cvm/run` is the confidential (SEV-SNP) variant and shares this
|
|
57
|
+
* exact arg shape: the operation *key* selects confidentiality, not an argument.
|
|
58
|
+
*/
|
|
59
|
+
export interface VmRunArgs {
|
|
60
|
+
/** Disk image to fetch and boot (OCI artifact, URL, or IPFS CID). Required. */
|
|
61
|
+
image: Image;
|
|
62
|
+
/** vCPU count. */
|
|
63
|
+
cpu?: number;
|
|
64
|
+
/** Memory — MiB as a number, or a human string like "4G". */
|
|
65
|
+
memory?: number | string;
|
|
66
|
+
/** Root disk size — MiB as a number, or a human string like "20G". */
|
|
67
|
+
disk?: number | string;
|
|
68
|
+
/** Pass a GPU through to the guest (VFIO). */
|
|
69
|
+
gpu?: GPU;
|
|
70
|
+
/** Command to run on boot (delivered via cloud-init / the guest agent). */
|
|
71
|
+
cmd?: string | string[];
|
|
72
|
+
/** Environment variables injected into the guest. */
|
|
73
|
+
env?: Env;
|
|
74
|
+
/** Ports to expose — same grammar as `container/run`. */
|
|
75
|
+
expose?: Expose;
|
|
76
|
+
/** Publish exposed URLs privately (auth-gated) rather than publicly. */
|
|
77
|
+
private?: Private;
|
|
78
|
+
/** Restart policy — same grammar as `container/run`. */
|
|
79
|
+
restart_policy?: RestartPolicy;
|
|
43
80
|
}
|
|
44
81
|
export interface ContainerCreateVolume {
|
|
45
82
|
name: string;
|
|
@@ -58,5 +95,6 @@ export declare const validateResources: (input: unknown) => IValidation<Resource
|
|
|
58
95
|
export declare const validateAuthentication: (input: unknown) => IValidation<Authentication>;
|
|
59
96
|
export declare const validateVariables: (input: unknown) => IValidation<Variables>;
|
|
60
97
|
export declare const validateContainerRun: (input: unknown) => IValidation<ContainerRun>;
|
|
98
|
+
export declare const validateVmRunArgs: (input: unknown) => IValidation<VmRunArgs>;
|
|
61
99
|
export declare const validateContainerCreateVolume: (input: unknown) => IValidation<ContainerCreateVolume>;
|
|
62
100
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Jobs/JobDefinition/args/index.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,WAAW,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAE9B,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAC1B,GAAG,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAClC,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Jobs/JobDefinition/args/index.ts"],"names":[],"mappings":"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"}
|