@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
package/dist/server/logEntry.js
CHANGED
|
@@ -6,10 +6,8 @@ export default class LogEntry {
|
|
|
6
6
|
// "" is the actionless-row sentinel for "no statement" (error and
|
|
7
7
|
// actionless source rows store tx="");
|
|
8
8
|
// JSON.parse("") throws, so an empty string is no-value → null, like NULL itself.
|
|
9
|
-
if (v === null || v ===
|
|
9
|
+
if (v === null || v === "")
|
|
10
10
|
return null;
|
|
11
|
-
if (typeof v !== "string")
|
|
12
|
-
return v;
|
|
13
11
|
return JSON.parse(v);
|
|
14
12
|
}
|
|
15
13
|
static async fetchLogEntry(db, id) {
|
|
@@ -23,6 +21,7 @@ export default class LogEntry {
|
|
|
23
21
|
return {
|
|
24
22
|
id: row.id,
|
|
25
23
|
worker_id: row.worker_id,
|
|
24
|
+
worker_name: row.worker_name,
|
|
26
25
|
loop_id: row.loop_id,
|
|
27
26
|
loop_seq: row.loop_seq,
|
|
28
27
|
turn_id: row.turn_id,
|
|
@@ -50,12 +49,13 @@ export default class LogEntry {
|
|
|
50
49
|
weight: row.weight,
|
|
51
50
|
attrs: LogEntry.#parseJsonOrNull(row.attrs),
|
|
52
51
|
state: row.state,
|
|
53
|
-
...(
|
|
54
|
-
|
|
55
|
-
? {
|
|
56
|
-
: {}),
|
|
57
|
-
|
|
58
|
-
...(
|
|
52
|
+
...(row.reasoning === null ? {} : {
|
|
53
|
+
reasoning: row.reasoning,
|
|
54
|
+
...(row.reasoning_model_call_id === null ? {} : { reasoning_model_call_id: row.reasoning_model_call_id }),
|
|
55
|
+
...(row.reasoning_request_sequence === null ? {} : { reasoning_request_sequence: row.reasoning_request_sequence }),
|
|
56
|
+
}),
|
|
57
|
+
...(row.invocation === null ? {} : { invocation: row.invocation }),
|
|
58
|
+
...(row.answering === null ? {} : { answering: row.answering }),
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logEntry.js","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,6DAA6D;AAC7D,yCAAyC;
|
|
1
|
+
{"version":3,"file":"logEntry.js","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,6DAA6D;AAC7D,yCAAyC;AA8CzC,MAAM,CAAC,OAAO,OAAO,QAAQ;IACzB,MAAM,CAAC,gBAAgB,CAAC,CAAgB;QACpC,kEAAkE;QAClE,uCAAuC;QACvC,kFAAkF;QAClF,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAM,EAAE,EAAU;QACzC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,GAAG,CAAc,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,8EAA8E;IAC9E,MAAM,CAAC,IAAI,CAAC,GAAgB;QACxB,OAAO;YACH,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7C,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,UAAU,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC;YACrD,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;YAC3C,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9B,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,GAAG,CAAC,GAAG,CAAC,uBAAuB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,GAAG,CAAC,uBAAuB,EAAE,CAAC;gBACzG,GAAG,CAAC,GAAG,CAAC,0BAA0B,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,0BAA0B,EAAE,GAAG,CAAC,0BAA0B,EAAE,CAAC;aACrH,CAAC;YACF,GAAG,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;YAClE,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;SAClE,CAAC;IACN,CAAC;CACJ"}
|
package/dist/server/logEntry.sql
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
-- PREP: log_entry_by_id
|
|
5
5
|
-- loop_seq / turn_seq are the loop+turn ordinals (the logical coordinate clients
|
|
6
6
|
-- render, e.g. 01/02/03) — distinct from the loop_id/turn_id DB keys ({§methods-log-coordinate}).
|
|
7
|
-
SELECT le.*, l.sequence AS loop_seq, t.sequence AS turn_seq,
|
|
7
|
+
SELECT le.*, w.name AS worker_name, l.sequence AS loop_seq, t.sequence AS turn_seq,
|
|
8
8
|
CASE
|
|
9
9
|
WHEN le.origin = 'model'
|
|
10
10
|
AND le.op IS NOT NULL
|
|
@@ -56,6 +56,7 @@ SELECT le.*, l.sequence AS loop_seq, t.sequence AS turn_seq,
|
|
|
56
56
|
AND (sender.worker_id = le.worker_id OR le.inherited_history = 1)
|
|
57
57
|
LIMIT 1) AS answering
|
|
58
58
|
FROM log_entries le
|
|
59
|
+
JOIN workers w ON w.id = le.worker_id
|
|
59
60
|
JOIN loops l ON l.id = le.loop_id
|
|
60
61
|
JOIN turns t ON t.id = le.turn_id
|
|
61
62
|
WHERE le.id = $id;
|
|
@@ -63,7 +64,7 @@ WHERE le.id = $id;
|
|
|
63
64
|
-- PREP: log_entries_recent
|
|
64
65
|
-- {§methods-log-read}: the newest rows a client asks for, hydrated exactly as log_entry_by_id
|
|
65
66
|
-- hydrates one — a page is one statement, never one statement per row.
|
|
66
|
-
SELECT le.*, l.sequence AS loop_seq, t.sequence AS turn_seq,
|
|
67
|
+
SELECT le.*, w.name AS worker_name, l.sequence AS loop_seq, t.sequence AS turn_seq,
|
|
67
68
|
CASE
|
|
68
69
|
WHEN le.origin = 'model'
|
|
69
70
|
AND le.op IS NOT NULL
|
|
@@ -115,6 +116,7 @@ SELECT le.*, l.sequence AS loop_seq, t.sequence AS turn_seq,
|
|
|
115
116
|
AND (sender.worker_id = le.worker_id OR le.inherited_history = 1)
|
|
116
117
|
LIMIT 1) AS answering
|
|
117
118
|
FROM log_entries le
|
|
119
|
+
JOIN workers w ON w.id = le.worker_id
|
|
118
120
|
JOIN loops l ON l.id = le.loop_id
|
|
119
121
|
JOIN turns t ON t.id = le.turn_id
|
|
120
122
|
WHERE le.worker_id = $worker_id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loopDocs.d.ts","sourceRoot":"","sources":["../../src/server/loopDocs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loopDocs.d.ts","sourceRoot":"","sources":["../../src/server/loopDocs.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAWxC,MAAM,CAAC,OAAO,OAAO,QAAQ;;IAQzB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAE9C;IAsCD,OAAa,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnF;CAyEJ"}
|
package/dist/server/loopDocs.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// Worker documentation projections of the shared workspace environment.
|
|
2
2
|
// Reconcile on reader demand and after workspace Functionality changes. Two private sets run through
|
|
3
3
|
// an ordinary `_plurnk` turn in the addressed worker ({§actor-boundary-doc-injection}):
|
|
4
|
-
// 1. the project AGENTS.md at worker:///_plurnk/AGENTS.md
|
|
5
|
-
//
|
|
4
|
+
// 1. the project AGENTS.md at worker:///_plurnk/AGENTS.md and AGENTS.local.md at
|
|
5
|
+
// worker:///_plurnk/AGENTS.local.md — Engine.runTurn foists their READs at turn 0
|
|
6
|
+
// ({§turn0-agents-stunt}, {§turn0-local-instructions});
|
|
6
7
|
// 2. the exact current scheme and executable-tool reference set under
|
|
7
8
|
// worker:///_plurnk/plurnk/ and worker:///_plurnk/tools/ — discovered by the
|
|
8
9
|
// turn-0 FIND surveys ({§schemes-self-doc-materialization},
|
|
@@ -92,6 +93,14 @@ export default class LoopDocs {
|
|
|
92
93
|
const desired = new Map((await engine.referenceEntries(workspaceId)).map(({ pathname, content }) => [pathname, content]));
|
|
93
94
|
if (agentsContent !== null)
|
|
94
95
|
desired.set(generatedPathname("/AGENTS.md"), agentsContent);
|
|
96
|
+
// {§turn0-local-instructions} — the root AGENTS.local.md, read whatever its git status (the convention ignores
|
|
97
|
+
// it); only an exclusion hides it.
|
|
98
|
+
const localContent = workspace?.project_root === null || workspace?.project_root === undefined
|
|
99
|
+
|| await GitMembership.exclusionOf(db, workspaceId, "AGENTS.local.md") !== null
|
|
100
|
+
? null
|
|
101
|
+
: await readFile(join(workspace.project_root, "AGENTS.local.md"), "utf8").catch(() => null);
|
|
102
|
+
if (localContent !== null)
|
|
103
|
+
desired.set(generatedPathname("/AGENTS.local.md"), localContent);
|
|
95
104
|
// #346 — nested AGENTS.md honor the standard's closest-file scope:
|
|
96
105
|
// each materializes at _plurnk/instructions/<subtree>/AGENTS.md with its
|
|
97
106
|
// path preserved. No foisted READ and no teaching (operator-ruled):
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loopDocs.js","sourceRoot":"","sources":["../../src/server/loopDocs.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,qGAAqG;AACrG,wFAAwF;AACxF,
|
|
1
|
+
{"version":3,"file":"loopDocs.js","sourceRoot":"","sources":["../../src/server/loopDocs.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,7 @@ import { ConfigurationError } from "@plurnk/plurnk-meta";
|
|
|
2
2
|
import type { PluginReport } from "@plurnk/plurnk-agent-plugins";
|
|
3
3
|
import type { DaemonModule } from "@plurnk/plurnk-modules";
|
|
4
4
|
import type { HostSetupSeam } from "./ModuleHost.ts";
|
|
5
|
-
import HostPaths from "../core/HostPaths.ts";
|
|
6
|
-
import type { ApplicationPort } from "@plurnk/plurnk-contracts/port";
|
|
5
|
+
import type HostPaths from "../core/HostPaths.ts";
|
|
7
6
|
export declare const discoverDaemonModules: (options?: {
|
|
8
7
|
cwd?: string;
|
|
9
8
|
hostPaths?: HostPaths;
|
|
@@ -14,7 +13,7 @@ export declare const discoverDaemonModules: (options?: {
|
|
|
14
13
|
registered?: ReadonlySet<string>;
|
|
15
14
|
}) => Promise<{
|
|
16
15
|
readonly modules: ReadonlyArray<{
|
|
17
|
-
readonly module: DaemonModule<HostSetupSeam
|
|
16
|
+
readonly module: DaemonModule<HostSetupSeam>;
|
|
18
17
|
readonly owner: string;
|
|
19
18
|
}>;
|
|
20
19
|
readonly skipped: readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-discovery.d.ts","sourceRoot":"","sources":["../../src/server/module-discovery.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module-discovery.d.ts","sourceRoot":"","sources":["../../src/server/module-discovery.ts"],"names":[],"mappings":"AAIA,OAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AA4DlD,eAAO,MAAM,qBAAqB,aACrB;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,KACvI,OAAO,CAAC;IAEP,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1G,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAG1C,QAAQ,CAAC,mBAAmB,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;CAC/G,CA4DA,CAAC"}
|
|
@@ -6,11 +6,11 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
6
6
|
}
|
|
7
7
|
return path;
|
|
8
8
|
};
|
|
9
|
+
import { errnoCode, isRecord } from "@plurnk/plurnk-contracts";
|
|
9
10
|
import { createRequire } from "node:module";
|
|
10
11
|
import { basename, join } from "node:path";
|
|
11
12
|
import { pathToFileURL } from "node:url";
|
|
12
13
|
import Meta, { ConfigurationError } from "@plurnk/plurnk-meta";
|
|
13
|
-
import HostPaths from "../core/HostPaths.js";
|
|
14
14
|
import PluginSources from "./PluginSources.js";
|
|
15
15
|
import EnvDefaults from "../core/env-defaults.js";
|
|
16
16
|
const assertDaemonModule = (value, packageName, source) => {
|
|
@@ -21,7 +21,7 @@ const assertDaemonModule = (value, packageName, source) => {
|
|
|
21
21
|
throw new TypeError(`module package '${packageName}' ${detail}.`);
|
|
22
22
|
}
|
|
23
23
|
for (const member of ["setup", "start", "stop", "close"]) {
|
|
24
|
-
const hook = value[member];
|
|
24
|
+
const hook = isRecord(value) ? value[member] : undefined;
|
|
25
25
|
if (hook !== undefined && typeof hook !== "function") {
|
|
26
26
|
throw new TypeError(`module package '${packageName}' lifecycle member '${member}' must be a function when present.`);
|
|
27
27
|
}
|
|
@@ -92,7 +92,7 @@ export const discoverDaemonModules = async (options = {}) => {
|
|
|
92
92
|
await EnvDefaults.nativeFile(candidate.dir, manifest.packageName);
|
|
93
93
|
}
|
|
94
94
|
const imported = await import(__rewriteRelativeImportExtension(pathToFileURL(manifest.module).href));
|
|
95
|
-
const exported = imported.default;
|
|
95
|
+
const exported = isRecord(imported) ? imported.default : undefined;
|
|
96
96
|
if (exported === undefined) {
|
|
97
97
|
throw new Error(`module package '${manifest.packageName}' exports no default DaemonModule at '${manifest.module}'.`);
|
|
98
98
|
}
|
|
@@ -103,13 +103,13 @@ export const discoverDaemonModules = async (options = {}) => {
|
|
|
103
103
|
if (exported.length !== 0) {
|
|
104
104
|
throw new TypeError(`module package '${manifest.packageName}' DaemonModule factory must accept no arguments.`);
|
|
105
105
|
}
|
|
106
|
-
const created = await exported
|
|
106
|
+
const created = await Reflect.apply(exported, undefined, []);
|
|
107
107
|
modules.push({ module: assertDaemonModule(created, manifest.packageName, "factory"), owner: manifest.packageName });
|
|
108
108
|
}
|
|
109
109
|
catch (cause) {
|
|
110
110
|
const owner = `module:${manifest.packageName}`;
|
|
111
|
-
if (cause
|
|
112
|
-
configurationErrors.push({ owner, cause: new ConfigurationError(manifest.manifestPath, `${manifest.packageName}: ${cause.message}`, { cause }) });
|
|
111
|
+
if (errnoCode(cause) === "ERR_MODULE_NOT_FOUND") {
|
|
112
|
+
configurationErrors.push({ owner, cause: new ConfigurationError(manifest.manifestPath, `${manifest.packageName}: ${cause instanceof Error ? cause.message : String(cause)}`, { cause }) });
|
|
113
113
|
continue;
|
|
114
114
|
}
|
|
115
115
|
if (!(cause instanceof ConfigurationError))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-discovery.js","sourceRoot":"","sources":["../../src/server/module-discovery.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,EAAE,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"module-discovery.js","sourceRoot":"","sources":["../../src/server/module-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
-- {§place-hiding} A hidden workspace or worker leaves the directories and the overview; every row stays. A worker's
|
|
2
|
+
-- hide marks it and every worker beneath it with the worker that hid it (`hidden_by`): one group, which returns whole.
|
|
3
|
+
|
|
4
|
+
-- INIT: loops_unhide_place
|
|
5
|
+
-- Nothing runs out of sight: a live loop starting on a worker brings back the group its worker belongs to, and the
|
|
6
|
+
-- workspace it runs in. A fork's copied history is never live, so it brings nothing back.
|
|
7
|
+
DROP TRIGGER IF EXISTS loops_unhide_place;
|
|
8
|
+
CREATE TRIGGER loops_unhide_place
|
|
9
|
+
AFTER INSERT ON loops
|
|
10
|
+
WHEN NEW.status IN (100, 102, 202)
|
|
11
|
+
BEGIN
|
|
12
|
+
UPDATE workers SET hidden_at = NULL, hidden_by = NULL
|
|
13
|
+
WHERE hidden_by = (SELECT hidden_by FROM workers WHERE id = NEW.worker_id);
|
|
14
|
+
UPDATE workspaces SET hidden_at = NULL
|
|
15
|
+
WHERE hidden_at IS NOT NULL AND id = (SELECT workspace_id FROM workers WHERE id = NEW.worker_id);
|
|
16
|
+
END;
|
|
17
|
+
|
|
18
|
+
-- INIT: workers_join_hidden_group
|
|
19
|
+
-- A worker created beneath a hidden worker joins its group.
|
|
20
|
+
DROP TRIGGER IF EXISTS workers_join_hidden_group;
|
|
21
|
+
CREATE TRIGGER workers_join_hidden_group
|
|
22
|
+
AFTER INSERT ON workers
|
|
23
|
+
WHEN EXISTS (SELECT 1 FROM workers WHERE id = NEW.parent_worker_id AND hidden_at IS NOT NULL)
|
|
24
|
+
BEGIN
|
|
25
|
+
UPDATE workers
|
|
26
|
+
SET hidden_at = (SELECT hidden_at FROM workers WHERE id = NEW.parent_worker_id),
|
|
27
|
+
hidden_by = (SELECT hidden_by FROM workers WHERE id = NEW.parent_worker_id)
|
|
28
|
+
WHERE id = NEW.id;
|
|
29
|
+
END;
|
|
30
|
+
|
|
31
|
+
-- PREP: place_scope
|
|
32
|
+
-- The workers a hide covers, a worker and every worker beneath it or every worker of a workspace, each with its live
|
|
33
|
+
-- loops ({§worker-lifecycle-live}) and open streams.
|
|
34
|
+
WITH RECURSIVE scope(id) AS (
|
|
35
|
+
SELECT id FROM workers WHERE workspace_id = $workspace_id AND ($worker_id IS NULL OR id = $worker_id)
|
|
36
|
+
UNION
|
|
37
|
+
SELECT w.id FROM workers w JOIN scope ON w.parent_worker_id = scope.id
|
|
38
|
+
)
|
|
39
|
+
SELECT scope.id AS workerId,
|
|
40
|
+
(SELECT COUNT(*) FROM loops l WHERE l.worker_id = scope.id AND l.status IN (100, 102, 202)) AS loops,
|
|
41
|
+
(SELECT COUNT(*) FROM subscriptions s WHERE s.worker_id = scope.id AND s.closed_at IS NULL) AS streams
|
|
42
|
+
FROM scope;
|
|
43
|
+
|
|
44
|
+
-- PREP: place_workspace_mark
|
|
45
|
+
SELECT hidden_at FROM workspaces WHERE id = $workspace_id;
|
|
46
|
+
|
|
47
|
+
-- PREP: place_workspace_hide
|
|
48
|
+
-- Refused while any of its workers holds a live loop or an open stream; a second hide keeps the first mark.
|
|
49
|
+
UPDATE workspaces SET hidden_at = COALESCE(hidden_at, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
|
|
50
|
+
WHERE id = $workspace_id
|
|
51
|
+
AND NOT EXISTS (SELECT 1 FROM loops l JOIN workers w ON w.id = l.worker_id
|
|
52
|
+
WHERE w.workspace_id = $workspace_id AND l.status IN (100, 102, 202))
|
|
53
|
+
AND NOT EXISTS (SELECT 1 FROM subscriptions s JOIN workers w ON w.id = s.worker_id
|
|
54
|
+
WHERE w.workspace_id = $workspace_id AND s.closed_at IS NULL)
|
|
55
|
+
RETURNING hidden_at;
|
|
56
|
+
|
|
57
|
+
-- PREP: place_workspace_show
|
|
58
|
+
UPDATE workspaces SET hidden_at = NULL
|
|
59
|
+
WHERE id = $workspace_id AND hidden_at IS NOT NULL
|
|
60
|
+
RETURNING id;
|
|
61
|
+
|
|
62
|
+
-- PREP: place_worker_mark
|
|
63
|
+
SELECT hidden_at FROM workers WHERE id = $worker_id AND workspace_id = $workspace_id;
|
|
64
|
+
|
|
65
|
+
-- PREP: place_worker_hide
|
|
66
|
+
-- Refused while any worker of the subtree holds a live loop or an open stream. Groups already hidden inside the
|
|
67
|
+
-- subtree join this one.
|
|
68
|
+
WITH RECURSIVE subtree(id) AS (
|
|
69
|
+
SELECT id FROM workers WHERE id = $worker_id AND workspace_id = $workspace_id
|
|
70
|
+
UNION
|
|
71
|
+
SELECT w.id FROM workers w JOIN subtree ON w.parent_worker_id = subtree.id
|
|
72
|
+
)
|
|
73
|
+
UPDATE workers SET hidden_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now'), hidden_by = $worker_id
|
|
74
|
+
WHERE id IN (SELECT id FROM subtree)
|
|
75
|
+
AND NOT EXISTS (SELECT 1 FROM loops WHERE worker_id IN (SELECT id FROM subtree) AND status IN (100, 102, 202))
|
|
76
|
+
AND NOT EXISTS (SELECT 1 FROM subscriptions WHERE worker_id IN (SELECT id FROM subtree) AND closed_at IS NULL)
|
|
77
|
+
RETURNING id, hidden_at;
|
|
78
|
+
|
|
79
|
+
-- PREP: place_worker_show
|
|
80
|
+
-- Showing any worker of a group shows the group.
|
|
81
|
+
UPDATE workers SET hidden_at = NULL, hidden_by = NULL
|
|
82
|
+
WHERE hidden_by = (SELECT hidden_by FROM workers WHERE id = $worker_id AND workspace_id = $workspace_id)
|
|
83
|
+
RETURNING id;
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
-- ApplicationPort runLoop queries. SPEC {§methods-loop-run}.
|
|
2
2
|
|
|
3
|
+
-- PREP: application_latest_packet_loop
|
|
4
|
+
-- {§methods-worker-gauge}: the loop holding the worker's latest packet, the one whose gauge the worker reported last.
|
|
5
|
+
SELECT turns.loop_id AS id FROM turns
|
|
6
|
+
JOIN loops ON loops.id = turns.loop_id
|
|
7
|
+
WHERE loops.worker_id = $worker_id AND turns.packet IS NOT NULL
|
|
8
|
+
ORDER BY turns.id DESC
|
|
9
|
+
LIMIT 1;
|
|
10
|
+
|
|
3
11
|
-- PREP: application_list_worker_loops
|
|
4
12
|
-- {§methods-worker-loops}: durable lifecycle projection for exterior adapters. {§worker-obligations}: a loop is
|
|
5
13
|
-- opened by its first message's operation, named in the sender's own log.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
-- ApplicationPort readWorkerOverview queries. SPEC {§methods-worker-overview}.
|
|
2
|
+
|
|
3
|
+
-- PREP: overview_places
|
|
4
|
+
-- {§application-worker-overview}: the places in scope, each with its loops' observations for its lifecycle
|
|
5
|
+
-- ({§application-worker-observation}) and its latest finished reply ({§worker-finished-reply}), without the reply's words.
|
|
6
|
+
-- {§place-hiding} A hidden worker is out of scope, and in the daemon's scope so is every worker of a hidden workspace.
|
|
7
|
+
SELECT w.id, w.workspace_id AS workspaceId, w.name, w.parent_worker_id AS parentWorkerId,
|
|
8
|
+
CASE WHEN w.fork_event_boundary IS NOT NULL THEN 'fork'
|
|
9
|
+
WHEN w.parent_worker_id IS NOT NULL THEN 'work'
|
|
10
|
+
ELSE 'root' END AS kind,
|
|
11
|
+
(SELECT json_group_array(json_object('status', l.status, 'sequence', l.sequence, 'terminatedAt', l.terminated_at))
|
|
12
|
+
FROM work_loops l WHERE l.worker_id = w.id) AS loopObservations,
|
|
13
|
+
reply.id AS replyId,
|
|
14
|
+
reply.at AS replyAt,
|
|
15
|
+
COALESCE(
|
|
16
|
+
CASE WHEN reply.mimetype_rx = 'application/json' AND json_valid(reply.rx)
|
|
17
|
+
THEN json_extract(reply.rx, '$.completion') END,
|
|
18
|
+
(SELECT MIN(c.status) FROM message_completions c WHERE c.response_id = reply.id)
|
|
19
|
+
) AS replyCompletion,
|
|
20
|
+
CASE WHEN reply.id IS NULL THEN NULL
|
|
21
|
+
ELSE printf('%d/%d/%d', reply_loop.sequence, reply_turn.sequence, reply.sequence) END AS replyCoordinate
|
|
22
|
+
FROM workers w
|
|
23
|
+
LEFT JOIN log_entries reply ON reply.id = (
|
|
24
|
+
SELECT le.id FROM log_entries le
|
|
25
|
+
WHERE le.worker_id = w.id
|
|
26
|
+
AND le.op = 'SEND' AND le.origin = 'model' AND le.inherited_history = 0
|
|
27
|
+
AND le.state = 'resolved' AND le.status_rx < 400
|
|
28
|
+
AND COALESCE(
|
|
29
|
+
CASE WHEN le.mimetype_rx = 'application/json' AND json_valid(le.rx)
|
|
30
|
+
THEN json_extract(le.rx, '$.completion') END,
|
|
31
|
+
(SELECT MIN(c.status) FROM message_completions c WHERE c.response_id = le.id)
|
|
32
|
+
) IN (200, 499)
|
|
33
|
+
ORDER BY le.id DESC
|
|
34
|
+
LIMIT 1)
|
|
35
|
+
LEFT JOIN loops reply_loop ON reply_loop.id = reply.loop_id
|
|
36
|
+
LEFT JOIN turns reply_turn ON reply_turn.id = reply.turn_id
|
|
37
|
+
WHERE w.origin = 'model'
|
|
38
|
+
AND w.hidden_at IS NULL
|
|
39
|
+
AND (w.workspace_id = $workspace_id
|
|
40
|
+
OR ($workspace_id IS NULL AND (SELECT ws.hidden_at FROM workspaces ws WHERE ws.id = w.workspace_id) IS NULL));
|
|
41
|
+
|
|
42
|
+
-- PREP: overview_reply_words
|
|
43
|
+
-- {§list-excerpt}: the words of the replies the overview holds, $ids a JSON array of their log rows.
|
|
44
|
+
SELECT le.id,
|
|
45
|
+
CASE WHEN json_valid(le.tx) THEN
|
|
46
|
+
COALESCE(json_extract(le.tx, '$.body.raw'),
|
|
47
|
+
CASE WHEN json_type(le.tx, '$.body') = 'text' THEN json_extract(le.tx, '$.body') END)
|
|
48
|
+
END AS words
|
|
49
|
+
FROM log_entries le
|
|
50
|
+
WHERE le.id IN (SELECT value FROM json_each($ids));
|
|
51
|
+
|
|
52
|
+
-- PREP: overview_workspaces
|
|
53
|
+
-- {§application-worker-overview}: the workspaces the held places belong to, $ids a JSON array of their ids.
|
|
54
|
+
SELECT id, name, project_root AS projectRoot
|
|
55
|
+
FROM workspaces
|
|
56
|
+
WHERE id IN (SELECT value FROM json_each($ids))
|
|
57
|
+
ORDER BY id;
|
package/dist/service.d.ts
CHANGED
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";AAGA,OAAO,yBAAyB,CAAC;AAyCjC,MAAM,CAAC,OAAO,OAAO,OAAO;;IAuVxB,OAAa,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAwHjC;CACJ"}
|
package/dist/service.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
// oxlint-disable-next-line import/no-unassigned-import -- {§service-runtime-floor}: it must evaluate before every later import
|
|
3
|
+
import "./core/runtime-guard.js";
|
|
2
4
|
import { parseArgs } from "node:util";
|
|
3
5
|
import { spawn } from "node:child_process";
|
|
4
6
|
import { existsSync, mkdirSync } from "node:fs";
|
|
5
7
|
import { readFile } from "node:fs/promises";
|
|
8
|
+
import { setTimeout as sleep } from "node:timers/promises";
|
|
6
9
|
import { isIPv6 } from "node:net";
|
|
7
10
|
import { fileURLToPath } from "node:url";
|
|
8
11
|
import { dirname, resolve } from "node:path";
|
|
9
12
|
import SqlRite from "@possumtech/sqlrite";
|
|
13
|
+
import { errnoCode } from "@plurnk/plurnk-contracts";
|
|
10
14
|
import { sqlFunctionPaths } from "./core/sql-functions.js";
|
|
11
15
|
import { sqliteSynchronous } from "./core/sqlite-synchronous.js";
|
|
12
16
|
import Daemon from "./server/Daemon.js";
|
|
@@ -26,11 +30,11 @@ import { workspacePaths } from "./server/AgentRoots.js";
|
|
|
26
30
|
import { formatBuildInfo, getBuildInfo } from "./build-info.js";
|
|
27
31
|
import ServiceTeardown from "./core/ServiceTeardown.js";
|
|
28
32
|
import Paths from "./Paths.js";
|
|
29
|
-
import {
|
|
30
|
-
import { Digest } from "@plurnk/plurnk-digest";
|
|
33
|
+
import { Digest, Share } from "@plurnk/plurnk-digest";
|
|
31
34
|
import EvidenceReader from "@plurnk/plurnk-service/evidence";
|
|
32
35
|
import ProviderInstantiate from "./core/ProviderInstantiate.js";
|
|
33
|
-
|
|
36
|
+
// How often `stop` looks for the signalled process to be gone.
|
|
37
|
+
const STOP_POLL_MS = 100;
|
|
34
38
|
// The `plurnk-service` executable: launches the daemon (start) or applies the schema baseline.
|
|
35
39
|
// Not the user-facing client — that is the separate `plurnk` project.
|
|
36
40
|
export default class Service {
|
|
@@ -121,7 +125,6 @@ export default class Service {
|
|
|
121
125
|
];
|
|
122
126
|
if (causes.length > 0)
|
|
123
127
|
throw new Error(causes.map(({ message }) => message).join("\n"), { cause: causes[0] });
|
|
124
|
-
validateObservabilityConfiguration();
|
|
125
128
|
}
|
|
126
129
|
static async #ensureOperatorConfig() {
|
|
127
130
|
if (Service.#hostPaths.invalidXdg.length > 0) {
|
|
@@ -230,15 +233,13 @@ export default class Service {
|
|
|
230
233
|
const listener = await HttpListener.bind({ host, port });
|
|
231
234
|
let db = null;
|
|
232
235
|
let daemon = null;
|
|
233
|
-
|
|
234
|
-
const teardown = new ServiceTeardown(async (deadline) => { await daemon?.stop(deadline); }, ["observability shutdown", async () => { await observability?.shutdown(); }], ["database close", async () => { await db?.close(); }], ["HTTP listener close", async () => { await listener.close(); }]);
|
|
236
|
+
const teardown = new ServiceTeardown(async (deadline) => { await daemon?.stop(deadline); }, ["database close", async () => { await db?.close(); }], ["HTTP listener close", async () => { await listener.close(); }]);
|
|
235
237
|
try {
|
|
236
238
|
// {§startup-admission-order}: after listener ownership, persistence
|
|
237
239
|
// and its exclusive owner precede capability activation.
|
|
238
240
|
db = await Service.#openDb(dbPath, true);
|
|
239
|
-
// {§observability-boundary} —
|
|
240
|
-
//
|
|
241
|
-
observability = await configuration.capture("observability", () => startObservability());
|
|
241
|
+
// {§observability-boundary} — the SDK is the plurnk-otel module's, discovered and set up with every
|
|
242
|
+
// other module ({§otel-module}); the service loads none.
|
|
242
243
|
daemon = new Daemon({ db, dbPath, nodeModulesPath: Service.#installedNodeModules(), hostPaths: Service.#hostPaths, http: listener, configuration });
|
|
243
244
|
// {§module-discovery} — the service composes no module: the daemon discovers every one,
|
|
244
245
|
// and the socket never closes or rebinds between admission and readiness.
|
|
@@ -277,6 +278,26 @@ export default class Service {
|
|
|
277
278
|
await teardown.fail(cause);
|
|
278
279
|
}
|
|
279
280
|
}
|
|
281
|
+
// {§service-stop} SIGTERM to the process that holds the configured database, then wait for it to
|
|
282
|
+
// exit: its own shutdown is bounded by PLURNK_SERVICE_STOP_TIMEOUT_MS ({§crash-only-stop}).
|
|
283
|
+
static async #stop() {
|
|
284
|
+
const dbPath = Service.#hostPaths.configuredDatabasePath();
|
|
285
|
+
const pid = await DaemonLock.owner(dbPath);
|
|
286
|
+
if (pid === null) {
|
|
287
|
+
process.stderr.write(`plurnk-service: not running (${dbPath})\n`);
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
try {
|
|
291
|
+
process.kill(pid, "SIGTERM");
|
|
292
|
+
}
|
|
293
|
+
catch (cause) {
|
|
294
|
+
if (errnoCode(cause) !== "ESRCH")
|
|
295
|
+
throw cause;
|
|
296
|
+
}
|
|
297
|
+
while (DaemonLock.alive(pid))
|
|
298
|
+
await sleep(STOP_POLL_MS);
|
|
299
|
+
process.stderr.write(`plurnk-service: stopped pid ${pid} (${dbPath})\n`);
|
|
300
|
+
}
|
|
280
301
|
static async #configStatus() {
|
|
281
302
|
const diagnostics = Service.#configuration;
|
|
282
303
|
const aliases = await diagnostics.capture("model-aliases", () => parseAliasesFromEnv());
|
|
@@ -414,6 +435,11 @@ export default class Service {
|
|
|
414
435
|
await Service.#ensureOperatorConfig();
|
|
415
436
|
handler = command === "start" ? Service.#start : Service.#migrate;
|
|
416
437
|
}
|
|
438
|
+
else if (command === "stop") {
|
|
439
|
+
if (positionals.length > 1)
|
|
440
|
+
Service.#die(64, `unexpected arguments: ${positionals.slice(1).join(" ")}`);
|
|
441
|
+
handler = Service.#stop;
|
|
442
|
+
}
|
|
417
443
|
else if (command === "config") {
|
|
418
444
|
if (positionals.length > 2)
|
|
419
445
|
Service.#die(64, `unexpected arguments: ${positionals.slice(2).join(" ")}`);
|