@plurnk/plurnk-service 4.2.1 → 4.3.1
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/INSTALL.md +7 -2
- package/README.md +3 -1
- package/SPEC.md +1988 -1408
- package/dist/build-info.d.ts.map +1 -1
- package/dist/build-info.js +25 -3
- package/dist/build-info.js.map +1 -1
- package/dist/build-info.json +1 -1
- package/dist/completions/_plurnk-service +1 -1
- package/dist/completions/plurnk-service.bash +1 -1
- package/dist/completions/plurnk-service.fish +1 -0
- package/dist/content/body-preview.js.map +1 -1
- package/dist/content/byte-view.d.ts.map +1 -1
- package/dist/content/byte-view.js +3 -2
- package/dist/content/byte-view.js.map +1 -1
- package/dist/content/edit-collision.d.ts +2 -1
- package/dist/content/edit-collision.d.ts.map +1 -1
- package/dist/content/edit-collision.js.map +1 -1
- package/dist/content/edit-receipt.d.ts.map +1 -1
- package/dist/content/edit-receipt.js +28 -23
- package/dist/content/edit-receipt.js.map +1 -1
- package/dist/content/edited-span.js +1 -1
- package/dist/content/edited-span.js.map +1 -1
- package/dist/content/line-anchors.d.ts +3 -2
- package/dist/content/line-anchors.d.ts.map +1 -1
- package/dist/content/line-anchors.js +33 -19
- package/dist/content/line-anchors.js.map +1 -1
- package/dist/content/line-selection.js.map +1 -1
- package/dist/content/pattern-edits.js +1 -1
- package/dist/content/pattern-edits.js.map +1 -1
- package/dist/content/read-projector.d.ts +1 -1
- package/dist/content/read-projector.d.ts.map +1 -1
- package/dist/content/read-projector.js +10 -8
- package/dist/content/read-projector.js.map +1 -1
- package/dist/content/read-resolve.d.ts.map +1 -1
- package/dist/content/read-resolve.js +6 -5
- package/dist/content/read-resolve.js.map +1 -1
- package/dist/core/AdmittedTurnExecutor.d.ts +4 -4
- package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
- package/dist/core/AdmittedTurnExecutor.js +20 -18
- package/dist/core/AdmittedTurnExecutor.js.map +1 -1
- package/dist/core/AmbientMembers.d.ts +1 -1
- package/dist/core/AmbientMembers.d.ts.map +1 -1
- package/dist/core/AmbientMembers.js +5 -2
- package/dist/core/AmbientMembers.js.map +1 -1
- package/dist/core/BareBatchRunner.d.ts +1 -1
- package/dist/core/BareBatchRunner.d.ts.map +1 -1
- package/dist/core/BareBatchRunner.js +2 -2
- package/dist/core/BareBatchRunner.js.map +1 -1
- package/dist/core/CapabilityPolicies.js.map +1 -1
- package/dist/core/CapabilityResolver.d.ts +1 -2
- package/dist/core/CapabilityResolver.d.ts.map +1 -1
- package/dist/core/CapabilityResolver.js +11 -7
- package/dist/core/CapabilityResolver.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +2 -2
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +27 -0
- package/dist/core/ClientInteractions.js.map +1 -1
- package/dist/core/ContextFit.js +1 -1
- package/dist/core/ContextFit.js.map +1 -1
- package/dist/core/CoreSchemeServices.d.ts.map +1 -1
- package/dist/core/CoreSchemeServices.js +4 -4
- package/dist/core/CoreSchemeServices.js.map +1 -1
- package/dist/core/DataStatementRunner.d.ts.map +1 -1
- package/dist/core/DataStatementRunner.js +15 -15
- package/dist/core/DataStatementRunner.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +29 -5
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +210 -130
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/EditMutations.d.ts.map +1 -1
- package/dist/core/EditMutations.js +12 -6
- package/dist/core/EditMutations.js.map +1 -1
- package/dist/core/EditSequence.js.map +1 -1
- package/dist/core/Engine.d.ts +15 -7
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +32 -7
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/ExecutionOutputs.js.map +1 -1
- package/dist/core/ExecutorRegistry.d.ts +1 -2
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +2 -2
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/FileAddress.js.map +1 -1
- package/dist/core/FilePublication.d.ts.map +1 -1
- package/dist/core/FilePublication.js +6 -3
- package/dist/core/FilePublication.js.map +1 -1
- package/dist/core/FileSnapshot.d.ts.map +1 -1
- package/dist/core/FileSnapshot.js +8 -5
- package/dist/core/FileSnapshot.js.map +1 -1
- package/dist/core/KillHandler.d.ts.map +1 -1
- package/dist/core/KillHandler.js +7 -0
- package/dist/core/KillHandler.js.map +1 -1
- package/dist/core/LiveSubscription.d.ts +1 -0
- package/dist/core/LiveSubscription.d.ts.map +1 -1
- package/dist/core/LiveSubscription.js +3 -2
- package/dist/core/LiveSubscription.js.map +1 -1
- package/dist/core/LiveSubscriptions.d.ts +4 -1
- package/dist/core/LiveSubscriptions.d.ts.map +1 -1
- package/dist/core/LiveSubscriptions.js +42 -1
- package/dist/core/LiveSubscriptions.js.map +1 -1
- package/dist/core/LogBody.d.ts.map +1 -1
- package/dist/core/LogBody.js +22 -19
- package/dist/core/LogBody.js.map +1 -1
- package/dist/core/LogVisibility.d.ts +1 -1
- package/dist/core/LogVisibility.d.ts.map +1 -1
- package/dist/core/LogVisibility.js +4 -6
- package/dist/core/LogVisibility.js.map +1 -1
- package/dist/core/LogWriter.d.ts.map +1 -1
- package/dist/core/LogWriter.js +6 -9
- package/dist/core/LogWriter.js.map +1 -1
- package/dist/core/LoopDriver.d.ts +4 -4
- package/dist/core/LoopDriver.d.ts.map +1 -1
- package/dist/core/LoopDriver.js +4 -5
- package/dist/core/LoopDriver.js.map +1 -1
- package/dist/core/LoopLifecycle.d.ts +2 -0
- package/dist/core/LoopLifecycle.d.ts.map +1 -1
- package/dist/core/LoopLifecycle.js +13 -3
- package/dist/core/LoopLifecycle.js.map +1 -1
- package/dist/core/LoopLifecycle.sql +4 -4
- package/dist/core/LoopOutcome.d.ts.map +1 -1
- package/dist/core/LoopOutcome.js +2 -2
- package/dist/core/LoopOutcome.js.map +1 -1
- package/dist/core/MembershipMaterialization.d.ts.map +1 -1
- package/dist/core/MembershipMaterialization.js +29 -29
- package/dist/core/MembershipMaterialization.js.map +1 -1
- package/dist/core/MessageResources.d.ts +5 -1
- package/dist/core/MessageResources.d.ts.map +1 -1
- package/dist/core/MessageResources.js +12 -0
- package/dist/core/MessageResources.js.map +1 -1
- package/dist/core/MessageResources.sql +26 -0
- package/dist/core/MutationEffects.d.ts +1 -0
- package/dist/core/MutationEffects.d.ts.map +1 -1
- package/dist/core/MutationEffects.js +14 -10
- package/dist/core/MutationEffects.js.map +1 -1
- package/dist/core/OperationHistory.d.ts.map +1 -1
- package/dist/core/OperationHistory.js +4 -3
- package/dist/core/OperationHistory.js.map +1 -1
- package/dist/core/OperatorConfig.d.ts.map +1 -1
- package/dist/core/OperatorConfig.js +3 -2
- package/dist/core/OperatorConfig.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts +3 -7
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +40 -31
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/PacketBuilder.sql +11 -0
- package/dist/core/ProblemLog.d.ts +2 -5
- package/dist/core/ProblemLog.d.ts.map +1 -1
- package/dist/core/ProblemLog.js +2 -3
- package/dist/core/ProblemLog.js.map +1 -1
- package/dist/core/ProposalLifecycle.d.ts +12 -11
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +92 -84
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ReasoningEvent.d.ts +2 -0
- package/dist/core/ReasoningEvent.d.ts.map +1 -1
- package/dist/core/ReplyMetadata.d.ts.map +1 -1
- package/dist/core/ReplyMetadata.js +4 -3
- package/dist/core/ReplyMetadata.js.map +1 -1
- package/dist/core/ResourceBindings.d.ts +2 -2
- package/dist/core/ResourceBindings.d.ts.map +1 -1
- package/dist/core/ResourceBindings.js.map +1 -1
- package/dist/core/ResourceMutations.d.ts +1 -1
- package/dist/core/ResourceMutations.d.ts.map +1 -1
- package/dist/core/ResourceMutations.js +1 -2
- package/dist/core/ResourceMutations.js.map +1 -1
- package/dist/core/ResourceSelector.js +2 -2
- package/dist/core/ResourceSelector.js.map +1 -1
- package/dist/core/ResourceTransfers.d.ts.map +1 -1
- package/dist/core/ResourceTransfers.js +162 -120
- package/dist/core/ResourceTransfers.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts +6 -5
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +32 -26
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/ServiceHelp.d.ts.map +1 -1
- package/dist/core/ServiceHelp.js +2 -1
- package/dist/core/ServiceHelp.js.map +1 -1
- package/dist/core/StoredPacket.d.ts.map +1 -1
- package/dist/core/StoredPacket.js +26 -19
- package/dist/core/StoredPacket.js.map +1 -1
- package/dist/core/StrikeRail.d.ts +1 -2
- package/dist/core/StrikeRail.d.ts.map +1 -1
- package/dist/core/StrikeRail.js +4 -4
- package/dist/core/StrikeRail.js.map +1 -1
- package/dist/core/TerminalResult.d.ts +0 -2
- package/dist/core/TerminalResult.d.ts.map +1 -1
- package/dist/core/TerminalResult.js +0 -18
- package/dist/core/TerminalResult.js.map +1 -1
- package/dist/core/TokenCalibration.d.ts +4 -2
- package/dist/core/TokenCalibration.d.ts.map +1 -1
- package/dist/core/TokenCalibration.js +30 -13
- package/dist/core/TokenCalibration.js.map +1 -1
- package/dist/core/TokenCalibration.sql +7 -17
- package/dist/core/ToolResources.d.ts +2 -1
- package/dist/core/ToolResources.d.ts.map +1 -1
- package/dist/core/ToolResources.js +10 -34
- package/dist/core/ToolResources.js.map +1 -1
- package/dist/core/TurnDispositionHandler.d.ts +1 -1
- package/dist/core/TurnDispositionHandler.d.ts.map +1 -1
- package/dist/core/TurnDispositionHandler.js +7 -3
- package/dist/core/TurnDispositionHandler.js.map +1 -1
- package/dist/core/TurnMaterialization.d.ts.map +1 -1
- package/dist/core/TurnMaterialization.js +3 -2
- package/dist/core/TurnMaterialization.js.map +1 -1
- package/dist/core/TurnRunner.d.ts +13 -12
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +198 -230
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/TurnRunner.sql +3 -3
- package/dist/core/WorkerOwners.js.map +1 -1
- package/dist/core/caps/DbEntryCaps.js.map +1 -1
- package/dist/core/caps/DbMessageCaps.d.ts +3 -3
- package/dist/core/caps/DbMessageCaps.d.ts.map +1 -1
- package/dist/core/caps/DbProjectionCaps.js +1 -1
- package/dist/core/caps/DbProjectionCaps.js.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.js +1 -0
- package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.js +4 -1
- package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
- package/dist/core/env-catalog.js.map +1 -1
- package/dist/core/env-defaults.d.ts.map +1 -1
- package/dist/core/env-defaults.js +5 -3
- package/dist/core/env-defaults.js.map +1 -1
- package/dist/core/file-creation-policy.d.ts.map +1 -1
- package/dist/core/file-creation-policy.js +2 -1
- package/dist/core/file-creation-policy.js.map +1 -1
- package/dist/core/file-materialization.d.ts.map +1 -1
- package/dist/core/file-materialization.js +9 -11
- package/dist/core/file-materialization.js.map +1 -1
- package/dist/core/git-env.d.ts +1 -0
- package/dist/core/git-env.d.ts.map +1 -1
- package/dist/core/git-env.js +34 -3
- package/dist/core/git-env.js.map +1 -1
- package/dist/core/git-membership.d.ts +5 -0
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +55 -21
- package/dist/core/git-membership.js.map +1 -1
- package/dist/core/git-state.d.ts.map +1 -1
- package/dist/core/git-state.js +1 -0
- package/dist/core/git-state.js.map +1 -1
- package/dist/core/packet-wire.d.ts +26 -27
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +154 -132
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/results.d.ts +9 -4
- package/dist/core/results.d.ts.map +1 -1
- package/dist/core/results.js +14 -1
- package/dist/core/results.js.map +1 -1
- package/dist/core/runtime-floor.d.ts +8 -0
- package/dist/core/runtime-floor.d.ts.map +1 -0
- package/dist/core/runtime-floor.js +40 -0
- package/dist/core/runtime-floor.js.map +1 -0
- package/dist/core/runtime-guard.d.ts +2 -0
- package/dist/core/runtime-guard.d.ts.map +1 -0
- package/dist/core/runtime-guard.js +5 -0
- package/dist/core/runtime-guard.js.map +1 -0
- package/dist/core/sqlite-synchronous.d.ts +1 -1
- package/dist/core/sqlite-synchronous.d.ts.map +1 -1
- package/dist/core/sqlite-synchronous.js.map +1 -1
- package/dist/core/statement-primary.d.ts +2 -2
- package/dist/core/statement-primary.d.ts.map +1 -1
- package/dist/core/statement-primary.js.map +1 -1
- package/dist/core/workspace-settings.js +1 -1
- package/dist/core/workspace-settings.js.map +1 -1
- package/dist/evidence/EvidenceReader.d.ts.map +1 -1
- package/dist/evidence/EvidenceReader.js +20 -6
- package/dist/evidence/EvidenceReader.js.map +1 -1
- package/dist/launch/Launch.d.ts +1 -0
- package/dist/launch/Launch.d.ts.map +1 -1
- package/dist/launch/Launch.js +28 -12
- package/dist/launch/Launch.js.map +1 -1
- package/dist/man/plurnk-service.1 +6 -2
- package/dist/schemes/EffectPolicy.js +1 -1
- package/dist/schemes/EffectPolicy.js.map +1 -1
- package/dist/schemes/Env.d.ts +1 -1
- package/dist/schemes/Env.d.ts.map +1 -1
- package/dist/schemes/Env.js +7 -1
- package/dist/schemes/Env.js.map +1 -1
- package/dist/schemes/Exec.d.ts +10 -12
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +337 -437
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts +4 -6
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +17 -17
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/ExecScheduler.d.ts.map +1 -1
- package/dist/schemes/ExecScheduler.js +1 -2
- package/dist/schemes/ExecScheduler.js.map +1 -1
- package/dist/schemes/ExecutionInput.js +3 -3
- package/dist/schemes/ExecutionInput.js.map +1 -1
- package/dist/schemes/File.d.ts +3 -18
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +136 -79
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +193 -161
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/QuestionTool.d.ts.map +1 -1
- package/dist/schemes/QuestionTool.js +6 -8
- package/dist/schemes/QuestionTool.js.map +1 -1
- package/dist/schemes/ResourceTreeScheme.d.ts.map +1 -1
- package/dist/schemes/ResourceTreeScheme.js +2 -2
- package/dist/schemes/ResourceTreeScheme.js.map +1 -1
- package/dist/schemes/TurnSource.js +3 -3
- package/dist/schemes/TurnSource.js.map +1 -1
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +4 -2
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +187 -139
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-manifest.js +1 -1
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_search-index.js.map +1 -1
- package/dist/schemes/exec-entry-sink.d.ts +30 -0
- package/dist/schemes/exec-entry-sink.d.ts.map +1 -0
- package/dist/schemes/exec-entry-sink.js +238 -0
- package/dist/schemes/exec-entry-sink.js.map +1 -0
- package/dist/schemes/exec-lifetime.d.ts.map +1 -1
- package/dist/schemes/exec-lifetime.js +5 -2
- package/dist/schemes/exec-lifetime.js.map +1 -1
- package/dist/server/ClientOperations.d.ts +45 -0
- package/dist/server/ClientOperations.d.ts.map +1 -0
- package/dist/server/ClientOperations.js +192 -0
- package/dist/server/ClientOperations.js.map +1 -0
- package/dist/server/ClientReads.d.ts +13 -5
- package/dist/server/ClientReads.d.ts.map +1 -1
- package/dist/server/ClientReads.js +108 -21
- package/dist/server/ClientReads.js.map +1 -1
- package/dist/server/Credentials.js +2 -2
- package/dist/server/Credentials.js.map +1 -1
- package/dist/server/Daemon.d.ts +40 -28
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +255 -839
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DaemonLock.d.ts +2 -0
- package/dist/server/DaemonLock.d.ts.map +1 -1
- package/dist/server/DaemonLock.js +10 -1
- package/dist/server/DaemonLock.js.map +1 -1
- package/dist/server/DaemonModules.d.ts +39 -0
- package/dist/server/DaemonModules.d.ts.map +1 -0
- package/dist/server/DaemonModules.js +219 -0
- package/dist/server/DaemonModules.js.map +1 -0
- package/dist/server/DrainSupervisor.d.ts +4 -2
- package/dist/server/DrainSupervisor.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.js +318 -290
- package/dist/server/DrainSupervisor.js.map +1 -1
- package/dist/server/EnvFunctionality.d.ts +10 -7
- package/dist/server/EnvFunctionality.d.ts.map +1 -1
- package/dist/server/EnvFunctionality.js +6 -5
- package/dist/server/EnvFunctionality.js.map +1 -1
- package/dist/server/Functionality.d.ts +8 -6
- package/dist/server/Functionality.d.ts.map +1 -1
- package/dist/server/Functionality.js +110 -32
- package/dist/server/Functionality.js.map +1 -1
- package/dist/server/FunctionalityManager.d.ts.map +1 -1
- package/dist/server/FunctionalityManager.js +16 -2
- package/dist/server/FunctionalityManager.js.map +1 -1
- package/dist/server/HttpListener.d.ts.map +1 -1
- package/dist/server/HttpListener.js +28 -8
- package/dist/server/HttpListener.js.map +1 -1
- package/dist/server/MembersFunctionality.d.ts +19 -7
- package/dist/server/MembersFunctionality.d.ts.map +1 -1
- package/dist/server/MembersFunctionality.js +30 -16
- package/dist/server/MembersFunctionality.js.map +1 -1
- package/dist/server/MessageDelivery.d.ts +43 -0
- package/dist/server/MessageDelivery.d.ts.map +1 -0
- package/dist/server/MessageDelivery.js +186 -0
- package/dist/server/MessageDelivery.js.map +1 -0
- package/dist/server/ModuleHost.d.ts +3 -3
- package/dist/server/ModuleHost.d.ts.map +1 -1
- package/dist/server/Places.d.ts +19 -0
- package/dist/server/Places.d.ts.map +1 -0
- package/dist/server/Places.js +76 -0
- package/dist/server/Places.js.map +1 -0
- package/dist/server/PluginSources.d.ts.map +1 -1
- package/dist/server/PluginSources.js +2 -1
- package/dist/server/PluginSources.js.map +1 -1
- package/dist/server/PlurnkSkill.d.ts.map +1 -1
- package/dist/server/PlurnkSkill.js +5 -4
- package/dist/server/PlurnkSkill.js.map +1 -1
- package/dist/server/Rollback.d.ts.map +1 -1
- package/dist/server/Rollback.js +2 -1
- package/dist/server/Rollback.js.map +1 -1
- package/dist/server/WorkerModels.d.ts +87 -0
- package/dist/server/WorkerModels.d.ts.map +1 -0
- package/dist/server/WorkerModels.js +540 -0
- package/dist/server/WorkerModels.js.map +1 -0
- package/dist/server/WorkerOverview.d.ts +22 -0
- package/dist/server/WorkerOverview.d.ts.map +1 -0
- package/dist/server/WorkerOverview.js +42 -0
- package/dist/server/WorkerOverview.js.map +1 -0
- package/dist/server/WorkspacePlugins.d.ts +1 -1
- package/dist/server/WorkspacePlugins.d.ts.map +1 -1
- package/dist/server/WorkspacePlugins.js +0 -1
- package/dist/server/WorkspacePlugins.js.map +1 -1
- package/dist/server/WorkspaceResidency.d.ts +3 -3
- package/dist/server/WorkspaceResidency.d.ts.map +1 -1
- package/dist/server/WorkspaceResidency.js.map +1 -1
- package/dist/server/client-input.d.ts +2 -2
- package/dist/server/client-input.d.ts.map +1 -1
- package/dist/server/client-input.js +19 -12
- package/dist/server/client-input.js.map +1 -1
- package/dist/server/envelope.d.ts +4 -1
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +7 -3
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +10 -6
- package/dist/server/logEntry.d.ts +38 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +9 -9
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/logEntry.sql +4 -2
- package/dist/server/loopDocs.d.ts.map +1 -1
- package/dist/server/loopDocs.js +11 -2
- package/dist/server/loopDocs.js.map +1 -1
- package/dist/server/module-discovery.d.ts +2 -3
- package/dist/server/module-discovery.d.ts.map +1 -1
- package/dist/server/module-discovery.js +6 -6
- package/dist/server/module-discovery.js.map +1 -1
- package/dist/server/places.sql +83 -0
- package/dist/server/seam-loop.sql +8 -0
- package/dist/server/worker-overview.sql +57 -0
- package/dist/service.d.ts +1 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +35 -9
- package/dist/service.js.map +1 -1
- package/docs/members.md +11 -21
- package/migrations/033_hidden_places.sql +10 -0
- package/package.json +52 -61
- package/dist/core/ToolInputSchema.d.ts +0 -7
- package/dist/core/ToolInputSchema.d.ts.map +0 -1
- package/dist/core/ToolInputSchema.js +0 -65
- package/dist/core/ToolInputSchema.js.map +0 -1
- package/dist/observe/init.d.ts +0 -8
- package/dist/observe/init.d.ts.map +0 -1
- package/dist/observe/init.js +0 -163
- package/dist/observe/init.js.map +0 -1
- package/dist/server/WorkerModelResolver.d.ts +0 -20
- package/dist/server/WorkerModelResolver.d.ts.map +0 -1
- package/dist/server/WorkerModelResolver.js +0 -200
- package/dist/server/WorkerModelResolver.js.map +0 -1
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
// A person's client operations: each one an administrative loop in the workspace's runtime worker with its own
|
|
2
|
+
// cancellation scope, the statements it dispatches as client turns, its cancellation, and the rollback that runs as
|
|
3
|
+
// one such operation. Split out of Daemon, which keeps the delegating port entry points.
|
|
4
|
+
import { Validator } from "@plurnk/plurnk-contracts";
|
|
5
|
+
import ChannelWrite from "../core/ChannelWrite.js";
|
|
6
|
+
import RuntimeWorker from "../core/RuntimeWorker.js";
|
|
7
|
+
import Turn from "../core/Turn.js";
|
|
8
|
+
import Results, { OperationFailureError } from "../core/results.js";
|
|
9
|
+
import ClientInput from "./client-input.js";
|
|
10
|
+
import { daemonFailure } from "./daemon-results.js";
|
|
11
|
+
import Envelope from "./envelope.js";
|
|
12
|
+
import Rollback from "./Rollback.js";
|
|
13
|
+
// {§connection-lifecycle} A client operation cancelled mid-way settles its loop with what happened.
|
|
14
|
+
const clientOperationCancelled = (reason) => {
|
|
15
|
+
const said = typeof reason === "string" ? reason : "cancelled";
|
|
16
|
+
return Results.failure("daemon:client", "operation-cancelled", 499, `The client operation was cancelled: ${said}.`, {}, {
|
|
17
|
+
reason: said, stage: "client-action", retryable: false,
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
const clientActionFailure = (error) => {
|
|
21
|
+
if (error instanceof OperationFailureError)
|
|
22
|
+
return error.result;
|
|
23
|
+
console.error("Client action failed outside its operation result contract:", error);
|
|
24
|
+
return Results.failure("daemon:client", "action-threw", 500, "The client action failed outside its operation result contract.", {}, {
|
|
25
|
+
stage: "client-action",
|
|
26
|
+
retryable: false
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
export default class ClientOperations {
|
|
30
|
+
#db;
|
|
31
|
+
#engine;
|
|
32
|
+
#residency;
|
|
33
|
+
#workspaceGate;
|
|
34
|
+
#assertModelWorker;
|
|
35
|
+
#assertWorkerOwned;
|
|
36
|
+
#emitLogEntry;
|
|
37
|
+
// {§connection-lifecycle} Each running client operation's loop, its own cancellation scope and its settlement.
|
|
38
|
+
#loops = new Map();
|
|
39
|
+
// {§worker-lifecycle-total-reap} Every client operation's scope descends from this one, which shutdown aborts:
|
|
40
|
+
// an operation still dispatching, and every execution an operation started, ends with the daemon.
|
|
41
|
+
#scope = new AbortController();
|
|
42
|
+
constructor({ db, engine, residency, workspaceGate, assertModelWorker, assertWorkerOwned, emitLogEntry }) {
|
|
43
|
+
this.#db = db;
|
|
44
|
+
this.#engine = engine;
|
|
45
|
+
this.#residency = residency;
|
|
46
|
+
this.#workspaceGate = workspaceGate;
|
|
47
|
+
this.#assertModelWorker = assertModelWorker;
|
|
48
|
+
this.#assertWorkerOwned = assertWorkerOwned;
|
|
49
|
+
this.#emitLogEntry = emitLogEntry;
|
|
50
|
+
}
|
|
51
|
+
// A boot opens a fresh scope for the operations that follow; shutdown aborts it ({§worker-lifecycle-total-reap}).
|
|
52
|
+
start() {
|
|
53
|
+
this.#scope = new AbortController();
|
|
54
|
+
}
|
|
55
|
+
beginStop(reason) {
|
|
56
|
+
this.#scope.abort(reason);
|
|
57
|
+
}
|
|
58
|
+
// Every operation in flight has settled its loop.
|
|
59
|
+
async idle() {
|
|
60
|
+
await Promise.all([...this.#loops.values()].map(({ settled }) => settled));
|
|
61
|
+
}
|
|
62
|
+
// {§connection-lifecycle} A person's client operation: one administrative loop in the workspace's runtime
|
|
63
|
+
// worker, attributed to its actor, reading `log:///` in the worker that person acts for
|
|
64
|
+
// ({§actor-boundary-client-operations}).
|
|
65
|
+
async dispatchClientAction(args) {
|
|
66
|
+
const workspaceId = ClientInput.assertId("operation.dispatch-batch", "workspaceId", args.workspaceId);
|
|
67
|
+
const actor = ClientInput.assertActor("operation.dispatch-batch", args.actor);
|
|
68
|
+
const contextWorkerId = args.contextWorkerId === undefined
|
|
69
|
+
? undefined
|
|
70
|
+
: ClientInput.assertId("operation.dispatch-batch", "contextWorkerId", args.contextWorkerId);
|
|
71
|
+
if (contextWorkerId !== undefined)
|
|
72
|
+
await this.#assertModelWorker(workspaceId, contextWorkerId);
|
|
73
|
+
const { statements } = args;
|
|
74
|
+
if (statements.length === 0)
|
|
75
|
+
return [];
|
|
76
|
+
return await this.#clientOperation({ workspaceId, actor, contextWorkerId, onLoop: args.onLoop }, async (dispatch) => {
|
|
77
|
+
const results = [];
|
|
78
|
+
for (const statement of statements)
|
|
79
|
+
results.push(await dispatch(statement));
|
|
80
|
+
return results;
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
// {§connection-lifecycle} One client operation: the runtime worker's administrative loop with its own
|
|
84
|
+
// cancellation scope, settled when the operation ends. Nothing else in the runtime worker shares the scope.
|
|
85
|
+
async #clientOperation(operation, body) {
|
|
86
|
+
const { workspaceId, actor, contextWorkerId } = operation;
|
|
87
|
+
const workerId = await RuntimeWorker.ensure(this.#db, workspaceId);
|
|
88
|
+
const releaseCapabilities = await this.#residency.acquire(workspaceId);
|
|
89
|
+
try {
|
|
90
|
+
const loopId = await Envelope.ensureClientLoop(this.#db, workerId, actor);
|
|
91
|
+
const scope = new AbortController();
|
|
92
|
+
const signal = AbortSignal.any([scope.signal, this.#scope.signal]);
|
|
93
|
+
const settled = Promise.withResolvers();
|
|
94
|
+
this.#loops.set(loopId, { workspaceId, scope, settled: settled.promise });
|
|
95
|
+
const unbind = this.#engine.bindLoopSignal(loopId, signal);
|
|
96
|
+
try {
|
|
97
|
+
operation.onLoop?.({ workerId, loopId });
|
|
98
|
+
const result = await body(async (statement) => {
|
|
99
|
+
signal.throwIfAborted();
|
|
100
|
+
return await this.#dispatchClientStatement({
|
|
101
|
+
workspaceId, workerId, loopId, statement,
|
|
102
|
+
contextWorkerId: contextWorkerId ?? null,
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
signal.throwIfAborted();
|
|
106
|
+
await Envelope.closeClientLoop(this.#db, loopId, { status: 200 });
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
// A cancelled operation settles cancelled, however its statement in flight ended.
|
|
111
|
+
const failure = signal.aborted ? new OperationFailureError(clientOperationCancelled(signal.reason)) : error;
|
|
112
|
+
await Envelope.closeClientLoop(this.#db, loopId, clientActionFailure(failure));
|
|
113
|
+
throw failure;
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
unbind();
|
|
117
|
+
this.#loops.delete(loopId);
|
|
118
|
+
settled.resolve();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
finally {
|
|
122
|
+
releaseCapabilities();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// {§connection-lifecycle} Cancel exactly one client operation: its dispatch while it runs, and every execution its
|
|
126
|
+
// rows started that still runs. The rest of the runtime worker runs on.
|
|
127
|
+
async cancelLoop(args) {
|
|
128
|
+
const workspaceId = ClientInput.assertId("operation.cancel", "workspaceId", args.workspaceId);
|
|
129
|
+
const loopId = ClientInput.assertId("operation.cancel", "loopId", args.loopId);
|
|
130
|
+
const operation = this.#loops.get(loopId);
|
|
131
|
+
const dispatching = operation !== undefined && operation.workspaceId === workspaceId && !operation.scope.signal.aborted;
|
|
132
|
+
if (dispatching)
|
|
133
|
+
operation.scope.abort(args.reason ?? "user_cancelled");
|
|
134
|
+
const executions = await ChannelWrite.findOpenSubscriptionsForClientLoop(this.#db, { workspaceId, loopId });
|
|
135
|
+
const reaped = await Promise.all(executions.map((subscriptionId) => this.#engine.cancelSubscription(subscriptionId)));
|
|
136
|
+
return dispatching || reaped.includes(true);
|
|
137
|
+
}
|
|
138
|
+
async #dispatchClientStatement(args) {
|
|
139
|
+
const { workspaceId, workerId, loopId, statement, contextWorkerId } = args;
|
|
140
|
+
return this.#workspaceGate.withTurn(workspaceId, workerId, async () => {
|
|
141
|
+
await this.#residency.reconcile(workspaceId);
|
|
142
|
+
const { id: turnId } = await Turn.open(this.#db, {
|
|
143
|
+
loopId,
|
|
144
|
+
producer: "client",
|
|
145
|
+
kind: "operation"
|
|
146
|
+
});
|
|
147
|
+
let turnOpen = true;
|
|
148
|
+
try {
|
|
149
|
+
const entryIds = [];
|
|
150
|
+
const result = await this.#engine.dispatch({
|
|
151
|
+
statement, workspaceId, workerId, loopId, turnId, sequence: 1,
|
|
152
|
+
origin: "client", client: { contextWorkerId },
|
|
153
|
+
onDispatch: (logEntryId) => { entryIds.push(logEntryId); }
|
|
154
|
+
});
|
|
155
|
+
await Turn.complete(this.#db, turnId, result.status);
|
|
156
|
+
turnOpen = false;
|
|
157
|
+
for (const logEntryId of entryIds)
|
|
158
|
+
await this.#emitLogEntry(workspaceId, logEntryId);
|
|
159
|
+
return result;
|
|
160
|
+
}
|
|
161
|
+
catch (cause) {
|
|
162
|
+
if (turnOpen) {
|
|
163
|
+
try {
|
|
164
|
+
await Turn.complete(this.#db, turnId, 500);
|
|
165
|
+
}
|
|
166
|
+
catch (completionCause) {
|
|
167
|
+
throw new AggregateError([cause, completionCause], `client operation turn ${turnId} failed and could not be completed`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
throw cause;
|
|
171
|
+
}
|
|
172
|
+
}, this.#loops.get(loopId)?.scope.signal);
|
|
173
|
+
}
|
|
174
|
+
// {§rollback} {§methods-workspace-rollback} — the compensations are one client operation of the acting person
|
|
175
|
+
// ({§connection-lifecycle}): attributed to that person and, being that person's decision, never routed for review.
|
|
176
|
+
async rollback(args) {
|
|
177
|
+
const workspaceId = ClientInput.assertId("workspace.rollback", "workspaceId", args.workspaceId);
|
|
178
|
+
const workerId = ClientInput.assertId("workspace.rollback", "workerId", args.workerId);
|
|
179
|
+
const actor = ClientInput.assertActor("workspace.rollback", args.actor);
|
|
180
|
+
if (typeof args.to !== "string")
|
|
181
|
+
throw daemonFailure("daemon:rollback", "coordinate-invalid", 400, "The rollback coordinate must be a string.", {});
|
|
182
|
+
await this.#assertWorkerOwned(workspaceId, workerId);
|
|
183
|
+
const report = await this.#clientOperation({ workspaceId, actor, contextWorkerId: workerId }, (dispatch) => Rollback.run({
|
|
184
|
+
db: this.#db,
|
|
185
|
+
projectRoot: async (id) => (await this.#db.envelope_get_workspace.get({ id }))?.project_root ?? null,
|
|
186
|
+
executorTags: (id) => this.#engine.executorTags(id),
|
|
187
|
+
apply: async (statement) => await dispatch(statement),
|
|
188
|
+
}, { workspaceId, workerId, to: args.to }));
|
|
189
|
+
return Validator.assertRollbackReport(report);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=ClientOperations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClientOperations.js","sourceRoot":"","sources":["../../src/server/ClientOperations.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAC/G,oHAAoH;AACpH,yFAAyF;AACzF,OAAO,EAAE,SAAS,EAA6C,MAAM,0BAA0B,CAAC;AAChG,OAAO,YAAY,MAAM,yBAAyB,CAAC;AAGnD,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,IAAI,MAAM,iBAAiB,CAAC;AAEnC,OAAO,OAAO,EAAE,EAAE,qBAAqB,EAAqB,MAAM,oBAAoB,CAAC;AACvF,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,QAAQ,MAAM,eAAe,CAAC;AAGrC,oGAAoG;AACpG,MAAM,wBAAwB,GAAG,CAAC,MAAe,EAAgB,EAAE;IAC/D,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;IAC/D,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,qBAAqB,EAAE,GAAG,EAAE,uCAAuC,IAAI,GAAG,EAAE,EAAE,EAAE;QACpH,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK;KACzD,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAgB,EAAE;IACzD,IAAI,KAAK,YAAY,qBAAqB;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC;IAChE,OAAO,CAAC,KAAK,CAAC,6DAA6D,EAAE,KAAK,CAAC,CAAC;IACpF,OAAO,OAAO,CAAC,OAAO,CAClB,eAAe,EACf,cAAc,EACd,GAAG,EACH,iEAAiE,EACjE,EAAE,EACF;QACI,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,KAAK;KAAE,CACzB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACxB,GAAG,CAAK;IACR,OAAO,CAAS;IAChB,UAAU,CAAqB;IAC/B,cAAc,CAAgB;IAC9B,kBAAkB,CAA2D;IAC7E,kBAAkB,CAA2D;IAC7E,aAAa,CAA6D;IACnF,+GAA+G;IACtG,MAAM,GAAG,IAAI,GAAG,EAErB,CAAC;IACL,+GAA+G;IAC/G,kGAAkG;IAClG,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IAE/B,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAQrG;QACG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IAED,kHAAkH;IAClH,KAAK;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACxC,CAAC;IAED,SAAS,CAAC,MAAc;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,IAAI;QACN,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,0GAA0G;IAC1G,wFAAwF;IACxF,yCAAyC;IACzC,KAAK,CAAC,oBAAoB,CAAC,IAM1B;QACG,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,0BAA0B,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACtG,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,0BAA0B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9E,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,KAAK,SAAS;YACtD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,0BAA0B,EAAE,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAChG,IAAI,eAAe,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAC/F,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAC5B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAChH,MAAM,OAAO,GAAsD,EAAE,CAAC;YACtE,KAAK,MAAM,SAAS,IAAI,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5E,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,sGAAsG;IACtG,4GAA4G;IAC5G,KAAK,CAAC,gBAAgB,CAClB,SAKC,EACD,IAAmH;QAEnH,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACnE,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACvE,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC1E,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,EAAQ,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAC;gBACD,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;gBACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;oBAC1C,MAAM,CAAC,cAAc,EAAE,CAAC;oBACxB,OAAO,MAAM,IAAI,CAAC,wBAAwB,CAAC;wBACvC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS;wBACxC,eAAe,EAAE,eAAe,IAAI,IAAI;qBAC3C,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClE,OAAO,MAAM,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,kFAAkF;gBAClF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAAC,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC5G,MAAM,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC/E,MAAM,OAAO,CAAC;YAClB,CAAC;oBAAS,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC3B,OAAO,CAAC,OAAO,EAAE,CAAC;YACtB,CAAC;QACL,CAAC;gBAAS,CAAC;YACP,mBAAmB,EAAE,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,mHAAmH;IACnH,wEAAwE;IACxE,KAAK,CAAC,UAAU,CAAC,IAA8D;QAC3E,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,kBAAkB,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9F,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,WAAW,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;QACxH,IAAI,WAAW;YAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,gBAAgB,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,kCAAkC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5G,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACtH,OAAO,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,IAE9B;QACG,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;QAC3E,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC7C,MAAM;gBACN,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,WAAW;aAAE,CAAC,CAAC;YACzB,IAAI,QAAQ,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAa,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;oBACvC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;oBAC7D,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE;oBAC7C,UAAU,EAAE,CAAC,UAAkB,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;iBAAE,CAAC,CAAC;gBAC1E,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACrD,QAAQ,GAAG,KAAK,CAAC;gBACjB,KAAK,MAAM,UAAU,IAAI,QAAQ;oBAAE,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBACrF,OAAO,MAAM,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,QAAQ,EAAE,CAAC;oBACX,IAAI,CAAC;wBACD,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;oBAC/C,CAAC;oBAAC,OAAO,eAAe,EAAE,CAAC;wBACvB,MAAM,IAAI,cAAc,CACpB,CAAC,KAAK,EAAE,eAAe,CAAC,EACxB,yBAAyB,MAAM,oCAAoC,CACtE,CAAC;oBACN,CAAC;gBACL,CAAC;gBACD,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,8GAA8G;IAC9G,mHAAmH;IACnH,KAAK,CAAC,QAAQ,CAAC,IAA0E;QACrF,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,oBAAoB,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAChG,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,oBAAoB,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvF,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACxE,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ;YAAE,MAAM,aAAa,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,GAAG,EAAE,2CAA2C,EAAE,EAAE,CAAC,CAAC;QACpJ,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;YACrH,EAAE,EAAE,IAAI,CAAC,GAAG;YACZ,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAkC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,IAAI,IAAI;YACrI,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACnD,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC;SACxD,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5C,OAAO,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;CACJ"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { Db } from "../core/Db.ts";
|
|
2
|
-
import Engine from "../core/Engine.ts";
|
|
3
|
-
import { type EntryReadResult } from "@plurnk/plurnk-contracts";
|
|
4
|
-
import type
|
|
5
|
-
import
|
|
6
|
-
import WorkspaceResidency from "./WorkspaceResidency.ts";
|
|
2
|
+
import type Engine from "../core/Engine.ts";
|
|
3
|
+
import { type ApplicationStream, type EntryReadResult, type LogEntryWire } from "@plurnk/plurnk-contracts";
|
|
4
|
+
import type WorkspaceGate from "../core/WorkspaceGate.ts";
|
|
5
|
+
import type WorkspaceResidency from "./WorkspaceResidency.ts";
|
|
7
6
|
export default class ClientReads {
|
|
8
7
|
#private;
|
|
9
8
|
constructor({ db, engine, workspaceGate, residency }: {
|
|
@@ -19,6 +18,11 @@ export default class ClientReads {
|
|
|
19
18
|
channel?: string;
|
|
20
19
|
offset?: number;
|
|
21
20
|
}): Promise<EntryReadResult>;
|
|
21
|
+
readEntryChannel(args: {
|
|
22
|
+
workspaceId: number;
|
|
23
|
+
workerId: number;
|
|
24
|
+
target: string;
|
|
25
|
+
}): Promise<EntryReadResult>;
|
|
22
26
|
readLog(args: {
|
|
23
27
|
workspaceId: number;
|
|
24
28
|
workerId: number;
|
|
@@ -31,5 +35,9 @@ export default class ClientReads {
|
|
|
31
35
|
turnSeq?: number;
|
|
32
36
|
sequence?: number;
|
|
33
37
|
}): Promise<LogEntryWire[]>;
|
|
38
|
+
readStreams(args: {
|
|
39
|
+
workspaceId: number;
|
|
40
|
+
workerId: number;
|
|
41
|
+
}): Promise<ApplicationStream[]>;
|
|
34
42
|
}
|
|
35
43
|
//# sourceMappingURL=ClientReads.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientReads.d.ts","sourceRoot":"","sources":["../../src/server/ClientReads.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,MAAM,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ClientReads.d.ts","sourceRoot":"","sources":["../../src/server/ClientReads.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAa,KAAK,iBAAiB,EAA0D,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI9K,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAC;AA0B9D,MAAM,CAAC,OAAO,OAAO,WAAW;;IAM5B,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE;QAClD,EAAE,EAAE,EAAE,CAAC;QACP,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,aAAa,CAAC;QAC7B,SAAS,EAAE,kBAAkB,CAAC;KACjC,EAKA;IAIK,SAAS,CAAC,IAAI,EAAE;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,eAAe,CAAC,CA2L3B;IAIK,gBAAgB,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAWhH;IAmDK,OAAO,CAAC,IAAI,EAAE;QAChB,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QACtC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACtF,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACzD,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA+C1B;IAGK,WAAW,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAmB/F;CA0CJ"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { Knob } from "@plurnk/plurnk-meta";
|
|
2
|
-
import Engine from "../core/Engine.js";
|
|
3
2
|
import { parsePath } from "@plurnk/plurnk-parser";
|
|
4
3
|
import { Validator } from "@plurnk/plurnk-contracts";
|
|
5
|
-
import LogEntry from "./logEntry.js";
|
|
4
|
+
import LogEntry, {} from "./logEntry.js";
|
|
6
5
|
import ClientInput from "./client-input.js";
|
|
7
6
|
import Results from "../core/results.js";
|
|
8
|
-
import WorkspaceGate from "../core/WorkspaceGate.js";
|
|
9
|
-
import WorkspaceResidency from "./WorkspaceResidency.js";
|
|
10
7
|
import { daemonFailure } from "./daemon-results.js";
|
|
8
|
+
import { renderAddress } from "../core/plurnk-uri.js";
|
|
11
9
|
const entryReadResult = (result) => Validator.assertEntryReadResult(result);
|
|
12
10
|
export default class ClientReads {
|
|
13
11
|
#db;
|
|
@@ -90,14 +88,20 @@ export default class ClientReads {
|
|
|
90
88
|
retryable: false
|
|
91
89
|
}));
|
|
92
90
|
}
|
|
93
|
-
const
|
|
91
|
+
const acquired = await this.#engine.readClientEntry({
|
|
94
92
|
workspaceId,
|
|
95
93
|
workerId,
|
|
96
94
|
target: parsed
|
|
97
95
|
});
|
|
98
|
-
if (
|
|
96
|
+
if (acquired === null) {
|
|
99
97
|
return entryReadResult(Results.failure("daemon:entry", "entry-not-found", 404, "No visible entry exists at the requested target.", { entry: null }, { target: args.target }));
|
|
100
98
|
}
|
|
99
|
+
if (acquired.kind === "refused") {
|
|
100
|
+
return entryReadResult({ status: acquired.result.status, problem: acquired.result.problem, entry: null });
|
|
101
|
+
}
|
|
102
|
+
if (acquired.kind === "computed")
|
|
103
|
+
return ClientReads.#computedRead(acquired.target, acquired.channels, channel, args.offset);
|
|
104
|
+
const location = acquired.address;
|
|
101
105
|
const row = await this.#db.entry_read_lookup.get({
|
|
102
106
|
workspace_id: workspaceId,
|
|
103
107
|
scheme: location.scheme,
|
|
@@ -122,7 +126,7 @@ export default class ClientReads {
|
|
|
122
126
|
availableChannels,
|
|
123
127
|
...(availableChannels.length === 0
|
|
124
128
|
? {}
|
|
125
|
-
: { recovery: `Use one of the available channels: ${availableChannels.map((
|
|
129
|
+
: { recovery: `Use one of the available channels: ${availableChannels.map((available) => `#${available}`).join(", ")}.` }),
|
|
126
130
|
retryable: false
|
|
127
131
|
}));
|
|
128
132
|
}
|
|
@@ -153,26 +157,60 @@ export default class ClientReads {
|
|
|
153
157
|
releaseCapabilities();
|
|
154
158
|
}
|
|
155
159
|
}
|
|
160
|
+
// {§methods-entry-channel-read} The channel `target` selects, its fragment's or else its scheme's default, read as
|
|
161
|
+
// `readEntry` reads it, complete: the HTTP form of an address answers with it.
|
|
162
|
+
async readEntryChannel(args) {
|
|
163
|
+
let parsed;
|
|
164
|
+
try {
|
|
165
|
+
parsed = typeof args.target === "string" ? parsePath(args.target) : null;
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
parsed = null;
|
|
169
|
+
}
|
|
170
|
+
const channel = parsed?.kind === "url"
|
|
171
|
+
? parsed.fragment ?? this.#engine.defaultChannelAt(parsed, args.workspaceId)
|
|
172
|
+
: undefined;
|
|
173
|
+
return this.readEntry({ ...args, ...(channel === undefined ? {} : { channel }) });
|
|
174
|
+
}
|
|
175
|
+
// {§client-entry-address} {§entry-read-result} A representation core computes, read as a stored entry is: every
|
|
176
|
+
// channel, or the selected one from its offset in Unicode code points. It is no stored entry, so it names none.
|
|
177
|
+
static #computedRead(target, computed, channel, offset) {
|
|
178
|
+
if (channel !== undefined && !Object.hasOwn(computed, channel)) {
|
|
179
|
+
// The unnamed default channel is the one an address without a fragment reads; it has no name to offer.
|
|
180
|
+
const availableChannels = Object.keys(computed).filter((name) => name.length > 0);
|
|
181
|
+
return entryReadResult(Results.failure("daemon:entry", "channel-not-found", 404, `Channel #${channel} does not exist at ${target}.`, { entry: null }, {
|
|
182
|
+
target,
|
|
183
|
+
requestedChannel: channel,
|
|
184
|
+
availableChannels,
|
|
185
|
+
...(availableChannels.length === 0
|
|
186
|
+
? {}
|
|
187
|
+
: { recovery: `Use one of the available channels: ${availableChannels.map((available) => `#${available}`).join(", ")}.` }),
|
|
188
|
+
retryable: false
|
|
189
|
+
}));
|
|
190
|
+
}
|
|
191
|
+
const selected = Object.entries(computed).filter(([name]) => channel === undefined || name === channel);
|
|
192
|
+
const channels = {};
|
|
193
|
+
for (const [name, { content, mimetype, state, weight }] of selected) {
|
|
194
|
+
const points = Array.from(content);
|
|
195
|
+
const from = Math.min(offset ?? 0, points.length);
|
|
196
|
+
channels[name] = {
|
|
197
|
+
content: from === 0 ? content : points.slice(from).join(""),
|
|
198
|
+
contentOffset: from,
|
|
199
|
+
contentLength: points.length,
|
|
200
|
+
mimetype,
|
|
201
|
+
weight,
|
|
202
|
+
state
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
return entryReadResult({ status: 200, entry: { entryId: null, target, channels } });
|
|
206
|
+
}
|
|
156
207
|
// {§methods-log-read} — a workspace's journal, the module's primary render input. The worker is
|
|
157
208
|
// ownership-verified against the workspace (a workspace reads only its own workers — the model worker included,
|
|
158
209
|
// {§methods-log-coordinate}); entries filter by loop/turn/since-id or the full L/T/S display coordinate, newest first,
|
|
159
210
|
// and `beforeId` pages back through older rows ({§methods-log-read}). Core owns the
|
|
160
211
|
// journal + the invariant; the module shapes the entries into AG-UI messages at its edge.
|
|
161
212
|
async readLog(args) {
|
|
162
|
-
const
|
|
163
|
-
const workerId = ClientInput.assertId("log.read", "workerId", args.workerId);
|
|
164
|
-
const target = await this.#db.envelope_get_worker_by_id.get({ id: workerId });
|
|
165
|
-
if (target === undefined) {
|
|
166
|
-
throw daemonFailure("daemon:worker", "worker-not-found", 404, `Worker ${workerId} does not exist.`, { workerId });
|
|
167
|
-
}
|
|
168
|
-
if (target.workspace_id !== workspaceId) {
|
|
169
|
-
throw daemonFailure("daemon:worker", "workspace-mismatch", 409, `Worker ${workerId} does not belong to workspace ${workspaceId}.`, {
|
|
170
|
-
workerId,
|
|
171
|
-
workspaceId,
|
|
172
|
-
actualWorkspaceId: target.workspace_id,
|
|
173
|
-
retryable: false
|
|
174
|
-
});
|
|
175
|
-
}
|
|
213
|
+
const workerId = await this.#ownedWorker("log.read", args);
|
|
176
214
|
const coordinateFields = {
|
|
177
215
|
loopId: args.loopId,
|
|
178
216
|
turnId: args.turnId,
|
|
@@ -211,5 +249,54 @@ export default class ClientReads {
|
|
|
211
249
|
});
|
|
212
250
|
return rows.map((row) => LogEntry.wire(row));
|
|
213
251
|
}
|
|
252
|
+
// {§methods-worker-streams} The streams the worker holds open, in opening order, each with every channel of its entry.
|
|
253
|
+
async readStreams(args) {
|
|
254
|
+
const workerId = await this.#ownedWorker("streams.read", args);
|
|
255
|
+
const rows = await this.#db.worker_open_streams.all({ worker_id: workerId });
|
|
256
|
+
const opened = new Map();
|
|
257
|
+
for (const row of rows) {
|
|
258
|
+
const stream = opened.get(row.id) ?? { row, channels: [] };
|
|
259
|
+
opened.set(row.id, stream);
|
|
260
|
+
if (row.channel !== null && row.state !== null && row.mimetype !== null) {
|
|
261
|
+
stream.channels.push({ channel: row.channel, state: row.state, mimetype: row.mimetype });
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
return [...opened.values()].map(({ row, channels }) => ({
|
|
265
|
+
entryId: row.entry_id,
|
|
266
|
+
workerId: row.worker_id,
|
|
267
|
+
target: renderAddress({ scheme: row.scheme, authority: row.authority, pathname: row.pathname }),
|
|
268
|
+
lifetime: row.detached === 1 ? "detached" : row.turn_scoped === 1 ? "turn" : "loop",
|
|
269
|
+
...ClientReads.#openedAt(row.source),
|
|
270
|
+
channels,
|
|
271
|
+
}));
|
|
272
|
+
}
|
|
273
|
+
// The operation a stream began at, from the `log:///<loop>/<turn>/<item>/<op>` source its spawn recorded when it
|
|
274
|
+
// began in a turn ({§subscriptions-causal-resource}); none otherwise.
|
|
275
|
+
static #openedAt(source) {
|
|
276
|
+
const match = source === null ? null : /^log:\/\/\/(\d+)\/(\d+)\/(\d+)\/[^/]+$/u.exec(source);
|
|
277
|
+
if (match === null)
|
|
278
|
+
return {};
|
|
279
|
+
const [loopSeq, turnSeq, sequence] = match.slice(1).map(Number);
|
|
280
|
+
return { loop_seq: loopSeq, turn_seq: turnSeq, sequence };
|
|
281
|
+
}
|
|
282
|
+
// A read names a worker of the workspace it reads (a workspace reads only its own workers — the model worker
|
|
283
|
+
// included, {§methods-log-coordinate}): the worker's id, or the Problem that refuses it.
|
|
284
|
+
async #ownedWorker(context, args) {
|
|
285
|
+
const workspaceId = ClientInput.assertId(context, "workspaceId", args.workspaceId);
|
|
286
|
+
const workerId = ClientInput.assertId(context, "workerId", args.workerId);
|
|
287
|
+
const target = await this.#db.envelope_get_worker_by_id.get({ id: workerId });
|
|
288
|
+
if (target === undefined) {
|
|
289
|
+
throw daemonFailure("daemon:worker", "worker-not-found", 404, `Worker ${workerId} does not exist.`, { workerId });
|
|
290
|
+
}
|
|
291
|
+
if (target.workspace_id !== workspaceId) {
|
|
292
|
+
throw daemonFailure("daemon:worker", "workspace-mismatch", 409, `Worker ${workerId} does not belong to workspace ${workspaceId}.`, {
|
|
293
|
+
workerId,
|
|
294
|
+
workspaceId,
|
|
295
|
+
actualWorkspaceId: target.workspace_id,
|
|
296
|
+
retryable: false
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
return workerId;
|
|
300
|
+
}
|
|
214
301
|
}
|
|
215
302
|
//# sourceMappingURL=ClientReads.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientReads.js","sourceRoot":"","sources":["../../src/server/ClientReads.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ClientReads.js","sourceRoot":"","sources":["../../src/server/ClientReads.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAA2H,MAAM,0BAA0B,CAAC;AAC9K,OAAO,QAAQ,EAAE,EAAoB,MAAM,eAAe,CAAC;AAC3D,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAItD,MAAM,eAAe,GAAG,CAAC,MAAe,EAAmB,EAAE,CACzD,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAmB5C,MAAM,CAAC,OAAO,OAAO,WAAW;IACnB,GAAG,CAAK;IACR,OAAO,CAAS;IAChB,cAAc,CAAgB;IAC9B,UAAU,CAAqB;IAExC,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAKjD;QACG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,KAAK,CAAC,SAAS,CAAC,IAMf;QACG,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACxF,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/E,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,aAAa,CACf,cAAc,EACd,gBAAgB,EAChB,GAAG,EACH,mCAAmC,EACnC;gBACI,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,kBAAkB;gBACzB,QAAQ,EAAE,uBAAuB;gBACjC,SAAS,EAAE,KAAK;aAAE,CACzB,CAAC;QACN,CAAC;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,GAAG,CAA2B,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxG,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,aAAa,CACf,eAAe,EACf,kBAAkB,EAClB,GAAG,EACH,UAAU,QAAQ,kBAAkB,EACpC,EAAE,QAAQ,EAAE,CACf,CAAC;QACN,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,aAAa,CACf,eAAe,EACf,oBAAoB,EACpB,GAAG,EACH,UAAU,QAAQ,iCAAiC,WAAW,GAAG,EACjE;gBACI,QAAQ;gBACR,WAAW;gBACX,iBAAiB,EAAE,MAAM,CAAC,YAAY;gBACtC,SAAS,EAAE,KAAK;aAAE,CACzB,CAAC;QACN,CAAC;QACD,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACvE,IAAI,gBAA0C,CAAC;QAC/C,IAAI,CAAC;YACD,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAChF,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,MAAM,CAAC;YACX,IAAI,CAAC;gBACD,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACL,MAAM,GAAG,IAAI,CAAC;YAClB,CAAC;YACD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC3C,OAAO,eAAe,CAAC,OAAO,CAAC,OAAO,CAClC,cAAc,EACd,gBAAgB,EAChB,GAAG,EACH,qBAAqB,IAAI,CAAC,MAAM,sBAAsB,EACtD,EAAE,KAAK,EAAE,IAAI,EAAE,EACf;oBACI,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE,6BAA6B;oBACvC,SAAS,EAAE,KAAK;iBAAE,CACzB,CAAC,CAAC;YACP,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACrD,OAAO,eAAe,CAAC,OAAO,CAAC,OAAO,CAClC,cAAc,EACd,yBAAyB,EACzB,GAAG,EACH,qCAAqC,EACrC,EAAE,KAAK,EAAE,IAAI,EAAE,EACf;oBACI,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE,6CAA6C;oBACvD,SAAS,EAAE,KAAK;iBAAE,CACzB,CAAC,CAAC;YACP,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvF,OAAO,eAAe,CAAC,OAAO,CAAC,OAAO,CAClC,cAAc,EACd,gBAAgB,EAChB,GAAG,EACH,gBAAgB,IAAI,CAAC,MAAM,sCAAsC,EACjE,EAAE,KAAK,EAAE,IAAI,EAAE,EACf;oBACI,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE,oCAAoC;oBAC9C,SAAS,EAAE,KAAK;iBAAE,CACzB,CAAC,CAAC;YACP,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACvD,OAAO,eAAe,CAAC,OAAO,CAAC,OAAO,CAClC,cAAc,EACd,sBAAsB,EACtB,GAAG,EACH,2CAA2C,EAC3C,EAAE,KAAK,EAAE,IAAI,EAAE,EACf;oBACI,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE,wCAAwC;oBAClD,SAAS,EAAE,KAAK;iBAAE,CACzB,CAAC,CAAC;YACP,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;gBAChD,WAAW;gBACX,QAAQ;gBACR,MAAM,EAAE,MAAM;aAAE,CAAC,CAAC;YACtB,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,eAAe,CAAC,OAAO,CAAC,OAAO,CAClC,cAAc,EACd,iBAAiB,EACjB,GAAG,EACH,kDAAkD,EAClD,EAAE,KAAK,EAAE,IAAI,EAAE,EACf,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAC1B,CAAC,CAAC;YACP,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,eAAe,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9G,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAO,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7H,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;YAClC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAiB;gBAC7D,YAAY,EAAE,WAAW;gBACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAAE,CAAC,CAAC;YACnC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,OAAO,eAAe,CAAC,OAAO,CAAC,OAAO,CAClC,cAAc,EACd,iBAAiB,EACjB,GAAG,EACH,8BAA8B,QAAQ,CAAC,MAAM,GAAG,EAChD,EAAE,KAAK,EAAE,IAAI,EAAE,EACf,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAC9B,CAAC,CAAC;YACP,CAAC;YACD,IAAI,WAAyB,CAAC;YAC9B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAa,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3F,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,GAAG,CAAa,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3H,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBAClB,MAAM,iBAAiB,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAa,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;yBAC/F,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC7B,OAAO,eAAe,CAAC,OAAO,CAAC,OAAO,CAClC,cAAc,EACd,mBAAmB,EACnB,GAAG,EACH,YAAY,OAAO,sBAAsB,QAAQ,CAAC,MAAM,GAAG,EAC3D,EAAE,KAAK,EAAE,IAAI,EAAE,EACf;wBACI,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,gBAAgB,EAAE,OAAO;wBACzB,iBAAiB;wBACjB,GAAG,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC;4BAC9B,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC,EAAE,QAAQ,EAAE,sCAAsC,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;wBAC9H,SAAS,EAAE,KAAK;qBAAE,CACzB,CAAC,CAAC;gBACP,CAAC;gBACD,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;YACD,MAAM,QAAQ,GAAuC,EAAE,CAAC;YACxD,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC1B,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;oBACf,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,aAAa,EAAE,CAAC,CAAC,aAAa;oBAC9B,aAAa,EAAE,CAAC,CAAC,aAAa;oBAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;iBAAE,CAAC;YACzB,CAAC;YACD,OAAO,eAAe,CAAC;gBACnB,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE;oBACH,OAAO,EAAE,GAAG,CAAC,EAAE;oBACf,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,QAAQ;iBAAE;aAAE,CAAC,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACP,gBAAgB,EAAE,EAAE,CAAC;YACrB,mBAAmB,EAAE,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,mHAAmH;IACnH,+EAA+E;IAC/E,KAAK,CAAC,gBAAgB,CAAC,IAA+D;QAClF,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACD,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7E,CAAC;QAAC,MAAM,CAAC;YACL,MAAM,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,KAAK,KAAK;YAClC,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC;YAC5E,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,gHAAgH;IAChH,gHAAgH;IAChH,MAAM,CAAC,aAAa,CAChB,MAAc,EACd,QAAyD,EACzD,OAA2B,EAC3B,MAA0B;QAE1B,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;YAC7D,uGAAuG;YACvG,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClF,OAAO,eAAe,CAAC,OAAO,CAAC,OAAO,CAClC,cAAc,EACd,mBAAmB,EACnB,GAAG,EACH,YAAY,OAAO,sBAAsB,MAAM,GAAG,EAClD,EAAE,KAAK,EAAE,IAAI,EAAE,EACf;gBACI,MAAM;gBACN,gBAAgB,EAAE,OAAO;gBACzB,iBAAiB;gBACjB,GAAG,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC;oBAC9B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,QAAQ,EAAE,sCAAsC,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC9H,SAAS,EAAE,KAAK;aAAE,CACzB,CAAC,CAAC;QACP,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC;QACxG,MAAM,QAAQ,GAAuC,EAAE,CAAC;QACxD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;YAClE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3D,aAAa,EAAE,IAAI;gBACnB,aAAa,EAAE,MAAM,CAAC,MAAM;gBAC5B,QAAQ;gBACR,MAAM;gBACN,KAAK;aAAE,CAAC;QAChB,CAAC;QACD,OAAO,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxF,CAAC;IAGD,gGAAgG;IAChG,gHAAgH;IAChH,uHAAuH;IACvH,oFAAoF;IACpF,0FAA0F;IAC1F,KAAK,CAAC,OAAO,CAAC,IAIb;QACG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC5D,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;gBACrE,MAAM,aAAa,CACf,YAAY,EACZ,oBAAoB,EACpB,GAAG,EACH,yBAAyB,KAAK,uCAAuC,EACrE;oBACI,KAAK;oBACL,KAAK;oBACL,KAAK,EAAE,UAAU;oBACjB,QAAQ,EAAE,wCAAwC;oBAClD,SAAS,EAAE,KAAK;iBAAE,CACzB,CAAC;YACN,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACpF,MAAM,aAAa,CACf,YAAY,EACZ,eAAe,EACf,GAAG,EACH,aAAa,IAAI,CAAC,KAAK,kCAAkC,EACzD;gBACI,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,mCAAmC;gBAC7C,SAAS,EAAE,KAAK;aAAE,CACzB,CAAC;QACN,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAc;YAC5D,SAAS,EAAE,QAAQ;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;YAC5H,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;YAC/F,sFAAsF;YACtF,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;SAAE,CAAC,CAAC;QACtI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,uHAAuH;IACvH,KAAK,CAAC,WAAW,CAAC,IAA+C;QAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5F,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0F,CAAC;QACjH,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAC3D,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7F,CAAC;QACL,CAAC;QACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACpD,OAAO,EAAE,GAAG,CAAC,QAAQ;YACrB,QAAQ,EAAE,GAAG,CAAC,SAAS;YACvB,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC/F,QAAQ,EAAE,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YACnF,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YACpC,QAAQ;SACX,CAAC,CAAC,CAAC;IACR,CAAC;IAED,iHAAiH;IACjH,sEAAsE;IACtE,MAAM,CAAC,SAAS,CAAC,MAAqB;QAClC,MAAM,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yCAAyC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9F,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QAC9B,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC9D,CAAC;IAED,6GAA6G;IAC7G,yFAAyF;IACzF,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,IAA+C;QAC/E,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACnF,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,GAAG,CAA2B,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxG,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,aAAa,CACf,eAAe,EACf,kBAAkB,EAClB,GAAG,EACH,UAAU,QAAQ,kBAAkB,EACpC,EAAE,QAAQ,EAAE,CACf,CAAC;QACN,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,aAAa,CACf,eAAe,EACf,oBAAoB,EACpB,GAAG,EACH,UAAU,QAAQ,iCAAiC,WAAW,GAAG,EACjE;gBACI,QAAQ;gBACR,WAAW;gBACX,iBAAiB,EAAE,MAAM,CAAC,YAAY;gBACtC,SAAS,EAAE,KAAK;aAAE,CACzB,CAAC;QACN,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;CAEJ"}
|
|
@@ -128,9 +128,9 @@ export default class Credentials {
|
|
|
128
128
|
return Object.freeze([...families]
|
|
129
129
|
.filter(([, family]) => family.signedIn)
|
|
130
130
|
.map(([family, { expiresAt, clients }]) => Object.freeze({
|
|
131
|
-
family, subject, createdAt: this.#established.get(family), expiresAt, clients: Object.freeze([...clients].
|
|
131
|
+
family, subject, createdAt: this.#established.get(family), expiresAt, clients: Object.freeze([...clients].toSorted()),
|
|
132
132
|
}))
|
|
133
|
-
.
|
|
133
|
+
.toSorted((a, b) => a.createdAt - b.createdAt || a.family.localeCompare(b.family)));
|
|
134
134
|
}
|
|
135
135
|
registerClient({ id, redirectPaths, scopes, stylesheetPath }) {
|
|
136
136
|
if (typeof id !== "string" || !/^[A-Za-z0-9._-]+$/u.test(id) || id === "operator") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Credentials.js","sourceRoot":"","sources":["../../src/server/Credentials.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Credentials.js","sourceRoot":"","sources":["../../src/server/Credentials.ts"],"names":[],"mappings":"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"}
|