@nosana/api 0.1.6 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +73 -0
  2. package/dist/client/index.d.ts +1 -1
  3. package/dist/client/index.js +10 -8
  4. package/dist/client/index.js.map +1 -1
  5. package/dist/client/schema.d.ts +188 -776
  6. package/dist/defaults/index.d.ts +2 -2
  7. package/dist/defaults/index.js +9 -3
  8. package/dist/defaults/index.js.map +1 -1
  9. package/dist/index.d.ts +16 -9
  10. package/dist/index.js +7 -7
  11. package/dist/index.js.map +1 -1
  12. package/dist/{credits → routes/credits}/index.d.ts +1 -1
  13. package/dist/{credits → routes/credits}/index.js +2 -2
  14. package/dist/routes/credits/index.js.map +1 -0
  15. package/dist/{credits → routes/credits}/types.d.ts +1 -1
  16. package/dist/{jobs → routes/credits}/types.js.map +1 -1
  17. package/dist/routes/deployments/deployment/actions/deploymentArchive.d.ts +11 -0
  18. package/dist/routes/deployments/deployment/actions/deploymentArchive.js +28 -0
  19. package/dist/routes/deployments/deployment/actions/deploymentArchive.js.map +1 -0
  20. package/dist/routes/deployments/deployment/actions/deploymentCreateNewRevision.d.ts +3 -0
  21. package/dist/routes/deployments/deployment/actions/deploymentCreateNewRevision.js +17 -0
  22. package/dist/routes/deployments/deployment/actions/deploymentCreateNewRevision.js.map +1 -0
  23. package/dist/routes/deployments/deployment/actions/deploymentDelete.d.ts +13 -0
  24. package/dist/routes/deployments/deployment/actions/deploymentDelete.js +26 -0
  25. package/dist/routes/deployments/deployment/actions/deploymentDelete.js.map +1 -0
  26. package/dist/routes/deployments/deployment/actions/deploymentGenerateAuthHeader.d.ts +3 -0
  27. package/dist/routes/deployments/deployment/actions/deploymentGenerateAuthHeader.js +11 -0
  28. package/dist/routes/deployments/deployment/actions/deploymentGenerateAuthHeader.js.map +1 -0
  29. package/dist/routes/deployments/deployment/actions/deploymentGetJob.d.ts +5 -0
  30. package/dist/routes/deployments/deployment/actions/deploymentGetJob.js +11 -0
  31. package/dist/routes/deployments/deployment/actions/deploymentGetJob.js.map +1 -0
  32. package/dist/routes/deployments/deployment/actions/deploymentGetTasks.d.ts +12 -0
  33. package/dist/routes/deployments/deployment/actions/deploymentGetTasks.js +19 -0
  34. package/dist/routes/deployments/deployment/actions/deploymentGetTasks.js.map +1 -0
  35. package/dist/routes/deployments/deployment/actions/deploymentStart.d.ts +9 -0
  36. package/dist/routes/deployments/deployment/actions/deploymentStart.js +24 -0
  37. package/dist/routes/deployments/deployment/actions/deploymentStart.js.map +1 -0
  38. package/dist/routes/deployments/deployment/actions/deploymentStop.d.ts +11 -0
  39. package/dist/routes/deployments/deployment/actions/deploymentStop.js +26 -0
  40. package/dist/routes/deployments/deployment/actions/deploymentStop.js.map +1 -0
  41. package/dist/routes/deployments/deployment/actions/deploymentUpdateActiveRevision.d.ts +3 -0
  42. package/dist/routes/deployments/deployment/actions/deploymentUpdateActiveRevision.js +16 -0
  43. package/dist/routes/deployments/deployment/actions/deploymentUpdateActiveRevision.js.map +1 -0
  44. package/dist/routes/deployments/deployment/actions/deploymentUpdateReplicaCount.d.ts +11 -0
  45. package/dist/routes/deployments/deployment/actions/deploymentUpdateReplicaCount.js +26 -0
  46. package/dist/routes/deployments/deployment/actions/deploymentUpdateReplicaCount.js.map +1 -0
  47. package/dist/routes/deployments/deployment/actions/deploymentUpdateSchedule.d.ts +3 -0
  48. package/dist/routes/deployments/deployment/actions/deploymentUpdateSchedule.js +15 -0
  49. package/dist/routes/deployments/deployment/actions/deploymentUpdateSchedule.js.map +1 -0
  50. package/dist/routes/deployments/deployment/actions/deploymentUpdateTimeout.d.ts +11 -0
  51. package/dist/routes/deployments/deployment/actions/deploymentUpdateTimeout.js +26 -0
  52. package/dist/routes/deployments/deployment/actions/deploymentUpdateTimeout.js.map +1 -0
  53. package/dist/routes/deployments/deployment/actions/index.d.ts +15 -0
  54. package/dist/routes/deployments/deployment/actions/index.js +16 -0
  55. package/dist/routes/deployments/deployment/actions/index.js.map +1 -0
  56. package/dist/routes/deployments/deployment/actions/vaultGetBalance.d.ts +14 -0
  57. package/dist/routes/deployments/deployment/actions/vaultGetBalance.js +19 -0
  58. package/dist/routes/deployments/deployment/actions/vaultGetBalance.js.map +1 -0
  59. package/dist/routes/deployments/deployment/actions/vaultTopup.d.ts +13 -0
  60. package/dist/routes/deployments/deployment/actions/vaultTopup.js +20 -0
  61. package/dist/routes/deployments/deployment/actions/vaultTopup.js.map +1 -0
  62. package/dist/routes/deployments/deployment/actions/vaultWithdraw.d.ts +14 -0
  63. package/dist/routes/deployments/deployment/actions/vaultWithdraw.js +34 -0
  64. package/dist/routes/deployments/deployment/actions/vaultWithdraw.js.map +1 -0
  65. package/dist/routes/deployments/deployment/createDeployment.d.ts +5 -0
  66. package/dist/routes/deployments/deployment/createDeployment.js +150 -0
  67. package/dist/routes/deployments/deployment/createDeployment.js.map +1 -0
  68. package/dist/routes/deployments/deployment/createVault.d.ts +14 -0
  69. package/dist/routes/deployments/deployment/createVault.js +40 -0
  70. package/dist/routes/deployments/deployment/createVault.js.map +1 -0
  71. package/dist/routes/deployments/deployment/index.d.ts +2 -0
  72. package/dist/routes/deployments/deployment/index.js +3 -0
  73. package/dist/routes/deployments/deployment/index.js.map +1 -0
  74. package/dist/routes/deployments/index.d.ts +5 -0
  75. package/dist/routes/deployments/index.js +83 -0
  76. package/dist/routes/deployments/index.js.map +1 -0
  77. package/dist/routes/deployments/types.d.ts +63 -0
  78. package/dist/routes/deployments/types.js.map +1 -0
  79. package/dist/routes/index.d.ts +4 -0
  80. package/dist/routes/index.js +5 -0
  81. package/dist/routes/index.js.map +1 -0
  82. package/dist/{jobs → routes/jobs}/index.d.ts +1 -1
  83. package/dist/{jobs → routes/jobs}/index.js +5 -5
  84. package/dist/routes/jobs/index.js.map +1 -0
  85. package/dist/{jobs → routes/jobs}/types.d.ts +1 -1
  86. package/dist/{credits → routes/jobs}/types.js.map +1 -1
  87. package/dist/{markets → routes/markets}/index.d.ts +1 -1
  88. package/dist/{markets → routes/markets}/index.js +4 -4
  89. package/dist/routes/markets/index.js.map +1 -0
  90. package/dist/{markets → routes/markets}/types.d.ts +1 -1
  91. package/dist/routes/markets/types.js +2 -0
  92. package/dist/{markets → routes/markets}/types.js.map +1 -1
  93. package/dist/types.d.ts +34 -17
  94. package/dist/types.js +2 -5
  95. package/dist/types.js.map +1 -1
  96. package/package.json +2 -1
  97. package/dist/credits/index.js.map +0 -1
  98. package/dist/jobs/index.js.map +0 -1
  99. package/dist/markets/index.js.map +0 -1
  100. /package/dist/{credits → routes/credits}/types.js +0 -0
  101. /package/dist/{jobs → routes/deployments}/types.js +0 -0
  102. /package/dist/{markets → routes/jobs}/types.js +0 -0
@@ -0,0 +1,14 @@
1
+ import type { RouteOptionsWithSigner } from "../../../../types.js";
2
+ /**
3
+ * Gets the balance of a vault.
4
+ *
5
+ * TODO: Implement with @nosana/kit TokenManager once available.
6
+ * Should fetch SOL and NOS balances from the vault address.
7
+ *
8
+ * @param vaultAddress - The vault's Solana address
9
+ * @returns Promise with SOL and NOS balances
10
+ */
11
+ export declare function vaultGetBalance(vaultAddress: string, { solana: { getBalance } }: RouteOptionsWithSigner): Promise<{
12
+ SOL: number;
13
+ NOS: number;
14
+ }>;
@@ -0,0 +1,19 @@
1
+ import { errorFormatter } from "../../../../utils/errorFormatter.js";
2
+ /**
3
+ * Gets the balance of a vault.
4
+ *
5
+ * TODO: Implement with @nosana/kit TokenManager once available.
6
+ * Should fetch SOL and NOS balances from the vault address.
7
+ *
8
+ * @param vaultAddress - The vault's Solana address
9
+ * @returns Promise with SOL and NOS balances
10
+ */
11
+ export async function vaultGetBalance(vaultAddress, { solana: { getBalance } }) {
12
+ try {
13
+ return await getBalance(vaultAddress);
14
+ }
15
+ catch (error) {
16
+ throw errorFormatter('Failed to get vault balance', error);
17
+ }
18
+ }
19
+ //# sourceMappingURL=vaultGetBalance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaultGetBalance.js","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/vaultGetBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAIrE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,YAAoB,EACpB,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAA0B;IAElD,IAAI,CAAC;QACH,OAAO,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,cAAc,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { TopupVaultOptions } from '../../types.js';
2
+ import type { RouteOptionsWithSigner } from '../../../../types.js';
3
+ /**
4
+ * Tops up a vault with SOL and/or NOS.
5
+ *
6
+ * TODO: Implement with @nosana/kit TokenManager once available.
7
+ * Should use TokenManager to transfer SOL/NOS to the vault.
8
+ *
9
+ * @param _vaultAddress - The vault's Solana address
10
+ * @param _options - Topup options (SOL, NOS amounts)
11
+ * @returns Promise that resolves when topup is complete
12
+ */
13
+ export declare function vaultTopup(vaultAddress: string, options: TopupVaultOptions, { solana: { transferTokensToRecipient } }: RouteOptionsWithSigner): Promise<void>;
@@ -0,0 +1,20 @@
1
+ import { errorFormatter } from '../../../../utils/errorFormatter.js';
2
+ /**
3
+ * Tops up a vault with SOL and/or NOS.
4
+ *
5
+ * TODO: Implement with @nosana/kit TokenManager once available.
6
+ * Should use TokenManager to transfer SOL/NOS to the vault.
7
+ *
8
+ * @param _vaultAddress - The vault's Solana address
9
+ * @param _options - Topup options (SOL, NOS amounts)
10
+ * @returns Promise that resolves when topup is complete
11
+ */
12
+ export async function vaultTopup(vaultAddress, options, { solana: { transferTokensToRecipient } }) {
13
+ try {
14
+ await transferTokensToRecipient(vaultAddress, options);
15
+ }
16
+ catch (error) {
17
+ throw errorFormatter('Failed to top up vault', error);
18
+ }
19
+ }
20
+ //# sourceMappingURL=vaultTopup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaultTopup.js","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/vaultTopup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAKrE;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,YAAoB,EACpB,OAA0B,EAC1B,EAAE,MAAM,EAAE,EAAE,yBAAyB,EAAE,EAA0B;IAEjE,IAAI,CAAC;QACH,MAAM,yBAAyB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,cAAc,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { RouteOptionsWithSigner } from '../../../../types.js';
2
+ /**
3
+ * Withdraws all tokens from a vault.
4
+ *
5
+ * TODO: Implement with @nosana/kit once available.
6
+ * Should:
7
+ * 1. Call deployment manager API to get withdrawal transaction
8
+ * 2. Sign and send the transaction using wallet from @nosana/kit
9
+ *
10
+ * @param vaultAddress - The vault's Solana address
11
+ * @param options - Options including QueryClient for API calls
12
+ * @returns Promise that resolves when withdrawal is complete
13
+ */
14
+ export declare function vaultWithdraw(vaultAddress: string, { client, solana: { deserializeSignSendAndConfirmTransaction } }: RouteOptionsWithSigner): Promise<void>;
@@ -0,0 +1,34 @@
1
+ import { errorFormatter } from '../../../../utils/errorFormatter.js';
2
+ /**
3
+ * Withdraws all tokens from a vault.
4
+ *
5
+ * TODO: Implement with @nosana/kit once available.
6
+ * Should:
7
+ * 1. Call deployment manager API to get withdrawal transaction
8
+ * 2. Sign and send the transaction using wallet from @nosana/kit
9
+ *
10
+ * @param vaultAddress - The vault's Solana address
11
+ * @param options - Options including QueryClient for API calls
12
+ * @returns Promise that resolves when withdrawal is complete
13
+ */
14
+ export async function vaultWithdraw(vaultAddress, { client, solana: { deserializeSignSendAndConfirmTransaction } }) {
15
+ const { data, error } = await client.POST('/api/deployments/vaults/{vault}/withdraw', {
16
+ params: {
17
+ path: {
18
+ vault: vaultAddress,
19
+ }
20
+ },
21
+ body: {}
22
+ });
23
+ if (error || !data) {
24
+ throw errorFormatter('Failed to withdraw from vault', error);
25
+ }
26
+ try {
27
+ const { transaction } = data;
28
+ await deserializeSignSendAndConfirmTransaction(transaction);
29
+ }
30
+ catch (error) {
31
+ throw errorFormatter('Vault withdrawal transaction failed.', error);
32
+ }
33
+ }
34
+ //# sourceMappingURL=vaultWithdraw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaultWithdraw.js","sourceRoot":"","sources":["../../../../../src/routes/deployments/deployment/actions/vaultWithdraw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAIrE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,YAAoB,EACpB,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,wCAAwC,EAAE,EAA0B;IAExF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE;QACpF,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,KAAK,EAAE,YAAY;aACpB;SACF;QACD,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,cAAc,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,MAAM,wCAAwC,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,cAAc,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Deployment as DeploymentSchema } from '@nosana/types';
2
+ import type { Deployment, ApiDeployment } from '../types.js';
3
+ import type { RouteOptions, RouteOptionsWithSigner } from '../../../types.js';
4
+ export declare function createDeployment(deployment: DeploymentSchema, options: RouteOptions, hasApiKey: true): ApiDeployment;
5
+ export declare function createDeployment(deployment: DeploymentSchema, options: RouteOptionsWithSigner, hasApiKey: false): Deployment;
@@ -0,0 +1,150 @@
1
+ import { deploymentStop, deploymentStart, deploymentGetJob, deploymentArchive, deploymentUpdateReplicaCount, deploymentGetTasks, deploymentUpdateTimeout, deploymentCreateNewRevision, deploymentUpdateActiveRevision, deploymentUpdateSchedule, deploymentGenerateAuthHeader, deploymentDelete } from './actions/index.js';
2
+ import { createVault } from './createVault.js';
3
+ export function createDeployment(deployment, options, hasApiKey) {
4
+ let state = {
5
+ ...deployment,
6
+ updated_at: new Date(deployment.updated_at),
7
+ created_at: new Date(deployment.created_at),
8
+ };
9
+ /**
10
+ * @throws Error if the deployment is already running or starting
11
+ * @throws Error if there is an error starting the deployment
12
+ * @returns Promise<void>
13
+ * @description Starts the deployment.
14
+ */
15
+ const start = async () => {
16
+ await deploymentStart(options.client, state);
17
+ };
18
+ /**
19
+ * @throws Error if the deployment is already stopped
20
+ * @throws Error if there is an error stopping the deployment
21
+ * @returns Promise<void>
22
+ * @description Stops the deployment.
23
+ * This will halt the deployment and prevent further actions until it is started again.
24
+ * It is useful for pausing deployments without archiving them.
25
+ */
26
+ const stop = async () => {
27
+ await deploymentStop(options.client, state);
28
+ };
29
+ /**
30
+ * @throws Error if the deployment is not stopped
31
+ * @throws Error if there is an error archiving the deployment
32
+ * @returns Promise<void>
33
+ * @description Archives the deployment.
34
+ * This will mark the deployment as archived and prevent further modifications.
35
+ * It is useful for cleaning up deployments that are no longer needed.
36
+ */
37
+ const archive = async () => {
38
+ await deploymentArchive(options.client, state);
39
+ };
40
+ /**
41
+ * @returns Promise<Task[]>
42
+ * @throws Error if there is an error fetching the tasks
43
+ * @throws Error if the deployment is not found
44
+ * @description Fetches the tasks for the deployment.
45
+ * This will return the current tasks associated with the deployment.
46
+ * It is useful for monitoring the deployment's progress and status.
47
+ */
48
+ const getTasks = async () => {
49
+ return await deploymentGetTasks(options.client, state);
50
+ };
51
+ /**
52
+ * @param jobDefinition Job definition for the new revision
53
+ * @throws Error if there is an error creating the new revision
54
+ * @returns Promise<void>
55
+ * @description Creates a new revision for the deployment.
56
+ * This will create a new version of the deployment based on the provided job definition.
57
+ * It is useful for updating the deployment with new configurations or code.
58
+ */
59
+ const createRevision = async (jobDefinition) => {
60
+ await deploymentCreateNewRevision(jobDefinition, options.client, state);
61
+ };
62
+ /**
63
+ * @param replicas Number of replicas to set for the deployment
64
+ * @throws Error if replicas is less than 1
65
+ * @throws Error if there is an error updating the replica count
66
+ * @returns Promise<void>
67
+ * @description Updates the number of replicas for the deployment.
68
+ * This will change the number of instances running for the deployment.
69
+ */
70
+ const updateReplicaCount = async (replicas) => {
71
+ await deploymentUpdateReplicaCount(replicas, options.client, state);
72
+ };
73
+ /**
74
+ * @param timeout Timeout in seconds
75
+ * @throws Error if timeout is less than 60 seconds
76
+ * @throws Error if there is an error updating the timeout
77
+ * @returns Promise<void>
78
+ * @description Updates the timeout for the deployment.
79
+ * This will change the maximum time the deployment can run before it is stopped.
80
+ */
81
+ const updateTimeout = async (timeout) => {
82
+ await deploymentUpdateTimeout(timeout, options.client, state);
83
+ };
84
+ /**
85
+ * @param active_revision
86
+ * @throws Error if there is an error updating the active revision
87
+ * @returns Promise<void>
88
+ * @description Updates the active revision for the deployment.
89
+ * This will change which revision of the deployment is currently active and serving traffic.
90
+ */
91
+ const updateActiveRevision = async (active_revision) => {
92
+ await deploymentUpdateActiveRevision(active_revision, options.client, state);
93
+ };
94
+ /**
95
+ * @param schedule Schedule string for the deployment
96
+ * @throws Error if there is an error updating the schedule
97
+ * @returns Promise<void>
98
+ * @description Updates the schedule for the deployment.
99
+ * This will change when the deployment runs based on the provided schedule.
100
+ */
101
+ const updateSchedule = async (schedule) => {
102
+ await deploymentUpdateSchedule(schedule, options.client, state);
103
+ };
104
+ /**
105
+ * @throws Error if there is an error generating the auth header
106
+ * @returns Promise<void>
107
+ * @description Generates a new authentication header for the deployment.
108
+ * This is used for securing access to the deployment's resources.
109
+ */
110
+ const generateAuthHeader = async () => {
111
+ return await deploymentGenerateAuthHeader(options.client, state);
112
+ };
113
+ const getJob = async (job) => {
114
+ return await deploymentGetJob(options.client, state.id, job);
115
+ };
116
+ /**
117
+ * @throws Error if the deployment is not stopped
118
+ * @throws Error if there is an error deleting the deployment
119
+ * @returns Promise<void>
120
+ * @description Deletes the deployment permanently.
121
+ * This will remove the deployment and all associated data (jobs, results, revisions, events).
122
+ * The deployment must be in STOPPED state before it can be deleted.
123
+ * The vault associated with the deployment is NOT deleted.
124
+ * After successful deletion, the deployment object becomes unusable.
125
+ */
126
+ const deleteDeployment = async () => {
127
+ return await deploymentDelete(options.client, state, () => {
128
+ // @ts-expect-error Clear the state to prevent further interaction
129
+ state = undefined;
130
+ });
131
+ };
132
+ return Object.assign(state, {
133
+ ...(!hasApiKey && "solana" in options ? {
134
+ vault: createVault(state.vault, options, state.created_at)
135
+ } : {}),
136
+ start,
137
+ stop,
138
+ archive,
139
+ delete: deleteDeployment,
140
+ getTasks,
141
+ getJob,
142
+ generateAuthHeader,
143
+ createRevision,
144
+ updateReplicaCount,
145
+ updateActiveRevision,
146
+ updateTimeout,
147
+ updateSchedule,
148
+ });
149
+ }
150
+ //# sourceMappingURL=createDeployment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDeployment.js","sourceRoot":"","sources":["../../../../src/routes/deployments/deployment/createDeployment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { Vault } from '../types.js';
2
+ import type { RouteOptionsWithSigner } from '../../../types.js';
3
+ /**
4
+ * Creates a Vault object with methods for managing vault operations.
5
+ *
6
+ * TODO: Once @nosana/kit exports TokenManager and vault utilities, update the action
7
+ * implementations to use them instead of throwing errors.
8
+ *
9
+ * @param vaultAddress - The vault's Solana address
10
+ * @param options - Options including QueryClient for API calls
11
+ * @param created_at - Optional creation timestamp
12
+ * @returns A Vault object with methods
13
+ */
14
+ export declare function createVault(vaultAddress: string, options: RouteOptionsWithSigner, created_at?: Date): Vault;
@@ -0,0 +1,40 @@
1
+ import { vaultGetBalance, vaultTopup, vaultWithdraw, } from './actions/index.js';
2
+ /**
3
+ * Creates a Vault object with methods for managing vault operations.
4
+ *
5
+ * TODO: Once @nosana/kit exports TokenManager and vault utilities, update the action
6
+ * implementations to use them instead of throwing errors.
7
+ *
8
+ * @param vaultAddress - The vault's Solana address
9
+ * @param options - Options including QueryClient for API calls
10
+ * @param created_at - Optional creation timestamp
11
+ * @returns A Vault object with methods
12
+ */
13
+ export function createVault(vaultAddress, options, created_at) {
14
+ return {
15
+ address: vaultAddress,
16
+ ...(created_at ? { created_at } : {}),
17
+ /**
18
+ * Gets the current balance of the vault.
19
+ * TODO: Implementation in actions/vaultGetBalance.ts
20
+ */
21
+ getBalance: async () => {
22
+ return await vaultGetBalance(vaultAddress, options);
23
+ },
24
+ /**
25
+ * Tops up the vault with SOL and/or NOS.
26
+ * TODO: Implementation in actions/vaultTopup.ts
27
+ */
28
+ topup: async (topupOptions) => {
29
+ return await vaultTopup(vaultAddress, topupOptions, options);
30
+ },
31
+ /**
32
+ * Withdraws all tokens from the vault.
33
+ * TODO: Implementation in actions/vaultWithdraw.ts
34
+ */
35
+ withdraw: async () => {
36
+ await vaultWithdraw(vaultAddress, options);
37
+ },
38
+ };
39
+ }
40
+ //# sourceMappingURL=createVault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createVault.js","sourceRoot":"","sources":["../../../../src/routes/deployments/deployment/createVault.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,UAAU,EACV,aAAa,GACd,MAAM,oBAAoB,CAAC;AAK5B;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CACzB,YAAoB,EACpB,OAA+B,EAC/B,UAAiB;IAGjB,OAAO;QACL,OAAO,EAAE,YAAY;QACrB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAErC;;;WAGG;QACH,UAAU,EAAE,KAAK,IAAI,EAAE;YACrB,OAAO,MAAM,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAED;;;WAGG;QACH,KAAK,EAAE,KAAK,EAAE,YAA+B,EAAE,EAAE;YAC/C,OAAO,MAAM,UAAU,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC;QAED;;;WAGG;QACH,QAAQ,EAAE,KAAK,IAAI,EAAE;YACnB,MAAM,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './createDeployment.js';
2
+ export * from './createVault.js';
@@ -0,0 +1,3 @@
1
+ export * from './createDeployment.js';
2
+ export * from './createVault.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/routes/deployments/deployment/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { RouteOptions, RouteOptionsWithSigner } from '../../types.js';
2
+ import type { DeploymentsApi, ApiDeploymentsApi } from './types.js';
3
+ export type { DeploymentsApi, ApiDeploymentsApi } from './types.js';
4
+ export declare function createDeploymentsApi(options: RouteOptions, hasApiKey: true): ApiDeploymentsApi;
5
+ export declare function createDeploymentsApi(options: RouteOptionsWithSigner, hasApiKey: false): DeploymentsApi;
@@ -0,0 +1,83 @@
1
+ import { errorFormatter } from '../../utils/errorFormatter.js';
2
+ import { createVault as createVaultFn } from './deployment/createVault.js';
3
+ import { createDeployment as createDeploymentFn } from './deployment/createDeployment.js';
4
+ export function createDeploymentsApi(options, hasApiKey) {
5
+ const createDeployment = (data) => !hasApiKey && "solana" in options
6
+ ? createDeploymentFn(data, options, false)
7
+ : createDeploymentFn(data, options, true);
8
+ const create = async (deploymentBody) => {
9
+ const { data, error } = await options.client.POST('/api/deployments/create', {
10
+ body: deploymentBody,
11
+ });
12
+ if (error || !data) {
13
+ throw errorFormatter('Error creating deployment', error);
14
+ }
15
+ return createDeployment(data);
16
+ };
17
+ const get = async (deployment) => {
18
+ const { data, error } = await options.client.GET('/api/deployments/{deployment}', {
19
+ params: {
20
+ path: {
21
+ deployment,
22
+ },
23
+ },
24
+ });
25
+ if (error || !data) {
26
+ throw errorFormatter('Error getting deployment', error);
27
+ }
28
+ return createDeployment(data);
29
+ };
30
+ const list = async () => {
31
+ const { data, error } = await options.client.GET('/api/deployments', {});
32
+ if (error || !data) {
33
+ throw errorFormatter('Error listing deployments', error);
34
+ }
35
+ return data.map((deployment) => createDeployment(deployment));
36
+ };
37
+ const pipe = async (deploymentIDorCreateObject, ...actions) => {
38
+ let deployment;
39
+ if (typeof deploymentIDorCreateObject === 'string') {
40
+ deployment = await get(deploymentIDorCreateObject);
41
+ }
42
+ else {
43
+ deployment = await create(deploymentIDorCreateObject);
44
+ }
45
+ for (const action of actions) {
46
+ await action(deployment);
47
+ }
48
+ return deployment;
49
+ };
50
+ const createVault = async () => {
51
+ if (hasApiKey || !('solana' in options)) {
52
+ throw errorFormatter('Creating a vault requires signer authentication');
53
+ }
54
+ const { data, error } = await options.client.POST('/api/deployments/vaults/create', {});
55
+ if (error || !data) {
56
+ throw errorFormatter('Error creating vault', error);
57
+ }
58
+ return createVaultFn(data.vault, options, new Date(data.created_at));
59
+ };
60
+ const listVaults = async () => {
61
+ if (hasApiKey || !('solana' in options)) {
62
+ throw errorFormatter('Creating a vault requires signer authentication');
63
+ }
64
+ const { data, error } = await options.client.GET('/api/deployments/vaults', {});
65
+ if (error || !data) {
66
+ throw errorFormatter('Error listing vaults', error);
67
+ }
68
+ return data.map(({ vault, created_at }) => createVaultFn(vault, options, new Date(created_at)));
69
+ };
70
+ return {
71
+ create,
72
+ get,
73
+ list,
74
+ pipe,
75
+ ...(!hasApiKey ? {
76
+ vaults: {
77
+ create: createVault,
78
+ list: listVaults
79
+ }
80
+ } : {}),
81
+ };
82
+ }
83
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/deployments/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import type { JobDefinition, Task, Deployment as DeploymentSchema, components, paths } from '@nosana/types';
2
+ export type { JobDefinition, Task } from '@nosana/types';
3
+ export type DeploymentState = Omit<DeploymentSchema, "updated_at" | "created_at"> & {
4
+ updated_at: Date;
5
+ created_at: Date;
6
+ };
7
+ export type DeploymentCreateBody = components['schemas']['DeploymentCreateBody'];
8
+ export type CreateDeployment = Omit<DeploymentCreateBody, 'job_definition'> & {
9
+ job_definition: JobDefinition;
10
+ };
11
+ export interface TopupVaultOptions {
12
+ SOL?: number;
13
+ NOS?: number;
14
+ lamports?: boolean;
15
+ }
16
+ /**
17
+ * Vault interface for managing deployment funding.
18
+ * NOTE: Implementation will be provided by @nosana/kit
19
+ */
20
+ export interface Vault {
21
+ address: string;
22
+ created_at?: Date;
23
+ getBalance: () => Promise<{
24
+ SOL: number;
25
+ NOS: number;
26
+ }>;
27
+ topup: (options: TopupVaultOptions) => Promise<void>;
28
+ withdraw: () => Promise<void>;
29
+ }
30
+ export type DeploymentJob = paths['/api/deployments/{deployment}/jobs/{job}']['get']['responses']['200']['content']['application/json'];
31
+ export type ApiDeployment = DeploymentState & {
32
+ start: () => Promise<void>;
33
+ stop: () => Promise<void>;
34
+ archive: () => Promise<void>;
35
+ delete: () => Promise<void>;
36
+ getTasks: () => Promise<Task[]>;
37
+ getJob: (job: string) => Promise<DeploymentJob>;
38
+ generateAuthHeader: () => Promise<string>;
39
+ createRevision: (jobDefinition: JobDefinition) => Promise<void>;
40
+ updateActiveRevision: (revision: number) => Promise<void>;
41
+ updateReplicaCount: (replicas: number) => Promise<void>;
42
+ updateTimeout: (timeout: number) => Promise<void>;
43
+ updateSchedule: (schedule: string) => Promise<void>;
44
+ };
45
+ export type Deployment = ApiDeployment & {
46
+ vault: Vault;
47
+ };
48
+ export interface DeploymentsApi {
49
+ create: (deploymentBody: CreateDeployment) => Promise<Deployment>;
50
+ get: (deployment: string) => Promise<Deployment>;
51
+ list: () => Promise<Deployment[]>;
52
+ pipe: (deploymentIDorCreateObject: string | CreateDeployment, ...actions: Array<(deployment: Deployment) => Promise<void> | void>) => Promise<Deployment>;
53
+ vaults: {
54
+ create: () => Promise<Vault>;
55
+ list: () => Promise<Vault[]>;
56
+ };
57
+ }
58
+ export interface ApiDeploymentsApi {
59
+ create: (deploymentBody: CreateDeployment) => Promise<ApiDeployment>;
60
+ get: (deployment: string) => Promise<ApiDeployment>;
61
+ list: () => Promise<ApiDeployment[]>;
62
+ pipe: (deploymentIDorCreateObject: string | CreateDeployment, ...actions: Array<(deployment: ApiDeployment) => Promise<void> | void>) => Promise<ApiDeployment>;
63
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/routes/deployments/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from "./credits/index.js";
2
+ export * from "./deployments/index.js";
3
+ export * from "./jobs/index.js";
4
+ export * from "./markets/index.js";
@@ -0,0 +1,5 @@
1
+ export * from "./credits/index.js";
2
+ export * from "./deployments/index.js";
3
+ export * from "./jobs/index.js";
4
+ export * from "./markets/index.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { QueryClient } from '../client/index.js';
1
+ import type { QueryClient } from '../../client/index.js';
2
2
  import type { NosanaJobsApi } from './types.js';
3
3
  export * from './types.js';
4
4
  export declare function createNosanaJobsApi(client: QueryClient): NosanaJobsApi;
@@ -1,4 +1,4 @@
1
- import { errorFormatter } from '../utils/errorFormatter.js';
1
+ import { errorFormatter } from '../../utils/errorFormatter.js';
2
2
  export * from './types.js';
3
3
  export function createNosanaJobsApi(client) {
4
4
  return {
@@ -10,7 +10,7 @@ export function createNosanaJobsApi(client) {
10
10
  }
11
11
  }
12
12
  });
13
- if (!data || error) {
13
+ if (error || !data) {
14
14
  throw errorFormatter('Failed to get job', error);
15
15
  }
16
16
  return data;
@@ -19,7 +19,7 @@ export function createNosanaJobsApi(client) {
19
19
  const { data, error } = await client.POST('/api/jobs/list', {
20
20
  body: request,
21
21
  });
22
- if (!data || error) {
22
+ if (error || !data) {
23
23
  throw errorFormatter('Failed to list job', error);
24
24
  }
25
25
  return data;
@@ -33,7 +33,7 @@ export function createNosanaJobsApi(client) {
33
33
  },
34
34
  body: request,
35
35
  });
36
- if (!data || error) {
36
+ if (error || !data) {
37
37
  throw errorFormatter('Failed to extend job', error);
38
38
  }
39
39
  return data;
@@ -46,7 +46,7 @@ export function createNosanaJobsApi(client) {
46
46
  }
47
47
  },
48
48
  });
49
- if (!data || error) {
49
+ if (error || !data) {
50
50
  throw errorFormatter('Failed to stop job', error);
51
51
  }
52
52
  return data;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/jobs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAe/D,cAAc,YAAY,CAAC;AAE3B,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACrD,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,OAAwC;YAChD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE;gBAC9D,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,OAAO;qBACR;iBACF;aACF,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,OAAgC;YACzC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAC1D,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAA6B;YAC7D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBACtE,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,OAAO;qBACR;iBACF;gBACD,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,OAAgC;YACzC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBACpE,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,OAAO;qBACR;iBACF;aACF,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { operations } from "../client/schema.js";
1
+ import { operations } from "../../client/schema.js";
2
2
  export type NosanaApiGetJobByAddressRequest = operations['getApiJobsByAddress']['parameters']['path']['address'];
3
3
  export type NosanaApiListJobRequest = operations['postApiJobsList']['requestBody']['content']['application/json'];
4
4
  export type NosanaApiExtendJobRequest = operations['postApiJobsByAddressExtend']['requestBody']['content']['application/json'] & operations['postApiJobsByAddressExtend']['parameters']['path'];
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/credits/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/routes/jobs/types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import type { QueryClient } from '../client/index.js';
1
+ import type { QueryClient } from '../../client/index.js';
2
2
  import type { NosanaMarketsApi } from './types.js';
3
3
  export * from './types.js';
4
4
  export declare function createNosanaMarketsApi(client: QueryClient): NosanaMarketsApi;