@shivaedev/work-fleet 0.5.0 → 0.7.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 +33 -0
- package/README.md +7 -5
- package/dist/DecisionCode.d.ts +1 -1
- package/dist/DecisionCode.d.ts.map +1 -1
- package/dist/DecisionCode.js +1 -0
- package/dist/DecisionCode.js.map +1 -1
- package/dist/admit.d.ts +2 -4
- package/dist/admit.d.ts.map +1 -1
- package/dist/board/acknowledgeDecision.d.ts.map +1 -1
- package/dist/board/acknowledgeDecision.js +11 -5
- package/dist/board/acknowledgeDecision.js.map +1 -1
- package/dist/board/briefRevision.d.ts +1 -1
- package/dist/board/briefRevision.d.ts.map +1 -1
- package/dist/board/briefRevision.js +1 -1
- package/dist/board/briefRevision.js.map +1 -1
- package/dist/board/closePublishedDecision.d.ts +22 -0
- package/dist/board/closePublishedDecision.d.ts.map +1 -0
- package/dist/board/closePublishedDecision.js +41 -0
- package/dist/board/closePublishedDecision.js.map +1 -0
- package/dist/board/decisionAnswer.d.ts +2 -2
- package/dist/board/decisionAnswer.d.ts.map +1 -1
- package/dist/board/decisionAnswer.js +8 -8
- package/dist/board/decisionAnswer.js.map +1 -1
- package/dist/board/decisionReading.js +2 -2
- package/dist/board/decisionReading.js.map +1 -1
- package/dist/board/documents.d.ts +1 -2
- package/dist/board/documents.d.ts.map +1 -1
- package/dist/board/documents.js +4 -4
- package/dist/board/documents.js.map +1 -1
- package/dist/board/fleetField.d.ts +1 -1
- package/dist/board/fleetField.d.ts.map +1 -1
- package/dist/board/markdown.d.ts.map +1 -1
- package/dist/board/markdown.js +6 -5
- package/dist/board/markdown.js.map +1 -1
- package/dist/board/publish.d.ts +1 -1
- package/dist/board/publish.d.ts.map +1 -1
- package/dist/board/publish.js +10 -8
- package/dist/board/publish.js.map +1 -1
- package/dist/board/publishReport.js +2 -2
- package/dist/board/publishReport.js.map +1 -1
- package/dist/board/readDocument.js +1 -1
- package/dist/board/readDocument.js.map +1 -1
- package/dist/board/readPass.d.ts +1 -1
- package/dist/board/readPass.d.ts.map +1 -1
- package/dist/board/readPass.js +1 -1
- package/dist/board/readPass.js.map +1 -1
- package/dist/board/reportIdentity.js +1 -1
- package/dist/board/reportIdentity.js.map +1 -1
- package/dist/board/reportLinks.js +1 -1
- package/dist/board/reportLinks.js.map +1 -1
- package/dist/board/schema.d.ts +13 -13
- package/dist/board/schema.js +2 -2
- package/dist/board/schema.js.map +1 -1
- package/dist/board/upgradeDecisionClosure.d.ts +5 -0
- package/dist/board/upgradeDecisionClosure.d.ts.map +1 -0
- package/dist/board/upgradeDecisionClosure.js +46 -0
- package/dist/board/upgradeDecisionClosure.js.map +1 -0
- package/dist/board/workRevision.js +2 -2
- package/dist/board/workRevision.js.map +1 -1
- package/dist/board/writeHealth.d.ts +1 -1
- package/dist/board/writeHealth.d.ts.map +1 -1
- package/dist/board/writeHealth.js +1 -1
- package/dist/board/writeHealth.js.map +1 -1
- package/dist/board/writePublished.d.ts +1 -1
- package/dist/board/writePublished.d.ts.map +1 -1
- package/dist/board/writePublished.js +5 -1
- package/dist/board/writePublished.js.map +1 -1
- package/dist/cli.js +11 -5
- package/dist/cli.js.map +1 -1
- package/dist/engine/abandonStalled.d.ts +530 -569
- package/dist/engine/abandonStalled.d.ts.map +1 -1
- package/dist/engine/admissionOrder.d.ts +4 -8
- package/dist/engine/admissionOrder.d.ts.map +1 -1
- package/dist/engine/applyResolution.d.ts +4 -8
- package/dist/engine/applyResolution.d.ts.map +1 -1
- package/dist/engine/approveBrief.d.ts +6 -12
- package/dist/engine/approveBrief.d.ts.map +1 -1
- package/dist/engine/authorizeResolution.d.ts +528 -565
- package/dist/engine/authorizeResolution.d.ts.map +1 -1
- package/dist/engine/authorizeResolution.js +1 -1
- package/dist/engine/authorizeResolution.js.map +1 -1
- package/dist/engine/boardBrief.d.ts +7 -12
- package/dist/engine/boardBrief.d.ts.map +1 -1
- package/dist/engine/boardBrief.js +3 -10
- package/dist/engine/boardBrief.js.map +1 -1
- package/dist/engine/capacityRetry.d.ts +1715 -1828
- package/dist/engine/capacityRetry.d.ts.map +1 -1
- package/dist/engine/closeDecisions.d.ts +4 -8
- package/dist/engine/closeDecisions.d.ts.map +1 -1
- package/dist/engine/completeBoardWork.d.ts +4 -8
- package/dist/engine/completeBoardWork.d.ts.map +1 -1
- package/dist/engine/completeReport.d.ts +277 -284
- package/dist/engine/completeReport.d.ts.map +1 -1
- package/dist/engine/continueCommand.d.ts +2 -4
- package/dist/engine/continueCommand.d.ts.map +1 -1
- package/dist/engine/continueWorker.d.ts +4 -8
- package/dist/engine/continueWorker.d.ts.map +1 -1
- package/dist/engine/decisionCopy.d.ts +15 -0
- package/dist/engine/decisionCopy.d.ts.map +1 -0
- package/dist/engine/decisionCopy.js +44 -0
- package/dist/engine/decisionCopy.js.map +1 -0
- package/dist/engine/deliverPendingAnswers.d.ts +534 -577
- package/dist/engine/deliverPendingAnswers.d.ts.map +1 -1
- package/dist/engine/dispatchCommand.d.ts +3 -6
- package/dist/engine/dispatchCommand.d.ts.map +1 -1
- package/dist/engine/dispatchCommand.js +4 -29
- package/dist/engine/dispatchCommand.js.map +1 -1
- package/dist/engine/dispatchFailure.d.ts +9391 -0
- package/dist/engine/dispatchFailure.d.ts.map +1 -0
- package/dist/engine/dispatchFailure.js +24 -0
- package/dist/engine/dispatchFailure.js.map +1 -0
- package/dist/engine/ensureDecisionOwner.d.ts +4 -8
- package/dist/engine/ensureDecisionOwner.d.ts.map +1 -1
- package/dist/engine/ensurePublication.d.ts +4 -8
- package/dist/engine/ensurePublication.d.ts.map +1 -1
- package/dist/engine/failureCode.js +1 -1
- package/dist/engine/failureCode.js.map +1 -1
- package/dist/engine/health.d.ts +1 -1
- package/dist/engine/health.d.ts.map +1 -1
- package/dist/engine/inspectRenewal.d.ts +4 -8
- package/dist/engine/inspectRenewal.d.ts.map +1 -1
- package/dist/engine/launchInput.d.ts +2 -4
- package/dist/engine/launchInput.d.ts.map +1 -1
- package/dist/engine/launchReceipt.d.ts +2 -4
- package/dist/engine/launchReceipt.d.ts.map +1 -1
- package/dist/engine/makeAdopt.d.ts +4 -8
- package/dist/engine/makeAdopt.d.ts.map +1 -1
- package/dist/engine/makeAdvance.d.ts +2 -4
- package/dist/engine/makeAdvance.d.ts.map +1 -1
- package/dist/engine/makeDeliver.d.ts +4 -8
- package/dist/engine/makeDeliver.d.ts.map +1 -1
- package/dist/engine/makeDeliver.js +5 -1
- package/dist/engine/makeDeliver.js.map +1 -1
- package/dist/engine/makeHuman.d.ts +4 -8
- package/dist/engine/makeHuman.d.ts.map +1 -1
- package/dist/engine/makeLaunch.d.ts +4 -8
- package/dist/engine/makeLaunch.d.ts.map +1 -1
- package/dist/engine/makeObserve.d.ts +4 -8
- package/dist/engine/makeObserve.d.ts.map +1 -1
- package/dist/engine/makeReview.d.ts +4 -8
- package/dist/engine/makeReview.d.ts.map +1 -1
- package/dist/engine/makeState.d.ts +534 -568
- package/dist/engine/makeState.d.ts.map +1 -1
- package/dist/engine/makeState.js +18 -3
- package/dist/engine/makeState.js.map +1 -1
- package/dist/engine/makeValidate.d.ts +4 -8
- package/dist/engine/makeValidate.d.ts.map +1 -1
- package/dist/engine/mergeReadiness.d.ts +536 -581
- package/dist/engine/mergeReadiness.d.ts.map +1 -1
- package/dist/engine/mergeReadiness.js +1 -1
- package/dist/engine/mergeReadiness.js.map +1 -1
- package/dist/engine/missingBoardWork.d.ts +9936 -0
- package/dist/engine/missingBoardWork.d.ts.map +1 -0
- package/dist/engine/missingBoardWork.js +17 -0
- package/dist/engine/missingBoardWork.js.map +1 -0
- package/dist/engine/observeDeliveryFailure.d.ts +530 -569
- package/dist/engine/observeDeliveryFailure.d.ts.map +1 -1
- package/dist/engine/observeRenewal.d.ts +6 -12
- package/dist/engine/observeRenewal.d.ts.map +1 -1
- package/dist/engine/obtainReview.d.ts +2 -4
- package/dist/engine/obtainReview.d.ts.map +1 -1
- package/dist/engine/obtainReview.js +1 -1
- package/dist/engine/obtainReview.js.map +1 -1
- package/dist/engine/operationRecord.d.ts +26 -52
- package/dist/engine/operationRecord.d.ts.map +1 -1
- package/dist/engine/pendingAcknowledgements.d.ts.map +1 -1
- package/dist/engine/pendingAcknowledgements.js +3 -1
- package/dist/engine/pendingAcknowledgements.js.map +1 -1
- package/dist/engine/persistTerminalReceipts.d.ts +4 -8
- package/dist/engine/persistTerminalReceipts.d.ts.map +1 -1
- package/dist/engine/prepareCommand.d.ts +2 -4
- package/dist/engine/prepareCommand.d.ts.map +1 -1
- package/dist/engine/queueAnswerCommand.d.ts +2 -4
- package/dist/engine/queueAnswerCommand.d.ts.map +1 -1
- package/dist/engine/readOrContinueReview.d.ts +2 -4
- package/dist/engine/readOrContinueReview.d.ts.map +1 -1
- package/dist/engine/readOrContinueReview.js +1 -1
- package/dist/engine/readOrContinueReview.js.map +1 -1
- package/dist/engine/readResolution.d.ts +1 -1
- package/dist/engine/readResolution.js +1 -1
- package/dist/engine/readResolution.js.map +1 -1
- package/dist/engine/readRetry.d.ts +1177 -1255
- package/dist/engine/readRetry.d.ts.map +1 -1
- package/dist/engine/reassignCommand.d.ts +2 -4
- package/dist/engine/reassignCommand.d.ts.map +1 -1
- package/dist/engine/reconcileAttempt.d.ts +2 -4
- package/dist/engine/reconcileAttempt.d.ts.map +1 -1
- package/dist/engine/reconcileCommand.d.ts +2 -4
- package/dist/engine/reconcileCommand.d.ts.map +1 -1
- package/dist/engine/reconcileCommand.js +2 -1
- package/dist/engine/reconcileCommand.js.map +1 -1
- package/dist/engine/recordResponseCommand.d.ts +2 -4
- package/dist/engine/recordResponseCommand.d.ts.map +1 -1
- package/dist/engine/recoverStall.d.ts +530 -569
- package/dist/engine/recoverStall.d.ts.map +1 -1
- package/dist/engine/recoverUnobservable.d.ts +530 -569
- package/dist/engine/recoverUnobservable.d.ts.map +1 -1
- package/dist/engine/refreshBrief.d.ts +1177 -1255
- package/dist/engine/refreshBrief.d.ts.map +1 -1
- package/dist/engine/refreshReviewResult.d.ts +4 -8
- package/dist/engine/refreshReviewResult.d.ts.map +1 -1
- package/dist/engine/releaseClosedPreparation.d.ts +530 -569
- package/dist/engine/releaseClosedPreparation.d.ts.map +1 -1
- package/dist/engine/releaseExecution.d.ts +530 -569
- package/dist/engine/releaseExecution.d.ts.map +1 -1
- package/dist/engine/releaseFinishedWork.d.ts +2 -4
- package/dist/engine/releaseFinishedWork.d.ts.map +1 -1
- package/dist/engine/releaseFinishedWork.js +0 -1
- package/dist/engine/releaseFinishedWork.js.map +1 -1
- package/dist/engine/repository.d.ts +24 -48
- package/dist/engine/repository.d.ts.map +1 -1
- package/dist/engine/repository.js +1 -1
- package/dist/engine/repository.js.map +1 -1
- package/dist/engine/requestConflictRepair.d.ts +530 -569
- package/dist/engine/requestConflictRepair.d.ts.map +1 -1
- package/dist/engine/requestRework.d.ts +4 -8
- package/dist/engine/requestRework.d.ts.map +1 -1
- package/dist/engine/resolveCommand.d.ts +2 -4
- package/dist/engine/resolveCommand.d.ts.map +1 -1
- package/dist/engine/resolveExecution.d.ts +530 -569
- package/dist/engine/resolveExecution.d.ts.map +1 -1
- package/dist/engine/resumeAttempt.d.ts +530 -569
- package/dist/engine/resumeAttempt.d.ts.map +1 -1
- package/dist/engine/retireUnacknowledged.d.ts +4 -8
- package/dist/engine/retireUnacknowledged.d.ts.map +1 -1
- package/dist/engine/retryTerminal.d.ts +528 -565
- package/dist/engine/retryTerminal.d.ts.map +1 -1
- package/dist/engine/saveLaunch.d.ts +533 -574
- package/dist/engine/saveLaunch.d.ts.map +1 -1
- package/dist/engine/saveLaunch.js +16 -2
- package/dist/engine/saveLaunch.js.map +1 -1
- package/dist/engine/scheduler.d.ts +4 -8
- package/dist/engine/scheduler.d.ts.map +1 -1
- package/dist/engine/scheduler.js +4 -1
- package/dist/engine/scheduler.js.map +1 -1
- package/dist/engine/sessionCleanup.d.ts +4 -8
- package/dist/engine/sessionCleanup.d.ts.map +1 -1
- package/dist/engine/settleMergedDelivery.d.ts +530 -569
- package/dist/engine/settleMergedDelivery.d.ts.map +1 -1
- package/dist/engine/situations/choices.d.ts +20 -0
- package/dist/engine/situations/choices.d.ts.map +1 -0
- package/dist/engine/situations/choices.js +21 -0
- package/dist/engine/situations/choices.js.map +1 -0
- package/dist/engine/situations/service.d.ts +60 -0
- package/dist/engine/situations/service.d.ts.map +1 -0
- package/dist/engine/situations/service.js +51 -0
- package/dist/engine/situations/service.js.map +1 -0
- package/dist/engine/situations/stop.d.ts +25 -0
- package/dist/engine/situations/stop.d.ts.map +1 -0
- package/dist/engine/situations/stop.js +25 -0
- package/dist/engine/situations/stop.js.map +1 -0
- package/dist/engine/situations/work.d.ts +114 -0
- package/dist/engine/situations/work.d.ts.map +1 -0
- package/dist/engine/situations/work.js +91 -0
- package/dist/engine/situations/work.js.map +1 -0
- package/dist/engine/steerBrief.d.ts +532 -573
- package/dist/engine/steerBrief.d.ts.map +1 -1
- package/dist/engine/submissionFailure.d.ts +526 -561
- package/dist/engine/submissionFailure.d.ts.map +1 -1
- package/dist/engine/submitLaunch.d.ts +528 -565
- package/dist/engine/submitLaunch.d.ts.map +1 -1
- package/dist/engine/threadNames.js +1 -1
- package/dist/engine/threadNames.js.map +1 -1
- package/dist/engine/workerReport.d.ts +7 -13
- package/dist/engine/workerReport.d.ts.map +1 -1
- package/dist/exposeFailure.js +1 -1
- package/dist/exposeFailure.js.map +1 -1
- package/dist/fleet.d.ts +26 -52
- package/dist/fleet.d.ts.map +1 -1
- package/dist/fleet.js +1 -1
- package/dist/fleet.js.map +1 -1
- package/dist/host/actionCommands.d.ts +10 -10
- package/dist/host/actionCommands.d.ts.map +1 -1
- package/dist/host/actionCommands.js +6 -6
- package/dist/host/actionCommands.js.map +1 -1
- package/dist/host/admission.d.ts +4 -8
- package/dist/host/admission.d.ts.map +1 -1
- package/dist/host/answerWork.d.ts +4 -5
- package/dist/host/answerWork.d.ts.map +1 -1
- package/dist/host/cliOptions.d.ts +5 -1
- package/dist/host/cliOptions.d.ts.map +1 -1
- package/dist/host/cliOptions.js +6 -4
- package/dist/host/cliOptions.js.map +1 -1
- package/dist/host/commands.d.ts +1 -1
- package/dist/host/commands.d.ts.map +1 -1
- package/dist/host/configSettings.d.ts +5 -5
- package/dist/host/daemon.d.ts +133 -150
- package/dist/host/daemon.d.ts.map +1 -1
- package/dist/host/daemon.js +7 -3
- package/dist/host/daemon.js.map +1 -1
- package/dist/host/daemonClient.d.ts +1054 -1072
- package/dist/host/daemonClient.d.ts.map +1 -1
- package/dist/host/daemonClient.js +1 -1
- package/dist/host/daemonClient.js.map +1 -1
- package/dist/host/daemonContract.d.ts +146 -172
- package/dist/host/daemonContract.d.ts.map +1 -1
- package/dist/host/daemonContract.js +1 -1
- package/dist/host/daemonContract.js.map +1 -1
- package/dist/host/daemonDiagnostics.js +1 -1
- package/dist/host/daemonDiagnostics.js.map +1 -1
- package/dist/host/daemonHandlers.d.ts +1 -1
- package/dist/host/daemonHandlers.d.ts.map +1 -1
- package/dist/host/daemonPort.d.ts +6 -0
- package/dist/host/daemonPort.d.ts.map +1 -0
- package/dist/host/daemonPort.js +40 -0
- package/dist/host/daemonPort.js.map +1 -0
- package/dist/host/daemonSnapshots.d.ts +1 -1
- package/dist/host/daemonSnapshots.d.ts.map +1 -1
- package/dist/host/daemonSnapshots.js +1 -1
- package/dist/host/daemonSnapshots.js.map +1 -1
- package/dist/host/fleetStatus.d.ts +5 -5
- package/dist/host/follow.d.ts +1 -0
- package/dist/host/follow.d.ts.map +1 -1
- package/dist/host/follow.js +10 -4
- package/dist/host/follow.js.map +1 -1
- package/dist/host/followCommands.d.ts +2 -2
- package/dist/host/followCommands.d.ts.map +1 -1
- package/dist/host/followCommands.js +4 -2
- package/dist/host/followCommands.js.map +1 -1
- package/dist/host/githubApi.js +1 -1
- package/dist/host/githubApi.js.map +1 -1
- package/dist/host/githubDelivery.js +3 -1
- package/dist/host/githubDelivery.js.map +1 -1
- package/dist/host/healthLayer.js +1 -1
- package/dist/host/healthLayer.js.map +1 -1
- package/dist/host/integrations.js +1 -1
- package/dist/host/integrations.js.map +1 -1
- package/dist/host/mainSource.js +1 -1
- package/dist/host/mainSource.js.map +1 -1
- package/dist/host/providerHealth.js +1 -1
- package/dist/host/providerHealth.js.map +1 -1
- package/dist/host/quota.js +1 -1
- package/dist/host/quota.js.map +1 -1
- package/dist/host/recordDecisionResponse.d.ts +3 -2
- package/dist/host/recordDecisionResponse.d.ts.map +1 -1
- package/dist/host/recordDecisionResponse.js +1 -1
- package/dist/host/recordDecisionResponse.js.map +1 -1
- package/dist/host/releaseWork.d.ts +6 -9
- package/dist/host/releaseWork.d.ts.map +1 -1
- package/dist/host/releaseWork.js +2 -2
- package/dist/host/releaseWork.js.map +1 -1
- package/dist/host/renderStatus.d.ts +4 -1
- package/dist/host/renderStatus.d.ts.map +1 -1
- package/dist/host/renderStatus.js +6 -6
- package/dist/host/renderStatus.js.map +1 -1
- package/dist/host/reportBoard.js +1 -1
- package/dist/host/reportBoard.js.map +1 -1
- package/dist/host/runtime.d.ts +2 -2
- package/dist/host/runtime.d.ts.map +1 -1
- package/dist/host/runtime.js +1 -1
- package/dist/host/runtime.js.map +1 -1
- package/dist/host/statusLayer.js +2 -2
- package/dist/host/statusLayer.js.map +1 -1
- package/dist/host/watch.d.ts.map +1 -1
- package/dist/host/watch.js +1 -1
- package/dist/host/watch.js.map +1 -1
- package/dist/model.d.ts +9 -12
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +1 -2
- package/dist/model.js.map +1 -1
- package/dist/operations.d.ts +57 -99
- 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 +3 -2
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +2 -1
- package/dist/policy.js.map +1 -1
- package/dist/prompt/briefEdit.js +1 -1
- package/dist/prompt/briefEdit.js.map +1 -1
- package/dist/providers/codexCloud.js +1 -1
- package/dist/providers/codexCloud.js.map +1 -1
- package/dist/providers/codexLocal.js +1 -1
- package/dist/providers/codexLocal.js.map +1 -1
- package/dist/qualifyDependencies.d.ts +2 -4
- package/dist/qualifyDependencies.d.ts.map +1 -1
- package/dist/reportFileDirectory.js +1 -1
- package/dist/reportFileDirectory.js.map +1 -1
- package/dist/scheduling/admission.d.ts +6 -12
- package/dist/scheduling/admission.d.ts.map +1 -1
- package/dist/scheduling/areas.d.ts +7 -12
- package/dist/scheduling/areas.d.ts.map +1 -1
- package/dist/scheduling/areas.js +2 -2
- package/dist/scheduling/areas.js.map +1 -1
- package/dist/scheduling/backPressure.d.ts +6 -12
- package/dist/scheduling/backPressure.d.ts.map +1 -1
- package/dist/session/schema.d.ts +1 -1
- package/dist/session/service.js +1 -1
- package/dist/session/service.js.map +1 -1
- package/dist/storage/fleetMigrations.d.ts.map +1 -1
- package/dist/storage/fleetMigrations.js +10 -0
- package/dist/storage/fleetMigrations.js.map +1 -1
- package/dist/storage/makeFleetTransaction.d.ts +1 -1
- package/dist/storage/makeFleetTransaction.d.ts.map +1 -1
- package/dist/storage/makeFleetTransaction.js +1 -1
- package/dist/storage/makeFleetTransaction.js.map +1 -1
- package/dist/storage/makeForeignReservations.d.ts.map +1 -1
- package/dist/storage/makeForeignReservations.js +16 -4
- package/dist/storage/makeForeignReservations.js.map +1 -1
- package/dist/storage/model.d.ts +1 -0
- package/dist/storage/model.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/DecisionCode.ts +1 -0
- package/src/board/acknowledgeDecision.ts +11 -5
- package/src/board/briefRevision.ts +2 -2
- package/src/board/closePublishedDecision.ts +51 -0
- package/src/board/decisionAnswer.ts +11 -9
- package/src/board/decisionReading.ts +3 -3
- package/src/board/documents.ts +5 -6
- package/src/board/fleetField.ts +1 -1
- package/src/board/markdown.ts +6 -5
- package/src/board/publish.ts +10 -8
- package/src/board/publishReport.ts +2 -2
- package/src/board/readDocument.ts +1 -1
- package/src/board/readPass.ts +2 -2
- package/src/board/reportIdentity.ts +1 -1
- package/src/board/reportLinks.ts +1 -1
- package/src/board/schema.ts +2 -2
- package/src/board/upgradeDecisionClosure.ts +61 -0
- package/src/board/workRevision.ts +2 -2
- package/src/board/writeHealth.ts +2 -2
- package/src/board/writePublished.ts +13 -4
- package/src/cli.ts +13 -5
- package/src/engine/authorizeResolution.ts +1 -1
- package/src/engine/boardBrief.ts +11 -19
- package/src/engine/decisionCopy.ts +63 -0
- package/src/engine/dispatchCommand.ts +4 -36
- package/src/engine/dispatchFailure.ts +25 -0
- package/src/engine/failureCode.ts +1 -1
- package/src/engine/health.ts +1 -1
- package/src/engine/makeDeliver.ts +5 -1
- package/src/engine/makeState.ts +24 -5
- package/src/engine/mergeReadiness.ts +0 -2
- package/src/engine/missingBoardWork.ts +24 -0
- package/src/engine/obtainReview.ts +1 -1
- package/src/engine/pendingAcknowledgements.ts +9 -1
- package/src/engine/readOrContinueReview.ts +1 -1
- package/src/engine/readResolution.ts +2 -2
- package/src/engine/reconcileCommand.ts +7 -1
- package/src/engine/releaseFinishedWork.ts +0 -1
- package/src/engine/repository.ts +1 -1
- package/src/engine/saveLaunch.ts +27 -2
- package/src/engine/scheduler.ts +4 -1
- package/src/engine/situations/choices.ts +36 -0
- package/src/engine/situations/service.ts +82 -0
- package/src/engine/situations/stop.ts +60 -0
- package/src/engine/situations/work.ts +94 -0
- package/src/engine/threadNames.ts +1 -1
- package/src/exposeFailure.ts +1 -1
- package/src/fleet.ts +1 -1
- package/src/host/actionCommands.ts +6 -6
- package/src/host/cliOptions.ts +10 -5
- package/src/host/daemon.ts +7 -3
- package/src/host/daemonClient.ts +1 -1
- package/src/host/daemonContract.ts +1 -1
- package/src/host/daemonDiagnostics.ts +1 -1
- package/src/host/daemonPort.ts +50 -0
- package/src/host/daemonSnapshots.ts +1 -1
- package/src/host/follow.ts +16 -5
- package/src/host/followCommands.ts +4 -2
- package/src/host/githubApi.ts +1 -1
- package/src/host/githubDelivery.ts +3 -1
- package/src/host/healthLayer.ts +1 -1
- package/src/host/integrations.ts +1 -1
- package/src/host/mainSource.ts +1 -1
- package/src/host/providerHealth.ts +1 -1
- package/src/host/quota.ts +1 -1
- package/src/host/recordDecisionResponse.ts +1 -1
- package/src/host/releaseWork.ts +2 -2
- package/src/host/renderStatus.ts +6 -7
- package/src/host/reportBoard.ts +1 -1
- package/src/host/runtime.ts +1 -1
- package/src/host/statusLayer.ts +3 -3
- package/src/host/watch.ts +4 -1
- package/src/model.ts +1 -2
- package/src/packageInfo.ts +1 -1
- package/src/policy.ts +2 -1
- package/src/prompt/briefEdit.ts +1 -1
- package/src/providers/codexCloud.ts +1 -1
- package/src/providers/codexLocal.ts +1 -1
- package/src/reportFileDirectory.ts +1 -1
- package/src/scheduling/areas.ts +2 -2
- package/src/session/service.ts +1 -1
- package/src/storage/fleetMigrations.ts +10 -0
- package/src/storage/makeFleetTransaction.ts +2 -2
- package/src/storage/makeForeignReservations.ts +15 -4
- package/src/storage/model.ts +1 -1
- package/dist/engine/releaseOnly.d.ts +0 -3
- package/dist/engine/releaseOnly.d.ts.map +0 -1
- package/dist/engine/releaseOnly.js +0 -19
- package/dist/engine/releaseOnly.js.map +0 -1
- package/src/engine/releaseOnly.ts +0 -24
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.7.0 - 2026-10-18
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Board lookup failures use the `board-item-missing` error code and optional `BoardFailure.workId` to distinguish confirmed absence from unreadable or ambiguous Board sources.
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Published Fleet decisions now state in plain words what happened, what Fleet needs and recommends, and what each option does. Option labels fit the situation, such as "Continue on the updated task" for an edited brief and "Request changes" next to a note that merging happens on the PR for merge-ready work. Option ids `retry` and `release` and the answer protocol are unchanged.
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- Release foreign reservations when the existing delivery observation confirms their PR closed without merging, freeing open-PR backlog for waiting work. Repeated idle reconciliation emits no redundant reservation commit notifications. Releasing the closure decision keeps the reservation absent without another GitHub read. Closed delivery decisions use the `pr-closed` code.
|
|
16
|
+
- Prepared work whose Board item was deleted is released and logged instead of blocking its area queue, including after restart. Scheduler dispatch failures refresh saved blocker text and are logged, so status no longer shows an obsolete area holder.
|
|
17
|
+
- Merge-ready PRs and changed Board briefs ask the orchestrator for a decision. Superseded Fleet decision publications close on the Board, including older publications found during upgrade. Explicit maintainer reassignments survive the routing upgrade.
|
|
18
|
+
- Fleet records completion of the one-time decision cleanup in `.fleet-decision-closure-v1.json` in the Board root.
|
|
19
|
+
|
|
20
|
+
## 0.6.0 - 2026-10-18
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
|
|
24
|
+
- Export `holdsAreas(record, now, mergeWaitMs)` from `scheduling/areas.ts` to share Fleet's area ownership predicate.
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- A retry answer on a Board context changed decision now records a single applied receipt instead of also queueing a superseded one, and Fleet refuses to write a second receipt for a question that already has one.
|
|
29
|
+
- Work with unmet dependencies no longer blocks ready work in the same area, including when an existing waiter becomes blocked. Eligible waiters retain their queue order. Area queue checks read only earlier waiters, so an unreadable later item cannot block ready work ahead of it.
|
|
30
|
+
- Repairs and continuations of current area holders skip waiter eligibility reads, so an unreadable earlier waiter cannot prevent them from continuing. Work that must reacquire an area still checks earlier waiters and storage ownership.
|
|
31
|
+
|
|
32
|
+
### Breaking
|
|
33
|
+
|
|
34
|
+
- Remove `FleetRecord.admissionReady` and `FleetCycleSnapshot.admissionReady`; the database migration drops their current and archived columns. `LaunchAdmission.areaWaiters` and `AdmissionLimits.scheduling.waiters` are now required lists of eligible work IDs.
|
|
35
|
+
|
|
3
36
|
## 0.5.0 - 2026-10-18
|
|
4
37
|
|
|
5
38
|
### Breaking
|
package/README.md
CHANGED
|
@@ -53,7 +53,7 @@ For this repository, configure the `worker` section in `.work/fleet.config.json`
|
|
|
53
53
|
"worker": {
|
|
54
54
|
"branchPrefix": "<branch-prefix>",
|
|
55
55
|
"sharedEnvironment": "<environment-script-path>",
|
|
56
|
-
"reviewerGuidance": "To check that PostgreSQL tests are not skipped without job logs, read .github/workflows/ci.yml at the reviewed head and follow its test job database setup and environment configuration. In this repository, pnpm db:setup provisions PostgreSQL and pnpm test supplies PLATFORM_EFFECT_*_TEST_DATABASE_URL through script/test.ts and script/lib/
|
|
56
|
+
"reviewerGuidance": "To check that PostgreSQL tests are not skipped without job logs, read .github/workflows/ci.yml at the reviewed head and follow its test job database setup and environment configuration. In this repository, pnpm db:setup provisions PostgreSQL and pnpm test supplies PLATFORM_EFFECT_*_TEST_DATABASE_URL through script/test.ts and script/lib/postgresTestEnvironment.ts. Inspect those files at the same head; the checkout may differ."
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
```
|
|
@@ -108,7 +108,7 @@ fleet-launch:
|
|
|
108
108
|
|
|
109
109
|
The launch fields are strings. Omitted fields inherit the host settings; without host settings or an override, they inherit provider defaults. An invalid override fails before dispatch. The selected settings also apply to repair turns. `src/board/fleetField.test.ts`, `src/host/commands.test.ts` and `src/engine/launchSettings.spec.ts` cover these rules.
|
|
110
110
|
|
|
111
|
-
The worker brief is the authored content in the item's own Markdown source. Editing a linked goal, plan, report or decision, or an unrelated item, does not change that brief. When prepared or active work has no open decision, Fleet approves an edited brief in place on the next pass if it still has `fleet: approved`, its owner is omitted or `codex`, and its status is not `done`, `superseded` or `deferred`. The worker keeps its session, turn and PR without a Board context changed decision. A changed brief that fails these conditions still stops for a human. `work-fleet dispatch <id>` can explicitly approve the current approved brief in place, even while its worker turn runs. Retry on the context decision approves the brief that decision was published against; an answer to a decision from before an edit cannot approve the new brief. Approval updates the stored context and prompt,
|
|
111
|
+
The worker brief is the authored content in the item's own Markdown source. Editing a linked goal, plan, report or decision, or an unrelated item, does not change that brief. When prepared or active work has no open decision, Fleet approves an edited brief in place on the next pass if it still has `fleet: approved`, its owner is omitted or `codex`, and its status is not `done`, `superseded` or `deferred`. The worker keeps its session, turn and PR without a Board context changed decision. A changed brief that fails these conditions still stops for a human. `work-fleet dispatch <id>` can explicitly approve the current approved brief in place, even while its worker turn runs. Retry on the context decision approves the brief that decision was published against; an answer to a decision from before an edit cannot approve the new brief. Approval updates the stored context and prompt, closes the decision and preserves the current thread and PR. A retry answer closes it with one applied receipt for that answer; dispatch closes it as superseded. Fleet records at most one receipt per question. When the worker or repair turn has an active receipt, Fleet steers it through the existing provider steer operation with a summary of the changes followed by the full new brief. Each authored revision is attempted at most once per turn, including after restart or a brief reverting to a previously steered revision. The approved brief and steer intent commit together before the provider call. CLI status records the request time, acknowledged delivery time or failure; interrupted delivery remains unconfirmed and is not replayed. Unsupported or failed steering leaves the updated brief in place for independent review and later repairs on the same worker thread. Completed turns and reviewers receive no brief steer. `src/engine/briefSteering.spec.ts`, `src/engine/briefSteerRecovery.spec.ts` and `src/host/briefSteering.spec.ts` prove these boundaries with real PostgreSQL, synthetic providers and a daemon SIGKILL/restart. Removing approval stops further execution. Changing the item's `status`, including `done`, preserves work that has started and its open decisions. That work completes through the normal execution, review and delivery path; only an explicit release answer releases unfinished execution ownership. Uncertain provider receipts retain ownership for reconciliation. `src/engine/approvedBrief.spec.ts`, `src/engine/contextScope.spec.ts`, `src/engine/contextAuthority.spec.ts` and `src/host/approvedRevision.spec.ts`, `src/host/approveBrief.spec.ts`, `src/engine/briefApproval.spec.ts` and `src/engine/staleDecisions.spec.ts` cover these transitions against PostgreSQL with Markdown Board fixtures and a synthetic provider.
|
|
112
112
|
|
|
113
113
|
Cloud hosts compute the Board directory's repository-relative path only when that directory is inside the repository and git-ignored. Before launching, Fleet checks each criterion's text for that path. A match publishes an orchestrator decision naming the criteria and explaining that Cloud workers cannot read local-only Board data, without starting a session. Edit the criteria to use data available to the worker, then dispatch again. Local workers, Board directories outside the repository, directories that are not ignored, and paths mentioned only in the body do not trigger this guard. `src/host/localOnlyCriteria.spec.ts` covers these cases and dispatch after an edit against PostgreSQL with a synthetic repository and provider.
|
|
114
114
|
|
|
@@ -183,7 +183,7 @@ fleet-priority: high
|
|
|
183
183
|
| `work-fleet answer <work-id> [text] [--release] [--port <port>]` | Answers the waiting worker question or Fleet decision; reads text from stdin when omitted, except with `--release`. |
|
|
184
184
|
| `work-fleet name-threads [--port <port>]` | Names existing Cloud threads from Fleet records and reports each rename or failure. |
|
|
185
185
|
|
|
186
|
-
Automatic reconciliation refreshes eligible edited briefs in place. Explicit dispatch can re-approve work waiting on a context decision; renewal still requires safe execution and result ownership. Keep `serve` active to reconcile worker progress. All commands except `serve` connect to its loopback port
|
|
186
|
+
Automatic reconciliation refreshes eligible edited briefs in place. Explicit dispatch can re-approve work waiting on a context decision; renewal still requires safe execution and result ownership. Keep `serve` active to reconcile worker progress. All commands except `serve` connect to its loopback port over RPC and open no PostgreSQL connection. `serve` writes its bound port to `<board-dir>/.fleet-port`. Clients read that file from `--board <board-dir>` (default `.work`); an explicit `--port` overrides discovery. On shutdown, the daemon removes the port file if it still holds that daemon's port. The running daemon owns its configuration; client `--config` does not change it. Without a daemon, clients other than `watch --follow` exit 1 with the address and a command to start it. `src/host/daemonDiscovery.spec.ts` proves discovery on an automatically assigned port, explicit overrides of a dead port file, and shutdown cleanup through real HTTP and PostgreSQL. The host loop and approval behavior are exercised against PostgreSQL in `src/host/commands.test.ts` and `src/host/cloudRestart.spec.ts`; `src/host/statusProcess.spec.ts` exercises status output and flags.
|
|
187
187
|
|
|
188
188
|
`answer` records an orchestrator response on Board and resolves what the item waits on. Worker questions require nonempty text and continue on the same thread. Fleet decisions receive retry with the text as the overall response; for a reviewed, ready PR, nonempty text requests changes on the same branch and PR. Use `--release` to release terminal ownership instead. The command refreshes the managed decision and registers its current question before answering, including after a changed template was republished. If reconciliation replaces a decision with another of the same kind during the command, the answer applies to the current decision. A different kind or a move out of needs-human returns `Decision changed` with the current reason. Nonempty text sent during execution or repair is stored for the next worker turn, survives daemon restart and prints `queued for the next turn`; release requests still require terminal waiting work. Items waiting on nothing return a typed error naming their stage. `status` prints each waiting question or reason, with `work-fleet answer <work-id>` in the maintainer and orchestrator lanes. Automation waits have no answer command. `src/host/daemonCommands.spec.ts`, `src/host/answerWorker.spec.ts`, `src/host/answerPublication.spec.ts`, `src/host/answerReplacement.spec.ts`, `src/host/answerQueue.spec.ts` and `src/host/approvedRework.spec.ts` prove these paths through daemon HTTP against PostgreSQL and synthetic Board directories. The daemon still records and applies an answer or release after its client stops waiting, and all answers and releases share one watched Board response index, so a request rereads only changed Board files; `src/host/answerDisconnect.spec.ts` proves both through daemon HTTP while another connection holds the admission lock.
|
|
189
189
|
|
|
@@ -205,7 +205,7 @@ Automatic reconciliation refreshes eligible edited briefs in place. Explicit dis
|
|
|
205
205
|
|
|
206
206
|
`watch --follow` accepts unfamiliar decision codes, stages and extra fields from a newer daemon. It prints unfamiliar codes and stages as text; an entry whose display fields cannot decode prints its raw data without stopping other entries or later snapshots. Fatal watch errors exit 1 and print one cause line on stderr. `src/host/watchSkew.spec.ts` proves these behaviors through a synthetic HTTP stream and real CLI subprocesses.
|
|
207
207
|
|
|
208
|
-
`wait` and `watch` each use one scoped RPC subscription. The daemon is the only store writer. Record and foreign-occupancy writes run through effect-sql `transact` and record table hints inside that transaction. The daemon shares one summary stream across followers. It subscribes to committed record hints before reading compact fields through its existing pool, then reads again only when a record commit arrives; it does not poll PostgreSQL. New followers receive the last good snapshot; after the last follower leaves, the next subscription starts with a fresh read. PostgreSQL read failures retain the last good snapshot and retry every half second; 20 consecutive failed attempts end all current followers with a clear message and exit 1. A reconnect receives a snapshot of the original selected set, or all items for `watch --follow` without IDs; printed outcomes remain deduplicated.
|
|
208
|
+
`wait` and `watch` each use one scoped RPC subscription. The daemon is the only store writer. Record and foreign-occupancy writes run through effect-sql `transact` and record table hints inside that transaction. The daemon shares one summary stream across followers. It subscribes to committed record hints before reading compact fields through its existing pool, then reads again only when a record commit arrives; it does not poll PostgreSQL. New followers receive the last good snapshot; after the last follower leaves, the next subscription starts with a fresh read. PostgreSQL read failures retain the last good snapshot and retry every half second; 20 consecutive failed attempts end all current followers with a clear message and exit 1. A reconnect receives a snapshot of the original selected set, or all items for `watch --follow` without IDs; printed outcomes remain deduplicated. `watch --follow` writes an `ERROR` line to stderr on each failed connection attempt, including before its first snapshot, then retries at `--interval` without an attempt limit. Each retry rereads the port file, so a restarted daemon can change ports. `src/host/daemonDiscovery.spec.ts` proves repeated errors and recovery on a new port. Other wait and watch subscriptions retry connection loss up to 20 consecutive attempts before exit 1. `--timeout <seconds>` exits 4 and writes a timeout message to stderr. `src/host/watch.test.ts`, `src/host/daemonClients.spec.ts`, `src/host/snapshotStream.test.ts` and `src/host/daemonFollow.spec.ts` cover output, HTTP restart resync, initial selection, PostgreSQL read recovery and failure bounds, the commit-subscription lifecycle and rollback silence. `src/host/daemonCommit.spec.ts` proves a daemon command reaches a CLI follower without periodic reads and a rolled-back store write sends neither a snapshot nor a refresh query. Client subprocess fixtures reject direct PostgreSQL connections, so the command tests fail if a client opens the store itself.
|
|
209
209
|
|
|
210
210
|
### Read the generated heading board
|
|
211
211
|
|
|
@@ -241,7 +241,9 @@ A composed runtime enables health publication with `statusLayer(boardRoot, { con
|
|
|
241
241
|
|
|
242
242
|
Every new Fleet decision records a stable `code` beside its human `reason`. Import the Schema literal union `DecisionCode` from `@shivaedev/work-fleet/DecisionCode.ts`; Platform integration errors carry a code through `withFailureContext(error, { code })` from `@shivaedev/work-fleet/engine/failureContext.ts`; uncoded errors receive a code from their Platform error tag. Session and Board failures retain their optional code fields. Release-only actions, report-correction retries, conflict repair and merge-ready reconciliation use codes. Conflict decisions use `pr-conflicting`; the recovery matrix rewords their text and proves retry still repairs the same PR. Decision fields remain optional for existing stored records; Fleet assigns codes when it publishes decisions. PostgreSQL migration backfills saved current and archived decisions. `src/engine/reasonCodes.spec.ts` proves that rewording a release-only reason preserves its answer options and rejects retry after restart. `src/engine/recoveryMatrix.spec.ts` requires recovery coverage for every Schema code.
|
|
243
243
|
|
|
244
|
-
The guided actions offer retry when Fleet can launch a new turn, review or delivery observation. Incompatible preparation, changed result identity, invalid adopted GitHub identity, oversized immutable reports, unconfigured stock-host no-change validation and report workers that published to GitHub offer only release,
|
|
244
|
+
The guided actions offer retry when Fleet can launch a new turn, review or delivery observation. Incompatible preparation, changed result identity, invalid adopted GitHub identity, oversized immutable reports, unconfigured stock-host no-change validation and report workers that published to GitHub offer only release, and the recommendation explains why trying again cannot help. Closing a published PR and deleting its branch retain publication evidence. Worker questions accept a recorded answer to continue the same thread, or a guided release answer to free terminal ownership.
|
|
245
|
+
|
|
246
|
+
The published decision speaks to the maintainer in plain words. The tables in `src/engine/situations/` hold, for every decision code, what happened, what Fleet needs and recommends, and a label and outcome for each guided option; the option ids stay `retry` and `release`. Codes whose stored reason carries a failure message add it after the plain text as details. The stored `reason` and `recommendation` stay in CLI status for the orchestrator and do not appear on the card. `src/board/markdown.test.ts` proves the details and the absent CLI recommendation, and `src/engine/reasonCodes.spec.ts` proves that reworded reasons keep their options.
|
|
245
247
|
|
|
246
248
|
`src/engine/recoveryMatrix.spec.ts` inventories production decision creation sites and requires a recovery row for every code in `DecisionCode`. The human-decision rows run in case groups, one `src/engine/<group>RecoveryMatrix.spec.ts` per group, and the inventory requires a spec file for every group. Human-decision rows check retry progress and release after restart against real PostgreSQL with synthetic providers and GitHub readers, production host checks, Board report publication, attachment and payload boundaries, and the PostgreSQL session journal. Automatic-capacity rows reword queue-full and quota failures, preserve their waits across restart, and resume without a human decision. Separate rows record an answer while the HTTP daemon is closed, then restart it against the same records. New decision sites or Schema codes without a matrix row fail the suite. Mutation regressions add a decision site and remove a code’s recovery rows to prove this guard.
|
|
247
249
|
|
package/dist/DecisionCode.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
|
-
export declare const DecisionCode: Schema.Literals<readonly ["approval-required", "board-failure", "checks-repair-exhausted", "checks-result-invalid", "delivery-head-mismatch", "delivery-pr-required", "duplicate-turns", "empty-report", "fleet-denied", "fleet-integration", "fleet-invalid", "fleet-missing", "fleet-stale", "foreign-pr", "incomplete-context", "incomplete-observation", "integration-failure", "no-change-checks-unconfigured", "not-ancestor", "pr-conflicting", "pr-head-moved", "provider-quota-unavailable", "relevant-change", "report-published", "report-too-large", "result-identity-changed", "reviewed-pr-ready", "reviewer-terminal", "session-active-turn", "session-active-turn-exhausted", "session-ambiguous", "session-persistence", "session-protocol", "session-queue-full", "session-rejected", "session-stalled", "session-turn-missing", "session-unavailable", "worker-question", "worker-receipt-missing", "worker-report-head-invalid", "worker-report-head-moved", "worker-report-merged-head-mismatch", "worker-report-pr-invalid", "worker-terminal"]>;
|
|
2
|
+
export declare const DecisionCode: Schema.Literals<readonly ["approval-required", "board-failure", "checks-repair-exhausted", "checks-result-invalid", "delivery-head-mismatch", "delivery-pr-required", "duplicate-turns", "empty-report", "fleet-denied", "fleet-integration", "fleet-invalid", "fleet-missing", "fleet-stale", "foreign-pr", "incomplete-context", "incomplete-observation", "integration-failure", "no-change-checks-unconfigured", "not-ancestor", "pr-closed", "pr-conflicting", "pr-head-moved", "provider-quota-unavailable", "relevant-change", "report-published", "report-too-large", "result-identity-changed", "reviewed-pr-ready", "reviewer-terminal", "session-active-turn", "session-active-turn-exhausted", "session-ambiguous", "session-persistence", "session-protocol", "session-queue-full", "session-rejected", "session-stalled", "session-turn-missing", "session-unavailable", "worker-question", "worker-receipt-missing", "worker-report-head-invalid", "worker-report-head-moved", "worker-report-merged-head-mismatch", "worker-report-pr-invalid", "worker-terminal"]>;
|
|
3
3
|
export type DecisionCode = typeof DecisionCode.Type;
|
|
4
4
|
//# sourceMappingURL=DecisionCode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecisionCode.d.ts","sourceRoot":"","sources":["../src/DecisionCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"DecisionCode.d.ts","sourceRoot":"","sources":["../src/DecisionCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,eAAO,MAAM,YAAY,qhCA+CvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC"}
|
package/dist/DecisionCode.js
CHANGED
package/dist/DecisionCode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecisionCode.js","sourceRoot":"","sources":["../src/DecisionCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC3C,mBAAmB;IACnB,eAAe;IACf,yBAAyB;IACzB,uBAAuB;IACvB,wBAAwB;IACxB,sBAAsB;IACtB,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,mBAAmB;IACnB,eAAe;IACf,eAAe;IACf,aAAa;IACb,YAAY;IACZ,oBAAoB;IACpB,wBAAwB;IACxB,qBAAqB;IACrB,+BAA+B;IAC/B,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,4BAA4B;IAC5B,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,yBAAyB;IACzB,mBAAmB;IACnB,mBAAmB;IACnB,qBAAqB;IACrB,+BAA+B;IAC/B,mBAAmB;IACnB,qBAAqB;IACrB,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,wBAAwB;IACxB,4BAA4B;IAC5B,0BAA0B;IAC1B,oCAAoC;IACpC,0BAA0B;IAC1B,iBAAiB;CACjB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"DecisionCode.js","sourceRoot":"","sources":["../src/DecisionCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC3C,mBAAmB;IACnB,eAAe;IACf,yBAAyB;IACzB,uBAAuB;IACvB,wBAAwB;IACxB,sBAAsB;IACtB,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,mBAAmB;IACnB,eAAe;IACf,eAAe;IACf,aAAa;IACb,YAAY;IACZ,oBAAoB;IACpB,wBAAwB;IACxB,qBAAqB;IACrB,+BAA+B;IAC/B,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,eAAe;IACf,4BAA4B;IAC5B,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,yBAAyB;IACzB,mBAAmB;IACnB,mBAAmB;IACnB,qBAAqB;IACrB,+BAA+B;IAC/B,mBAAmB;IACnB,qBAAqB;IACrB,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,wBAAwB;IACxB,4BAA4B;IAC5B,0BAA0B;IAC1B,oCAAoC;IACpC,0BAA0B;IAC1B,iBAAiB;CACjB,CAAC,CAAC"}
|
package/dist/admit.d.ts
CHANGED
|
@@ -13,7 +13,6 @@ export declare const admit: (work: {
|
|
|
13
13
|
readonly status?: string | undefined;
|
|
14
14
|
readonly workId: string;
|
|
15
15
|
}, records: readonly {
|
|
16
|
-
readonly admissionReady?: boolean | undefined;
|
|
17
16
|
readonly areas?: readonly string[] | undefined;
|
|
18
17
|
readonly attempts: readonly {
|
|
19
18
|
readonly abandoned?: {
|
|
@@ -110,7 +109,7 @@ export declare const admit: (work: {
|
|
|
110
109
|
readonly decision?: {
|
|
111
110
|
readonly attentionOwner?: "automation" | "maintainer" | "orchestrator" | undefined;
|
|
112
111
|
readonly boardAcknowledgementDisposition?: "superseded" | undefined;
|
|
113
|
-
readonly code?: "approval-required" | "board-failure" | "checks-repair-exhausted" | "checks-result-invalid" | "delivery-head-mismatch" | "delivery-pr-required" | "duplicate-turns" | "empty-report" | "fleet-denied" | "fleet-integration" | "fleet-invalid" | "fleet-missing" | "fleet-stale" | "foreign-pr" | "incomplete-context" | "incomplete-observation" | "integration-failure" | "no-change-checks-unconfigured" | "not-ancestor" | "pr-conflicting" | "pr-head-moved" | "provider-quota-unavailable" | "relevant-change" | "report-published" | "report-too-large" | "result-identity-changed" | "reviewed-pr-ready" | "reviewer-terminal" | "session-active-turn" | "session-active-turn-exhausted" | "session-ambiguous" | "session-persistence" | "session-protocol" | "session-queue-full" | "session-rejected" | "session-stalled" | "session-turn-missing" | "session-unavailable" | "worker-question" | "worker-receipt-missing" | "worker-report-head-invalid" | "worker-report-head-moved" | "worker-report-merged-head-mismatch" | "worker-report-pr-invalid" | "worker-terminal" | undefined;
|
|
112
|
+
readonly code?: "approval-required" | "board-failure" | "checks-repair-exhausted" | "checks-result-invalid" | "delivery-head-mismatch" | "delivery-pr-required" | "duplicate-turns" | "empty-report" | "fleet-denied" | "fleet-integration" | "fleet-invalid" | "fleet-missing" | "fleet-stale" | "foreign-pr" | "incomplete-context" | "incomplete-observation" | "integration-failure" | "no-change-checks-unconfigured" | "not-ancestor" | "pr-closed" | "pr-conflicting" | "pr-head-moved" | "provider-quota-unavailable" | "relevant-change" | "report-published" | "report-too-large" | "result-identity-changed" | "reviewed-pr-ready" | "reviewer-terminal" | "session-active-turn" | "session-active-turn-exhausted" | "session-ambiguous" | "session-persistence" | "session-protocol" | "session-queue-full" | "session-rejected" | "session-stalled" | "session-turn-missing" | "session-unavailable" | "worker-question" | "worker-receipt-missing" | "worker-report-head-invalid" | "worker-report-head-moved" | "worker-report-merged-head-mismatch" | "worker-report-pr-invalid" | "worker-terminal" | undefined;
|
|
114
113
|
readonly id: string;
|
|
115
114
|
readonly links: readonly string[];
|
|
116
115
|
readonly publicationWork?: {
|
|
@@ -283,7 +282,6 @@ export declare const admit: (work: {
|
|
|
283
282
|
}[] | undefined;
|
|
284
283
|
readonly updatedAt?: number | undefined;
|
|
285
284
|
readonly history?: readonly {
|
|
286
|
-
readonly admissionReady?: boolean | undefined;
|
|
287
285
|
readonly areas?: readonly string[] | undefined;
|
|
288
286
|
readonly attempts: readonly {
|
|
289
287
|
readonly abandoned?: {
|
|
@@ -380,7 +378,7 @@ export declare const admit: (work: {
|
|
|
380
378
|
readonly decision?: {
|
|
381
379
|
readonly attentionOwner?: "automation" | "maintainer" | "orchestrator" | undefined;
|
|
382
380
|
readonly boardAcknowledgementDisposition?: "superseded" | undefined;
|
|
383
|
-
readonly code?: "approval-required" | "board-failure" | "checks-repair-exhausted" | "checks-result-invalid" | "delivery-head-mismatch" | "delivery-pr-required" | "duplicate-turns" | "empty-report" | "fleet-denied" | "fleet-integration" | "fleet-invalid" | "fleet-missing" | "fleet-stale" | "foreign-pr" | "incomplete-context" | "incomplete-observation" | "integration-failure" | "no-change-checks-unconfigured" | "not-ancestor" | "pr-conflicting" | "pr-head-moved" | "provider-quota-unavailable" | "relevant-change" | "report-published" | "report-too-large" | "result-identity-changed" | "reviewed-pr-ready" | "reviewer-terminal" | "session-active-turn" | "session-active-turn-exhausted" | "session-ambiguous" | "session-persistence" | "session-protocol" | "session-queue-full" | "session-rejected" | "session-stalled" | "session-turn-missing" | "session-unavailable" | "worker-question" | "worker-receipt-missing" | "worker-report-head-invalid" | "worker-report-head-moved" | "worker-report-merged-head-mismatch" | "worker-report-pr-invalid" | "worker-terminal" | undefined;
|
|
381
|
+
readonly code?: "approval-required" | "board-failure" | "checks-repair-exhausted" | "checks-result-invalid" | "delivery-head-mismatch" | "delivery-pr-required" | "duplicate-turns" | "empty-report" | "fleet-denied" | "fleet-integration" | "fleet-invalid" | "fleet-missing" | "fleet-stale" | "foreign-pr" | "incomplete-context" | "incomplete-observation" | "integration-failure" | "no-change-checks-unconfigured" | "not-ancestor" | "pr-closed" | "pr-conflicting" | "pr-head-moved" | "provider-quota-unavailable" | "relevant-change" | "report-published" | "report-too-large" | "result-identity-changed" | "reviewed-pr-ready" | "reviewer-terminal" | "session-active-turn" | "session-active-turn-exhausted" | "session-ambiguous" | "session-persistence" | "session-protocol" | "session-queue-full" | "session-rejected" | "session-stalled" | "session-turn-missing" | "session-unavailable" | "worker-question" | "worker-receipt-missing" | "worker-report-head-invalid" | "worker-report-head-moved" | "worker-report-merged-head-mismatch" | "worker-report-pr-invalid" | "worker-terminal" | undefined;
|
|
384
382
|
readonly id: string;
|
|
385
383
|
readonly links: readonly string[];
|
|
386
384
|
readonly publicationWork?: {
|
package/dist/admit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admit.d.ts","sourceRoot":"","sources":["../src/admit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAGnE,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9E,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"admit.d.ts","sourceRoot":"","sources":["../src/admit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAGnE,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9E,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CAIH,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,+CA4B9D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acknowledgeDecision.d.ts","sourceRoot":"","sources":["../../src/board/acknowledgeDecision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"acknowledgeDecision.d.ts","sourceRoot":"","sources":["../../src/board/acknowledgeDecision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAqC,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM1C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC;;;;;;;;;;;;;;gFA2CvH"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
|
-
import { attention } from "@shivaedev/work-board/integration/attention.ts";
|
|
3
|
-
import { board as boardApi } from "@shivaedev/work-board/integration/board.ts";
|
|
4
|
-
import { responses } from "@shivaedev/work-board/integration/responses.ts";
|
|
2
|
+
import { attention } from "@shivaedev/work-board/server/integration/attention.ts";
|
|
3
|
+
import { board as boardApi } from "@shivaedev/work-board/server/integration/board.ts";
|
|
4
|
+
import { responses } from "@shivaedev/work-board/server/integration/responses.ts";
|
|
5
|
+
import { closePublishedDecision } from "#board/closePublishedDecision.ts";
|
|
5
6
|
import { recordBoardSource } from "#board/readPass.ts";
|
|
6
7
|
import { BoardAcknowledgementStale } from "#board/schema.ts";
|
|
7
8
|
import { BoardFailure } from "#policy.ts";
|
|
@@ -33,12 +34,17 @@ export function acknowledgeDecision(root, realRoot, snapshot) {
|
|
|
33
34
|
const content = `---\n${JSON.stringify({ id, kind: "result", "request_receipt": requestReceipt })}\n---\n# Managed request acknowledgement\n\nThis immutable receipt acknowledges request handling; it grants no execution, acceptance or delivery authority.\n`;
|
|
34
35
|
const file = `responses/${id}.md`;
|
|
35
36
|
const receiptDocument = { file, parsed: boardApi.metadataParse(content) };
|
|
36
|
-
const
|
|
37
|
-
|
|
37
|
+
const others = all.filter((document) => document.file !== file);
|
|
38
|
+
const acknowledged = others.some((document) => document.parsed.fields.requestReceipt?.question === decision.questionId);
|
|
39
|
+
const model = metadataModel([...others, receiptDocument]);
|
|
40
|
+
if (!request || acknowledged || managedRequestReceipt(source, request, model) === undefined) {
|
|
38
41
|
return yield* Effect.fail(new BoardAcknowledgementStale({ message: "The exact managed question and applicable response cannot be qualified for acknowledgement." }));
|
|
39
42
|
}
|
|
40
43
|
yield* publish(root, realRoot, id, content).pipe(Effect.mapError(() => new BoardFailure({ message: "The managed request acknowledgement could not be recorded on Board." })));
|
|
41
44
|
yield* recordBoardSource(realRoot, file, content, receiptDocument.parsed);
|
|
45
|
+
if (input.disposition === "superseded") {
|
|
46
|
+
yield* closePublishedDecision(root, realRoot, source);
|
|
47
|
+
}
|
|
42
48
|
});
|
|
43
49
|
}
|
|
44
50
|
//# sourceMappingURL=acknowledgeDecision.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acknowledgeDecision.js","sourceRoot":"","sources":["../../src/board/acknowledgeDecision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"acknowledgeDecision.js","sourceRoot":"","sources":["../../src/board/acknowledgeDecision.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { ParsedMetadata } from "@shivaedev/work-board/integration/board.ts";
|
|
1
|
+
import type { ParsedMetadata } from "@shivaedev/work-board/server/integration/board.ts";
|
|
2
2
|
export declare function briefRevision(parsed: ParsedMetadata): string;
|
|
3
3
|
//# sourceMappingURL=briefRevision.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"briefRevision.d.ts","sourceRoot":"","sources":["../../src/board/briefRevision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"briefRevision.d.ts","sourceRoot":"","sources":["../../src/board/briefRevision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AAMxF,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAU5D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { responses } from "@shivaedev/work-board/integration/responses.ts";
|
|
1
|
+
import { responses } from "@shivaedev/work-board/server/integration/responses.ts";
|
|
2
2
|
import { fleetDeliverable } from "#board/fleetField.ts";
|
|
3
3
|
const { revisionOf } = responses;
|
|
4
4
|
export function briefRevision(parsed) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"briefRevision.js","sourceRoot":"","sources":["../../src/board/briefRevision.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"briefRevision.js","sourceRoot":"","sources":["../../src/board/briefRevision.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,uDAAuD,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;AAEjC,MAAM,UAAU,aAAa,CAAC,MAAsB;IACnD,OAAO,UAAU,CAChB,IAAI,CAAC,SAAS,CAAC;QACd,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC,IAAI,QAAQ;QACjD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;QACxB,aAAa,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;KAChG,CAAC,CACF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import type { BoardDocument } from "#board/documents.ts";
|
|
3
|
+
import { BoardFailure } from "#policy.ts";
|
|
4
|
+
export declare function publishedDecision(document: BoardDocument): {
|
|
5
|
+
request: {
|
|
6
|
+
readonly id: string;
|
|
7
|
+
readonly kind: "blocker" | "decision" | "review";
|
|
8
|
+
readonly managed?: boolean | undefined;
|
|
9
|
+
readonly reason: string;
|
|
10
|
+
readonly responseFrom: readonly string[];
|
|
11
|
+
readonly state: "closed" | "open";
|
|
12
|
+
readonly unblocks: readonly string[];
|
|
13
|
+
};
|
|
14
|
+
sequence: number;
|
|
15
|
+
workId: string;
|
|
16
|
+
} | undefined;
|
|
17
|
+
export declare const closePublishedDecision: (root: string, realRoot: string, document: BoardDocument) => Effect.Effect<{
|
|
18
|
+
file: string;
|
|
19
|
+
parsed: import("@shivaedev/work-board/integration/metadata.ts").ParsedMetadata;
|
|
20
|
+
source: string;
|
|
21
|
+
} | undefined, BoardFailure, never>;
|
|
22
|
+
//# sourceMappingURL=closePublishedDecision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"closePublishedDecision.d.ts","sourceRoot":"","sources":["../../src/board/closePublishedDecision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa;;;;;;;;;;;;cAkBxD;AAED,eAAO,MAAM,sBAAsB;;;;mCAsBjC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { parseDocument } from "yaml";
|
|
3
|
+
import { board } from "@shivaedev/work-board/server/integration/board.ts";
|
|
4
|
+
import { recordBoardSource } from "#board/readPass.ts";
|
|
5
|
+
import { writeCompletion } from "#board/writeCompletion.ts";
|
|
6
|
+
import { BoardFailure } from "#policy.ts";
|
|
7
|
+
export function publishedDecision(document) {
|
|
8
|
+
const { fields, body, diagnostics } = document.parsed;
|
|
9
|
+
const workId = fields.relationships?.find((relation) => relation.kind === "relates_to")?.target;
|
|
10
|
+
const request = fields.attention?.[0];
|
|
11
|
+
if (diagnostics.length > 0
|
|
12
|
+
|| fields.kind !== "decision"
|
|
13
|
+
|| !fields.id?.startsWith("decision.")
|
|
14
|
+
|| workId === undefined
|
|
15
|
+
|| !body.startsWith(`# Fleet decision for ${workId}\n`)
|
|
16
|
+
|| fields.attention?.length !== 1
|
|
17
|
+
|| request?.managed !== true
|
|
18
|
+
|| !request.id.startsWith(`${workId}.`)) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const sequence = Number(request.id.slice(workId.length + 1));
|
|
22
|
+
return Number.isSafeInteger(sequence) ? { request, sequence, workId } : undefined;
|
|
23
|
+
}
|
|
24
|
+
export const closePublishedDecision = Effect.fn("FleetBoard.closePublishedDecision")(function* (root, realRoot, document) {
|
|
25
|
+
const decision = publishedDecision(document);
|
|
26
|
+
if (decision === undefined || decision.request.state !== "open") {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const header = document.parsed.raw;
|
|
30
|
+
if (header === undefined) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const metadata = parseDocument(header.replace(/^---\r?\n/u, "").replace(/---\r?\n?$/u, ""));
|
|
34
|
+
metadata.setIn(["attention", 0, "state"], "closed");
|
|
35
|
+
const content = `---\n${metadata.toString()}---\n${document.parsed.body}`;
|
|
36
|
+
yield* writeCompletion(root, realRoot, document.file, document.source, content).pipe(Effect.mapError((error) => new BoardFailure({ message: error.message })));
|
|
37
|
+
const parsed = board.metadataParse(content);
|
|
38
|
+
yield* recordBoardSource(realRoot, document.file, content, parsed);
|
|
39
|
+
return { file: document.file, parsed, source: content };
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=closePublishedDecision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"closePublishedDecision.js","sourceRoot":"","sources":["../../src/board/closePublishedDecision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,mDAAmD,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,UAAU,iBAAiB,CAAC,QAAuB;IACxD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,MAAM,CAAC;IAChG,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,IACC,WAAW,CAAC,MAAM,GAAG,CAAC;WACnB,MAAM,CAAC,IAAI,KAAK,UAAU;WAC1B,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,WAAW,CAAC;WACnC,MAAM,KAAK,SAAS;WACpB,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,MAAM,IAAI,CAAC;WACpD,MAAM,CAAC,SAAS,EAAE,MAAM,KAAK,CAAC;WAC9B,OAAO,EAAE,OAAO,KAAK,IAAI;WACzB,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,EACtC,CAAC;QACF,OAAO;IACR,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACnF,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,EAAE,CAAC,mCAAmC,CAAC,CAAC,QAAQ,CAAC,EAC7F,IAAY,EACZ,QAAgB,EAChB,QAAuB;IAEvB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QACjE,OAAO;IACR,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;IACnC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;IACR,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5F,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,QAAQ,QAAQ,CAAC,QAAQ,EAAE,QAAQ,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1E,KAAK,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CACnF,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CACxE,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5C,KAAK,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACnE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACzD,CAAC,CAAC,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function decisionAnswer(
|
|
1
|
+
import type { DecisionCopy } from "#engine/decisionCopy.ts";
|
|
2
|
+
export declare function decisionAnswer({ question }: DecisionCopy): string | undefined;
|
|
3
3
|
//# sourceMappingURL=decisionAnswer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decisionAnswer.d.ts","sourceRoot":"","sources":["../../src/board/decisionAnswer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"decisionAnswer.d.ts","sourceRoot":"","sources":["../../src/board/decisionAnswer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAY,sBAMxD"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
return "Record your answer on this item’s answer card to continue the worker in its existing thread. Use a guided release answer or the release command to free terminal ownership instead.";
|
|
1
|
+
export function decisionAnswer({ question }) {
|
|
2
|
+
if (question === undefined) {
|
|
3
|
+
return undefined;
|
|
5
4
|
}
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
const retry = question.retry === undefined ? "" : `${option("retry", question.retry)}\n`;
|
|
6
|
+
return `::::question{id="fleet-action" select="one"}\n### ${question.title}\n\n${retry}${option("release", question.release)}::::`;
|
|
7
|
+
}
|
|
8
|
+
function option(id, choice) {
|
|
9
|
+
return `:::option{id="${id}"}\n### ${choice.label}\n${choice.outcome}\n:::\n`;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=decisionAnswer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decisionAnswer.js","sourceRoot":"","sources":["../../src/board/decisionAnswer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"decisionAnswer.js","sourceRoot":"","sources":["../../src/board/decisionAnswer.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAgB;IACxD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;IACzF,OAAO,qDAAqD,QAAQ,CAAC,KAAK,OAAO,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;AACpI,CAAC;AAED,SAAS,MAAM,CAAC,EAAU,EAAE,MAAc;IACzC,OAAO,iBAAiB,EAAE,WAAW,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,OAAO,SAAS,CAAC;AAC/E,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
|
-
import { board } from "@shivaedev/work-board/integration/board.ts";
|
|
3
|
-
import { responses } from "@shivaedev/work-board/integration/responses.ts";
|
|
2
|
+
import { board } from "@shivaedev/work-board/server/integration/board.ts";
|
|
3
|
+
import { responses } from "@shivaedev/work-board/server/integration/responses.ts";
|
|
4
4
|
import { BoardFailure } from "#policy.ts";
|
|
5
5
|
const { metadataModel } = board;
|
|
6
6
|
const { currentResponses, questionId, readResponses, revisionOf } = responses;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decisionReading.js","sourceRoot":"","sources":["../../src/board/decisionReading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"decisionReading.js","sourceRoot":"","sources":["../../src/board/decisionReading.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effect, FileSystem, Path } from "effect";
|
|
2
|
-
import type { MetadataDocument } from "@shivaedev/work-board/integration/board.ts";
|
|
2
|
+
import type { MetadataDocument } from "@shivaedev/work-board/server/integration/board.ts";
|
|
3
3
|
import { BoardSnapshot } from "#board/readPass.ts";
|
|
4
4
|
import { BoardFailure } from "#policy.ts";
|
|
5
5
|
export type BoardDocument = MetadataDocument & {
|
|
@@ -10,5 +10,4 @@ export declare const refreshSnapshotDocument: (root: string, realRoot: string, s
|
|
|
10
10
|
export declare function boardSnapshot(root: string, realRoot: string): Effect.Effect<BoardSnapshot, BoardFailure, FileSystem.FileSystem | Path.Path>;
|
|
11
11
|
export declare function boardDocuments(root: string, realRoot: string): Effect.Effect<BoardDocument[], BoardFailure, FileSystem.FileSystem | Path.Path>;
|
|
12
12
|
export declare function boundSnapshot(root: string, realRoot: string, fs: FileSystem.FileSystem, path: Path.Path): Effect.Effect<BoardSnapshot, BoardFailure, never>;
|
|
13
|
-
export declare function boundDocuments(root: string, realRoot: string, fs: FileSystem.FileSystem, path: Path.Path): Effect.Effect<BoardDocument[], BoardFailure, never>;
|
|
14
13
|
//# sourceMappingURL=documents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/board/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/board/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAG1F,OAAO,EAAE,aAAa,EAAgB,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1C,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,eAAO,MAAM,gBAAgB,gGAgB3B,CAAC;AAgCH,eAAO,MAAM,uBAAuB,4JAgBlC,CAAC;AAEH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iFAE3D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mFAE5D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,qDAEvG"}
|
package/dist/board/documents.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effect, FileSystem, Path } from "effect";
|
|
2
|
-
import { board as boardApi } from "@shivaedev/work-board/integration/board.ts";
|
|
2
|
+
import { board as boardApi } from "@shivaedev/work-board/server/integration/board.ts";
|
|
3
3
|
import { readDocument } from "#board/readDocument.ts";
|
|
4
4
|
import { BoardSnapshot, readSnapshot } from "#board/readPass.ts";
|
|
5
5
|
import { BoardFailure } from "#policy.ts";
|
|
@@ -8,6 +8,9 @@ export const snapshotDocument = Effect.fn("FleetBoard.snapshotDocument")(functio
|
|
|
8
8
|
const matches = snapshot.model.ids.get(workId);
|
|
9
9
|
const found = matches?.length === 1 ? snapshot.files.get(matches[0]?.file ?? "") : undefined;
|
|
10
10
|
if (found === undefined) {
|
|
11
|
+
if (matches === undefined && snapshot.problems.size === 0) {
|
|
12
|
+
return yield* Effect.fail(new BoardFailure({ code: "board-item-missing", message: `Board item no longer exists: ${workId}`, workId }));
|
|
13
|
+
}
|
|
11
14
|
const message = [
|
|
12
15
|
`Board identity is missing or ambiguous: ${workId}`,
|
|
13
16
|
...Array.from(snapshot.problems.values(), (failure) => failure.message),
|
|
@@ -56,7 +59,4 @@ export function boardDocuments(root, realRoot) {
|
|
|
56
59
|
export function boundSnapshot(root, realRoot, fs, path) {
|
|
57
60
|
return boardSnapshot(root, realRoot).pipe(Effect.provideService(FileSystem.FileSystem, fs), Effect.provideService(Path.Path, path));
|
|
58
61
|
}
|
|
59
|
-
export function boundDocuments(root, realRoot, fs, path) {
|
|
60
|
-
return boardDocuments(root, realRoot).pipe(Effect.provideService(FileSystem.FileSystem, fs), Effect.provideService(Path.Path, path));
|
|
61
|
-
}
|
|
62
62
|
//# sourceMappingURL=documents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/board/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/board/documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ParsedMetadata } from "@shivaedev/work-board/integration/board.ts";
|
|
1
|
+
import type { ParsedMetadata } from "@shivaedev/work-board/server/integration/board.ts";
|
|
2
2
|
export declare function fleetApproved(parsed: ParsedMetadata): boolean;
|
|
3
3
|
export declare function fleetLaunch(parsed: ParsedMetadata): unknown;
|
|
4
4
|
export declare function fleetDeliverable(parsed: ParsedMetadata): unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fleetField.d.ts","sourceRoot":"","sources":["../../src/board/fleetField.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"fleetField.d.ts","sourceRoot":"","sources":["../../src/board/fleetField.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AAwBxF,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAE7D;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAEhE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAE7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/board/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,UAAU,EAAE,KAAK,EAAE,IAAI,EAAU,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/board/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,UAAU,EAAE,KAAK,EAAE,IAAI,EAAU,MAAM,QAAQ,CAAC;AAe1E,OAAO,EAAgB,YAAY,EAAY,MAAM,YAAY,CAAC;AA2FlE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,8GAEzC"}
|
package/dist/board/markdown.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { Context, Effect, FileSystem, Layer, Path, Schema } from "effect";
|
|
2
|
-
import { defineService } from "@shivaedev/effect-service/
|
|
3
|
-
import { board as boardApi } from "@shivaedev/work-board/integration/board.ts";
|
|
2
|
+
import { defineService } from "@shivaedev/effect-service/defineService.ts";
|
|
3
|
+
import { board as boardApi } from "@shivaedev/work-board/server/integration/board.ts";
|
|
4
4
|
import { acknowledgeDecision } from "#board/acknowledgeDecision.ts";
|
|
5
5
|
import { briefRevision } from "#board/briefRevision.ts";
|
|
6
6
|
import { completionMarkdown } from "#board/completionMarkdown.ts";
|
|
7
7
|
import { decisionReading } from "#board/decisionReading.ts";
|
|
8
|
-
import {
|
|
8
|
+
import { boundSnapshot, refreshSnapshotDocument, snapshotDocument } from "#board/documents.ts";
|
|
9
9
|
import { fleetApproved, fleetDeliverable, fleetPriority } from "#board/fleetField.ts";
|
|
10
10
|
import { publishBoard } from "#board/publish.ts";
|
|
11
11
|
import { publishReport } from "#board/publishReport.ts";
|
|
12
12
|
import { workMetadata } from "#board/readPass.ts";
|
|
13
|
+
import { upgradeDecisionClosure } from "#board/upgradeDecisionClosure.ts";
|
|
13
14
|
import { workRevision } from "#board/workRevision.ts";
|
|
14
15
|
import { writeCompletion } from "#board/writeCompletion.ts";
|
|
15
16
|
import { BoardFailure, BoardGateway, Priority } from "#policy.ts";
|
|
@@ -23,8 +24,8 @@ const MarkdownBoard = defineService({
|
|
|
23
24
|
const fs = yield* FileSystem.FileSystem;
|
|
24
25
|
const path = yield* Path.Path;
|
|
25
26
|
const realRoot = yield* fs.realPath(root);
|
|
26
|
-
const
|
|
27
|
-
const
|
|
27
|
+
const snapshot = boundSnapshot(root, realRoot, fs, path).pipe(Effect.tap((current) => upgradeDecisionClosure(root, realRoot, current, fs)));
|
|
28
|
+
const documents = snapshot.pipe(Effect.map((current) => current.documents.filter((document) => !current.problems.has(document.file))));
|
|
28
29
|
const get = Effect.fn("FleetBoard.get")(function* (workId, options) {
|
|
29
30
|
const current = yield* snapshot;
|
|
30
31
|
const found = yield* options?.fresh
|