@shivaedev/work-fleet 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/README.md +60 -18
- package/dist/DispatchRequest.d.ts +13 -0
- package/dist/DispatchRequest.d.ts.map +1 -0
- package/dist/DispatchRequest.js +12 -0
- package/dist/DispatchRequest.js.map +1 -0
- package/dist/admit.d.ts +11 -0
- package/dist/admit.d.ts.map +1 -1
- package/dist/attention.d.ts +1 -0
- package/dist/attention.d.ts.map +1 -1
- package/dist/attention.js +4 -0
- package/dist/attention.js.map +1 -1
- package/dist/board/fleetField.d.ts +1 -0
- package/dist/board/fleetField.d.ts.map +1 -1
- package/dist/board/fleetField.js +4 -0
- package/dist/board/fleetField.js.map +1 -1
- package/dist/board/markdown.d.ts.map +1 -1
- package/dist/board/markdown.js +7 -2
- package/dist/board/markdown.js.map +1 -1
- package/dist/board/publish.d.ts +2 -0
- package/dist/board/publish.d.ts.map +1 -1
- package/dist/board/publishReport.d.ts +1 -0
- package/dist/board/publishReport.d.ts.map +1 -1
- package/dist/board/readPass.d.ts +1 -0
- package/dist/board/readPass.d.ts.map +1 -1
- package/dist/cli.js +13 -6
- package/dist/cli.js.map +1 -1
- package/dist/engine/abandonStalled.d.ts +1171 -1004
- package/dist/engine/abandonStalled.d.ts.map +1 -1
- package/dist/engine/admissionOrder.d.ts +1091 -0
- package/dist/engine/admissionOrder.d.ts.map +1 -0
- package/dist/engine/admissionOrder.js +15 -0
- package/dist/engine/admissionOrder.js.map +1 -0
- package/dist/engine/applyResolution.d.ts +20 -0
- package/dist/engine/applyResolution.d.ts.map +1 -1
- package/dist/engine/approveBrief.d.ts +31 -0
- package/dist/engine/approveBrief.d.ts.map +1 -1
- package/dist/engine/authorizeResolution.d.ts +1160 -1003
- package/dist/engine/authorizeResolution.d.ts.map +1 -1
- package/dist/engine/boardBrief.d.ts +32 -0
- package/dist/engine/boardBrief.d.ts.map +1 -1
- package/dist/engine/capacityRetry.d.ts +3488 -3007
- package/dist/engine/capacityRetry.d.ts.map +1 -1
- package/dist/engine/closeDecisions.d.ts +20 -0
- package/dist/engine/closeDecisions.d.ts.map +1 -1
- package/dist/engine/completeBoardWork.d.ts +20 -0
- package/dist/engine/completeBoardWork.d.ts.map +1 -1
- package/dist/engine/completeReport.d.ts +21 -0
- package/dist/engine/completeReport.d.ts.map +1 -1
- package/dist/engine/continueCommand.d.ts +10 -0
- package/dist/engine/continueCommand.d.ts.map +1 -1
- package/dist/engine/continueWorker.d.ts +20 -0
- package/dist/engine/continueWorker.d.ts.map +1 -1
- package/dist/engine/deliverPendingAnswers.d.ts +1085 -898
- package/dist/engine/deliverPendingAnswers.d.ts.map +1 -1
- package/dist/engine/dispatchCommand.d.ts +14 -1
- package/dist/engine/dispatchCommand.d.ts.map +1 -1
- package/dist/engine/dispatchCommand.js +25 -5
- package/dist/engine/dispatchCommand.js.map +1 -1
- package/dist/engine/ensureDecisionOwner.d.ts +20 -0
- package/dist/engine/ensureDecisionOwner.d.ts.map +1 -1
- package/dist/engine/ensurePublication.d.ts +20 -0
- package/dist/engine/ensurePublication.d.ts.map +1 -1
- package/dist/engine/failureContext.d.ts +1 -0
- package/dist/engine/failureContext.d.ts.map +1 -1
- package/dist/engine/failureContext.js.map +1 -1
- package/dist/engine/failureMessage.js +11 -1
- package/dist/engine/failureMessage.js.map +1 -1
- package/dist/engine/health.d.ts +10 -0
- package/dist/engine/health.d.ts.map +1 -1
- package/dist/engine/inspectRenewal.d.ts +21 -0
- package/dist/engine/inspectRenewal.d.ts.map +1 -1
- package/dist/engine/launchInput.d.ts +10 -0
- package/dist/engine/launchInput.d.ts.map +1 -1
- package/dist/engine/launchReceipt.d.ts +10 -0
- package/dist/engine/launchReceipt.d.ts.map +1 -1
- package/dist/engine/localOnlyCriteria.d.ts +1 -0
- package/dist/engine/localOnlyCriteria.d.ts.map +1 -1
- package/dist/engine/localOnlyCriteria.js +5 -1
- package/dist/engine/localOnlyCriteria.js.map +1 -1
- package/dist/engine/makeAdopt.d.ts +21 -0
- package/dist/engine/makeAdopt.d.ts.map +1 -1
- package/dist/engine/makeAdvance.d.ts +10 -0
- package/dist/engine/makeAdvance.d.ts.map +1 -1
- package/dist/engine/makeDeliver.d.ts +20 -0
- package/dist/engine/makeDeliver.d.ts.map +1 -1
- package/dist/engine/makeHuman.d.ts +20 -0
- package/dist/engine/makeHuman.d.ts.map +1 -1
- package/dist/engine/makeLaunch.d.ts +20 -0
- package/dist/engine/makeLaunch.d.ts.map +1 -1
- package/dist/engine/makeLaunch.js +4 -13
- package/dist/engine/makeLaunch.js.map +1 -1
- package/dist/engine/makeObserve.d.ts +20 -0
- package/dist/engine/makeObserve.d.ts.map +1 -1
- package/dist/engine/makeReview.d.ts +21 -0
- package/dist/engine/makeReview.d.ts.map +1 -1
- package/dist/engine/makeState.d.ts +1164 -1010
- package/dist/engine/makeState.d.ts.map +1 -1
- package/dist/engine/makeState.js +19 -11
- package/dist/engine/makeState.js.map +1 -1
- package/dist/engine/makeValidate.d.ts +21 -0
- package/dist/engine/makeValidate.d.ts.map +1 -1
- package/dist/engine/mergeReadiness.d.ts +1425 -1764
- package/dist/engine/mergeReadiness.d.ts.map +1 -1
- package/dist/engine/mergeReadiness.js +3 -4
- package/dist/engine/mergeReadiness.js.map +1 -1
- package/dist/engine/observeDeliveryFailure.d.ts +1170 -1003
- package/dist/engine/observeDeliveryFailure.d.ts.map +1 -1
- package/dist/engine/observeRenewal.d.ts +33 -0
- package/dist/engine/observeRenewal.d.ts.map +1 -1
- package/dist/engine/obtainReview.d.ts +11 -0
- package/dist/engine/obtainReview.d.ts.map +1 -1
- package/dist/engine/obtainReview.js +2 -1
- package/dist/engine/obtainReview.js.map +1 -1
- package/dist/engine/operationRecord.d.ts +1898 -1779
- package/dist/engine/operationRecord.d.ts.map +1 -1
- package/dist/engine/persistTerminalReceipts.d.ts +20 -0
- package/dist/engine/persistTerminalReceipts.d.ts.map +1 -1
- package/dist/engine/prepareCommand.d.ts +10 -0
- package/dist/engine/prepareCommand.d.ts.map +1 -1
- package/dist/engine/prepareCommand.js +1 -1
- package/dist/engine/prepareCommand.js.map +1 -1
- package/dist/engine/queueAnswerCommand.d.ts +10 -0
- package/dist/engine/queueAnswerCommand.d.ts.map +1 -1
- package/dist/engine/readOrContinueReview.d.ts +11 -0
- package/dist/engine/readOrContinueReview.d.ts.map +1 -1
- package/dist/engine/readOrContinueReview.js +2 -1
- package/dist/engine/readOrContinueReview.js.map +1 -1
- package/dist/engine/readResolution.d.ts +1 -0
- package/dist/engine/readResolution.d.ts.map +1 -1
- package/dist/engine/readRetry.d.ts +2344 -2010
- package/dist/engine/readRetry.d.ts.map +1 -1
- package/dist/engine/readRetry.js +20 -1
- package/dist/engine/readRetry.js.map +1 -1
- package/dist/engine/reassignCommand.d.ts +10 -0
- package/dist/engine/reassignCommand.d.ts.map +1 -1
- package/dist/engine/reconcileAttempt.d.ts +12 -1
- package/dist/engine/reconcileAttempt.d.ts.map +1 -1
- package/dist/engine/reconcileAttempt.js +2 -1
- package/dist/engine/reconcileAttempt.js.map +1 -1
- package/dist/engine/reconcileCommand.d.ts +10 -0
- package/dist/engine/reconcileCommand.d.ts.map +1 -1
- package/dist/engine/recordResponseCommand.d.ts +551 -0
- package/dist/engine/recordResponseCommand.d.ts.map +1 -0
- package/dist/engine/recordResponseCommand.js +30 -0
- package/dist/engine/recordResponseCommand.js.map +1 -0
- package/dist/engine/recoverStall.d.ts +1172 -1004
- package/dist/engine/recoverStall.d.ts.map +1 -1
- package/dist/engine/recoverStall.js +1 -1
- package/dist/engine/recoverStall.js.map +1 -1
- package/dist/engine/recoverUnobservable.d.ts +1172 -1004
- package/dist/engine/recoverUnobservable.d.ts.map +1 -1
- package/dist/engine/refreshBrief.d.ts +2344 -2009
- package/dist/engine/refreshBrief.d.ts.map +1 -1
- package/dist/engine/refreshReviewResult.d.ts +21 -0
- package/dist/engine/refreshReviewResult.d.ts.map +1 -1
- package/dist/engine/releaseClosedPreparation.d.ts +1171 -1003
- package/dist/engine/releaseClosedPreparation.d.ts.map +1 -1
- package/dist/engine/releaseExecution.d.ts +1170 -1003
- package/dist/engine/releaseExecution.d.ts.map +1 -1
- package/dist/engine/releaseFinishedWork.d.ts +10 -0
- package/dist/engine/releaseFinishedWork.d.ts.map +1 -1
- package/dist/engine/repository.d.ts +1115 -1003
- package/dist/engine/repository.d.ts.map +1 -1
- package/dist/engine/repository.js +12 -12
- package/dist/engine/repository.js.map +1 -1
- package/dist/engine/requestConflictRepair.d.ts +1170 -1003
- package/dist/engine/requestConflictRepair.d.ts.map +1 -1
- package/dist/engine/requestRework.d.ts +20 -0
- package/dist/engine/requestRework.d.ts.map +1 -1
- package/dist/engine/resolveCommand.d.ts +10 -0
- package/dist/engine/resolveCommand.d.ts.map +1 -1
- package/dist/engine/resolveExecution.d.ts +1170 -1003
- package/dist/engine/resolveExecution.d.ts.map +1 -1
- package/dist/engine/resumeAttempt.d.ts +1171 -1003
- package/dist/engine/resumeAttempt.d.ts.map +1 -1
- package/dist/engine/retireUnacknowledged.d.ts +20 -0
- package/dist/engine/retireUnacknowledged.d.ts.map +1 -1
- package/dist/engine/retryTerminal.d.ts +1160 -1003
- package/dist/engine/retryTerminal.d.ts.map +1 -1
- package/dist/engine/saveLaunch.d.ts +10598 -0
- package/dist/engine/saveLaunch.d.ts.map +1 -0
- package/dist/engine/saveLaunch.js +30 -0
- package/dist/engine/saveLaunch.js.map +1 -0
- package/dist/engine/scheduler.d.ts +21 -1
- package/dist/engine/scheduler.d.ts.map +1 -1
- package/dist/engine/scheduler.js +3 -5
- package/dist/engine/scheduler.js.map +1 -1
- package/dist/engine/sessionCleanup.d.ts +20 -0
- package/dist/engine/sessionCleanup.d.ts.map +1 -1
- package/dist/engine/settleMergedDelivery.d.ts +1170 -1003
- package/dist/engine/settleMergedDelivery.d.ts.map +1 -1
- package/dist/engine/steerBrief.d.ts +1075 -898
- package/dist/engine/steerBrief.d.ts.map +1 -1
- package/dist/engine/submissionFailure.d.ts +1150 -1003
- package/dist/engine/submissionFailure.d.ts.map +1 -1
- package/dist/engine/submitLaunch.d.ts +1160 -1003
- package/dist/engine/submitLaunch.d.ts.map +1 -1
- package/dist/engine/views.d.ts.map +1 -1
- package/dist/engine/views.js +4 -0
- package/dist/engine/views.js.map +1 -1
- package/dist/engine/workerReport.d.ts +30 -0
- package/dist/engine/workerReport.d.ts.map +1 -1
- package/dist/fleet.d.ts +2716 -983
- package/dist/fleet.d.ts.map +1 -1
- package/dist/fleet.js +4 -0
- package/dist/fleet.js.map +1 -1
- package/dist/host/actionCommands.d.ts.map +1 -1
- package/dist/host/actionCommands.js +7 -6
- package/dist/host/actionCommands.js.map +1 -1
- package/dist/host/admission.d.ts +24 -1
- package/dist/host/admission.d.ts.map +1 -1
- package/dist/host/admission.js +2 -2
- package/dist/host/admission.js.map +1 -1
- package/dist/host/answerWork.d.ts +12 -2
- package/dist/host/answerWork.d.ts.map +1 -1
- package/dist/host/answerWork.js +19 -23
- package/dist/host/answerWork.js.map +1 -1
- package/dist/host/commands.d.ts +28 -4
- package/dist/host/commands.d.ts.map +1 -1
- package/dist/host/commands.js +19 -5
- package/dist/host/commands.js.map +1 -1
- package/dist/host/config.d.ts +77 -1
- package/dist/host/config.d.ts.map +1 -1
- package/dist/host/config.js +37 -9
- package/dist/host/config.js.map +1 -1
- package/dist/host/configSettings.d.ts +486 -0
- package/dist/host/configSettings.d.ts.map +1 -0
- package/dist/host/configSettings.js +113 -0
- package/dist/host/configSettings.js.map +1 -0
- package/dist/host/daemon.d.ts +880 -1185
- package/dist/host/daemon.d.ts.map +1 -1
- package/dist/host/daemon.js +2 -1
- package/dist/host/daemon.js.map +1 -1
- package/dist/host/daemonClient.d.ts +300 -605
- package/dist/host/daemonClient.d.ts.map +1 -1
- package/dist/host/daemonClient.js +28 -7
- package/dist/host/daemonClient.js.map +1 -1
- package/dist/host/daemonContract.d.ts +1974 -3079
- package/dist/host/daemonContract.d.ts.map +1 -1
- package/dist/host/daemonContract.js +12 -4
- package/dist/host/daemonContract.js.map +1 -1
- package/dist/host/daemonDiagnostics.d.ts.map +1 -1
- package/dist/host/daemonDiagnostics.js +9 -3
- package/dist/host/daemonDiagnostics.js.map +1 -1
- package/dist/host/daemonHandlers.d.ts +2 -1
- package/dist/host/daemonHandlers.d.ts.map +1 -1
- package/dist/host/daemonHandlers.js +20 -7
- package/dist/host/daemonHandlers.js.map +1 -1
- package/dist/host/daemonSnapshots.d.ts.map +1 -1
- package/dist/host/daemonSnapshots.js +21 -1
- package/dist/host/daemonSnapshots.js.map +1 -1
- package/dist/host/dispatchRequests.d.ts +30 -0
- package/dist/host/dispatchRequests.d.ts.map +1 -0
- package/dist/host/dispatchRequests.js +40 -0
- package/dist/host/dispatchRequests.js.map +1 -0
- package/dist/host/follow.js +1 -1
- package/dist/host/follow.js.map +1 -1
- package/dist/host/followState.d.ts.map +1 -1
- package/dist/host/followState.js +5 -4
- package/dist/host/followState.js.map +1 -1
- package/dist/host/github.d.ts +5 -6
- package/dist/host/github.d.ts.map +1 -1
- package/dist/host/github.js +3 -4
- package/dist/host/github.js.map +1 -1
- package/dist/host/githubApi.d.ts +15 -0
- package/dist/host/githubApi.d.ts.map +1 -0
- package/dist/host/githubApi.js +117 -0
- package/dist/host/githubApi.js.map +1 -0
- package/dist/host/githubChecks.d.ts +13 -3
- package/dist/host/githubChecks.d.ts.map +1 -1
- package/dist/host/githubChecks.js +5 -5
- package/dist/host/githubChecks.js.map +1 -1
- package/dist/host/githubDelivery.d.ts +13 -1
- package/dist/host/githubDelivery.d.ts.map +1 -1
- package/dist/host/githubDelivery.js +39 -6
- package/dist/host/githubDelivery.js.map +1 -1
- package/dist/host/githubRateLimit.d.ts +23 -0
- package/dist/host/githubRateLimit.d.ts.map +1 -0
- package/dist/host/githubRateLimit.js +70 -0
- package/dist/host/githubRateLimit.js.map +1 -0
- package/dist/host/githubRequiredChecks.d.ts +1 -2
- package/dist/host/githubRequiredChecks.d.ts.map +1 -1
- package/dist/host/githubRequiredChecks.js +2 -2
- package/dist/host/githubRequiredChecks.js.map +1 -1
- package/dist/host/githubResponse.d.ts +10 -0
- package/dist/host/githubResponse.d.ts.map +1 -0
- package/dist/host/githubResponse.js +29 -0
- package/dist/host/githubResponse.js.map +1 -0
- package/dist/host/githubResult.d.ts +3 -2
- package/dist/host/githubResult.d.ts.map +1 -1
- package/dist/host/githubResult.js +9 -12
- package/dist/host/githubResult.js.map +1 -1
- package/dist/host/githubTransport.d.ts +13 -0
- package/dist/host/githubTransport.d.ts.map +1 -0
- package/dist/host/{githubRead.js → githubTransport.js} +9 -10
- package/dist/host/githubTransport.js.map +1 -0
- package/dist/host/integrations.d.ts +6 -0
- package/dist/host/integrations.d.ts.map +1 -0
- package/dist/host/integrations.js +34 -0
- package/dist/host/integrations.js.map +1 -0
- package/dist/host/liveConfig.d.ts +21 -0
- package/dist/host/liveConfig.d.ts.map +1 -0
- package/dist/host/liveConfig.js +74 -0
- package/dist/host/liveConfig.js.map +1 -0
- package/dist/host/providers.d.ts.map +1 -1
- package/dist/host/providers.js +2 -2
- package/dist/host/providers.js.map +1 -1
- package/dist/host/readWaitStates.d.ts.map +1 -1
- package/dist/host/readWaitStates.js +8 -18
- package/dist/host/readWaitStates.js.map +1 -1
- package/dist/host/reassignWork.d.ts +10 -0
- package/dist/host/reassignWork.d.ts.map +1 -1
- package/dist/host/recordDecisionResponse.d.ts +1 -0
- package/dist/host/recordDecisionResponse.d.ts.map +1 -1
- package/dist/host/releaseWork.d.ts +24 -3
- package/dist/host/releaseWork.d.ts.map +1 -1
- package/dist/host/releaseWork.js +11 -7
- package/dist/host/releaseWork.js.map +1 -1
- package/dist/host/renderStatus.d.ts +2 -2
- package/dist/host/renderStatus.d.ts.map +1 -1
- package/dist/host/renderStatus.js +8 -2
- package/dist/host/renderStatus.js.map +1 -1
- package/dist/host/reportBoard.d.ts +1 -1
- package/dist/host/reportBoard.d.ts.map +1 -1
- package/dist/host/reportBoard.js +6 -3
- package/dist/host/reportBoard.js.map +1 -1
- package/dist/host/reportPublication.d.ts +2 -1
- package/dist/host/reportPublication.d.ts.map +1 -1
- package/dist/host/reportPublication.js +5 -2
- package/dist/host/reportPublication.js.map +1 -1
- package/dist/host/runtime.d.ts +8 -6
- package/dist/host/runtime.d.ts.map +1 -1
- package/dist/host/runtime.js +37 -46
- package/dist/host/runtime.js.map +1 -1
- package/dist/host/snapshotStream.d.ts.map +1 -1
- package/dist/host/snapshotStream.js +4 -1
- package/dist/host/snapshotStream.js.map +1 -1
- package/dist/host/status.d.ts +22 -2
- package/dist/host/status.d.ts.map +1 -1
- package/dist/host/status.js +19 -5
- package/dist/host/status.js.map +1 -1
- package/dist/host/statusLayer.d.ts +3 -3
- package/dist/host/statusLayer.d.ts.map +1 -1
- package/dist/host/statusLayer.js +13 -3
- package/dist/host/statusLayer.js.map +1 -1
- package/dist/host/waitOutcome.d.ts.map +1 -1
- package/dist/host/waitOutcome.js +5 -2
- package/dist/host/waitOutcome.js.map +1 -1
- package/dist/model.d.ts +39 -0
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +5 -0
- package/dist/model.js.map +1 -1
- package/dist/operations.d.ts +270 -0
- package/dist/operations.d.ts.map +1 -1
- package/dist/packageInfo.d.ts +1 -1
- package/dist/packageInfo.js +1 -1
- package/dist/policy.d.ts +7 -0
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +2 -0
- package/dist/policy.js.map +1 -1
- package/dist/providers/codexCloud.d.ts +2 -0
- package/dist/providers/codexCloud.d.ts.map +1 -1
- package/dist/providers/codexCloud.js +2 -1
- package/dist/providers/codexCloud.js.map +1 -1
- package/dist/qualifyDependencies.d.ts +10 -0
- package/dist/qualifyDependencies.d.ts.map +1 -1
- package/dist/scheduling/admission.d.ts +1635 -0
- package/dist/scheduling/admission.d.ts.map +1 -0
- package/dist/scheduling/admission.js +11 -0
- package/dist/scheduling/admission.js.map +1 -0
- package/dist/scheduling/areas.d.ts +30 -0
- package/dist/scheduling/areas.d.ts.map +1 -1
- package/dist/scheduling/backPressure.d.ts +1637 -0
- package/dist/scheduling/backPressure.d.ts.map +1 -0
- package/dist/scheduling/backPressure.js +44 -0
- package/dist/scheduling/backPressure.js.map +1 -0
- package/dist/storage/FleetStoreOptions.d.ts +2 -2
- package/dist/storage/FleetStoreOptions.d.ts.map +1 -1
- package/dist/storage/addShapeColumns.d.ts +5 -0
- package/dist/storage/addShapeColumns.d.ts.map +1 -0
- package/dist/storage/addShapeColumns.js +24 -0
- package/dist/storage/addShapeColumns.js.map +1 -0
- package/dist/storage/dispatchStore.d.ts +47 -0
- package/dist/storage/dispatchStore.d.ts.map +1 -0
- package/dist/storage/dispatchStore.js +89 -0
- package/dist/storage/dispatchStore.js.map +1 -0
- package/dist/storage/errors.d.ts +2 -1
- package/dist/storage/errors.d.ts.map +1 -1
- package/dist/storage/errors.js +2 -1
- package/dist/storage/errors.js.map +1 -1
- package/dist/storage/fleetMigrations.d.ts +1 -1
- package/dist/storage/fleetMigrations.d.ts.map +1 -1
- package/dist/storage/fleetMigrations.js +24 -17
- package/dist/storage/fleetMigrations.js.map +1 -1
- package/dist/storage/listedRecords.d.ts +9 -0
- package/dist/storage/listedRecords.d.ts.map +1 -0
- package/dist/storage/listedRecords.js +40 -0
- package/dist/storage/listedRecords.js.map +1 -0
- package/dist/storage/makePostgresFleetStore.d.ts +2 -6
- package/dist/storage/makePostgresFleetStore.d.ts.map +1 -1
- package/dist/storage/makePostgresFleetStore.js +4 -10
- package/dist/storage/makePostgresFleetStore.js.map +1 -1
- package/dist/storage/model.d.ts +9 -0
- package/dist/storage/model.d.ts.map +1 -1
- package/dist/storage/model.js.map +1 -1
- package/dist/storage/shapeV14.d.ts +808 -0
- package/dist/storage/shapeV14.d.ts.map +1 -0
- package/dist/storage/shapeV14.js +18 -0
- package/dist/storage/shapeV14.js.map +1 -0
- package/package.json +6 -6
- package/src/DispatchRequest.ts +13 -0
- package/src/attention.ts +5 -0
- package/src/board/fleetField.ts +5 -0
- package/src/board/markdown.ts +7 -2
- package/src/cli.ts +24 -10
- package/src/engine/admissionOrder.ts +25 -0
- package/src/engine/dispatchCommand.ts +29 -5
- package/src/engine/failureContext.ts +1 -0
- package/src/engine/failureMessage.ts +12 -1
- package/src/engine/localOnlyCriteria.ts +6 -1
- package/src/engine/makeLaunch.ts +4 -17
- package/src/engine/makeState.ts +30 -26
- package/src/engine/mergeReadiness.ts +6 -5
- package/src/engine/obtainReview.ts +2 -1
- package/src/engine/prepareCommand.ts +1 -1
- package/src/engine/readOrContinueReview.ts +2 -1
- package/src/engine/readRetry.ts +23 -1
- package/src/engine/reconcileAttempt.ts +2 -1
- package/src/engine/recordResponseCommand.ts +38 -0
- package/src/engine/recoverStall.ts +1 -1
- package/src/engine/repository.ts +17 -16
- package/src/engine/saveLaunch.ts +45 -0
- package/src/engine/scheduler.ts +4 -6
- package/src/engine/views.ts +5 -0
- package/src/fleet.ts +4 -0
- package/src/host/actionCommands.ts +22 -7
- package/src/host/admission.ts +3 -3
- package/src/host/answerWork.ts +28 -27
- package/src/host/commands.ts +29 -8
- package/src/host/config.ts +46 -9
- package/src/host/configSettings.ts +124 -0
- package/src/host/daemon.ts +2 -1
- package/src/host/daemonClient.ts +42 -7
- package/src/host/daemonContract.ts +12 -4
- package/src/host/daemonDiagnostics.ts +11 -3
- package/src/host/daemonHandlers.ts +24 -7
- package/src/host/daemonSnapshots.ts +24 -1
- package/src/host/dispatchRequests.ts +53 -0
- package/src/host/follow.ts +1 -1
- package/src/host/followState.ts +6 -6
- package/src/host/github.ts +8 -6
- package/src/host/githubApi.ts +142 -0
- package/src/host/githubChecks.ts +6 -5
- package/src/host/githubDelivery.ts +47 -10
- package/src/host/githubRateLimit.ts +91 -0
- package/src/host/githubRequiredChecks.ts +2 -2
- package/src/host/githubResponse.ts +37 -0
- package/src/host/githubResult.ts +15 -17
- package/src/host/githubTransport.ts +31 -0
- package/src/host/integrations.ts +40 -0
- package/src/host/liveConfig.ts +134 -0
- package/src/host/providers.ts +4 -2
- package/src/host/readWaitStates.ts +8 -20
- package/src/host/releaseWork.ts +12 -9
- package/src/host/renderStatus.ts +10 -3
- package/src/host/reportBoard.ts +6 -3
- package/src/host/reportPublication.ts +6 -4
- package/src/host/runtime.ts +48 -56
- package/src/host/snapshotStream.ts +6 -1
- package/src/host/status.ts +24 -7
- package/src/host/statusLayer.ts +21 -5
- package/src/host/waitOutcome.ts +5 -2
- package/src/model.ts +6 -0
- package/src/packageInfo.ts +1 -1
- package/src/policy.ts +7 -0
- package/src/providers/codexCloud.ts +2 -1
- package/src/scheduling/admission.ts +19 -0
- package/src/scheduling/backPressure.ts +55 -0
- package/src/storage/FleetStoreOptions.ts +7 -2
- package/src/storage/addShapeColumns.ts +24 -0
- package/src/storage/dispatchStore.ts +104 -0
- package/src/storage/errors.ts +2 -1
- package/src/storage/fleetMigrations.ts +24 -17
- package/src/storage/listedRecords.ts +53 -0
- package/src/storage/makePostgresFleetStore.ts +4 -10
- package/src/storage/model.ts +7 -0
- package/src/storage/shapeV14.ts +19 -0
- package/dist/host/githubRead.d.ts +0 -5
- package/dist/host/githubRead.d.ts.map +0 -1
- package/dist/host/githubRead.js.map +0 -1
- package/dist/host/recordPayloads.d.ts +0 -4
- package/dist/host/recordPayloads.d.ts.map +0 -1
- package/dist/host/recordPayloads.js +0 -21
- package/dist/host/recordPayloads.js.map +0 -1
- package/dist/storage/migrateFleet.d.ts +0 -3
- package/dist/storage/migrateFleet.d.ts.map +0 -1
- package/dist/storage/migrateFleet.js +0 -11
- package/dist/storage/migrateFleet.js.map +0 -1
- package/src/host/githubRead.ts +0 -20
- package/src/host/recordPayloads.ts +0 -24
- package/src/storage/migrateFleet.ts +0 -11
package/dist/host/commands.d.ts
CHANGED
|
@@ -2,19 +2,23 @@ import * as NodeServices from "@effect/platform-node/NodeServices";
|
|
|
2
2
|
import { Effect, Layer } from "effect";
|
|
3
3
|
import type { ReportInspection } from "#engine/ReportInspection.ts";
|
|
4
4
|
import type { FleetHost } from "#host/config.ts";
|
|
5
|
+
import { GithubApi } from "#host/githubApi.ts";
|
|
6
|
+
import { LiveConfig } from "#host/liveConfig.ts";
|
|
5
7
|
import { type MainSource } from "#host/mainSource.ts";
|
|
6
8
|
import type { BoardGateway, FleetIntegrations, FleetPolicy } from "#policy.ts";
|
|
7
9
|
import type { SessionTransport } from "#session/service.ts";
|
|
8
10
|
export interface HostParts {
|
|
9
|
-
readonly board?: Layer.Layer<BoardGateway | ReportInspection, unknown, MainSource>;
|
|
10
|
-
readonly
|
|
11
|
+
readonly board?: Layer.Layer<BoardGateway | ReportInspection, unknown, MainSource | GithubApi>;
|
|
12
|
+
readonly github?: Layer.Layer<GithubApi>;
|
|
13
|
+
readonly integrations?: Layer.Layer<FleetIntegrations, unknown, MainSource | GithubApi>;
|
|
11
14
|
readonly main: Layer.Layer<MainSource, unknown>;
|
|
12
15
|
readonly policy?: Layer.Layer<FleetPolicy>;
|
|
13
16
|
readonly provider: Layer.Layer<SessionTransport, unknown>;
|
|
14
17
|
}
|
|
15
18
|
export declare function productionParts(host: FleetHost): HostParts;
|
|
16
|
-
export declare function hostLayer(host: FleetHost, parts: HostParts): Layer.Layer<"@shivaedev/work-fleet/Fleet" | "@shivaedev/work-fleet/SessionService" | import("@shivaedev/platform/appHost.ts").AppChanges | BoardGateway | FleetIntegrations | FleetPolicy | import("../engine/repository.ts").FleetRepository | import("../engine/health.ts").Health | import("../engine/health.ts").HealthPublication | import("../engine/health.ts").HealthSnapshot | MainSource | import("@effect/sql-pg/PgClient").PgClient | import("effect/reactivity/Reactivity").Reactivity | ReportInspection | import("#session/service.ts").SessionJournal | SessionTransport | import("effect/sql/SqlClient").SqlClient | NodeServices.NodeServices, unknown, never>;
|
|
17
|
-
export declare
|
|
19
|
+
export declare function hostLayer(host: FleetHost, parts: HostParts, config?: Layer.Layer<LiveConfig, unknown>): Layer.Layer<"@shivaedev/work-fleet/Fleet" | "@shivaedev/work-fleet/SessionService" | "Fleet/GithubApi" | import("@shivaedev/platform/appHost.ts").AppChanges | BoardGateway | FleetIntegrations | FleetPolicy | import("../engine/repository.ts").FleetRepository | import("../engine/health.ts").Health | import("../engine/health.ts").HealthPublication | import("../engine/health.ts").HealthSnapshot | LiveConfig | MainSource | import("@effect/sql-pg/PgClient").PgClient | import("effect/reactivity/Reactivity").Reactivity | ReportInspection | import("#session/service.ts").SessionJournal | SessionTransport | import("effect/sql/SqlClient").SqlClient | NodeServices.NodeServices, unknown, never>;
|
|
20
|
+
export declare const schedulerPause: Effect.Effect<void, never, "Fleet/GithubApi" | LiveConfig>;
|
|
21
|
+
export declare function hostScheduler(host: FleetHost): Effect.Effect<void, import("effect/Schema").SchemaError | import("effect/sql/SqlError").SqlError, "@shivaedev/work-fleet/Fleet" | "Fleet/GithubApi" | BoardGateway | import("effect/FileSystem").FileSystem | LiveConfig | MainSource | import("effect/Path").Path | import("effect/Scope").Scope>;
|
|
18
22
|
export declare function runFleet(host: FleetHost, parts?: HostParts): Effect.Effect<void, unknown, never>;
|
|
19
23
|
export declare function dispatchWork(host: FleetHost, workId: string, parts?: HostParts): Effect.Effect<import("../storage/model.ts").Versioned<{
|
|
20
24
|
readonly admissionReady?: boolean | undefined;
|
|
@@ -52,6 +56,7 @@ export declare function dispatchWork(host: FleetHost, workId: string, parts?: Ho
|
|
|
52
56
|
readonly observationRetries?: number | undefined;
|
|
53
57
|
readonly operationId: string;
|
|
54
58
|
readonly output?: string | undefined;
|
|
59
|
+
readonly overLimit?: boolean | undefined;
|
|
55
60
|
readonly progress?: {
|
|
56
61
|
readonly at: number;
|
|
57
62
|
readonly signature: string;
|
|
@@ -122,6 +127,7 @@ export declare function dispatchWork(host: FleetHost, workId: string, parts?: Ho
|
|
|
122
127
|
readonly context: string;
|
|
123
128
|
readonly deliverable?: "report" | undefined;
|
|
124
129
|
readonly dependsOn: readonly string[];
|
|
130
|
+
readonly priority?: "high" | "normal" | "urgent" | undefined;
|
|
125
131
|
readonly revision: string;
|
|
126
132
|
readonly sourcePath: string;
|
|
127
133
|
readonly status?: string | undefined;
|
|
@@ -147,6 +153,9 @@ export declare function dispatchWork(host: FleetHost, workId: string, parts?: Ho
|
|
|
147
153
|
readonly decisionAcknowledged?: boolean | undefined;
|
|
148
154
|
readonly decisionPublished?: boolean | undefined;
|
|
149
155
|
readonly deliverable?: "report" | undefined;
|
|
156
|
+
readonly dispatchNow?: {
|
|
157
|
+
readonly ignoreAreas: boolean;
|
|
158
|
+
} | undefined;
|
|
150
159
|
readonly integrationRetry?: {
|
|
151
160
|
readonly error: string;
|
|
152
161
|
readonly failures: number;
|
|
@@ -317,6 +326,7 @@ export declare function dispatchWork(host: FleetHost, workId: string, parts?: Ho
|
|
|
317
326
|
readonly observationRetries?: number | undefined;
|
|
318
327
|
readonly operationId: string;
|
|
319
328
|
readonly output?: string | undefined;
|
|
329
|
+
readonly overLimit?: boolean | undefined;
|
|
320
330
|
readonly progress?: {
|
|
321
331
|
readonly at: number;
|
|
322
332
|
readonly signature: string;
|
|
@@ -387,6 +397,7 @@ export declare function dispatchWork(host: FleetHost, workId: string, parts?: Ho
|
|
|
387
397
|
readonly context: string;
|
|
388
398
|
readonly deliverable?: "report" | undefined;
|
|
389
399
|
readonly dependsOn: readonly string[];
|
|
400
|
+
readonly priority?: "high" | "normal" | "urgent" | undefined;
|
|
390
401
|
readonly revision: string;
|
|
391
402
|
readonly sourcePath: string;
|
|
392
403
|
readonly status?: string | undefined;
|
|
@@ -412,6 +423,9 @@ export declare function dispatchWork(host: FleetHost, workId: string, parts?: Ho
|
|
|
412
423
|
readonly decisionAcknowledged?: boolean | undefined;
|
|
413
424
|
readonly decisionPublished?: boolean | undefined;
|
|
414
425
|
readonly deliverable?: "report" | undefined;
|
|
426
|
+
readonly dispatchNow?: {
|
|
427
|
+
readonly ignoreAreas: boolean;
|
|
428
|
+
} | undefined;
|
|
415
429
|
readonly integrationRetry?: {
|
|
416
430
|
readonly error: string;
|
|
417
431
|
readonly failures: number;
|
|
@@ -586,6 +600,7 @@ export declare function continueWork(host: FleetHost, workId: string, message: s
|
|
|
586
600
|
readonly observationRetries?: number | undefined;
|
|
587
601
|
readonly operationId: string;
|
|
588
602
|
readonly output?: string | undefined;
|
|
603
|
+
readonly overLimit?: boolean | undefined;
|
|
589
604
|
readonly progress?: {
|
|
590
605
|
readonly at: number;
|
|
591
606
|
readonly signature: string;
|
|
@@ -656,6 +671,7 @@ export declare function continueWork(host: FleetHost, workId: string, message: s
|
|
|
656
671
|
readonly context: string;
|
|
657
672
|
readonly deliverable?: "report" | undefined;
|
|
658
673
|
readonly dependsOn: readonly string[];
|
|
674
|
+
readonly priority?: "high" | "normal" | "urgent" | undefined;
|
|
659
675
|
readonly revision: string;
|
|
660
676
|
readonly sourcePath: string;
|
|
661
677
|
readonly status?: string | undefined;
|
|
@@ -681,6 +697,9 @@ export declare function continueWork(host: FleetHost, workId: string, message: s
|
|
|
681
697
|
readonly decisionAcknowledged?: boolean | undefined;
|
|
682
698
|
readonly decisionPublished?: boolean | undefined;
|
|
683
699
|
readonly deliverable?: "report" | undefined;
|
|
700
|
+
readonly dispatchNow?: {
|
|
701
|
+
readonly ignoreAreas: boolean;
|
|
702
|
+
} | undefined;
|
|
684
703
|
readonly integrationRetry?: {
|
|
685
704
|
readonly error: string;
|
|
686
705
|
readonly failures: number;
|
|
@@ -851,6 +870,7 @@ export declare function continueWork(host: FleetHost, workId: string, message: s
|
|
|
851
870
|
readonly observationRetries?: number | undefined;
|
|
852
871
|
readonly operationId: string;
|
|
853
872
|
readonly output?: string | undefined;
|
|
873
|
+
readonly overLimit?: boolean | undefined;
|
|
854
874
|
readonly progress?: {
|
|
855
875
|
readonly at: number;
|
|
856
876
|
readonly signature: string;
|
|
@@ -921,6 +941,7 @@ export declare function continueWork(host: FleetHost, workId: string, message: s
|
|
|
921
941
|
readonly context: string;
|
|
922
942
|
readonly deliverable?: "report" | undefined;
|
|
923
943
|
readonly dependsOn: readonly string[];
|
|
944
|
+
readonly priority?: "high" | "normal" | "urgent" | undefined;
|
|
924
945
|
readonly revision: string;
|
|
925
946
|
readonly sourcePath: string;
|
|
926
947
|
readonly status?: string | undefined;
|
|
@@ -946,6 +967,9 @@ export declare function continueWork(host: FleetHost, workId: string, message: s
|
|
|
946
967
|
readonly decisionAcknowledged?: boolean | undefined;
|
|
947
968
|
readonly decisionPublished?: boolean | undefined;
|
|
948
969
|
readonly deliverable?: "report" | undefined;
|
|
970
|
+
readonly dispatchNow?: {
|
|
971
|
+
readonly ignoreAreas: boolean;
|
|
972
|
+
} | undefined;
|
|
949
973
|
readonly integrationRetry?: {
|
|
950
974
|
readonly error: string;
|
|
951
975
|
readonly failures: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/host/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAW,MAAM,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/host/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/host/commands.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as NodeServices from "@effect/platform-node/NodeServices";
|
|
2
|
-
import { Console, Effect, Layer } from "effect";
|
|
2
|
+
import { Console, Effect, Layer, Stream } from "effect";
|
|
3
3
|
import { run } from "#engine/scheduler.ts";
|
|
4
4
|
import { Fleet } from "#fleet.ts";
|
|
5
5
|
import { admitApproved, dispatchApproved } from "#host/admission.ts";
|
|
6
|
+
import { GithubApi } from "#host/githubApi.ts";
|
|
6
7
|
import { healthLayer } from "#host/healthLayer.ts";
|
|
8
|
+
import { LiveConfig, staticConfig } from "#host/liveConfig.ts";
|
|
7
9
|
import { gitMainSource } from "#host/mainSource.ts";
|
|
8
10
|
import { hostProvider } from "#host/providers.ts";
|
|
9
11
|
import { fleetHostLayer } from "#host/runtime.ts";
|
|
@@ -11,10 +13,22 @@ import { statusLayer } from "#host/statusLayer.ts";
|
|
|
11
13
|
export function productionParts(host) {
|
|
12
14
|
return { main: gitMainSource(host), provider: hostProvider(host) };
|
|
13
15
|
}
|
|
14
|
-
export function hostLayer(host, parts) {
|
|
15
|
-
const runtime = Layer.mergeAll(fleetHostLayer(host, parts), NodeServices.layer).pipe(Layer.provideMerge(healthLayer(host.boardDir)));
|
|
16
|
-
|
|
16
|
+
export function hostLayer(host, parts, config = staticConfig(host)) {
|
|
17
|
+
const runtime = Layer.mergeAll(fleetHostLayer(host, parts, config), NodeServices.layer).pipe(Layer.provideMerge(healthLayer(host.boardDir)));
|
|
18
|
+
const status = Layer.unwrap(Effect.map(LiveConfig, (live) => statusLayer(host.boardDir, Effect.map(live.current, ({ host: applied }) => ({
|
|
19
|
+
concurrency: applied.concurrency,
|
|
20
|
+
staleAfterMs: Math.max(60_000, applied.interval * 3000),
|
|
21
|
+
})))));
|
|
22
|
+
return status.pipe(Layer.provideMerge(runtime), Layer.provideMerge(config));
|
|
17
23
|
}
|
|
24
|
+
// An applied config edit starts the next pass at once instead of after the interval it replaced, and a low GitHub budget stretches that interval.
|
|
25
|
+
export const schedulerPause = Effect.gen(function* () {
|
|
26
|
+
const live = yield* LiveConfig;
|
|
27
|
+
const github = yield* GithubApi;
|
|
28
|
+
const { host: applied } = yield* live.current;
|
|
29
|
+
const delay = yield* github.pace(applied.interval * 1000);
|
|
30
|
+
yield* Effect.raceFirst(Effect.sleep(delay), live.changes.pipe(Stream.drop(1), Stream.take(1), Stream.runDrain));
|
|
31
|
+
});
|
|
18
32
|
export function hostScheduler(host) {
|
|
19
33
|
let reported = new Set();
|
|
20
34
|
const admission = admitApproved(host).pipe(Effect.catch((error) => Effect.succeed([`admission: ${error.message}`])), Effect.flatMap((failures) => Effect.gen(function* () {
|
|
@@ -23,7 +37,7 @@ export function hostScheduler(host) {
|
|
|
23
37
|
}
|
|
24
38
|
reported = new Set(failures);
|
|
25
39
|
})));
|
|
26
|
-
return run(
|
|
40
|
+
return run(schedulerPause, admission);
|
|
27
41
|
}
|
|
28
42
|
export function runFleet(host, parts = productionParts(host)) {
|
|
29
43
|
return Effect.scoped(hostScheduler(host)).pipe(Effect.provide(hostLayer(host, parts)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/host/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/host/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/host/config.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as Effect from "effect/Effect";
|
|
|
2
2
|
import * as FileSystem from "effect/FileSystem";
|
|
3
3
|
import * as Path from "effect/Path";
|
|
4
4
|
import * as Schema from "effect/Schema";
|
|
5
|
+
import type { OpenPullRequestCurve } from "#storage/model.ts";
|
|
5
6
|
export declare const HostConfig: Schema.Struct<{
|
|
6
7
|
readonly areaMergeWaitMs: Schema.optional<Schema.Int>;
|
|
7
8
|
readonly backlog: Schema.optional<Schema.Int>;
|
|
@@ -12,6 +13,7 @@ export declare const HostConfig: Schema.Struct<{
|
|
|
12
13
|
readonly endpoint: Schema.optional<Schema.String>;
|
|
13
14
|
readonly environmentId: Schema.String;
|
|
14
15
|
readonly projectId: Schema.optional<Schema.String>;
|
|
16
|
+
readonly recoveryGraceMs: Schema.optional<Schema.Int>;
|
|
15
17
|
readonly refreshCommand: Schema.optional<Schema.Struct<{
|
|
16
18
|
readonly args: Schema.$Array<Schema.String>;
|
|
17
19
|
readonly command: Schema.String;
|
|
@@ -36,6 +38,11 @@ export declare const HostConfig: Schema.Struct<{
|
|
|
36
38
|
readonly requestTimeoutMs: Schema.optional<Schema.Int>;
|
|
37
39
|
}>>;
|
|
38
40
|
readonly namespace: Schema.optional<Schema.String>;
|
|
41
|
+
readonly openPullRequests: Schema.optional<Schema.Struct<{
|
|
42
|
+
readonly ease: Schema.Int;
|
|
43
|
+
readonly floor: Schema.optional<Schema.Int>;
|
|
44
|
+
readonly max: Schema.Int;
|
|
45
|
+
}>>;
|
|
39
46
|
readonly provider: Schema.Literals<readonly ["local", "cloud"]>;
|
|
40
47
|
readonly quota: Schema.optional<Schema.Literals<readonly ["codex", "unlimited"]>>;
|
|
41
48
|
readonly repository: Schema.optional<Schema.Struct<{
|
|
@@ -61,18 +68,28 @@ declare const HostFailure_base: Schema.Class<HostFailure, Schema.TaggedStruct<"H
|
|
|
61
68
|
}>, import("effect/Cause").YieldableError>;
|
|
62
69
|
export declare class HostFailure extends HostFailure_base {
|
|
63
70
|
}
|
|
71
|
+
declare const HostConfigRejected_base: Schema.Class<HostConfigRejected, Schema.TaggedStruct<"HostConfigRejected", {
|
|
72
|
+
readonly field: Schema.optional<Schema.String>;
|
|
73
|
+
readonly file: Schema.String;
|
|
74
|
+
readonly message: Schema.String;
|
|
75
|
+
}>, import("effect/Cause").YieldableError>;
|
|
76
|
+
export declare class HostConfigRejected extends HostConfigRejected_base {
|
|
77
|
+
}
|
|
64
78
|
export interface FleetHost {
|
|
65
79
|
readonly areaMergeWaitMs: number;
|
|
66
80
|
readonly backlog: number;
|
|
67
81
|
readonly boardDir: string;
|
|
68
82
|
readonly cloud: HostConfig["cloud"];
|
|
69
83
|
readonly concurrency: number;
|
|
84
|
+
readonly config: HostConfig;
|
|
85
|
+
readonly configFile?: string;
|
|
70
86
|
readonly databaseUrl: string;
|
|
71
87
|
readonly interval: number;
|
|
72
88
|
readonly launch: NonNullable<HostConfig["launch"]>;
|
|
73
89
|
readonly local: HostConfig["local"];
|
|
74
90
|
readonly maxConnections: number;
|
|
75
91
|
readonly namespace: string;
|
|
92
|
+
readonly openPullRequests?: OpenPullRequestCurve;
|
|
76
93
|
readonly provider: HostConfig["provider"];
|
|
77
94
|
readonly quota: NonNullable<HostConfig["quota"]>;
|
|
78
95
|
readonly repository: NonNullable<HostConfig["repository"]>;
|
|
@@ -80,7 +97,66 @@ export interface FleetHost {
|
|
|
80
97
|
readonly stallMinutes: number;
|
|
81
98
|
readonly worker: HostConfig["worker"];
|
|
82
99
|
}
|
|
83
|
-
export declare function resolveHost(boardDir: string, config: HostConfig): FleetHost;
|
|
100
|
+
export declare function resolveHost(boardDir: string, config: HostConfig, configFile?: string): FleetHost;
|
|
101
|
+
export declare const readHostConfig: (file: string) => Effect.Effect<{
|
|
102
|
+
readonly areaMergeWaitMs?: number | undefined;
|
|
103
|
+
readonly backlog?: number | undefined;
|
|
104
|
+
readonly cloud?: {
|
|
105
|
+
readonly archiveThreads?: boolean | undefined;
|
|
106
|
+
readonly authFile?: string | undefined;
|
|
107
|
+
readonly cwd: string;
|
|
108
|
+
readonly endpoint?: string | undefined;
|
|
109
|
+
readonly environmentId: string;
|
|
110
|
+
readonly projectId?: string | undefined;
|
|
111
|
+
readonly recoveryGraceMs?: number | undefined;
|
|
112
|
+
readonly refreshCommand?: {
|
|
113
|
+
readonly args: readonly string[];
|
|
114
|
+
readonly command: string;
|
|
115
|
+
} | undefined;
|
|
116
|
+
readonly requestTimeoutMs?: number | undefined;
|
|
117
|
+
readonly threadNamePrefix?: string | undefined;
|
|
118
|
+
readonly writableRoots?: readonly string[] | undefined;
|
|
119
|
+
} | undefined;
|
|
120
|
+
readonly concurrency?: number | undefined;
|
|
121
|
+
readonly database?: {
|
|
122
|
+
readonly maxConnections?: number | undefined;
|
|
123
|
+
readonly url?: string | undefined;
|
|
124
|
+
} | undefined;
|
|
125
|
+
readonly intervalSeconds?: number | undefined;
|
|
126
|
+
readonly launch?: {
|
|
127
|
+
readonly effort?: string | undefined;
|
|
128
|
+
readonly model?: string | undefined;
|
|
129
|
+
readonly serviceTier?: string | undefined;
|
|
130
|
+
} | undefined;
|
|
131
|
+
readonly local?: {
|
|
132
|
+
readonly endpoint: string;
|
|
133
|
+
readonly requestTimeoutMs?: number | undefined;
|
|
134
|
+
} | undefined;
|
|
135
|
+
readonly namespace?: string | undefined;
|
|
136
|
+
readonly openPullRequests?: {
|
|
137
|
+
readonly ease: number;
|
|
138
|
+
readonly floor?: number | undefined;
|
|
139
|
+
readonly max: number;
|
|
140
|
+
} | undefined;
|
|
141
|
+
readonly provider: "cloud" | "local";
|
|
142
|
+
readonly quota?: "codex" | "unlimited" | undefined;
|
|
143
|
+
readonly repository?: {
|
|
144
|
+
readonly branch: string;
|
|
145
|
+
readonly remote: string;
|
|
146
|
+
} | undefined;
|
|
147
|
+
readonly result?: "github" | undefined;
|
|
148
|
+
readonly stallMinutes?: number | undefined;
|
|
149
|
+
readonly worker?: {
|
|
150
|
+
readonly branchPrefix: string;
|
|
151
|
+
readonly reviewerGuidance?: string | {
|
|
152
|
+
readonly file: string;
|
|
153
|
+
} | undefined;
|
|
154
|
+
readonly sharedEnvironment: string;
|
|
155
|
+
readonly workerGuidance?: string | {
|
|
156
|
+
readonly file: string;
|
|
157
|
+
} | undefined;
|
|
158
|
+
} | undefined;
|
|
159
|
+
}, HostConfigRejected, FileSystem.FileSystem>;
|
|
84
160
|
export declare const loadHost: (board: string, configPath?: string | undefined) => Effect.Effect<FleetHost, HostFailure, FileSystem.FileSystem | Path.Path>;
|
|
85
161
|
export {};
|
|
86
162
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/host/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/host/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAO9D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0CrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;;;;AAEhD,qBAAa,WAAY,SAAQ,gBAA4E;CAAG;;;;;;AAEhH,qBAAa,kBAAmB,SAAQ,uBAItC;CAAG;AAEL,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;CACtC;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAuBhG;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAuBzB,CAAC;AAEH,eAAO,MAAM,QAAQ,8HAMnB,CAAC"}
|
package/dist/host/config.js
CHANGED
|
@@ -2,10 +2,12 @@ import * as Effect from "effect/Effect";
|
|
|
2
2
|
import * as FileSystem from "effect/FileSystem";
|
|
3
3
|
import * as Path from "effect/Path";
|
|
4
4
|
import * as Schema from "effect/Schema";
|
|
5
|
+
import * as SchemaIssue from "effect/SchemaIssue";
|
|
5
6
|
import { CONFIG_FILE, DEFAULT_NAMESPACE, NAMESPACE, SHARED_LOCAL_POSTGRES } from "#host/defaults.ts";
|
|
6
7
|
import { DEFAULT_AREA_MERGE_WAIT_MS } from "#scheduling/areas.ts";
|
|
7
8
|
import { LaunchSettings } from "#session/schema.ts";
|
|
8
9
|
const Positive = Schema.Int.check(Schema.isGreaterThan(0));
|
|
10
|
+
const Count = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0));
|
|
9
11
|
const Text = Schema.String.check(Schema.isMinLength(1));
|
|
10
12
|
const Guidance = Schema.Union([Text, Schema.Struct({ file: Text })]);
|
|
11
13
|
export const HostConfig = Schema.Struct({
|
|
@@ -18,6 +20,7 @@ export const HostConfig = Schema.Struct({
|
|
|
18
20
|
endpoint: Schema.optional(Text),
|
|
19
21
|
environmentId: Text,
|
|
20
22
|
projectId: Schema.optional(Text),
|
|
23
|
+
recoveryGraceMs: Schema.optional(Positive),
|
|
21
24
|
refreshCommand: Schema.optional(Schema.Struct({ args: Schema.Array(Schema.String), command: Text })),
|
|
22
25
|
requestTimeoutMs: Schema.optional(Positive),
|
|
23
26
|
threadNamePrefix: Schema.optional(Text),
|
|
@@ -29,6 +32,7 @@ export const HostConfig = Schema.Struct({
|
|
|
29
32
|
launch: Schema.optional(LaunchSettings),
|
|
30
33
|
local: Schema.optional(Schema.Struct({ endpoint: Text, requestTimeoutMs: Schema.optional(Positive) })),
|
|
31
34
|
namespace: Schema.optional(Schema.String.check(Schema.isPattern(NAMESPACE))),
|
|
35
|
+
openPullRequests: Schema.optional(Schema.Struct({ ease: Count, floor: Schema.optional(Count), max: Positive }).check(Schema.makeFilter((curve) => curve.ease <= curve.max || "openPullRequests.ease must not exceed openPullRequests.max"))),
|
|
32
36
|
provider: Schema.Literals(["local", "cloud"]),
|
|
33
37
|
quota: Schema.optional(Schema.Literals(["codex", "unlimited"])),
|
|
34
38
|
repository: Schema.optional(Schema.Struct({ branch: Text, remote: Text })),
|
|
@@ -43,19 +47,28 @@ export const HostConfig = Schema.Struct({
|
|
|
43
47
|
});
|
|
44
48
|
export class HostFailure extends Schema.TaggedError()("HostFailure", { message: Schema.String }) {
|
|
45
49
|
}
|
|
46
|
-
export
|
|
50
|
+
export class HostConfigRejected extends Schema.TaggedError()("HostConfigRejected", {
|
|
51
|
+
field: Schema.optional(Schema.String),
|
|
52
|
+
file: Schema.String,
|
|
53
|
+
message: Schema.String,
|
|
54
|
+
}) {
|
|
55
|
+
}
|
|
56
|
+
export function resolveHost(boardDir, config, configFile) {
|
|
47
57
|
return {
|
|
48
58
|
areaMergeWaitMs: config.areaMergeWaitMs ?? DEFAULT_AREA_MERGE_WAIT_MS,
|
|
49
59
|
backlog: config.backlog ?? 100,
|
|
50
60
|
boardDir,
|
|
51
61
|
cloud: config.cloud,
|
|
52
62
|
concurrency: config.concurrency ?? 100,
|
|
63
|
+
config,
|
|
64
|
+
...(configFile === undefined ? {} : { configFile }),
|
|
53
65
|
databaseUrl: config.database?.url ?? SHARED_LOCAL_POSTGRES,
|
|
54
66
|
interval: config.intervalSeconds ?? 15,
|
|
55
67
|
launch: config.launch ?? {},
|
|
56
68
|
local: config.local,
|
|
57
69
|
maxConnections: config.database?.maxConnections ?? 20,
|
|
58
70
|
namespace: config.namespace ?? DEFAULT_NAMESPACE,
|
|
71
|
+
...(config.openPullRequests === undefined ? {} : { openPullRequests: { ...config.openPullRequests, floor: config.openPullRequests.floor ?? 0 } }),
|
|
59
72
|
provider: config.provider,
|
|
60
73
|
quota: config.quota ?? "codex",
|
|
61
74
|
repository: config.repository ?? { branch: "main", remote: "origin" },
|
|
@@ -64,18 +77,33 @@ export function resolveHost(boardDir, config) {
|
|
|
64
77
|
worker: config.worker,
|
|
65
78
|
};
|
|
66
79
|
}
|
|
67
|
-
export const
|
|
80
|
+
export const readHostConfig = Effect.fn("FleetHost.readHostConfig")(function* (file) {
|
|
68
81
|
const fs = yield* FileSystem.FileSystem;
|
|
69
|
-
const path = yield* Path.Path;
|
|
70
|
-
const boardDir = path.resolve(board);
|
|
71
|
-
const file = configPath === undefined ? path.join(boardDir, CONFIG_FILE) : path.resolve(configPath);
|
|
72
82
|
const text = yield* fs
|
|
73
83
|
.readFileString(file)
|
|
74
|
-
.pipe(Effect.mapError(() => new
|
|
75
|
-
const config = yield* Schema.decodeUnknownEffect(Schema.fromJsonString(HostConfig))(text).pipe(Effect.mapError((error) =>
|
|
84
|
+
.pipe(Effect.mapError(() => new HostConfigRejected({ file, message: `Fleet host configuration is missing or unreadable: ${file}` })));
|
|
85
|
+
const config = yield* Schema.decodeUnknownEffect(Schema.fromJsonString(HostConfig))(text).pipe(Effect.mapError((error) => {
|
|
86
|
+
const field = SchemaIssue.makeFormatterStandardSchemaV1()(error.issue).issues[0]?.path?.map(String).join(".");
|
|
87
|
+
return new HostConfigRejected({
|
|
88
|
+
...(field === undefined || field === "" ? {} : { field }),
|
|
89
|
+
file,
|
|
90
|
+
message: `Fleet host configuration ${file} is invalid: ${error.message}`,
|
|
91
|
+
});
|
|
92
|
+
}));
|
|
76
93
|
if (config.provider === "cloud" && (config.cloud === undefined || config.worker === undefined)) {
|
|
77
|
-
return yield* new
|
|
94
|
+
return yield* new HostConfigRejected({
|
|
95
|
+
field: config.cloud === undefined ? "cloud" : "worker",
|
|
96
|
+
file,
|
|
97
|
+
message: `Fleet host configuration ${file} selects provider "cloud" without cloud and worker settings`,
|
|
98
|
+
});
|
|
78
99
|
}
|
|
79
|
-
return
|
|
100
|
+
return config;
|
|
101
|
+
});
|
|
102
|
+
export const loadHost = Effect.fn("FleetHost.loadHost")(function* (board, configPath) {
|
|
103
|
+
const path = yield* Path.Path;
|
|
104
|
+
const boardDir = path.resolve(board);
|
|
105
|
+
const file = configPath === undefined ? path.join(boardDir, CONFIG_FILE) : path.resolve(configPath);
|
|
106
|
+
const config = yield* readHostConfig(file).pipe(Effect.mapError((rejected) => new HostFailure({ message: rejected.message })));
|
|
107
|
+
return resolveHost(boardDir, config, file);
|
|
80
108
|
});
|
|
81
109
|
//# sourceMappingURL=config.js.map
|
package/dist/host/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/host/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACrG,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/host/config.ts"],"names":[],"mappings":"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"}
|