@nosana/node 1.0.0-rc

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 (384) hide show
  1. package/README.md +92 -0
  2. package/dist/.env +7 -0
  3. package/dist/.env.dev +5 -0
  4. package/dist/.env.prd +4 -0
  5. package/dist/NodeManager/client/index.d.ts +4 -0
  6. package/dist/NodeManager/client/index.js +14 -0
  7. package/dist/NodeManager/configs/NodeConfigs.d.ts +14 -0
  8. package/dist/NodeManager/configs/NodeConfigs.js +32 -0
  9. package/dist/NodeManager/configs/__tests__/NodeConfigs.spec.d.ts +1 -0
  10. package/dist/NodeManager/configs/__tests__/NodeConfigs.spec.js +161 -0
  11. package/dist/NodeManager/configs/configs.d.ts +21 -0
  12. package/dist/NodeManager/configs/configs.js +23 -0
  13. package/dist/NodeManager/db/__tests__/index.spec.d.ts +1 -0
  14. package/dist/NodeManager/db/__tests__/index.spec.js +65 -0
  15. package/dist/NodeManager/db/index.d.ts +50 -0
  16. package/dist/NodeManager/db/index.js +64 -0
  17. package/dist/NodeManager/errors/NodeAlreadyActiveError.d.ts +3 -0
  18. package/dist/NodeManager/errors/NodeAlreadyActiveError.js +6 -0
  19. package/dist/NodeManager/index.d.ts +24 -0
  20. package/dist/NodeManager/index.js +317 -0
  21. package/dist/NodeManager/jobs/index.d.ts +6 -0
  22. package/dist/NodeManager/jobs/index.js +45 -0
  23. package/dist/NodeManager/monitoring/LogMonitoringRegistry.d.ts +9 -0
  24. package/dist/NodeManager/monitoring/LogMonitoringRegistry.js +23 -0
  25. package/dist/NodeManager/monitoring/log/NodeLog.d.ts +56 -0
  26. package/dist/NodeManager/monitoring/log/NodeLog.js +1357 -0
  27. package/dist/NodeManager/monitoring/log/console/ConsoleLogger.d.ts +20 -0
  28. package/dist/NodeManager/monitoring/log/console/ConsoleLogger.js +290 -0
  29. package/dist/NodeManager/monitoring/ping/PingHandler.d.ts +13 -0
  30. package/dist/NodeManager/monitoring/ping/PingHandler.js +68 -0
  31. package/dist/NodeManager/monitoring/proxy/loggingProxy.d.ts +15 -0
  32. package/dist/NodeManager/monitoring/proxy/loggingProxy.js +145 -0
  33. package/dist/NodeManager/monitoring/state/NodeState.d.ts +29 -0
  34. package/dist/NodeManager/monitoring/state/NodeState.js +680 -0
  35. package/dist/NodeManager/monitoring/state/classifyState.d.ts +14 -0
  36. package/dist/NodeManager/monitoring/state/classifyState.js +57 -0
  37. package/dist/NodeManager/monitoring/streaming/LogStreamer.d.ts +14 -0
  38. package/dist/NodeManager/monitoring/streaming/LogStreamer.js +58 -0
  39. package/dist/NodeManager/monitoring/streaming/StateStreamer.d.ts +15 -0
  40. package/dist/NodeManager/monitoring/streaming/StateStreamer.js +59 -0
  41. package/dist/NodeManager/node/Node.d.ts +44 -0
  42. package/dist/NodeManager/node/Node.js +321 -0
  43. package/dist/NodeManager/node/abort/NodeAbortController.d.ts +6 -0
  44. package/dist/NodeManager/node/abort/NodeAbortController.js +12 -0
  45. package/dist/NodeManager/node/abort/abortControllerSelector.d.ts +3 -0
  46. package/dist/NodeManager/node/abort/abortControllerSelector.js +13 -0
  47. package/dist/NodeManager/node/api/ApiEventEmitter.d.ts +8 -0
  48. package/dist/NodeManager/node/api/ApiEventEmitter.js +13 -0
  49. package/dist/NodeManager/node/api/ApiHandler.d.ts +28 -0
  50. package/dist/NodeManager/node/api/ApiHandler.js +193 -0
  51. package/dist/NodeManager/node/api/eventsource/index.d.ts +6 -0
  52. package/dist/NodeManager/node/api/eventsource/index.js +35 -0
  53. package/dist/NodeManager/node/api/middlewares/index.d.ts +5 -0
  54. package/dist/NodeManager/node/api/middlewares/index.js +7 -0
  55. package/dist/NodeManager/node/api/middlewares/rest/verifyBackendSignatureMiddleware.d.ts +3 -0
  56. package/dist/NodeManager/node/api/middlewares/rest/verifyBackendSignatureMiddleware.js +20 -0
  57. package/dist/NodeManager/node/api/middlewares/rest/verifyJobOwnerSignatureMiddleware.d.ts +5 -0
  58. package/dist/NodeManager/node/api/middlewares/rest/verifyJobOwnerSignatureMiddleware.js +28 -0
  59. package/dist/NodeManager/node/api/middlewares/ws/verifyWSJobOwnerSignatureMiddleware.d.ts +6 -0
  60. package/dist/NodeManager/node/api/middlewares/ws/verifyWSJobOwnerSignatureMiddleware.js +30 -0
  61. package/dist/NodeManager/node/api/middlewares/ws/verifyWSMiddleware.d.ts +6 -0
  62. package/dist/NodeManager/node/api/middlewares/ws/verifyWSMiddleware.js +20 -0
  63. package/dist/NodeManager/node/api/middlewares/ws/verifyWSNodeOrJobOwnerSignatureMiddleware.d.ts +6 -0
  64. package/dist/NodeManager/node/api/middlewares/ws/verifyWSNodeOrJobOwnerSignatureMiddleware.js +33 -0
  65. package/dist/NodeManager/node/api/routes/get/index.d.ts +6 -0
  66. package/dist/NodeManager/node/api/routes/get/index.js +6 -0
  67. package/dist/NodeManager/node/api/routes/get/job-definition.d.ts +5 -0
  68. package/dist/NodeManager/node/api/routes/get/job-definition.js +16 -0
  69. package/dist/NodeManager/node/api/routes/get/job-info/buildInfoObject.d.ts +17 -0
  70. package/dist/NodeManager/node/api/routes/get/job-info/buildInfoObject.js +15 -0
  71. package/dist/NodeManager/node/api/routes/get/job-info/job-info.d.ts +5 -0
  72. package/dist/NodeManager/node/api/routes/get/job-info/job-info.js +18 -0
  73. package/dist/NodeManager/node/api/routes/get/job-info/pollActiveJob.d.ts +6 -0
  74. package/dist/NodeManager/node/api/routes/get/job-info/pollActiveJob.js +42 -0
  75. package/dist/NodeManager/node/api/routes/get/job-operation-info.d.ts +28 -0
  76. package/dist/NodeManager/node/api/routes/get/job-operation-info.js +53 -0
  77. package/dist/NodeManager/node/api/routes/get/job-results.d.ts +5 -0
  78. package/dist/NodeManager/node/api/routes/get/job-results.js +15 -0
  79. package/dist/NodeManager/node/api/routes/get/node-info.d.ts +3 -0
  80. package/dist/NodeManager/node/api/routes/get/node-info.js +23 -0
  81. package/dist/NodeManager/node/api/routes/get/service-url.d.ts +5 -0
  82. package/dist/NodeManager/node/api/routes/get/service-url.js +27 -0
  83. package/dist/NodeManager/node/api/routes/index.d.ts +3 -0
  84. package/dist/NodeManager/node/api/routes/index.js +3 -0
  85. package/dist/NodeManager/node/api/routes/post/index.d.ts +4 -0
  86. package/dist/NodeManager/node/api/routes/post/index.js +4 -0
  87. package/dist/NodeManager/node/api/routes/post/job-definition.d.ts +6 -0
  88. package/dist/NodeManager/node/api/routes/post/job-definition.js +15 -0
  89. package/dist/NodeManager/node/api/routes/post/job-operation-actions.d.ts +24 -0
  90. package/dist/NodeManager/node/api/routes/post/job-operation-actions.js +79 -0
  91. package/dist/NodeManager/node/api/routes/post/node-validation.d.ts +4 -0
  92. package/dist/NodeManager/node/api/routes/post/node-validation.js +1783 -0
  93. package/dist/NodeManager/node/api/routes/post/service-stop.d.ts +5 -0
  94. package/dist/NodeManager/node/api/routes/post/service-stop.js +13 -0
  95. package/dist/NodeManager/node/api/routes/wss/index.d.ts +2 -0
  96. package/dist/NodeManager/node/api/routes/wss/index.js +2 -0
  97. package/dist/NodeManager/node/api/routes/wss/log.d.ts +14 -0
  98. package/dist/NodeManager/node/api/routes/wss/log.js +34 -0
  99. package/dist/NodeManager/node/api/routes/wss/status.d.ts +8 -0
  100. package/dist/NodeManager/node/api/routes/wss/status.js +11 -0
  101. package/dist/NodeManager/node/api/types/index.d.ts +12 -0
  102. package/dist/NodeManager/node/api/types/index.js +1 -0
  103. package/dist/NodeManager/node/balance/balanceHandler.d.ts +12 -0
  104. package/dist/NodeManager/node/balance/balanceHandler.js +52 -0
  105. package/dist/NodeManager/node/expiry/expiryHandler.d.ts +24 -0
  106. package/dist/NodeManager/node/expiry/expiryHandler.js +99 -0
  107. package/dist/NodeManager/node/grid/gridHandler.d.ts +19 -0
  108. package/dist/NodeManager/node/grid/gridHandler.js +168 -0
  109. package/dist/NodeManager/node/health/healthHandler.d.ts +16 -0
  110. package/dist/NodeManager/node/health/healthHandler.js +69 -0
  111. package/dist/NodeManager/node/job/JobRegistry.d.ts +14 -0
  112. package/dist/NodeManager/node/job/JobRegistry.js +48 -0
  113. package/dist/NodeManager/node/job/defination/JobDefinitionStrategy.d.ts +13 -0
  114. package/dist/NodeManager/node/job/defination/JobDefinitionStrategy.js +21 -0
  115. package/dist/NodeManager/node/job/defination/strategy/ApiJobDefinitionStrategy.d.ts +8 -0
  116. package/dist/NodeManager/node/job/defination/strategy/ApiJobDefinitionStrategy.js +40 -0
  117. package/dist/NodeManager/node/job/defination/strategy/ApiListenJobDefinitionStrategy.d.ts +9 -0
  118. package/dist/NodeManager/node/job/defination/strategy/ApiListenJobDefinitionStrategy.js +16 -0
  119. package/dist/NodeManager/node/job/defination/strategy/IpfsJobDefinitionStrategy.d.ts +7 -0
  120. package/dist/NodeManager/node/job/defination/strategy/IpfsJobDefinitionStrategy.js +13 -0
  121. package/dist/NodeManager/node/job/jobExternalUtil.d.ts +10 -0
  122. package/dist/NodeManager/node/job/jobExternalUtil.js +82 -0
  123. package/dist/NodeManager/node/job/jobHandler.d.ts +43 -0
  124. package/dist/NodeManager/node/job/jobHandler.js +193 -0
  125. package/dist/NodeManager/node/job/result/ResultReturnStrategy.d.ts +13 -0
  126. package/dist/NodeManager/node/job/result/ResultReturnStrategy.js +21 -0
  127. package/dist/NodeManager/node/job/result/startegy/ApiListenResultReturnStrategy.d.ts +8 -0
  128. package/dist/NodeManager/node/job/result/startegy/ApiListenResultReturnStrategy.js +22 -0
  129. package/dist/NodeManager/node/job/result/startegy/ApiResultReturnStrategy.d.ts +8 -0
  130. package/dist/NodeManager/node/job/result/startegy/ApiResultReturnStrategy.js +42 -0
  131. package/dist/NodeManager/node/key/keyHandler.d.ts +16 -0
  132. package/dist/NodeManager/node/key/keyHandler.js +74 -0
  133. package/dist/NodeManager/node/market/marketHandler.d.ts +30 -0
  134. package/dist/NodeManager/node/market/marketHandler.js +137 -0
  135. package/dist/NodeManager/node/register/index.d.ts +16 -0
  136. package/dist/NodeManager/node/register/index.js +88 -0
  137. package/dist/NodeManager/node/resource/definition/index.d.ts +2 -0
  138. package/dist/NodeManager/node/resource/definition/index.js +2 -0
  139. package/dist/NodeManager/node/resource/helpers/createHFArgs.d.ts +6 -0
  140. package/dist/NodeManager/node/resource/helpers/createHFArgs.js +26 -0
  141. package/dist/NodeManager/node/resource/helpers/createOllamaArgs.d.ts +2 -0
  142. package/dist/NodeManager/node/resource/helpers/createOllamaArgs.js +20 -0
  143. package/dist/NodeManager/node/resource/helpers/createResourceName.d.ts +2 -0
  144. package/dist/NodeManager/node/resource/helpers/createResourceName.js +18 -0
  145. package/dist/NodeManager/node/resource/helpers/createS3Args.d.ts +7 -0
  146. package/dist/NodeManager/node/resource/helpers/createS3Args.js +32 -0
  147. package/dist/NodeManager/node/resource/helpers/hasDockerVolume.d.ts +2 -0
  148. package/dist/NodeManager/node/resource/helpers/hasDockerVolume.js +3 -0
  149. package/dist/NodeManager/node/resource/helpers/hoursSunceDate.d.ts +1 -0
  150. package/dist/NodeManager/node/resource/helpers/hoursSunceDate.js +3 -0
  151. package/dist/NodeManager/node/resource/helpers/repoTagsContainsImage.d.ts +1 -0
  152. package/dist/NodeManager/node/resource/helpers/repoTagsContainsImage.js +13 -0
  153. package/dist/NodeManager/node/resource/image/imageManager.d.ts +13 -0
  154. package/dist/NodeManager/node/resource/image/imageManager.js +66 -0
  155. package/dist/NodeManager/node/resource/resourceManager.d.ts +21 -0
  156. package/dist/NodeManager/node/resource/resourceManager.js +57 -0
  157. package/dist/NodeManager/node/resource/volume/volumeManager.d.ts +20 -0
  158. package/dist/NodeManager/node/resource/volume/volumeManager.js +228 -0
  159. package/dist/NodeManager/node/run/runHandler.d.ts +18 -0
  160. package/dist/NodeManager/node/run/runHandler.js +139 -0
  161. package/dist/NodeManager/node/specs/specsHandler.d.ts +17 -0
  162. package/dist/NodeManager/node/specs/specsHandler.js +135 -0
  163. package/dist/NodeManager/node/specs/type.d.ts +15 -0
  164. package/dist/NodeManager/node/specs/type.js +1 -0
  165. package/dist/NodeManager/node/stake/StakeHandler.d.ts +22 -0
  166. package/dist/NodeManager/node/stake/StakeHandler.js +111 -0
  167. package/dist/NodeManager/node/task/TaskManager.d.ts +267 -0
  168. package/dist/NodeManager/node/task/TaskManager.js +480 -0
  169. package/dist/NodeManager/node/task/TaskManagerRegistry.d.ts +49 -0
  170. package/dist/NodeManager/node/task/TaskManagerRegistry.js +68 -0
  171. package/dist/NodeManager/node/task/executions/createDependencyMap.d.ts +18 -0
  172. package/dist/NodeManager/node/task/executions/createDependencyMap.js +32 -0
  173. package/dist/NodeManager/node/task/executions/createExecutionPlan.d.ts +14 -0
  174. package/dist/NodeManager/node/task/executions/createExecutionPlan.js +36 -0
  175. package/dist/NodeManager/node/task/executions/createOperationMap.d.ts +11 -0
  176. package/dist/NodeManager/node/task/executions/createOperationMap.js +34 -0
  177. package/dist/NodeManager/node/task/executions/validateExecutionPlan.d.ts +12 -0
  178. package/dist/NodeManager/node/task/executions/validateExecutionPlan.js +48 -0
  179. package/dist/NodeManager/node/task/globalStore/finalizeEnv.d.ts +2 -0
  180. package/dist/NodeManager/node/task/globalStore/finalizeEnv.js +30 -0
  181. package/dist/NodeManager/node/task/globalStore/getByPath.d.ts +2 -0
  182. package/dist/NodeManager/node/task/globalStore/getByPath.js +12 -0
  183. package/dist/NodeManager/node/task/globalStore/index.d.ts +9 -0
  184. package/dist/NodeManager/node/task/globalStore/index.js +9 -0
  185. package/dist/NodeManager/node/task/globalStore/interpolate.d.ts +2 -0
  186. package/dist/NodeManager/node/task/globalStore/interpolate.js +16 -0
  187. package/dist/NodeManager/node/task/globalStore/interpolateOperation.d.ts +3 -0
  188. package/dist/NodeManager/node/task/globalStore/interpolateOperation.js +221 -0
  189. package/dist/NodeManager/node/task/globalStore/resolveLiteralsInString.d.ts +2 -0
  190. package/dist/NodeManager/node/task/globalStore/resolveLiteralsInString.js +7 -0
  191. package/dist/NodeManager/node/task/globalStore/setDefaults.d.ts +4 -0
  192. package/dist/NodeManager/node/task/globalStore/setDefaults.js +65 -0
  193. package/dist/NodeManager/node/task/globalStore/setHost.d.ts +2 -0
  194. package/dist/NodeManager/node/task/globalStore/setHost.js +9 -0
  195. package/dist/NodeManager/node/task/globalStore/setResult.d.ts +2 -0
  196. package/dist/NodeManager/node/task/globalStore/setResult.js +10 -0
  197. package/dist/NodeManager/node/task/globalStore/setResults.d.ts +2 -0
  198. package/dist/NodeManager/node/task/globalStore/setResults.js +9 -0
  199. package/dist/NodeManager/node/task/globalStore/stanatizeArrays.d.ts +2 -0
  200. package/dist/NodeManager/node/task/globalStore/stanatizeArrays.js +14 -0
  201. package/dist/NodeManager/node/task/globalStore/transformCollections.d.ts +13 -0
  202. package/dist/NodeManager/node/task/globalStore/transformCollections.js +152 -0
  203. package/dist/NodeManager/node/task/helpers/createDefaultOpState.d.ts +2 -0
  204. package/dist/NodeManager/node/task/helpers/createDefaultOpState.js +20 -0
  205. package/dist/NodeManager/node/task/helpers/createInitialFlow.d.ts +8 -0
  206. package/dist/NodeManager/node/task/helpers/createInitialFlow.js +24 -0
  207. package/dist/NodeManager/node/task/loggers/logManager.d.ts +8 -0
  208. package/dist/NodeManager/node/task/loggers/logManager.js +54 -0
  209. package/dist/NodeManager/node/task/operations/getOperationsInfos.d.ts +6 -0
  210. package/dist/NodeManager/node/task/operations/getOperationsInfos.js +33 -0
  211. package/dist/NodeManager/node/task/operations/moveTaskManagerGroupOperation.d.ts +2 -0
  212. package/dist/NodeManager/node/task/operations/moveTaskManagerGroupOperation.js +65 -0
  213. package/dist/NodeManager/node/task/operations/restartTaskManagerGroupOperation.d.ts +10 -0
  214. package/dist/NodeManager/node/task/operations/restartTaskManagerGroupOperation.js +37 -0
  215. package/dist/NodeManager/node/task/operations/restartTaskManagerOperation.d.ts +14 -0
  216. package/dist/NodeManager/node/task/operations/restartTaskManagerOperation.js +117 -0
  217. package/dist/NodeManager/node/task/operations/runTaskManagerOperation.d.ts +21 -0
  218. package/dist/NodeManager/node/task/operations/runTaskManagerOperation.js +488 -0
  219. package/dist/NodeManager/node/task/operations/stopAllTaskManagerOperations.d.ts +21 -0
  220. package/dist/NodeManager/node/task/operations/stopAllTaskManagerOperations.js +54 -0
  221. package/dist/NodeManager/node/task/operations/stopTaskManagerGroupOperation.d.ts +10 -0
  222. package/dist/NodeManager/node/task/operations/stopTaskManagerGroupOperation.js +43 -0
  223. package/dist/NodeManager/node/task/operations/stopTaskManagerOperation.d.ts +14 -0
  224. package/dist/NodeManager/node/task/operations/stopTaskManagerOperation.js +137 -0
  225. package/dist/NodeManager/node/utils/convertFromBytes.d.ts +4 -0
  226. package/dist/NodeManager/node/utils/convertFromBytes.js +11 -0
  227. package/dist/NodeManager/node/utils/extractLogsAndResultsFromLogBuffer.d.ts +7 -0
  228. package/dist/NodeManager/node/utils/extractLogsAndResultsFromLogBuffer.js +34 -0
  229. package/dist/NodeManager/node/utils/extractResultsFromLogs.d.ts +18 -0
  230. package/dist/NodeManager/node/utils/extractResultsFromLogs.js +37 -0
  231. package/dist/NodeManager/node/utils/generateRandomId.d.ts +1 -0
  232. package/dist/NodeManager/node/utils/generateRandomId.js +3 -0
  233. package/dist/NodeManager/node/utils/multiProgressBarReporter.d.ts +16 -0
  234. package/dist/NodeManager/node/utils/multiProgressBarReporter.js +22 -0
  235. package/dist/NodeManager/node/utils/poll.d.ts +5 -0
  236. package/dist/NodeManager/node/utils/poll.js +25 -0
  237. package/dist/NodeManager/node/utils/progressBarReporter.d.ts +9 -0
  238. package/dist/NodeManager/node/utils/progressBarReporter.js +28 -0
  239. package/dist/NodeManager/provider/ContainerStateManager.d.ts +24 -0
  240. package/dist/NodeManager/provider/ContainerStateManager.js +122 -0
  241. package/dist/NodeManager/provider/ExposedPortHealthCheck.d.ts +29 -0
  242. package/dist/NodeManager/provider/ExposedPortHealthCheck.js +183 -0
  243. package/dist/NodeManager/provider/Provider.d.ts +70 -0
  244. package/dist/NodeManager/provider/Provider.js +457 -0
  245. package/dist/NodeManager/provider/__tests__/Provider.spec.d.ts +1 -0
  246. package/dist/NodeManager/provider/__tests__/Provider.spec.js +337 -0
  247. package/dist/NodeManager/provider/containerOrchestration/docker/dockerExtended/index.d.ts +6 -0
  248. package/dist/NodeManager/provider/containerOrchestration/docker/dockerExtended/index.js +45 -0
  249. package/dist/NodeManager/provider/containerOrchestration/docker/index.d.ts +43 -0
  250. package/dist/NodeManager/provider/containerOrchestration/docker/index.js +366 -0
  251. package/dist/NodeManager/provider/containerOrchestration/docker/utils/createServerObject.d.ts +5 -0
  252. package/dist/NodeManager/provider/containerOrchestration/docker/utils/createServerObject.js +15 -0
  253. package/dist/NodeManager/provider/containerOrchestration/docker/utils/deadline.d.ts +1 -0
  254. package/dist/NodeManager/provider/containerOrchestration/docker/utils/deadline.js +15 -0
  255. package/dist/NodeManager/provider/containerOrchestration/docker/utils/repoTagsContainsImage.d.ts +1 -0
  256. package/dist/NodeManager/provider/containerOrchestration/docker/utils/repoTagsContainsImage.js +13 -0
  257. package/dist/NodeManager/provider/containerOrchestration/interface.d.ts +53 -0
  258. package/dist/NodeManager/provider/containerOrchestration/interface.js +1 -0
  259. package/dist/NodeManager/provider/containerOrchestration/podman/index.d.ts +11 -0
  260. package/dist/NodeManager/provider/containerOrchestration/podman/index.js +69 -0
  261. package/dist/NodeManager/provider/containerOrchestration/podman/utils/createPodmanRunOptions.d.ts +103 -0
  262. package/dist/NodeManager/provider/containerOrchestration/podman/utils/createPodmanRunOptions.js +66 -0
  263. package/dist/NodeManager/provider/containerOrchestration/selectContainerOrchestration.d.ts +2 -0
  264. package/dist/NodeManager/provider/containerOrchestration/selectContainerOrchestration.js +11 -0
  265. package/dist/NodeManager/provider/types.d.ts +18 -0
  266. package/dist/NodeManager/provider/types.js +1 -0
  267. package/dist/NodeManager/provider/utils/parseBuffer.d.ts +4 -0
  268. package/dist/NodeManager/provider/utils/parseBuffer.js +19 -0
  269. package/dist/NodeManager/repository/NodeRepository.d.ts +53 -0
  270. package/dist/NodeManager/repository/NodeRepository.js +153 -0
  271. package/dist/NodeManager/sdk/index.d.ts +9 -0
  272. package/dist/NodeManager/sdk/index.js +146 -0
  273. package/dist/NodeManager/types/index.d.ts +27 -0
  274. package/dist/NodeManager/types/index.js +1 -0
  275. package/dist/NodeManager/utils/convertFromBytes.d.ts +4 -0
  276. package/dist/NodeManager/utils/convertFromBytes.js +11 -0
  277. package/dist/NodeManager/utils/expose-util.d.ts +14 -0
  278. package/dist/NodeManager/utils/expose-util.js +88 -0
  279. package/dist/NodeManager/utils/jobDefinitionParser.d.ts +12 -0
  280. package/dist/NodeManager/utils/jobDefinitionParser.js +31 -0
  281. package/dist/NodeManager/utils/ops-util.d.ts +3 -0
  282. package/dist/NodeManager/utils/ops-util.js +19 -0
  283. package/dist/NodeManager/utils/timeoutPromiseWrapper.d.ts +1 -0
  284. package/dist/NodeManager/utils/timeoutPromiseWrapper.js +27 -0
  285. package/dist/NodeManager/utils/utils.d.ts +39 -0
  286. package/dist/NodeManager/utils/utils.js +107 -0
  287. package/dist/NodeManager/utils/wslCheck.d.ts +14 -0
  288. package/dist/NodeManager/utils/wslCheck.js +54 -0
  289. package/dist/cli/address/__tests__/command.spec.d.ts +1 -0
  290. package/dist/cli/address/__tests__/command.spec.js +33 -0
  291. package/dist/cli/address/action.d.ts +4 -0
  292. package/dist/cli/address/action.js +4 -0
  293. package/dist/cli/address/command.d.ts +2 -0
  294. package/dist/cli/address/command.js +9 -0
  295. package/dist/cli/createNosanaCli.d.ts +2 -0
  296. package/dist/cli/createNosanaCli.js +32 -0
  297. package/dist/cli/index.d.ts +1 -0
  298. package/dist/cli/index.js +16 -0
  299. package/dist/cli/node/__tests__/index.spec.d.ts +1 -0
  300. package/dist/cli/node/__tests__/index.spec.js +10 -0
  301. package/dist/cli/node/index.d.ts +5 -0
  302. package/dist/cli/node/index.js +12 -0
  303. package/dist/cli/node/prune/action.d.ts +4 -0
  304. package/dist/cli/node/prune/action.js +18 -0
  305. package/dist/cli/node/prune/command.d.ts +2 -0
  306. package/dist/cli/node/prune/command.js +10 -0
  307. package/dist/cli/node/run/__tests__/command.spec.d.ts +1 -0
  308. package/dist/cli/node/run/__tests__/command.spec.js +38 -0
  309. package/dist/cli/node/run/action.d.ts +3 -0
  310. package/dist/cli/node/run/action.js +82 -0
  311. package/dist/cli/node/run/command.d.ts +3 -0
  312. package/dist/cli/node/run/command.js +17 -0
  313. package/dist/cli/node/run/generateDeploymentEndpointsTable.d.ts +2 -0
  314. package/dist/cli/node/run/generateDeploymentEndpointsTable.js +45 -0
  315. package/dist/cli/node/start/__tests__/command.spec.d.ts +1 -0
  316. package/dist/cli/node/start/__tests__/command.spec.js +39 -0
  317. package/dist/cli/node/start/action.d.ts +4 -0
  318. package/dist/cli/node/start/action.js +48 -0
  319. package/dist/cli/node/start/command.d.ts +3 -0
  320. package/dist/cli/node/start/command.js +19 -0
  321. package/dist/cli/sharedOptions/--api.d.ts +2 -0
  322. package/dist/cli/sharedOptions/--api.js +2 -0
  323. package/dist/cli/sharedOptions/--format.d.ts +2 -0
  324. package/dist/cli/sharedOptions/--format.js +4 -0
  325. package/dist/cli/sharedOptions/--gpu.d.ts +2 -0
  326. package/dist/cli/sharedOptions/--gpu.js +12 -0
  327. package/dist/cli/sharedOptions/--network.d.ts +2 -0
  328. package/dist/cli/sharedOptions/--network.js +4 -0
  329. package/dist/cli/sharedOptions/--port.d.ts +2 -0
  330. package/dist/cli/sharedOptions/--port.js +2 -0
  331. package/dist/cli/sharedOptions/--rpc.d.ts +2 -0
  332. package/dist/cli/sharedOptions/--rpc.js +2 -0
  333. package/dist/cli/sharedOptions/--timeout.d.ts +2 -0
  334. package/dist/cli/sharedOptions/--timeout.js +12 -0
  335. package/dist/cli/sharedOptions/--verbose.d.ts +2 -0
  336. package/dist/cli/sharedOptions/--verbose.js +2 -0
  337. package/dist/cli/sharedOptions/--wallet.d.ts +2 -0
  338. package/dist/cli/sharedOptions/--wallet.js +2 -0
  339. package/dist/cli/sharedOptions/index.d.ts +7 -0
  340. package/dist/cli/sharedOptions/index.js +8 -0
  341. package/dist/index.d.ts +3 -0
  342. package/dist/index.js +7 -0
  343. package/dist/output-formatter/OutputFormatter.d.ts +61 -0
  344. package/dist/output-formatter/OutputFormatter.js +58 -0
  345. package/dist/output-formatter/OutputFormatterFactory.d.ts +4 -0
  346. package/dist/output-formatter/OutputFormatterFactory.js +18 -0
  347. package/dist/output-formatter/__mocks__/outputEvents.mock.d.ts +42 -0
  348. package/dist/output-formatter/__mocks__/outputEvents.mock.js +45 -0
  349. package/dist/output-formatter/__mocks__/outputFormatter.mock.d.ts +0 -0
  350. package/dist/output-formatter/__mocks__/outputFormatter.mock.js +21 -0
  351. package/dist/output-formatter/__tests__/OutputFormatter.spec.d.ts +1 -0
  352. package/dist/output-formatter/__tests__/OutputFormatter.spec.js +34 -0
  353. package/dist/output-formatter/__tests__/OutputFormatterFactory.spec.d.ts +1 -0
  354. package/dist/output-formatter/__tests__/OutputFormatterFactory.spec.js +26 -0
  355. package/dist/output-formatter/__tests__/outputFormatSelector.spec.d.ts +1 -0
  356. package/dist/output-formatter/__tests__/outputFormatSelector.spec.js +21 -0
  357. package/dist/output-formatter/json/JsonOutputEventHandlers.d.ts +8 -0
  358. package/dist/output-formatter/json/JsonOutputEventHandlers.js +191 -0
  359. package/dist/output-formatter/json/JsonOutputFormatter.d.ts +47 -0
  360. package/dist/output-formatter/json/JsonOutputFormatter.js +12 -0
  361. package/dist/output-formatter/json/__tests__/JsonOutputFormatter.spec.d.ts +1 -0
  362. package/dist/output-formatter/json/__tests__/JsonOutputFormatter.spec.js +36 -0
  363. package/dist/output-formatter/outputEvents.d.ts +213 -0
  364. package/dist/output-formatter/outputEvents.js +63 -0
  365. package/dist/output-formatter/outputFormatArgumentParser.d.ts +1 -0
  366. package/dist/output-formatter/outputFormatArgumentParser.js +10 -0
  367. package/dist/output-formatter/outputFormatSelector.d.ts +15 -0
  368. package/dist/output-formatter/outputFormatSelector.js +23 -0
  369. package/dist/output-formatter/text/TextOutputEventHandlers.d.ts +7 -0
  370. package/dist/output-formatter/text/TextOutputEventHandlers.js +128 -0
  371. package/dist/output-formatter/text/TextOutputFormatter.d.ts +6 -0
  372. package/dist/output-formatter/text/TextOutputFormatter.js +7 -0
  373. package/dist/output-formatter/text/VerboseTextOutputEventHandlers.d.ts +7 -0
  374. package/dist/output-formatter/text/VerboseTextOutputEventHandlers.js +138 -0
  375. package/dist/output-formatter/text/VerboseTextOutputFormatter.d.ts +6 -0
  376. package/dist/output-formatter/text/VerboseTextOutputFormatter.js +7 -0
  377. package/dist/output-formatter/text/__tests__/TextOutputFormatter.spec.d.ts +1 -0
  378. package/dist/output-formatter/text/__tests__/TextOutputFormatter.spec.js +25 -0
  379. package/dist/static/index.d.ts +7 -0
  380. package/dist/static/index.js +12 -0
  381. package/dist/version/index.d.ts +1 -0
  382. package/dist/version/index.js +47 -0
  383. package/npm-shrinkwrap.json +9928 -0
  384. package/package.json +102 -0
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Converts the list of operations into a structured execution plan.
3
+ *
4
+ * This function focuses only on grouping operations by execution group.
5
+ * Dependency resolution (dependencies + dependents) is now handled separately
6
+ * in `createDependencyMap()`.
7
+ *
8
+ * Each `ExecutionContext` includes:
9
+ * - `group`: The logical group name
10
+ * - `ops`: Array of operations with their `id` only
11
+ */
12
+ export function createExecutionPlan() {
13
+ /**
14
+ * Map of groupName -> [op.id, ...]
15
+ * Collects which operations belong to which execution group.
16
+ */
17
+ const groups = new Map();
18
+ // Build group structure
19
+ for (const op of this.operations) {
20
+ this.setHost(op.id, this.job);
21
+ const group = op.execution?.group ?? op.id;
22
+ if (!groups.has(group))
23
+ groups.set(group, []);
24
+ groups.get(group).push(op.id);
25
+ }
26
+ /**
27
+ * Construct final execution plan grouped by execution group.
28
+ * Each op only contains its ID; dependency mapping is separate.
29
+ */
30
+ const result = [];
31
+ for (const [group, opIds] of groups.entries()) {
32
+ const ops = opIds.map((id) => ({ id }));
33
+ result.push({ group, ops: opIds });
34
+ }
35
+ return result;
36
+ }
@@ -0,0 +1,11 @@
1
+ import TaskManager from '../TaskManager.js';
2
+ import { Operation, OperationType } from '@nosana/sdk';
3
+ /**
4
+ * Creates a map from operation ID to operation object.
5
+ *
6
+ * This is used for fast lookup of operations by ID during validation,
7
+ * dependency resolution, and execution planning.
8
+ *
9
+ * It also ensures that there are no duplicate operation IDs in the job definition.
10
+ */
11
+ export declare function createOperationMap(this: TaskManager): Map<string, Operation<OperationType>>;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Creates a map from operation ID to operation object.
3
+ *
4
+ * This is used for fast lookup of operations by ID during validation,
5
+ * dependency resolution, and execution planning.
6
+ *
7
+ * It also ensures that there are no duplicate operation IDs in the job definition.
8
+ */
9
+ export function createOperationMap() {
10
+ /**
11
+ * Initialize a map to store operations and a list to track duplicates.
12
+ */
13
+ const map = new Map();
14
+ const duplicates = [];
15
+ /**
16
+ * Iterate over all operations and populate the map.
17
+ * If an ID is already seen, collect it as a duplicate.
18
+ */
19
+ for (const op of this.operations) {
20
+ if (map.has(op.id)) {
21
+ duplicates.push(op.id);
22
+ }
23
+ else {
24
+ map.set(op.id, op);
25
+ }
26
+ }
27
+ /**
28
+ * If any duplicate IDs were found, throw an error immediately.
29
+ */
30
+ if (duplicates.length > 0) {
31
+ throw new Error(`Duplicate operation IDs found: ${duplicates.join(', ')}`);
32
+ }
33
+ return map;
34
+ }
@@ -0,0 +1,12 @@
1
+ import TaskManager from '../TaskManager.js';
2
+ /**
3
+ * Validates the structure and dependencies in the execution plan.
4
+ *
5
+ * Checks for:
6
+ * - Self-dependencies
7
+ * - Dependencies on undefined operations
8
+ * - Cross-group dependencies (which are currently disallowed)
9
+ *
10
+ * If any validation errors are found, the function throws with a detailed message.
11
+ */
12
+ export declare function validateExecutionPlan(this: TaskManager): void;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Validates the structure and dependencies in the execution plan.
3
+ *
4
+ * Checks for:
5
+ * - Self-dependencies
6
+ * - Dependencies on undefined operations
7
+ * - Cross-group dependencies (which are currently disallowed)
8
+ *
9
+ * If any validation errors are found, the function throws with a detailed message.
10
+ */
11
+ export function validateExecutionPlan() {
12
+ const errors = [];
13
+ for (const op of this.operations) {
14
+ const opId = op.id;
15
+ const dependsOn = op.execution?.depends_on ?? [];
16
+ /**
17
+ * Check if the operation depends on itself.
18
+ */
19
+ if (dependsOn.includes(opId)) {
20
+ errors.push(`Invalid dependency: Operation '${opId}' cannot depend on itself.`);
21
+ }
22
+ for (const depId of dependsOn) {
23
+ const depOp = this.opMap.get(depId);
24
+ /**
25
+ * If the dependency is not found in the op map, it's invalid.
26
+ */
27
+ if (!depOp) {
28
+ errors.push(`Invalid dependency: Operation '${opId}' depends on non existent op '${depId}'.`);
29
+ continue;
30
+ }
31
+ /**
32
+ * Check for cross-group dependency violations.
33
+ */
34
+ const opGroup = op.execution?.group;
35
+ const depGroup = depOp.execution?.group;
36
+ if (opGroup !== depGroup) {
37
+ errors.push(`Invalid dependency: '${opId}' in group '${opGroup}' depends on '${depId}' in group '${depGroup}'`);
38
+ }
39
+ }
40
+ }
41
+ /**
42
+ * If any validation issues were discovered, throw an aggregated error.
43
+ */
44
+ if (errors.length > 0) {
45
+ throw new Error('Execution Plan Validation Failed:\n' +
46
+ errors.map((e) => `- ${e}`).join('\n'));
47
+ }
48
+ }
@@ -0,0 +1,2 @@
1
+ import { Operation, OperationType } from '@nosana/sdk';
2
+ export declare function finalizeEnvOnOperation<T extends OperationType>(op: Operation<T>): Operation<T>;
@@ -0,0 +1,30 @@
1
+ export function finalizeEnvOnOperation(op) {
2
+ const argsAny = op.args;
3
+ const env = argsAny?.env;
4
+ if (!env || typeof env !== 'object' || Array.isArray(env)) {
5
+ return op;
6
+ }
7
+ const toEnvString = (v) => {
8
+ if (v == null)
9
+ return '';
10
+ const t = typeof v;
11
+ if (t === 'string' || t === 'number' || t === 'boolean' || t === 'bigint') {
12
+ return String(v);
13
+ }
14
+ try {
15
+ return JSON.stringify(v);
16
+ }
17
+ catch {
18
+ return String(v);
19
+ }
20
+ };
21
+ const newEnv = Object.fromEntries(Object.entries(env).map(([k, v]) => [
22
+ k,
23
+ toEnvString(v),
24
+ ]));
25
+ const nextArgs = {
26
+ ...op.args,
27
+ env: newEnv,
28
+ };
29
+ return { ...op, args: nextArgs };
30
+ }
@@ -0,0 +1,2 @@
1
+ import TaskManager from '../TaskManager.js';
2
+ export declare function getByPath(this: TaskManager, opId: string, path: string): any;
@@ -0,0 +1,12 @@
1
+ export function getByPath(opId, path) {
2
+ const op = this.globalOpStore[opId];
3
+ if (!op)
4
+ return undefined;
5
+ if (path === 'host')
6
+ return op.host;
7
+ return path.split('.').reduce((acc, key) => {
8
+ if (acc == null)
9
+ return undefined;
10
+ return acc[key];
11
+ }, op);
12
+ }
@@ -0,0 +1,9 @@
1
+ export { setResult } from './setResult.js';
2
+ export { setResults } from './setResults.js';
3
+ export { setHost } from './setHost.js';
4
+ export { setDefaults, rehydrateEndpointsForOperation } from './setDefaults.js';
5
+ export { getByPath } from './getByPath.js';
6
+ export { resolveLiteralsInString } from './resolveLiteralsInString.js';
7
+ export { interpolate } from './interpolate.js';
8
+ export { interpolateOperation } from './interpolateOperation.js';
9
+ export { transformCollections } from './transformCollections.js';
@@ -0,0 +1,9 @@
1
+ export { setResult } from './setResult.js';
2
+ export { setResults } from './setResults.js';
3
+ export { setHost } from './setHost.js';
4
+ export { setDefaults, rehydrateEndpointsForOperation } from './setDefaults.js';
5
+ export { getByPath } from './getByPath.js';
6
+ export { resolveLiteralsInString } from './resolveLiteralsInString.js';
7
+ export { interpolate } from './interpolate.js';
8
+ export { interpolateOperation } from './interpolateOperation.js';
9
+ export { transformCollections } from './transformCollections.js';
@@ -0,0 +1,2 @@
1
+ import TaskManager from '../TaskManager.js';
2
+ export declare function interpolate<T = any>(this: TaskManager, value: T): T;
@@ -0,0 +1,16 @@
1
+ export function interpolate(value) {
2
+ if (typeof value === 'string') {
3
+ return this.resolveLiteralsInString(value);
4
+ }
5
+ if (Array.isArray(value)) {
6
+ return value.map((v) => this.interpolate(v));
7
+ }
8
+ if (value && typeof value === 'object') {
9
+ const out = {};
10
+ for (const [k, v] of Object.entries(value)) {
11
+ out[k] = this.interpolate(v);
12
+ }
13
+ return out;
14
+ }
15
+ return value;
16
+ }
@@ -0,0 +1,3 @@
1
+ import { Operation, OperationType } from '@nosana/sdk';
2
+ import TaskManager from '../TaskManager.js';
3
+ export declare function interpolateOperation<T extends OperationType>(this: TaskManager, op: Operation<T>): Operation<T>;
@@ -0,0 +1,221 @@
1
+ export function interpolateOperation(op) {
2
+ // %%ops.<opId>.<path>%% and %%global.<key>%%
3
+ const LITERAL_RE = /%%(ops|global)\.([^.]+)\.([A-Za-z0-9._-]+)%%/g;
4
+ const LITERAL_RE_EXACT = /^%%(ops|global)\.([^.]+)\.([A-Za-z0-9._-]+)%%$/;
5
+ const GLOBAL_RE = /%%(global|globals)\.([^.]+)%%/g;
6
+ const GLOBAL_RE_EXACT = /^%%(global|globals)\.([^.]+)%%$/;
7
+ const isPlainObject = (v) => !!v && typeof v === 'object' && !Array.isArray(v);
8
+ const parseJsonIfLooksLike = (v) => {
9
+ if (typeof v !== 'string')
10
+ return v;
11
+ const s = v.trim();
12
+ if (!s)
13
+ return v;
14
+ const first = s[0];
15
+ if (first !== '[' && first !== '{')
16
+ return v;
17
+ try {
18
+ return JSON.parse(s);
19
+ }
20
+ catch {
21
+ return v;
22
+ }
23
+ };
24
+ const valueToArrayTokens = (value) => {
25
+ const v = parseJsonIfLooksLike(value);
26
+ if (Array.isArray(v)) {
27
+ const out = [];
28
+ for (const el of v)
29
+ out.push(...valueToArrayTokens(el));
30
+ return out;
31
+ }
32
+ if (isPlainObject(v)) {
33
+ return [v];
34
+ }
35
+ if (v == null)
36
+ return [];
37
+ return [v]; // preserve primitive type
38
+ };
39
+ const valueToSpaceString = (value) => valueToArrayTokens(value)
40
+ .map((x) => String(x))
41
+ .join(' ');
42
+ const getByPathStrict = (opId, path) => {
43
+ const bucket = this.globalOpStore?.[opId];
44
+ if (!bucket)
45
+ return undefined;
46
+ if (path === 'host')
47
+ return bucket.host;
48
+ let cur = bucket;
49
+ for (const seg of path.split('.')) {
50
+ cur = cur?.[seg];
51
+ if (cur == null)
52
+ return undefined; // treat null/undefined as unresolved
53
+ }
54
+ return cur;
55
+ };
56
+ const getGlobalByPath = (key, path) => {
57
+ const value = this.globalStore[key];
58
+ if (!path)
59
+ return value;
60
+ let cur = value;
61
+ for (const seg of path.split('.')) {
62
+ cur = cur?.[seg];
63
+ if (cur == null)
64
+ return undefined;
65
+ }
66
+ return cur;
67
+ };
68
+ const resolveRawIfExact = (input) => {
69
+ // Check 3-part pattern first (%%global.key.path%% or %%ops.opId.path%%)
70
+ let m = input.match(LITERAL_RE_EXACT);
71
+ if (m) {
72
+ const type = m[1]; // "ops" or "global"
73
+ const opId = m[2];
74
+ const path = m[3];
75
+ if (type === 'global') {
76
+ // Handle %%global.key.subpath%% format
77
+ let value = getGlobalByPath(opId, path);
78
+ if (value == null || value === '') {
79
+ throw new Error(`Unresolved literal: "${input}" (key="${opId}.${path}")`);
80
+ }
81
+ // Parse JSON strings in arrays but don't convert to string
82
+ if (Array.isArray(value)) {
83
+ value = value.map((item) => parseJsonIfLooksLike(item));
84
+ }
85
+ else {
86
+ value = parseJsonIfLooksLike(value);
87
+ }
88
+ return { matched: true, value };
89
+ }
90
+ else {
91
+ // Handle %%ops.opId.path%% format
92
+ let value = getByPathStrict(opId, path);
93
+ if (value == null) {
94
+ throw new Error(`Unresolved literal: "${input}" (opId="${opId}", path="${path}")`);
95
+ }
96
+ // Parse JSON strings in arrays but don't convert to string
97
+ if (Array.isArray(value)) {
98
+ value = value.map((item) => parseJsonIfLooksLike(item));
99
+ }
100
+ else {
101
+ value = parseJsonIfLooksLike(value);
102
+ }
103
+ return { matched: true, value };
104
+ }
105
+ }
106
+ // Check 2-part pattern (%%global.key%%)
107
+ m = input.match(GLOBAL_RE_EXACT);
108
+ if (m) {
109
+ const key = m[2];
110
+ const value = this.globalStore[key];
111
+ if (value == null || value === '') {
112
+ throw new Error(`Unresolved literal: "${input}" (key="${key}")`);
113
+ }
114
+ return { matched: true, value };
115
+ }
116
+ return { matched: false };
117
+ };
118
+ const resolveStringStrict = (input) => {
119
+ const exact = resolveRawIfExact(input);
120
+ if (exact.matched)
121
+ return valueToSpaceString(exact.value);
122
+ // Handle 3-part patterns first
123
+ let result = input.replace(LITERAL_RE, (match, type, opId, path) => {
124
+ if (type === 'global') {
125
+ const value = getGlobalByPath(opId, path);
126
+ if (value == null || value === '') {
127
+ throw new Error(`Unresolved literal: "${match}" (key="${opId}.${path}")`);
128
+ }
129
+ return valueToSpaceString(value);
130
+ }
131
+ else {
132
+ const value = getByPathStrict(opId, path);
133
+ if (value == null) {
134
+ throw new Error(`Unresolved literal: "${match}" (opId="${opId}", path="${path}")`);
135
+ }
136
+ return valueToSpaceString(value);
137
+ }
138
+ });
139
+ // Handle 2-part patterns
140
+ result = result.replace(GLOBAL_RE, (match, prefix, key) => {
141
+ const value = this.globalStore[key];
142
+ if (value == null || value === '') {
143
+ throw new Error(`Unresolved literal: "${match}" (key="${key}")`);
144
+ }
145
+ return valueToSpaceString(value);
146
+ });
147
+ return result;
148
+ };
149
+ const interpolateAnyStrict = (val) => {
150
+ if (typeof val === 'string') {
151
+ const raw = resolveRawIfExact(val);
152
+ if (raw.matched)
153
+ return raw.value; // normalized later based on origin
154
+ return resolveStringStrict(val);
155
+ }
156
+ if (Array.isArray(val))
157
+ return val.map(interpolateAnyStrict);
158
+ if (val && typeof val === 'object') {
159
+ const out = {};
160
+ for (const [k, v] of Object.entries(val)) {
161
+ out[k] = interpolateAnyStrict(v);
162
+ }
163
+ return out;
164
+ }
165
+ return val; // number | boolean | null | undefined
166
+ };
167
+ const interpolatedArgs = interpolateAnyStrict(op.args);
168
+ const normalizeByOrigin = (value, original) => {
169
+ if (typeof original === 'string') {
170
+ // If the resolved value is an array with a single item, return that item directly
171
+ if (Array.isArray(value) && value.length === 1) {
172
+ return value[0];
173
+ }
174
+ return valueToSpaceString(value);
175
+ }
176
+ if (Array.isArray(original)) {
177
+ const out = [];
178
+ const pushTokens = (v) => {
179
+ out.push(...valueToArrayTokens(v));
180
+ };
181
+ if (Array.isArray(value)) {
182
+ for (const el of value)
183
+ pushTokens(el);
184
+ }
185
+ else {
186
+ pushTokens(value);
187
+ }
188
+ return out;
189
+ }
190
+ if (value && typeof value === 'object') {
191
+ const out = {};
192
+ const origObj = original && typeof original === 'object' && !Array.isArray(original)
193
+ ? original
194
+ : {};
195
+ for (const [k, v] of Object.entries(value)) {
196
+ out[k] = normalizeByOrigin(v, origObj[k]);
197
+ }
198
+ return out;
199
+ }
200
+ return value;
201
+ };
202
+ const normalizedArgs = normalizeByOrigin(interpolatedArgs, op.args);
203
+ const containsLiteral = (v) => {
204
+ if (typeof v === 'string') {
205
+ return LITERAL_RE.test(v) || GLOBAL_RE.test(v);
206
+ }
207
+ if (Array.isArray(v))
208
+ return v.some(containsLiteral);
209
+ if (v && typeof v === 'object') {
210
+ for (const val of Object.values(v)) {
211
+ if (containsLiteral(val))
212
+ return true;
213
+ }
214
+ }
215
+ return false;
216
+ };
217
+ if (containsLiteral(normalizedArgs)) {
218
+ throw new Error('Unresolved literals remain in interpolated args');
219
+ }
220
+ return { ...op, args: normalizedArgs };
221
+ }
@@ -0,0 +1,2 @@
1
+ import TaskManager from '../TaskManager.js';
2
+ export declare function resolveLiteralsInString(this: TaskManager, input: string): string;
@@ -0,0 +1,7 @@
1
+ export function resolveLiteralsInString(input) {
2
+ const LITERAL_RE = /%%ops\.([^.]+)\.([%A-Za-z0-9._-]+)%%/g;
3
+ return input.replace(LITERAL_RE, (_m, opId, path) => {
4
+ const value = this.getByPath(opId, path);
5
+ return value == null ? '' : String(value);
6
+ });
7
+ }
@@ -0,0 +1,4 @@
1
+ import { JobDefinition } from '@nosana/sdk';
2
+ import TaskManager from '../TaskManager.js';
3
+ export declare function setDefaults(this: TaskManager, flowId: string, project: string, jobDefinition: JobDefinition): void;
4
+ export declare function rehydrateEndpointsForOperation(this: TaskManager, flowId: string, project: string, jobDefinition: JobDefinition, opId: string): void;
@@ -0,0 +1,65 @@
1
+ import { createHash, isOperator, isSpreadMarker, } from '@nosana/sdk';
2
+ import { configs } from '../../../configs/configs.js';
3
+ import { NodeConfigsSingleton } from '../../../configs/NodeConfigs.js';
4
+ import { generateExposeId } from '../../../utils/expose-util.js';
5
+ export function setDefaults(flowId, project, jobDefinition) {
6
+ if (jobDefinition.global?.variables) {
7
+ this.globalOpStore.variables = {
8
+ ...this.globalOpStore.variables,
9
+ ...jobDefinition.global.variables,
10
+ };
11
+ this.globalStore.variables = {
12
+ ...this.globalStore.variables,
13
+ ...jobDefinition.global.variables,
14
+ };
15
+ }
16
+ processOperationsForEndpoints.call(this, flowId, project, jobDefinition, jobDefinition.ops);
17
+ }
18
+ export function rehydrateEndpointsForOperation(flowId, project, jobDefinition, opId) {
19
+ const op = jobDefinition.ops.find((o) => o.id === opId);
20
+ if (!op)
21
+ return;
22
+ processOperationsForEndpoints.call(this, flowId, project, jobDefinition, [
23
+ op,
24
+ ]);
25
+ }
26
+ function processOperationsForEndpoints(flowId, project, jobDefinition, ops) {
27
+ const config = NodeConfigsSingleton.getInstance();
28
+ for (const op of ops) {
29
+ const index = jobDefinition.ops.findIndex((o) => o.id === op.id);
30
+ if (op.type === 'container/run') {
31
+ const { args } = op;
32
+ if (args.expose) {
33
+ const opStore = (this.globalOpStore[op.id] ??= {});
34
+ if (!opStore.endpoint) {
35
+ opStore.endpoint = {};
36
+ }
37
+ if (Array.isArray(args.expose)) {
38
+ for (const exposedPort of args.expose) {
39
+ if (isSpreadMarker(exposedPort))
40
+ continue; // skip dynamic
41
+ if (typeof exposedPort === 'string' && isOperator(exposedPort))
42
+ continue;
43
+ const p = typeof exposedPort === 'object'
44
+ ? exposedPort.port
45
+ : exposedPort;
46
+ opStore.endpoint[`${p}`] = `${generateExposeId(flowId, index, p, args.private)}.${configs().frp.serverAddr}`;
47
+ }
48
+ }
49
+ else {
50
+ if (!isSpreadMarker(args.expose) &&
51
+ !(typeof args.expose === 'string' && isOperator(args.expose))) {
52
+ opStore.endpoint[`${args.expose}`] = `${generateExposeId(flowId, index, args.expose, args.private)}.${configs().frp.serverAddr}`;
53
+ }
54
+ }
55
+ if (jobDefinition.deployment_id) {
56
+ opStore.deployment_endpoint = `${generateExposeId(
57
+ // @ts-ignore
58
+ config.options.isNodeRun
59
+ ? jobDefinition.deployment_id
60
+ : createHash(`${jobDefinition.deployment_id}:${project}`, 45), op.id, 0, false)}.${configs().frp.serverAddr}`;
61
+ }
62
+ }
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,2 @@
1
+ import TaskManager from '../TaskManager.js';
2
+ export declare function setHost(this: TaskManager, opId: string, flowId: string): void;
@@ -0,0 +1,9 @@
1
+ export function setHost(opId, flowId) {
2
+ const op = (this.globalOpStore[opId] ??= {});
3
+ op.host = flowId + '-' + this.getOpStateIndex(opId);
4
+ // Host updated; attempt endpoint rehydration for this op
5
+ const flow = this.repository.getFlow(this.job);
6
+ if (flow) {
7
+ this.rehydrateEndpointsForOperation(flow.id, flow.project, flow.jobDefinition, opId);
8
+ }
9
+ }
@@ -0,0 +1,2 @@
1
+ import TaskManager from '../TaskManager.js';
2
+ export declare function setResult(this: TaskManager, opId: string, key: string, value: any): void;
@@ -0,0 +1,10 @@
1
+ export function setResult(opId, key, value) {
2
+ const op = (this.globalOpStore[opId] ??= {});
3
+ const results = (op.results ??= {});
4
+ results[key] = value;
5
+ // Now that results changed for opId, rehydrate any non-dynamic endpoints for this op
6
+ const flow = this.repository.getFlow(this.job);
7
+ if (flow) {
8
+ this.rehydrateEndpointsForOperation(flow.id, flow.project, flow.jobDefinition, opId);
9
+ }
10
+ }
@@ -0,0 +1,2 @@
1
+ import TaskManager from '../TaskManager.js';
2
+ export declare function setResults(this: TaskManager, opId: string, values: Record<string, any>): void;
@@ -0,0 +1,9 @@
1
+ export function setResults(opId, values) {
2
+ const op = (this.globalOpStore[opId] ??= {});
3
+ op.results = { ...(op.results ?? {}), ...values };
4
+ // Results updated for opId; attempt endpoint rehydration for this op
5
+ const flow = this.repository.getFlow(this.job);
6
+ if (flow) {
7
+ this.rehydrateEndpointsForOperation(flow.id, flow.project, flow.jobDefinition, opId);
8
+ }
9
+ }
@@ -0,0 +1,2 @@
1
+ import type { Operation, OperationType } from '@nosana/sdk';
2
+ export declare function stanatizeArrays<T extends OperationType>(op: Operation<T>): Operation<T>;
@@ -0,0 +1,14 @@
1
+ export function stanatizeArrays(op) {
2
+ for (const [key, value] of Object.entries(op.args)) {
3
+ if (Array.isArray(value)) {
4
+ const indexOfEmptyOpArg = value.findIndex((v) => v === '__remove-if-empty__');
5
+ if (indexOfEmptyOpArg !== -1) {
6
+ value.splice(indexOfEmptyOpArg, 1);
7
+ if (value.length === 0) {
8
+ delete op.args[key];
9
+ }
10
+ }
11
+ }
12
+ }
13
+ return op;
14
+ }
@@ -0,0 +1,13 @@
1
+ import { Operation, OperationType } from '@nosana/sdk';
2
+ import TaskManager from '../TaskManager.js';
3
+ type JSONValue = string | number | boolean | null | JSONValue[] | {
4
+ [k: string]: JSONValue;
5
+ };
6
+ interface MarkerSpec {
7
+ key: string;
8
+ arrayHandler?: (raw: JSONValue, chunked: boolean) => JSONValue[];
9
+ objectHandler?: (raw: JSONValue) => Record<string, JSONValue>;
10
+ }
11
+ export declare const DefaultCollectionMarkers: MarkerSpec[];
12
+ export declare function transformCollections<T extends OperationType>(this: TaskManager, op: Operation<T>, overwrite?: boolean): Operation<T>;
13
+ export {};