@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.
- package/README.md +92 -0
- package/dist/.env +7 -0
- package/dist/.env.dev +5 -0
- package/dist/.env.prd +4 -0
- package/dist/NodeManager/client/index.d.ts +4 -0
- package/dist/NodeManager/client/index.js +14 -0
- package/dist/NodeManager/configs/NodeConfigs.d.ts +14 -0
- package/dist/NodeManager/configs/NodeConfigs.js +32 -0
- package/dist/NodeManager/configs/__tests__/NodeConfigs.spec.d.ts +1 -0
- package/dist/NodeManager/configs/__tests__/NodeConfigs.spec.js +161 -0
- package/dist/NodeManager/configs/configs.d.ts +21 -0
- package/dist/NodeManager/configs/configs.js +23 -0
- package/dist/NodeManager/db/__tests__/index.spec.d.ts +1 -0
- package/dist/NodeManager/db/__tests__/index.spec.js +65 -0
- package/dist/NodeManager/db/index.d.ts +50 -0
- package/dist/NodeManager/db/index.js +64 -0
- package/dist/NodeManager/errors/NodeAlreadyActiveError.d.ts +3 -0
- package/dist/NodeManager/errors/NodeAlreadyActiveError.js +6 -0
- package/dist/NodeManager/index.d.ts +24 -0
- package/dist/NodeManager/index.js +317 -0
- package/dist/NodeManager/jobs/index.d.ts +6 -0
- package/dist/NodeManager/jobs/index.js +45 -0
- package/dist/NodeManager/monitoring/LogMonitoringRegistry.d.ts +9 -0
- package/dist/NodeManager/monitoring/LogMonitoringRegistry.js +23 -0
- package/dist/NodeManager/monitoring/log/NodeLog.d.ts +56 -0
- package/dist/NodeManager/monitoring/log/NodeLog.js +1357 -0
- package/dist/NodeManager/monitoring/log/console/ConsoleLogger.d.ts +20 -0
- package/dist/NodeManager/monitoring/log/console/ConsoleLogger.js +290 -0
- package/dist/NodeManager/monitoring/ping/PingHandler.d.ts +13 -0
- package/dist/NodeManager/monitoring/ping/PingHandler.js +68 -0
- package/dist/NodeManager/monitoring/proxy/loggingProxy.d.ts +15 -0
- package/dist/NodeManager/monitoring/proxy/loggingProxy.js +145 -0
- package/dist/NodeManager/monitoring/state/NodeState.d.ts +29 -0
- package/dist/NodeManager/monitoring/state/NodeState.js +680 -0
- package/dist/NodeManager/monitoring/state/classifyState.d.ts +14 -0
- package/dist/NodeManager/monitoring/state/classifyState.js +57 -0
- package/dist/NodeManager/monitoring/streaming/LogStreamer.d.ts +14 -0
- package/dist/NodeManager/monitoring/streaming/LogStreamer.js +58 -0
- package/dist/NodeManager/monitoring/streaming/StateStreamer.d.ts +15 -0
- package/dist/NodeManager/monitoring/streaming/StateStreamer.js +59 -0
- package/dist/NodeManager/node/Node.d.ts +44 -0
- package/dist/NodeManager/node/Node.js +321 -0
- package/dist/NodeManager/node/abort/NodeAbortController.d.ts +6 -0
- package/dist/NodeManager/node/abort/NodeAbortController.js +12 -0
- package/dist/NodeManager/node/abort/abortControllerSelector.d.ts +3 -0
- package/dist/NodeManager/node/abort/abortControllerSelector.js +13 -0
- package/dist/NodeManager/node/api/ApiEventEmitter.d.ts +8 -0
- package/dist/NodeManager/node/api/ApiEventEmitter.js +13 -0
- package/dist/NodeManager/node/api/ApiHandler.d.ts +28 -0
- package/dist/NodeManager/node/api/ApiHandler.js +193 -0
- package/dist/NodeManager/node/api/eventsource/index.d.ts +6 -0
- package/dist/NodeManager/node/api/eventsource/index.js +35 -0
- package/dist/NodeManager/node/api/middlewares/index.d.ts +5 -0
- package/dist/NodeManager/node/api/middlewares/index.js +7 -0
- package/dist/NodeManager/node/api/middlewares/rest/verifyBackendSignatureMiddleware.d.ts +3 -0
- package/dist/NodeManager/node/api/middlewares/rest/verifyBackendSignatureMiddleware.js +20 -0
- package/dist/NodeManager/node/api/middlewares/rest/verifyJobOwnerSignatureMiddleware.d.ts +5 -0
- package/dist/NodeManager/node/api/middlewares/rest/verifyJobOwnerSignatureMiddleware.js +28 -0
- package/dist/NodeManager/node/api/middlewares/ws/verifyWSJobOwnerSignatureMiddleware.d.ts +6 -0
- package/dist/NodeManager/node/api/middlewares/ws/verifyWSJobOwnerSignatureMiddleware.js +30 -0
- package/dist/NodeManager/node/api/middlewares/ws/verifyWSMiddleware.d.ts +6 -0
- package/dist/NodeManager/node/api/middlewares/ws/verifyWSMiddleware.js +20 -0
- package/dist/NodeManager/node/api/middlewares/ws/verifyWSNodeOrJobOwnerSignatureMiddleware.d.ts +6 -0
- package/dist/NodeManager/node/api/middlewares/ws/verifyWSNodeOrJobOwnerSignatureMiddleware.js +33 -0
- package/dist/NodeManager/node/api/routes/get/index.d.ts +6 -0
- package/dist/NodeManager/node/api/routes/get/index.js +6 -0
- package/dist/NodeManager/node/api/routes/get/job-definition.d.ts +5 -0
- package/dist/NodeManager/node/api/routes/get/job-definition.js +16 -0
- package/dist/NodeManager/node/api/routes/get/job-info/buildInfoObject.d.ts +17 -0
- package/dist/NodeManager/node/api/routes/get/job-info/buildInfoObject.js +15 -0
- package/dist/NodeManager/node/api/routes/get/job-info/job-info.d.ts +5 -0
- package/dist/NodeManager/node/api/routes/get/job-info/job-info.js +18 -0
- package/dist/NodeManager/node/api/routes/get/job-info/pollActiveJob.d.ts +6 -0
- package/dist/NodeManager/node/api/routes/get/job-info/pollActiveJob.js +42 -0
- package/dist/NodeManager/node/api/routes/get/job-operation-info.d.ts +28 -0
- package/dist/NodeManager/node/api/routes/get/job-operation-info.js +53 -0
- package/dist/NodeManager/node/api/routes/get/job-results.d.ts +5 -0
- package/dist/NodeManager/node/api/routes/get/job-results.js +15 -0
- package/dist/NodeManager/node/api/routes/get/node-info.d.ts +3 -0
- package/dist/NodeManager/node/api/routes/get/node-info.js +23 -0
- package/dist/NodeManager/node/api/routes/get/service-url.d.ts +5 -0
- package/dist/NodeManager/node/api/routes/get/service-url.js +27 -0
- package/dist/NodeManager/node/api/routes/index.d.ts +3 -0
- package/dist/NodeManager/node/api/routes/index.js +3 -0
- package/dist/NodeManager/node/api/routes/post/index.d.ts +4 -0
- package/dist/NodeManager/node/api/routes/post/index.js +4 -0
- package/dist/NodeManager/node/api/routes/post/job-definition.d.ts +6 -0
- package/dist/NodeManager/node/api/routes/post/job-definition.js +15 -0
- package/dist/NodeManager/node/api/routes/post/job-operation-actions.d.ts +24 -0
- package/dist/NodeManager/node/api/routes/post/job-operation-actions.js +79 -0
- package/dist/NodeManager/node/api/routes/post/node-validation.d.ts +4 -0
- package/dist/NodeManager/node/api/routes/post/node-validation.js +1783 -0
- package/dist/NodeManager/node/api/routes/post/service-stop.d.ts +5 -0
- package/dist/NodeManager/node/api/routes/post/service-stop.js +13 -0
- package/dist/NodeManager/node/api/routes/wss/index.d.ts +2 -0
- package/dist/NodeManager/node/api/routes/wss/index.js +2 -0
- package/dist/NodeManager/node/api/routes/wss/log.d.ts +14 -0
- package/dist/NodeManager/node/api/routes/wss/log.js +34 -0
- package/dist/NodeManager/node/api/routes/wss/status.d.ts +8 -0
- package/dist/NodeManager/node/api/routes/wss/status.js +11 -0
- package/dist/NodeManager/node/api/types/index.d.ts +12 -0
- package/dist/NodeManager/node/api/types/index.js +1 -0
- package/dist/NodeManager/node/balance/balanceHandler.d.ts +12 -0
- package/dist/NodeManager/node/balance/balanceHandler.js +52 -0
- package/dist/NodeManager/node/expiry/expiryHandler.d.ts +24 -0
- package/dist/NodeManager/node/expiry/expiryHandler.js +99 -0
- package/dist/NodeManager/node/grid/gridHandler.d.ts +19 -0
- package/dist/NodeManager/node/grid/gridHandler.js +168 -0
- package/dist/NodeManager/node/health/healthHandler.d.ts +16 -0
- package/dist/NodeManager/node/health/healthHandler.js +69 -0
- package/dist/NodeManager/node/job/JobRegistry.d.ts +14 -0
- package/dist/NodeManager/node/job/JobRegistry.js +48 -0
- package/dist/NodeManager/node/job/defination/JobDefinitionStrategy.d.ts +13 -0
- package/dist/NodeManager/node/job/defination/JobDefinitionStrategy.js +21 -0
- package/dist/NodeManager/node/job/defination/strategy/ApiJobDefinitionStrategy.d.ts +8 -0
- package/dist/NodeManager/node/job/defination/strategy/ApiJobDefinitionStrategy.js +40 -0
- package/dist/NodeManager/node/job/defination/strategy/ApiListenJobDefinitionStrategy.d.ts +9 -0
- package/dist/NodeManager/node/job/defination/strategy/ApiListenJobDefinitionStrategy.js +16 -0
- package/dist/NodeManager/node/job/defination/strategy/IpfsJobDefinitionStrategy.d.ts +7 -0
- package/dist/NodeManager/node/job/defination/strategy/IpfsJobDefinitionStrategy.js +13 -0
- package/dist/NodeManager/node/job/jobExternalUtil.d.ts +10 -0
- package/dist/NodeManager/node/job/jobExternalUtil.js +82 -0
- package/dist/NodeManager/node/job/jobHandler.d.ts +43 -0
- package/dist/NodeManager/node/job/jobHandler.js +193 -0
- package/dist/NodeManager/node/job/result/ResultReturnStrategy.d.ts +13 -0
- package/dist/NodeManager/node/job/result/ResultReturnStrategy.js +21 -0
- package/dist/NodeManager/node/job/result/startegy/ApiListenResultReturnStrategy.d.ts +8 -0
- package/dist/NodeManager/node/job/result/startegy/ApiListenResultReturnStrategy.js +22 -0
- package/dist/NodeManager/node/job/result/startegy/ApiResultReturnStrategy.d.ts +8 -0
- package/dist/NodeManager/node/job/result/startegy/ApiResultReturnStrategy.js +42 -0
- package/dist/NodeManager/node/key/keyHandler.d.ts +16 -0
- package/dist/NodeManager/node/key/keyHandler.js +74 -0
- package/dist/NodeManager/node/market/marketHandler.d.ts +30 -0
- package/dist/NodeManager/node/market/marketHandler.js +137 -0
- package/dist/NodeManager/node/register/index.d.ts +16 -0
- package/dist/NodeManager/node/register/index.js +88 -0
- package/dist/NodeManager/node/resource/definition/index.d.ts +2 -0
- package/dist/NodeManager/node/resource/definition/index.js +2 -0
- package/dist/NodeManager/node/resource/helpers/createHFArgs.d.ts +6 -0
- package/dist/NodeManager/node/resource/helpers/createHFArgs.js +26 -0
- package/dist/NodeManager/node/resource/helpers/createOllamaArgs.d.ts +2 -0
- package/dist/NodeManager/node/resource/helpers/createOllamaArgs.js +20 -0
- package/dist/NodeManager/node/resource/helpers/createResourceName.d.ts +2 -0
- package/dist/NodeManager/node/resource/helpers/createResourceName.js +18 -0
- package/dist/NodeManager/node/resource/helpers/createS3Args.d.ts +7 -0
- package/dist/NodeManager/node/resource/helpers/createS3Args.js +32 -0
- package/dist/NodeManager/node/resource/helpers/hasDockerVolume.d.ts +2 -0
- package/dist/NodeManager/node/resource/helpers/hasDockerVolume.js +3 -0
- package/dist/NodeManager/node/resource/helpers/hoursSunceDate.d.ts +1 -0
- package/dist/NodeManager/node/resource/helpers/hoursSunceDate.js +3 -0
- package/dist/NodeManager/node/resource/helpers/repoTagsContainsImage.d.ts +1 -0
- package/dist/NodeManager/node/resource/helpers/repoTagsContainsImage.js +13 -0
- package/dist/NodeManager/node/resource/image/imageManager.d.ts +13 -0
- package/dist/NodeManager/node/resource/image/imageManager.js +66 -0
- package/dist/NodeManager/node/resource/resourceManager.d.ts +21 -0
- package/dist/NodeManager/node/resource/resourceManager.js +57 -0
- package/dist/NodeManager/node/resource/volume/volumeManager.d.ts +20 -0
- package/dist/NodeManager/node/resource/volume/volumeManager.js +228 -0
- package/dist/NodeManager/node/run/runHandler.d.ts +18 -0
- package/dist/NodeManager/node/run/runHandler.js +139 -0
- package/dist/NodeManager/node/specs/specsHandler.d.ts +17 -0
- package/dist/NodeManager/node/specs/specsHandler.js +135 -0
- package/dist/NodeManager/node/specs/type.d.ts +15 -0
- package/dist/NodeManager/node/specs/type.js +1 -0
- package/dist/NodeManager/node/stake/StakeHandler.d.ts +22 -0
- package/dist/NodeManager/node/stake/StakeHandler.js +111 -0
- package/dist/NodeManager/node/task/TaskManager.d.ts +267 -0
- package/dist/NodeManager/node/task/TaskManager.js +480 -0
- package/dist/NodeManager/node/task/TaskManagerRegistry.d.ts +49 -0
- package/dist/NodeManager/node/task/TaskManagerRegistry.js +68 -0
- package/dist/NodeManager/node/task/executions/createDependencyMap.d.ts +18 -0
- package/dist/NodeManager/node/task/executions/createDependencyMap.js +32 -0
- package/dist/NodeManager/node/task/executions/createExecutionPlan.d.ts +14 -0
- package/dist/NodeManager/node/task/executions/createExecutionPlan.js +36 -0
- package/dist/NodeManager/node/task/executions/createOperationMap.d.ts +11 -0
- package/dist/NodeManager/node/task/executions/createOperationMap.js +34 -0
- package/dist/NodeManager/node/task/executions/validateExecutionPlan.d.ts +12 -0
- package/dist/NodeManager/node/task/executions/validateExecutionPlan.js +48 -0
- package/dist/NodeManager/node/task/globalStore/finalizeEnv.d.ts +2 -0
- package/dist/NodeManager/node/task/globalStore/finalizeEnv.js +30 -0
- package/dist/NodeManager/node/task/globalStore/getByPath.d.ts +2 -0
- package/dist/NodeManager/node/task/globalStore/getByPath.js +12 -0
- package/dist/NodeManager/node/task/globalStore/index.d.ts +9 -0
- package/dist/NodeManager/node/task/globalStore/index.js +9 -0
- package/dist/NodeManager/node/task/globalStore/interpolate.d.ts +2 -0
- package/dist/NodeManager/node/task/globalStore/interpolate.js +16 -0
- package/dist/NodeManager/node/task/globalStore/interpolateOperation.d.ts +3 -0
- package/dist/NodeManager/node/task/globalStore/interpolateOperation.js +221 -0
- package/dist/NodeManager/node/task/globalStore/resolveLiteralsInString.d.ts +2 -0
- package/dist/NodeManager/node/task/globalStore/resolveLiteralsInString.js +7 -0
- package/dist/NodeManager/node/task/globalStore/setDefaults.d.ts +4 -0
- package/dist/NodeManager/node/task/globalStore/setDefaults.js +65 -0
- package/dist/NodeManager/node/task/globalStore/setHost.d.ts +2 -0
- package/dist/NodeManager/node/task/globalStore/setHost.js +9 -0
- package/dist/NodeManager/node/task/globalStore/setResult.d.ts +2 -0
- package/dist/NodeManager/node/task/globalStore/setResult.js +10 -0
- package/dist/NodeManager/node/task/globalStore/setResults.d.ts +2 -0
- package/dist/NodeManager/node/task/globalStore/setResults.js +9 -0
- package/dist/NodeManager/node/task/globalStore/stanatizeArrays.d.ts +2 -0
- package/dist/NodeManager/node/task/globalStore/stanatizeArrays.js +14 -0
- package/dist/NodeManager/node/task/globalStore/transformCollections.d.ts +13 -0
- package/dist/NodeManager/node/task/globalStore/transformCollections.js +152 -0
- package/dist/NodeManager/node/task/helpers/createDefaultOpState.d.ts +2 -0
- package/dist/NodeManager/node/task/helpers/createDefaultOpState.js +20 -0
- package/dist/NodeManager/node/task/helpers/createInitialFlow.d.ts +8 -0
- package/dist/NodeManager/node/task/helpers/createInitialFlow.js +24 -0
- package/dist/NodeManager/node/task/loggers/logManager.d.ts +8 -0
- package/dist/NodeManager/node/task/loggers/logManager.js +54 -0
- package/dist/NodeManager/node/task/operations/getOperationsInfos.d.ts +6 -0
- package/dist/NodeManager/node/task/operations/getOperationsInfos.js +33 -0
- package/dist/NodeManager/node/task/operations/moveTaskManagerGroupOperation.d.ts +2 -0
- package/dist/NodeManager/node/task/operations/moveTaskManagerGroupOperation.js +65 -0
- package/dist/NodeManager/node/task/operations/restartTaskManagerGroupOperation.d.ts +10 -0
- package/dist/NodeManager/node/task/operations/restartTaskManagerGroupOperation.js +37 -0
- package/dist/NodeManager/node/task/operations/restartTaskManagerOperation.d.ts +14 -0
- package/dist/NodeManager/node/task/operations/restartTaskManagerOperation.js +117 -0
- package/dist/NodeManager/node/task/operations/runTaskManagerOperation.d.ts +21 -0
- package/dist/NodeManager/node/task/operations/runTaskManagerOperation.js +488 -0
- package/dist/NodeManager/node/task/operations/stopAllTaskManagerOperations.d.ts +21 -0
- package/dist/NodeManager/node/task/operations/stopAllTaskManagerOperations.js +54 -0
- package/dist/NodeManager/node/task/operations/stopTaskManagerGroupOperation.d.ts +10 -0
- package/dist/NodeManager/node/task/operations/stopTaskManagerGroupOperation.js +43 -0
- package/dist/NodeManager/node/task/operations/stopTaskManagerOperation.d.ts +14 -0
- package/dist/NodeManager/node/task/operations/stopTaskManagerOperation.js +137 -0
- package/dist/NodeManager/node/utils/convertFromBytes.d.ts +4 -0
- package/dist/NodeManager/node/utils/convertFromBytes.js +11 -0
- package/dist/NodeManager/node/utils/extractLogsAndResultsFromLogBuffer.d.ts +7 -0
- package/dist/NodeManager/node/utils/extractLogsAndResultsFromLogBuffer.js +34 -0
- package/dist/NodeManager/node/utils/extractResultsFromLogs.d.ts +18 -0
- package/dist/NodeManager/node/utils/extractResultsFromLogs.js +37 -0
- package/dist/NodeManager/node/utils/generateRandomId.d.ts +1 -0
- package/dist/NodeManager/node/utils/generateRandomId.js +3 -0
- package/dist/NodeManager/node/utils/multiProgressBarReporter.d.ts +16 -0
- package/dist/NodeManager/node/utils/multiProgressBarReporter.js +22 -0
- package/dist/NodeManager/node/utils/poll.d.ts +5 -0
- package/dist/NodeManager/node/utils/poll.js +25 -0
- package/dist/NodeManager/node/utils/progressBarReporter.d.ts +9 -0
- package/dist/NodeManager/node/utils/progressBarReporter.js +28 -0
- package/dist/NodeManager/provider/ContainerStateManager.d.ts +24 -0
- package/dist/NodeManager/provider/ContainerStateManager.js +122 -0
- package/dist/NodeManager/provider/ExposedPortHealthCheck.d.ts +29 -0
- package/dist/NodeManager/provider/ExposedPortHealthCheck.js +183 -0
- package/dist/NodeManager/provider/Provider.d.ts +70 -0
- package/dist/NodeManager/provider/Provider.js +457 -0
- package/dist/NodeManager/provider/__tests__/Provider.spec.d.ts +1 -0
- package/dist/NodeManager/provider/__tests__/Provider.spec.js +337 -0
- package/dist/NodeManager/provider/containerOrchestration/docker/dockerExtended/index.d.ts +6 -0
- package/dist/NodeManager/provider/containerOrchestration/docker/dockerExtended/index.js +45 -0
- package/dist/NodeManager/provider/containerOrchestration/docker/index.d.ts +43 -0
- package/dist/NodeManager/provider/containerOrchestration/docker/index.js +366 -0
- package/dist/NodeManager/provider/containerOrchestration/docker/utils/createServerObject.d.ts +5 -0
- package/dist/NodeManager/provider/containerOrchestration/docker/utils/createServerObject.js +15 -0
- package/dist/NodeManager/provider/containerOrchestration/docker/utils/deadline.d.ts +1 -0
- package/dist/NodeManager/provider/containerOrchestration/docker/utils/deadline.js +15 -0
- package/dist/NodeManager/provider/containerOrchestration/docker/utils/repoTagsContainsImage.d.ts +1 -0
- package/dist/NodeManager/provider/containerOrchestration/docker/utils/repoTagsContainsImage.js +13 -0
- package/dist/NodeManager/provider/containerOrchestration/interface.d.ts +53 -0
- package/dist/NodeManager/provider/containerOrchestration/interface.js +1 -0
- package/dist/NodeManager/provider/containerOrchestration/podman/index.d.ts +11 -0
- package/dist/NodeManager/provider/containerOrchestration/podman/index.js +69 -0
- package/dist/NodeManager/provider/containerOrchestration/podman/utils/createPodmanRunOptions.d.ts +103 -0
- package/dist/NodeManager/provider/containerOrchestration/podman/utils/createPodmanRunOptions.js +66 -0
- package/dist/NodeManager/provider/containerOrchestration/selectContainerOrchestration.d.ts +2 -0
- package/dist/NodeManager/provider/containerOrchestration/selectContainerOrchestration.js +11 -0
- package/dist/NodeManager/provider/types.d.ts +18 -0
- package/dist/NodeManager/provider/types.js +1 -0
- package/dist/NodeManager/provider/utils/parseBuffer.d.ts +4 -0
- package/dist/NodeManager/provider/utils/parseBuffer.js +19 -0
- package/dist/NodeManager/repository/NodeRepository.d.ts +53 -0
- package/dist/NodeManager/repository/NodeRepository.js +153 -0
- package/dist/NodeManager/sdk/index.d.ts +9 -0
- package/dist/NodeManager/sdk/index.js +146 -0
- package/dist/NodeManager/types/index.d.ts +27 -0
- package/dist/NodeManager/types/index.js +1 -0
- package/dist/NodeManager/utils/convertFromBytes.d.ts +4 -0
- package/dist/NodeManager/utils/convertFromBytes.js +11 -0
- package/dist/NodeManager/utils/expose-util.d.ts +14 -0
- package/dist/NodeManager/utils/expose-util.js +88 -0
- package/dist/NodeManager/utils/jobDefinitionParser.d.ts +12 -0
- package/dist/NodeManager/utils/jobDefinitionParser.js +31 -0
- package/dist/NodeManager/utils/ops-util.d.ts +3 -0
- package/dist/NodeManager/utils/ops-util.js +19 -0
- package/dist/NodeManager/utils/timeoutPromiseWrapper.d.ts +1 -0
- package/dist/NodeManager/utils/timeoutPromiseWrapper.js +27 -0
- package/dist/NodeManager/utils/utils.d.ts +39 -0
- package/dist/NodeManager/utils/utils.js +107 -0
- package/dist/NodeManager/utils/wslCheck.d.ts +14 -0
- package/dist/NodeManager/utils/wslCheck.js +54 -0
- package/dist/cli/address/__tests__/command.spec.d.ts +1 -0
- package/dist/cli/address/__tests__/command.spec.js +33 -0
- package/dist/cli/address/action.d.ts +4 -0
- package/dist/cli/address/action.js +4 -0
- package/dist/cli/address/command.d.ts +2 -0
- package/dist/cli/address/command.js +9 -0
- package/dist/cli/createNosanaCli.d.ts +2 -0
- package/dist/cli/createNosanaCli.js +32 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +16 -0
- package/dist/cli/node/__tests__/index.spec.d.ts +1 -0
- package/dist/cli/node/__tests__/index.spec.js +10 -0
- package/dist/cli/node/index.d.ts +5 -0
- package/dist/cli/node/index.js +12 -0
- package/dist/cli/node/prune/action.d.ts +4 -0
- package/dist/cli/node/prune/action.js +18 -0
- package/dist/cli/node/prune/command.d.ts +2 -0
- package/dist/cli/node/prune/command.js +10 -0
- package/dist/cli/node/run/__tests__/command.spec.d.ts +1 -0
- package/dist/cli/node/run/__tests__/command.spec.js +38 -0
- package/dist/cli/node/run/action.d.ts +3 -0
- package/dist/cli/node/run/action.js +82 -0
- package/dist/cli/node/run/command.d.ts +3 -0
- package/dist/cli/node/run/command.js +17 -0
- package/dist/cli/node/run/generateDeploymentEndpointsTable.d.ts +2 -0
- package/dist/cli/node/run/generateDeploymentEndpointsTable.js +45 -0
- package/dist/cli/node/start/__tests__/command.spec.d.ts +1 -0
- package/dist/cli/node/start/__tests__/command.spec.js +39 -0
- package/dist/cli/node/start/action.d.ts +4 -0
- package/dist/cli/node/start/action.js +48 -0
- package/dist/cli/node/start/command.d.ts +3 -0
- package/dist/cli/node/start/command.js +19 -0
- package/dist/cli/sharedOptions/--api.d.ts +2 -0
- package/dist/cli/sharedOptions/--api.js +2 -0
- package/dist/cli/sharedOptions/--format.d.ts +2 -0
- package/dist/cli/sharedOptions/--format.js +4 -0
- package/dist/cli/sharedOptions/--gpu.d.ts +2 -0
- package/dist/cli/sharedOptions/--gpu.js +12 -0
- package/dist/cli/sharedOptions/--network.d.ts +2 -0
- package/dist/cli/sharedOptions/--network.js +4 -0
- package/dist/cli/sharedOptions/--port.d.ts +2 -0
- package/dist/cli/sharedOptions/--port.js +2 -0
- package/dist/cli/sharedOptions/--rpc.d.ts +2 -0
- package/dist/cli/sharedOptions/--rpc.js +2 -0
- package/dist/cli/sharedOptions/--timeout.d.ts +2 -0
- package/dist/cli/sharedOptions/--timeout.js +12 -0
- package/dist/cli/sharedOptions/--verbose.d.ts +2 -0
- package/dist/cli/sharedOptions/--verbose.js +2 -0
- package/dist/cli/sharedOptions/--wallet.d.ts +2 -0
- package/dist/cli/sharedOptions/--wallet.js +2 -0
- package/dist/cli/sharedOptions/index.d.ts +7 -0
- package/dist/cli/sharedOptions/index.js +8 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +7 -0
- package/dist/output-formatter/OutputFormatter.d.ts +61 -0
- package/dist/output-formatter/OutputFormatter.js +58 -0
- package/dist/output-formatter/OutputFormatterFactory.d.ts +4 -0
- package/dist/output-formatter/OutputFormatterFactory.js +18 -0
- package/dist/output-formatter/__mocks__/outputEvents.mock.d.ts +42 -0
- package/dist/output-formatter/__mocks__/outputEvents.mock.js +45 -0
- package/dist/output-formatter/__mocks__/outputFormatter.mock.d.ts +0 -0
- package/dist/output-formatter/__mocks__/outputFormatter.mock.js +21 -0
- package/dist/output-formatter/__tests__/OutputFormatter.spec.d.ts +1 -0
- package/dist/output-formatter/__tests__/OutputFormatter.spec.js +34 -0
- package/dist/output-formatter/__tests__/OutputFormatterFactory.spec.d.ts +1 -0
- package/dist/output-formatter/__tests__/OutputFormatterFactory.spec.js +26 -0
- package/dist/output-formatter/__tests__/outputFormatSelector.spec.d.ts +1 -0
- package/dist/output-formatter/__tests__/outputFormatSelector.spec.js +21 -0
- package/dist/output-formatter/json/JsonOutputEventHandlers.d.ts +8 -0
- package/dist/output-formatter/json/JsonOutputEventHandlers.js +191 -0
- package/dist/output-formatter/json/JsonOutputFormatter.d.ts +47 -0
- package/dist/output-formatter/json/JsonOutputFormatter.js +12 -0
- package/dist/output-formatter/json/__tests__/JsonOutputFormatter.spec.d.ts +1 -0
- package/dist/output-formatter/json/__tests__/JsonOutputFormatter.spec.js +36 -0
- package/dist/output-formatter/outputEvents.d.ts +213 -0
- package/dist/output-formatter/outputEvents.js +63 -0
- package/dist/output-formatter/outputFormatArgumentParser.d.ts +1 -0
- package/dist/output-formatter/outputFormatArgumentParser.js +10 -0
- package/dist/output-formatter/outputFormatSelector.d.ts +15 -0
- package/dist/output-formatter/outputFormatSelector.js +23 -0
- package/dist/output-formatter/text/TextOutputEventHandlers.d.ts +7 -0
- package/dist/output-formatter/text/TextOutputEventHandlers.js +128 -0
- package/dist/output-formatter/text/TextOutputFormatter.d.ts +6 -0
- package/dist/output-formatter/text/TextOutputFormatter.js +7 -0
- package/dist/output-formatter/text/VerboseTextOutputEventHandlers.d.ts +7 -0
- package/dist/output-formatter/text/VerboseTextOutputEventHandlers.js +138 -0
- package/dist/output-formatter/text/VerboseTextOutputFormatter.d.ts +6 -0
- package/dist/output-formatter/text/VerboseTextOutputFormatter.js +7 -0
- package/dist/output-formatter/text/__tests__/TextOutputFormatter.spec.d.ts +1 -0
- package/dist/output-formatter/text/__tests__/TextOutputFormatter.spec.js +25 -0
- package/dist/static/index.d.ts +7 -0
- package/dist/static/index.js +12 -0
- package/dist/version/index.d.ts +1 -0
- package/dist/version/index.js +47 -0
- package/npm-shrinkwrap.json +9928 -0
- package/package.json +102 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { SECONDS_PER_DAY, sleep } from '../../utils/utils.js';
|
|
3
|
+
const NO_STAKE_AMOUNT = 0;
|
|
4
|
+
export class StakeHandler {
|
|
5
|
+
constructor(sdk) {
|
|
6
|
+
this.sdk = sdk;
|
|
7
|
+
this.stake = {
|
|
8
|
+
amount: 0,
|
|
9
|
+
duration: 0,
|
|
10
|
+
};
|
|
11
|
+
this.address = this.sdk.solana.provider.wallet.publicKey;
|
|
12
|
+
}
|
|
13
|
+
async createAta() {
|
|
14
|
+
try {
|
|
15
|
+
await this.sdk.solana.createNosAta(this.address);
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
throw new Error(`error creating NOS ATA: ${error}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
async nodeHasStakingAccount() {
|
|
22
|
+
try {
|
|
23
|
+
const result = await this.sdk.stake.get(this.address);
|
|
24
|
+
this.stake = {
|
|
25
|
+
amount: result.amount,
|
|
26
|
+
duration: result.duration,
|
|
27
|
+
};
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
if (error.message && error.message.includes('Account does not exist')) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
throw new Error(`error getting node staking account: ${error}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async createStakingAccount() {
|
|
38
|
+
try {
|
|
39
|
+
await this.sdk.stake.create(this.address, 0, 14);
|
|
40
|
+
await sleep(4);
|
|
41
|
+
const result = await this.sdk.stake.get(this.address);
|
|
42
|
+
this.stake = {
|
|
43
|
+
amount: result.amount,
|
|
44
|
+
duration: result.duration,
|
|
45
|
+
};
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
throw new Error(`error creating or retriveing staking account: ${error}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async topUpStakingAccount(market) {
|
|
53
|
+
try {
|
|
54
|
+
const minStakeForMarket = Number(market?.nodeXnosMinimum) || 0;
|
|
55
|
+
const currentStake = Number(this.stake.amount || 0);
|
|
56
|
+
const diff = minStakeForMarket - currentStake;
|
|
57
|
+
await this.sdk.stake.topup(diff);
|
|
58
|
+
await sleep(4);
|
|
59
|
+
const result = await this.sdk.stake.get(this.address);
|
|
60
|
+
this.stake = {
|
|
61
|
+
amount: result.amount,
|
|
62
|
+
duration: result.duration,
|
|
63
|
+
};
|
|
64
|
+
if (Number(this.stake.amount || 0) >= minStakeForMarket) {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
throw new Error(`error creating or retriveing staking account: ${error}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async failTopUpStakingAccount() {
|
|
76
|
+
throw new Error(chalk.red(`Cannot enter Market, Insufficient Staked NOS for Market`));
|
|
77
|
+
}
|
|
78
|
+
getStakeAccount() {
|
|
79
|
+
return this.stake;
|
|
80
|
+
}
|
|
81
|
+
canProceedWithoutStake(market, nosBalance) {
|
|
82
|
+
const minStakeForMarket = Number(market?.nodeXnosMinimum) || 0;
|
|
83
|
+
const currentStake = Number(this.stake.amount || 0);
|
|
84
|
+
if (minStakeForMarket > NO_STAKE_AMOUNT &&
|
|
85
|
+
currentStake < market.nodeXnosMinimum) {
|
|
86
|
+
const diff = minStakeForMarket - currentStake;
|
|
87
|
+
if (!nosBalance ||
|
|
88
|
+
!nosBalance.uiAmount ||
|
|
89
|
+
Number(nosBalance.amount) < diff) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
getStakeActionInfotext(market) {
|
|
96
|
+
const minStakeForMarket = Number(market?.nodeXnosMinimum) || 0;
|
|
97
|
+
const currentStake = Number(this.stake.amount || 0);
|
|
98
|
+
let text = `Market requires a minimum of ${minStakeForMarket / 1e6} NOS to be staked.`;
|
|
99
|
+
if (currentStake > 0) {
|
|
100
|
+
text += ` You currently have ${chalk.bold(currentStake / 1e6)} NOS staked.`;
|
|
101
|
+
}
|
|
102
|
+
return text;
|
|
103
|
+
}
|
|
104
|
+
getStakeActionQuerytext(market) {
|
|
105
|
+
const minStakeForMarket = Number(market?.nodeXnosMinimum) || 0;
|
|
106
|
+
const currentStake = Number(this.stake.amount || 0);
|
|
107
|
+
const diff = minStakeForMarket - currentStake;
|
|
108
|
+
let text = chalk.yellow(`Do you want to top up your stake with ${chalk.bold(diff / 1e6)} NOS with unstake duration of ${chalk.bold(this.stake.duration / SECONDS_PER_DAY)} days? (Y/n):`);
|
|
109
|
+
return text;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type WebSocket from 'ws';
|
|
3
|
+
import EventEmitter from 'events';
|
|
4
|
+
import { JobDefinition, Operation, OperationType } from '@nosana/sdk';
|
|
5
|
+
import { NodeRepository } from '../../repository/NodeRepository.js';
|
|
6
|
+
import { Provider } from '../../provider/Provider.js';
|
|
7
|
+
import { Flow } from '@nosana/sdk';
|
|
8
|
+
export type TaskManagerOps = Array<Operation<OperationType>>;
|
|
9
|
+
export type ExecutionContext = {
|
|
10
|
+
group: string;
|
|
11
|
+
ops: string[];
|
|
12
|
+
};
|
|
13
|
+
export type DependencyContext = {
|
|
14
|
+
dependencies: string[];
|
|
15
|
+
dependents: string[];
|
|
16
|
+
};
|
|
17
|
+
export declare const StopReasons: {
|
|
18
|
+
readonly COMPLETED: "completed";
|
|
19
|
+
readonly EXPIRED: "expired";
|
|
20
|
+
readonly STOPPED: "stopped";
|
|
21
|
+
readonly QUIT: "quit";
|
|
22
|
+
readonly UNKNOWN: "unknown";
|
|
23
|
+
readonly RESTART: "restart";
|
|
24
|
+
};
|
|
25
|
+
export type StopReason = (typeof StopReasons)[keyof typeof StopReasons];
|
|
26
|
+
export declare const Statuses: {
|
|
27
|
+
readonly SUCCESS: "success";
|
|
28
|
+
readonly STOPPED: "stopped";
|
|
29
|
+
readonly FAILED: "failed";
|
|
30
|
+
};
|
|
31
|
+
export declare const OperationProgressStatuses: {
|
|
32
|
+
readonly FINISHED: "finished";
|
|
33
|
+
readonly STOPPED: "stopped";
|
|
34
|
+
readonly FAILED: "failed";
|
|
35
|
+
readonly RUNNING: "running";
|
|
36
|
+
readonly RESTARTING: "restarting";
|
|
37
|
+
readonly STOPPING: "stopping";
|
|
38
|
+
readonly STARTING: "starting";
|
|
39
|
+
readonly WAITING: "waiting";
|
|
40
|
+
readonly PENDING: "pending";
|
|
41
|
+
readonly INIT: "init";
|
|
42
|
+
};
|
|
43
|
+
export type LogType = 'container' | 'info' | 'error';
|
|
44
|
+
export interface TaskLog {
|
|
45
|
+
opId: string;
|
|
46
|
+
group: string;
|
|
47
|
+
type: LogType;
|
|
48
|
+
timestamp: number;
|
|
49
|
+
message: any;
|
|
50
|
+
}
|
|
51
|
+
export type OperationData = {
|
|
52
|
+
host?: string;
|
|
53
|
+
endpoint?: {
|
|
54
|
+
[key: string]: string;
|
|
55
|
+
};
|
|
56
|
+
deployment_endpoint?: string;
|
|
57
|
+
results?: Record<string, any>;
|
|
58
|
+
};
|
|
59
|
+
type InterpolateFn = <T>(value: T) => T;
|
|
60
|
+
type InterpolateOpFn = <T extends OperationType>(op: Operation<T>) => Operation<T>;
|
|
61
|
+
export type GlobalDataStore = Record<string, OperationData>;
|
|
62
|
+
export type GlobalStore = {
|
|
63
|
+
job: string;
|
|
64
|
+
host: string;
|
|
65
|
+
project: string;
|
|
66
|
+
frps_address: string;
|
|
67
|
+
variables?: Record<string, string>;
|
|
68
|
+
};
|
|
69
|
+
export type Status = (typeof Statuses)[keyof typeof Statuses];
|
|
70
|
+
export default class TaskManager {
|
|
71
|
+
protected provider: Provider;
|
|
72
|
+
protected repository: NodeRepository;
|
|
73
|
+
protected job: string;
|
|
74
|
+
protected project: string;
|
|
75
|
+
protected definition?: JobDefinition | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* All operations defined in the Job Definition (JD).
|
|
78
|
+
*/
|
|
79
|
+
protected operations: TaskManagerOps | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* The ordered execution plan built from the job definition.
|
|
82
|
+
* Each item represents a group of ops that run together horizontally.
|
|
83
|
+
*/
|
|
84
|
+
protected executionPlan: ExecutionContext[];
|
|
85
|
+
/**
|
|
86
|
+
* this creates a map to assign the dependency
|
|
87
|
+
*/
|
|
88
|
+
protected dependecyMap: Map<string, DependencyContext>;
|
|
89
|
+
/**
|
|
90
|
+
* A map for fast lookup of operations by their ID.
|
|
91
|
+
* Useful during validation and execution.
|
|
92
|
+
*/
|
|
93
|
+
protected opMap: Map<string, Operation<OperationType>>;
|
|
94
|
+
/**
|
|
95
|
+
* Global data store.
|
|
96
|
+
*
|
|
97
|
+
* This allows operations to reference data produced by others using literals like:
|
|
98
|
+
* "%%global.frps_address%%"
|
|
99
|
+
* "%%global.project%%"
|
|
100
|
+
*
|
|
101
|
+
* Supported keys:
|
|
102
|
+
* - frps_address: The current FRPS address.
|
|
103
|
+
* - project: The project public key of the jobs project.
|
|
104
|
+
*/
|
|
105
|
+
protected globalStore: GlobalStore;
|
|
106
|
+
/**
|
|
107
|
+
* Global data store for all operations in a job definition.
|
|
108
|
+
*
|
|
109
|
+
* This allows operations to reference data produced by others using literals like:
|
|
110
|
+
* "%%ops.nginx-1.results.someKey%%"
|
|
111
|
+
* "%%ops.nginx-1.host%%"
|
|
112
|
+
*
|
|
113
|
+
* Supported keys:
|
|
114
|
+
* - result: Stores the output of an operation so it can be accessed later, even if it was unknown at the start of the job.
|
|
115
|
+
* - host: Stores the reachable host/URL of the operation. Since Docker container names are dynamic,
|
|
116
|
+
* this ensures other operations can communicate with it without needing to know the name in advance.
|
|
117
|
+
*/
|
|
118
|
+
protected globalOpStore: GlobalDataStore;
|
|
119
|
+
/**
|
|
120
|
+
* Main controller to allow global cancellation of the entire task flow.
|
|
121
|
+
* All per-op controllers should eventually be tied to this as their parent,
|
|
122
|
+
* or fallback to this if no specific controller is assigned yet.
|
|
123
|
+
*/
|
|
124
|
+
protected mainAbortController: AbortController;
|
|
125
|
+
/**
|
|
126
|
+
* Stores one AbortController per op.
|
|
127
|
+
* Used to signal cancellation to all ops in a group or individually if needed.
|
|
128
|
+
*/
|
|
129
|
+
protected abortControllerMap: Map<string, AbortController>;
|
|
130
|
+
/**
|
|
131
|
+
* Keeps track of the currently running group.
|
|
132
|
+
* Useful for coordinating group-level logic or logging.
|
|
133
|
+
*/
|
|
134
|
+
protected currentGroup: string | undefined;
|
|
135
|
+
/**
|
|
136
|
+
* keeps track of all promises of the current running group
|
|
137
|
+
*/
|
|
138
|
+
protected currentGroupOperationsPromises: Map<string, Promise<void>>;
|
|
139
|
+
/**
|
|
140
|
+
* this is to create concurrency control on the operations
|
|
141
|
+
*/
|
|
142
|
+
protected lockedOperations: Map<string, string>;
|
|
143
|
+
/**
|
|
144
|
+
* this is used to track the operations statuses
|
|
145
|
+
*/
|
|
146
|
+
protected operationStatus: Map<string, (typeof OperationProgressStatuses)[keyof typeof OperationProgressStatuses]>;
|
|
147
|
+
/**
|
|
148
|
+
* this is to track event emitter to emit events
|
|
149
|
+
*/
|
|
150
|
+
protected operationsEventEmitters: Map<string, EventEmitter>;
|
|
151
|
+
/**
|
|
152
|
+
* save log buffer for streaming logs
|
|
153
|
+
*/
|
|
154
|
+
protected opLogBuffers: Map<string, TaskLog[]>;
|
|
155
|
+
/**
|
|
156
|
+
* this list of ws sub to the task managers events
|
|
157
|
+
*/
|
|
158
|
+
protected subscribers: Set<WebSocket>;
|
|
159
|
+
/**
|
|
160
|
+
* stores filters
|
|
161
|
+
*/
|
|
162
|
+
protected logMatchers: Map<WebSocket, (log: TaskLog) => boolean>;
|
|
163
|
+
protected TOTAL_LOGS_COUNT: number;
|
|
164
|
+
/**
|
|
165
|
+
* Lifecycle status of the task manager.
|
|
166
|
+
* Can be 'init', 'running', 'stopped', or 'done'.
|
|
167
|
+
*/
|
|
168
|
+
protected status: string;
|
|
169
|
+
private currentRunningStartPromise?;
|
|
170
|
+
/**
|
|
171
|
+
* Event emitter for task- and op-level lifecycle events.
|
|
172
|
+
*/
|
|
173
|
+
protected events: EventEmitter;
|
|
174
|
+
constructor(provider: Provider, repository: NodeRepository, job: string, project: string, definition?: JobDefinition | undefined);
|
|
175
|
+
runTaskManagerOperation: (flow: Flow, op: Operation<OperationType>, dependent: string[]) => Promise<void>;
|
|
176
|
+
restartTaskManagerOperation: (group: string, opId: string) => Promise<void>;
|
|
177
|
+
stopTaskManagerOperation: (group: string, opId: string) => Promise<void>;
|
|
178
|
+
stopTaskManagerGroupOperations: (group: string) => Promise<void>;
|
|
179
|
+
restartTaskManagerGroupOperations: (group: string) => Promise<void>;
|
|
180
|
+
moveTaskManagerGroupOperations: (group: string) => Promise<void>;
|
|
181
|
+
stopAllTaskManagerOperations: (reason: StopReason) => void;
|
|
182
|
+
createOperationMap: () => Map<string, Operation<OperationType>>;
|
|
183
|
+
createExecutionPlan: () => ExecutionContext[];
|
|
184
|
+
createDependencyMap: () => Map<string, DependencyContext>;
|
|
185
|
+
validateExecutionPlan: () => void;
|
|
186
|
+
getOperationsStatus: () => Record<string, string | null>;
|
|
187
|
+
getOperationStatus: (id: string) => Record<string, string | null>;
|
|
188
|
+
getCurrentGroup: () => string | undefined;
|
|
189
|
+
getCurrentGroupStatus: () => Record<string, string | null>;
|
|
190
|
+
getGroupStatus: (group: string) => Record<string, string | null>;
|
|
191
|
+
addlog: (log: TaskLog) => void;
|
|
192
|
+
getLogsByOp: (opid: string) => TaskLog[];
|
|
193
|
+
getLogsByGroup: (group: string) => TaskLog[];
|
|
194
|
+
getAllLogs: () => TaskLog[];
|
|
195
|
+
subscribe: (ws: WebSocket, matcher: (log: TaskLog) => boolean) => void;
|
|
196
|
+
unsubscribe: (ws: WebSocket) => void;
|
|
197
|
+
setResult: (opId: string, key: string, value: any) => void;
|
|
198
|
+
setResults: (opId: string, values: Record<string, any>) => void;
|
|
199
|
+
setHost: (opId: string, host: string) => void;
|
|
200
|
+
setDefaults: (flowId: string, project: string, jobDefinition: JobDefinition) => void;
|
|
201
|
+
rehydrateEndpointsForOperation: (flowId: string, project: string, jobDefinition: JobDefinition, opId: string) => void;
|
|
202
|
+
getByPath: (opId: string, path: string) => any;
|
|
203
|
+
resolveLiteralsInString: (input: string) => string;
|
|
204
|
+
interpolate: InterpolateFn;
|
|
205
|
+
interpolateOperation: InterpolateOpFn;
|
|
206
|
+
transformCollections: InterpolateOpFn;
|
|
207
|
+
/**
|
|
208
|
+
* Returns the unified event emitter for this task manager.
|
|
209
|
+
*/
|
|
210
|
+
getEventsEmitter(): EventEmitter;
|
|
211
|
+
/**
|
|
212
|
+
* Registers an op-level emitter and relays its relevant events to the
|
|
213
|
+
* task-level unified emitter. Also tracks the emitter in operationsEventEmitters.
|
|
214
|
+
*/
|
|
215
|
+
protected registerAndRelayOpEmitter(opId: string, emitter: EventEmitter): void;
|
|
216
|
+
/**
|
|
217
|
+
* Prepares the TaskManager for execution by performing all necessary setup steps.
|
|
218
|
+
*
|
|
219
|
+
* This method performs two key operations:
|
|
220
|
+
*
|
|
221
|
+
* `build()`:
|
|
222
|
+
* - Generates a map of all operations for fast lookup.
|
|
223
|
+
* - Creates the execution plan based on operation groups and dependencies.
|
|
224
|
+
* - Validates the structure of the plan to catch any misconfigurations early.
|
|
225
|
+
*
|
|
226
|
+
* `init()`:
|
|
227
|
+
* - Initializes the task's persistent flow state in the repository.
|
|
228
|
+
* - Skips initialization if the flow already exists (resumable/restartable design).
|
|
229
|
+
*
|
|
230
|
+
* Call this once before `start()` to ensure the task manager is fully ready.
|
|
231
|
+
*/
|
|
232
|
+
bootstrap(): void;
|
|
233
|
+
/**
|
|
234
|
+
* Starts the execution of the job by processing each group in the execution plan.
|
|
235
|
+
* Tracks the full lifecycle including flow state updates and dynamic operations.
|
|
236
|
+
*
|
|
237
|
+
* Execution Lifecycle:
|
|
238
|
+
* - If already started, returns the tracked lifecycle promise.
|
|
239
|
+
* - Sets status to 'running' and updates the repository with start time.
|
|
240
|
+
* - Iterates through execution groups and runs each op concurrently.
|
|
241
|
+
* - Uses a dynamic while-loop to ensure all ops (including restarts) finish before advancing.
|
|
242
|
+
* - After all groups finish, updates the flow state to 'success' or keeps previous status.
|
|
243
|
+
* - On any uncaught failure, marks the flow as 'failed' with end time.
|
|
244
|
+
*/
|
|
245
|
+
start(): Promise<void>;
|
|
246
|
+
/**
|
|
247
|
+
* Gracefully stops the task manager and all its operations.
|
|
248
|
+
*
|
|
249
|
+
* This method:
|
|
250
|
+
* - Immediately aborts all running operations by triggering the main abort controller.
|
|
251
|
+
* - Waits for the current `start()` flow to finish, including database updates.
|
|
252
|
+
* - Ensures `stop()` logic runs only once per job to prevent race conditions.
|
|
253
|
+
*
|
|
254
|
+
* Important:
|
|
255
|
+
* - `stopAllTaskManagerOperations()` is synchronous and triggers cancellation.
|
|
256
|
+
* - The actual cleanup and final state update (e.g., setting `endTime`) is handled
|
|
257
|
+
* by the `start()` method’s final logic.
|
|
258
|
+
*/
|
|
259
|
+
stop(reason: StopReason): Promise<void>;
|
|
260
|
+
protected setUpOperationFunc(flow: Flow, id: string, dependent: string[]): Promise<void>;
|
|
261
|
+
protected trackGroupOperationPromise(opId: string, promise: Promise<void>): Promise<void>;
|
|
262
|
+
protected getStatus(reason: StopReason, type: 'ops' | 'flow'): Status;
|
|
263
|
+
protected getOpStateIndex(opId: string): number;
|
|
264
|
+
private build;
|
|
265
|
+
private init;
|
|
266
|
+
}
|
|
267
|
+
export {};
|