@plurnk/plurnk-service 1.16.4 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.defaults +122 -246
- package/INSTALL.md +84 -138
- package/README.md +9 -5
- package/SPEC.md +1710 -1015
- package/dist/Paths.d.ts +2 -0
- package/dist/Paths.d.ts.map +1 -1
- package/dist/Paths.js +2 -0
- package/dist/Paths.js.map +1 -1
- package/dist/build-info.d.ts.map +1 -1
- package/dist/build-info.js +7 -1
- package/dist/build-info.js.map +1 -1
- package/dist/build-info.json +1 -1
- package/dist/content/body-preview.d.ts +8 -0
- package/dist/content/body-preview.d.ts.map +1 -0
- package/dist/content/body-preview.js +39 -0
- package/dist/content/body-preview.js.map +1 -0
- package/dist/content/byte-view.d.ts +1 -4
- package/dist/content/byte-view.d.ts.map +1 -1
- package/dist/content/byte-view.js.map +1 -1
- package/dist/content/edit-collision.d.ts.map +1 -1
- package/dist/content/edit-collision.js +3 -4
- package/dist/content/edit-collision.js.map +1 -1
- package/dist/content/line-anchors.d.ts +2 -2
- package/dist/content/line-anchors.d.ts.map +1 -1
- package/dist/content/line-anchors.js +4 -3
- package/dist/content/line-anchors.js.map +1 -1
- package/dist/content/line-selection.d.ts +9 -0
- package/dist/content/line-selection.d.ts.map +1 -0
- package/dist/content/line-selection.js +29 -0
- package/dist/content/line-selection.js.map +1 -0
- package/dist/content/matcher.d.ts +0 -1
- package/dist/content/matcher.d.ts.map +1 -1
- package/dist/content/matcher.js +2 -3
- package/dist/content/matcher.js.map +1 -1
- package/dist/content/pattern-edits.d.ts +39 -0
- package/dist/content/pattern-edits.d.ts.map +1 -0
- package/dist/content/pattern-edits.js +121 -0
- package/dist/content/pattern-edits.js.map +1 -0
- package/dist/content/read-projector.d.ts +18 -9
- package/dist/content/read-projector.d.ts.map +1 -1
- package/dist/content/read-projector.js +132 -35
- package/dist/content/read-projector.js.map +1 -1
- package/dist/content/read-resolve.d.ts +3 -1
- package/dist/content/read-resolve.d.ts.map +1 -1
- package/dist/content/read-resolve.js +39 -7
- package/dist/content/read-resolve.js.map +1 -1
- package/dist/core/AdmittedTurnExecutor.d.ts +3 -5
- package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
- package/dist/core/AdmittedTurnExecutor.js +91 -83
- package/dist/core/AdmittedTurnExecutor.js.map +1 -1
- package/dist/core/BareBatchRunner.d.ts +6 -1
- package/dist/core/BareBatchRunner.d.ts.map +1 -1
- package/dist/core/BareBatchRunner.js +20 -5
- package/dist/core/BareBatchRunner.js.map +1 -1
- package/dist/core/BudgetReadout.d.ts +2 -3
- package/dist/core/BudgetReadout.d.ts.map +1 -1
- package/dist/core/BudgetReadout.js +23 -32
- package/dist/core/BudgetReadout.js.map +1 -1
- package/dist/core/CapabilityPolicies.d.ts +3 -8
- package/dist/core/CapabilityPolicies.d.ts.map +1 -1
- package/dist/core/CapabilityPolicies.js +2 -28
- package/dist/core/CapabilityPolicies.js.map +1 -1
- package/dist/core/CapabilityResolver.d.ts +10 -10
- package/dist/core/CapabilityResolver.d.ts.map +1 -1
- package/dist/core/CapabilityResolver.js +87 -65
- package/dist/core/CapabilityResolver.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +14 -11
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +11 -12
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +99 -9
- package/dist/core/ClientInteractions.d.ts.map +1 -1
- package/dist/core/ClientInteractions.js +7 -0
- package/dist/core/ClientInteractions.js.map +1 -1
- package/dist/core/CoreSchemeServices.d.ts +13 -10
- package/dist/core/CoreSchemeServices.d.ts.map +1 -1
- package/dist/core/CoreSchemeServices.js +13 -5
- package/dist/core/CoreSchemeServices.js.map +1 -1
- package/dist/core/DataStatementRunner.d.ts +2 -2
- package/dist/core/DataStatementRunner.d.ts.map +1 -1
- package/dist/core/DataStatementRunner.js +36 -39
- package/dist/core/DataStatementRunner.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +19 -26
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +369 -219
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Dispatcher.sql +66 -0
- package/dist/core/DurableStatement.d.ts.map +1 -1
- package/dist/core/DurableStatement.js +2 -1
- package/dist/core/DurableStatement.js.map +1 -1
- package/dist/core/EditMutations.d.ts +14 -18
- package/dist/core/EditMutations.d.ts.map +1 -1
- package/dist/core/EditMutations.js +211 -280
- package/dist/core/EditMutations.js.map +1 -1
- package/dist/core/EditMutations.sql +15 -0
- package/dist/core/EditSequence.d.ts +13 -0
- package/dist/core/EditSequence.d.ts.map +1 -0
- package/dist/core/EditSequence.js +73 -0
- package/dist/core/EditSequence.js.map +1 -0
- package/dist/core/Engine.d.ts +17 -23
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +73 -163
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +0 -724
- package/dist/core/EntryAddressBinding.d.ts +7 -17
- package/dist/core/EntryAddressBinding.d.ts.map +1 -1
- package/dist/core/EntryAddressBinding.js +12 -72
- package/dist/core/EntryAddressBinding.js.map +1 -1
- package/dist/core/ExecutionOutputs.d.ts +9 -0
- package/dist/core/ExecutionOutputs.d.ts.map +1 -0
- package/dist/core/ExecutionOutputs.js +36 -0
- package/dist/core/ExecutionOutputs.js.map +1 -0
- package/dist/core/ExecutionOutputs.sql +13 -0
- package/dist/core/ExecutorRegistry.d.ts +7 -5
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +36 -32
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/HostPaths.d.ts +1 -0
- package/dist/core/HostPaths.d.ts.map +1 -1
- package/dist/core/HostPaths.js +4 -0
- package/dist/core/HostPaths.js.map +1 -1
- package/dist/core/InferenceCall.d.ts.map +1 -1
- package/dist/core/InferenceCall.js +1 -2
- package/dist/core/InferenceCall.js.map +1 -1
- package/dist/core/InferenceCall.sql +29 -0
- package/dist/core/KillHandler.d.ts +1 -0
- package/dist/core/KillHandler.d.ts.map +1 -1
- package/dist/core/KillHandler.js +24 -21
- package/dist/core/KillHandler.js.map +1 -1
- package/dist/core/LogBody.d.ts +8 -1
- package/dist/core/LogBody.d.ts.map +1 -1
- package/dist/core/LogBody.js +42 -11
- package/dist/core/LogBody.js.map +1 -1
- package/dist/core/LogEntryProjection.d.ts +1 -0
- package/dist/core/LogEntryProjection.d.ts.map +1 -1
- package/dist/core/LogEntryProjection.js +18 -10
- package/dist/core/LogEntryProjection.js.map +1 -1
- package/dist/core/LogVisibility.d.ts +1 -0
- package/dist/core/LogVisibility.d.ts.map +1 -1
- package/dist/core/LogVisibility.js +3 -0
- package/dist/core/LogVisibility.js.map +1 -1
- package/dist/core/LogWriter.d.ts +2 -3
- package/dist/core/LogWriter.d.ts.map +1 -1
- package/dist/core/LogWriter.js +25 -32
- package/dist/core/LogWriter.js.map +1 -1
- package/dist/core/LogWriter.sql +23 -0
- package/dist/core/LoopDriver.d.ts +11 -8
- package/dist/core/LoopDriver.d.ts.map +1 -1
- package/dist/core/LoopDriver.js +163 -189
- package/dist/core/LoopDriver.js.map +1 -1
- package/dist/core/LoopDriver.sql +11 -0
- package/dist/core/LoopLifecycle.d.ts +32 -2
- package/dist/core/LoopLifecycle.d.ts.map +1 -1
- package/dist/core/LoopLifecycle.js +88 -4
- package/dist/core/LoopLifecycle.js.map +1 -1
- package/dist/core/LoopLifecycle.sql +145 -28
- package/dist/core/LoopPolicyReader.sql +6 -0
- package/dist/core/MembershipMaterialization.d.ts.map +1 -1
- package/dist/core/MembershipMaterialization.js +6 -28
- package/dist/core/MembershipMaterialization.js.map +1 -1
- package/dist/core/ModelCall.sql +70 -0
- package/dist/core/MutationEffects.d.ts +5 -3
- package/dist/core/MutationEffects.d.ts.map +1 -1
- package/dist/core/MutationEffects.js +10 -28
- package/dist/core/MutationEffects.js.map +1 -1
- package/dist/core/NativeContent.d.ts +6 -0
- package/dist/core/NativeContent.d.ts.map +1 -0
- package/dist/core/NativeContent.js +16 -0
- package/dist/core/NativeContent.js.map +1 -0
- package/dist/core/NativeContent.sql +6 -0
- package/dist/core/NoticeChannel.js +1 -1
- package/dist/core/NoticeChannel.js.map +1 -1
- package/dist/core/OperatorConfig.js +5 -5
- package/dist/core/OperatorConfig.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts +8 -5
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +117 -81
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/PacketBuilder.sql +146 -0
- package/dist/core/PatternSelection.d.ts +28 -0
- package/dist/core/PatternSelection.d.ts.map +1 -0
- package/dist/core/PatternSelection.js +42 -0
- package/dist/core/PatternSelection.js.map +1 -0
- package/dist/core/ProblemLog.d.ts.map +1 -1
- package/dist/core/ProblemLog.js +0 -1
- package/dist/core/ProblemLog.js.map +1 -1
- package/dist/core/PromptFrames.d.ts +12 -0
- package/dist/core/PromptFrames.d.ts.map +1 -0
- package/dist/core/PromptFrames.js +28 -0
- package/dist/core/PromptFrames.js.map +1 -0
- package/dist/core/ProposalLifecycle.d.ts +0 -1
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +20 -19
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ProposalLifecycle.sql +33 -0
- package/dist/core/ProviderInstantiate.d.ts +1 -1
- package/dist/core/ProviderInstantiate.d.ts.map +1 -1
- package/dist/core/ProviderInstantiate.js +7 -14
- package/dist/core/ProviderInstantiate.js.map +1 -1
- package/dist/core/ReasoningView.d.ts +9 -0
- package/dist/core/ReasoningView.d.ts.map +1 -0
- package/dist/core/ReasoningView.js +47 -0
- package/dist/core/ReasoningView.js.map +1 -0
- package/dist/core/ResourceBindings.d.ts +16 -0
- package/dist/core/ResourceBindings.d.ts.map +1 -0
- package/dist/core/ResourceBindings.js +45 -0
- package/dist/core/ResourceBindings.js.map +1 -0
- package/dist/core/ResourceMutations.d.ts +5 -8
- package/dist/core/ResourceMutations.d.ts.map +1 -1
- package/dist/core/ResourceMutations.js +6 -7
- package/dist/core/ResourceMutations.js.map +1 -1
- package/dist/core/ResourceSelector.d.ts +2 -2
- package/dist/core/ResourceSelector.d.ts.map +1 -1
- package/dist/core/ResourceSelector.js +122 -62
- package/dist/core/ResourceSelector.js.map +1 -1
- package/dist/core/ResourceTransfers.d.ts +4 -2
- package/dist/core/ResourceTransfers.d.ts.map +1 -1
- package/dist/core/ResourceTransfers.js +95 -26
- package/dist/core/ResourceTransfers.js.map +1 -1
- package/dist/core/RuntimeWorker.d.ts +5 -0
- package/dist/core/RuntimeWorker.d.ts.map +1 -0
- package/dist/core/RuntimeWorker.js +10 -0
- package/dist/core/RuntimeWorker.js.map +1 -0
- package/dist/core/RuntimeWorker.sql +5 -0
- package/dist/core/SchemeRegistry.d.ts +12 -16
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +58 -84
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/StoredPacket.d.ts +6 -1
- package/dist/core/StoredPacket.d.ts.map +1 -1
- package/dist/core/StoredPacket.js +30 -10
- package/dist/core/StoredPacket.js.map +1 -1
- package/dist/core/StrikeRail.d.ts +9 -6
- package/dist/core/StrikeRail.d.ts.map +1 -1
- package/dist/core/StrikeRail.js +60 -113
- package/dist/core/StrikeRail.js.map +1 -1
- package/dist/core/StrikeRail.sql +12 -0
- package/dist/core/TerminalResult.d.ts +1 -1
- package/dist/core/TerminalResult.d.ts.map +1 -1
- package/dist/core/TerminalResult.js +2 -2
- package/dist/core/TerminalResult.js.map +1 -1
- package/dist/core/TokenCalibration.d.ts +1 -6
- package/dist/core/TokenCalibration.d.ts.map +1 -1
- package/dist/core/TokenCalibration.js +13 -9
- package/dist/core/TokenCalibration.js.map +1 -1
- package/dist/core/TokenCalibration.sql +15 -0
- package/dist/core/ToolInputSchema.d.ts +6 -0
- package/dist/core/ToolInputSchema.d.ts.map +1 -0
- package/dist/core/ToolInputSchema.js +43 -0
- package/dist/core/ToolInputSchema.js.map +1 -0
- package/dist/core/ToolResources.d.ts.map +1 -1
- package/dist/core/ToolResources.js +76 -52
- package/dist/core/ToolResources.js.map +1 -1
- package/dist/core/Turn.d.ts +5 -2
- package/dist/core/Turn.d.ts.map +1 -1
- package/dist/core/Turn.js +13 -11
- package/dist/core/Turn.js.map +1 -1
- package/dist/core/Turn.sql +25 -39
- package/dist/core/{SendBroadcastHandler.d.ts → TurnDispositionHandler.d.ts} +25 -17
- package/dist/core/TurnDispositionHandler.d.ts.map +1 -0
- package/dist/core/TurnDispositionHandler.js +198 -0
- package/dist/core/TurnDispositionHandler.js.map +1 -0
- package/dist/core/TurnMaterialization.d.ts +2 -3
- package/dist/core/TurnMaterialization.d.ts.map +1 -1
- package/dist/core/TurnMaterialization.js +40 -15
- package/dist/core/TurnMaterialization.js.map +1 -1
- package/dist/core/TurnMaterialization.sql +44 -0
- package/dist/core/TurnOps.d.ts.map +1 -1
- package/dist/core/TurnOps.js +8 -64
- package/dist/core/TurnOps.js.map +1 -1
- package/dist/core/TurnRunner.d.ts +9 -12
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +232 -408
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/TurnRunner.sql +74 -0
- package/dist/core/TurnSources.sql +39 -0
- package/dist/core/WorkerControlAddress.d.ts +1 -0
- package/dist/core/WorkerControlAddress.d.ts.map +1 -1
- package/dist/core/WorkerControlAddress.js +5 -0
- package/dist/core/WorkerControlAddress.js.map +1 -1
- package/dist/core/WorkerControlHandler.d.ts +1 -3
- package/dist/core/WorkerControlHandler.d.ts.map +1 -1
- package/dist/core/WorkerControlHandler.js +41 -48
- package/dist/core/WorkerControlHandler.js.map +1 -1
- package/dist/core/WorkerName.d.ts +8 -6
- package/dist/core/WorkerName.d.ts.map +1 -1
- package/dist/core/WorkerName.js +33 -24
- package/dist/core/WorkerName.js.map +1 -1
- package/dist/core/WorkerName.sql +7 -10
- package/dist/core/WorkspaceGate.d.ts +1 -1
- package/dist/core/WorkspaceGate.d.ts.map +1 -1
- package/dist/core/WorkspaceGate.js +29 -6
- package/dist/core/WorkspaceGate.js.map +1 -1
- package/dist/core/ambient.sql +236 -0
- package/dist/core/attachments.d.ts +2 -1
- package/dist/core/attachments.d.ts.map +1 -1
- package/dist/core/attachments.js +5 -4
- package/dist/core/attachments.js.map +1 -1
- package/dist/core/caps/CapsResolve.d.ts +2 -3
- package/dist/core/caps/CapsResolve.d.ts.map +1 -1
- package/dist/core/caps/CapsResolve.js +5 -5
- package/dist/core/caps/CapsResolve.js.map +1 -1
- package/dist/core/caps/DbChannelCaps.d.ts +1 -1
- package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
- package/dist/core/caps/DbChannelCaps.js +4 -6
- package/dist/core/caps/DbChannelCaps.js.map +1 -1
- package/dist/core/caps/DbEntryCaps.d.ts +2 -1
- package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
- package/dist/core/caps/DbEntryCaps.js +11 -17
- package/dist/core/caps/DbEntryCaps.js.map +1 -1
- package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
- package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
- package/dist/core/caps/DbNotifyCaps.js +3 -5
- package/dist/core/caps/DbNotifyCaps.js.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 +1 -1
- package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.js +5 -7
- package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.d.ts +0 -2
- package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.js +4 -20
- package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
- package/dist/core/env-defaults.d.ts.map +1 -1
- package/dist/core/env-defaults.js +4 -2
- package/dist/core/env-defaults.js.map +1 -1
- package/dist/core/file-materialization.d.ts +4 -1
- package/dist/core/file-materialization.d.ts.map +1 -1
- package/dist/core/file-materialization.js +14 -0
- package/dist/core/file-materialization.js.map +1 -1
- package/dist/core/fork.d.ts +1 -6
- package/dist/core/fork.d.ts.map +1 -1
- package/dist/core/fork.js +9 -153
- package/dist/core/fork.js.map +1 -1
- package/dist/core/fork.sql +162 -185
- 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 +39 -2
- package/dist/core/git-env.js.map +1 -1
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +64 -48
- 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 +25 -19
- package/dist/core/git-state.js.map +1 -1
- package/dist/core/glob_match.d.ts +4 -0
- package/dist/core/glob_match.d.ts.map +1 -0
- package/dist/core/glob_match.js +7 -0
- package/dist/core/glob_match.js.map +1 -0
- package/dist/core/maintenance.sql +6 -0
- package/dist/core/mutation-types.d.ts +7 -28
- package/dist/core/mutation-types.d.ts.map +1 -1
- package/dist/core/packet-inject.d.ts.map +1 -1
- package/dist/core/packet-inject.js +2 -3
- package/dist/core/packet-inject.js.map +1 -1
- package/dist/core/packet-wire.d.ts +8 -6
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +131 -163
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plurnk-uri.d.ts +1 -1
- package/dist/core/plurnk-uri.d.ts.map +1 -1
- package/dist/core/plurnk-uri.js +5 -12
- package/dist/core/plurnk-uri.js.map +1 -1
- package/dist/core/scheme-types.d.ts +3 -3
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/scheme-types.js.map +1 -1
- package/dist/core/sha256.d.ts +4 -0
- package/dist/core/sha256.d.ts.map +1 -0
- package/dist/core/sha256.js +6 -0
- package/dist/core/sha256.js.map +1 -0
- package/dist/core/teaching.js +1 -1
- package/dist/core/teaching.js.map +1 -1
- package/dist/core/turn-scheduler.d.ts.map +1 -1
- package/dist/core/turn-scheduler.js +5 -18
- package/dist/core/turn-scheduler.js.map +1 -1
- package/dist/core/turn-signals.d.ts +0 -6
- package/dist/core/turn-signals.d.ts.map +1 -1
- package/dist/core/turn-signals.js +1 -7
- package/dist/core/turn-signals.js.map +1 -1
- package/dist/core/worker-ops.sql +15 -22
- package/dist/core/workspace-settings.d.ts.map +1 -1
- package/dist/core/workspace-settings.js +18 -2
- package/dist/core/workspace-settings.js.map +1 -1
- package/dist/core/workspace-settings.sql +6 -0
- package/dist/digest/Digest.d.ts.map +1 -1
- package/dist/digest/Digest.js +27 -90
- package/dist/digest/Digest.js.map +1 -1
- package/dist/digest/DigestRender.d.ts.map +1 -1
- package/dist/digest/DigestRender.js +14 -54
- package/dist/digest/DigestRender.js.map +1 -1
- package/dist/digest/digest-rows.d.ts +10 -32
- package/dist/digest/digest-rows.d.ts.map +1 -1
- package/dist/digest/digest.sql +43 -18
- package/dist/schemes/Exec.d.ts +6 -12
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +256 -188
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts +8 -6
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +33 -61
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/ExecutionInput.d.ts +12 -0
- package/dist/schemes/ExecutionInput.d.ts.map +1 -0
- package/dist/schemes/ExecutionInput.js +94 -0
- package/dist/schemes/ExecutionInput.js.map +1 -0
- package/dist/schemes/File.d.ts +5 -2
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +62 -92
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +84 -79
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +183 -15
- package/dist/schemes/Prompt.d.ts.map +1 -1
- package/dist/schemes/Prompt.js +3 -12
- package/dist/schemes/Prompt.js.map +1 -1
- package/dist/schemes/QuestionTool.d.ts +5 -0
- package/dist/schemes/QuestionTool.d.ts.map +1 -1
- package/dist/schemes/QuestionTool.js +6 -14
- package/dist/schemes/QuestionTool.js.map +1 -1
- package/dist/schemes/Skill.d.ts +12 -7
- package/dist/schemes/Skill.d.ts.map +1 -1
- package/dist/schemes/Skill.js +149 -21
- package/dist/schemes/Skill.js.map +1 -1
- package/dist/schemes/TurnSource.d.ts +12 -0
- package/dist/schemes/TurnSource.d.ts.map +1 -0
- package/dist/schemes/TurnSource.js +116 -0
- package/dist/schemes/TurnSource.js.map +1 -0
- package/dist/schemes/Worker.d.ts +3 -3
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +61 -208
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts +12 -15
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +63 -63
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +142 -46
- package/dist/schemes/_entry-find.d.ts +1 -3
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +111 -112
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-find.sql +22 -14
- package/dist/schemes/_entry-fts.d.ts +14 -0
- package/dist/schemes/_entry-fts.d.ts.map +1 -0
- package/dist/schemes/_entry-fts.js +82 -0
- package/dist/schemes/_entry-fts.js.map +1 -0
- package/dist/schemes/_entry-fts.sql +31 -0
- package/dist/schemes/_entry-graph.d.ts.map +1 -1
- package/dist/schemes/_entry-graph.js +6 -14
- package/dist/schemes/_entry-graph.js.map +1 -1
- package/dist/schemes/_entry-graph.sql +29 -44
- package/dist/schemes/_entry-manifest.d.ts +2 -1
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +15 -12
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-manifest.sql +26 -0
- package/dist/schemes/_entry-ops.d.ts +3 -5
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +30 -43
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-ops.sql +5 -6
- package/dist/schemes/_entry-readable.d.ts +8 -0
- package/dist/schemes/_entry-readable.d.ts.map +1 -0
- package/dist/schemes/_entry-readable.js +38 -0
- package/dist/schemes/_entry-readable.js.map +1 -0
- package/dist/schemes/_entry-send.d.ts +1 -1
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js +3 -3
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/schemes/_search-index.d.ts +1 -3
- package/dist/schemes/_search-index.d.ts.map +1 -1
- package/dist/schemes/_search-index.js +79 -110
- package/dist/schemes/_search-index.js.map +1 -1
- package/dist/schemes/_search-index.sql +30 -0
- package/dist/schemes/exec-runtime.d.ts +1 -1
- package/dist/schemes/exec-runtime.d.ts.map +1 -1
- package/dist/schemes/exec-runtime.js.map +1 -1
- package/dist/server/ClientReads.d.ts +2 -2
- package/dist/server/ClientReads.d.ts.map +1 -1
- package/dist/server/ClientReads.js +5 -8
- package/dist/server/ClientReads.js.map +1 -1
- package/dist/server/Daemon.d.ts +14 -21
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +135 -156
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DaemonModule.d.ts +23 -21
- package/dist/server/DaemonModule.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.d.ts +8 -21
- package/dist/server/DrainSupervisor.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.js +278 -306
- package/dist/server/DrainSupervisor.js.map +1 -1
- package/dist/server/Functionality.d.ts +11 -12
- package/dist/server/Functionality.d.ts.map +1 -1
- package/dist/server/Functionality.js +129 -101
- package/dist/server/Functionality.js.map +1 -1
- package/dist/server/FunctionalityManager.d.ts +3 -5
- package/dist/server/FunctionalityManager.d.ts.map +1 -1
- package/dist/server/FunctionalityManager.js +20 -58
- package/dist/server/FunctionalityManager.js.map +1 -1
- package/dist/server/MembersFunctionality.d.ts +5 -4
- package/dist/server/MembersFunctionality.d.ts.map +1 -1
- package/dist/server/MembersFunctionality.js +24 -37
- package/dist/server/MembersFunctionality.js.map +1 -1
- package/dist/server/PlurnkSkill.d.ts +11 -0
- package/dist/server/PlurnkSkill.d.ts.map +1 -0
- package/dist/server/PlurnkSkill.js +41 -0
- package/dist/server/PlurnkSkill.js.map +1 -0
- package/dist/server/Retention.d.ts +22 -0
- package/dist/server/Retention.d.ts.map +1 -0
- package/dist/server/Retention.js +54 -0
- package/dist/server/Retention.js.map +1 -0
- package/dist/server/Retention.sql +36 -0
- package/dist/server/ServiceModules.d.ts +5 -0
- package/dist/server/ServiceModules.d.ts.map +1 -0
- package/dist/server/ServiceModules.js +10 -0
- package/dist/server/ServiceModules.js.map +1 -0
- package/dist/server/SkillsFunctionality.d.ts +14 -19
- package/dist/server/SkillsFunctionality.d.ts.map +1 -1
- package/dist/server/SkillsFunctionality.js +97 -104
- package/dist/server/SkillsFunctionality.js.map +1 -1
- package/dist/server/WorkerModelResolver.d.ts +4 -0
- package/dist/server/WorkerModelResolver.d.ts.map +1 -1
- package/dist/server/WorkerModelResolver.js +72 -39
- package/dist/server/WorkerModelResolver.js.map +1 -1
- package/dist/server/WorkspaceCapabilities.d.ts +21 -0
- package/dist/server/WorkspaceCapabilities.d.ts.map +1 -0
- package/dist/server/{WorkerCapabilities.js → WorkspaceCapabilities.js} +40 -40
- package/dist/server/WorkspaceCapabilities.js.map +1 -0
- package/dist/server/WorkspaceResidency.d.ts +36 -0
- package/dist/server/WorkspaceResidency.d.ts.map +1 -0
- package/dist/server/WorkspaceResidency.js +199 -0
- package/dist/server/WorkspaceResidency.js.map +1 -0
- package/dist/server/client-input.d.ts +1 -4
- package/dist/server/client-input.d.ts.map +1 -1
- package/dist/server/client-input.js +4 -45
- package/dist/server/client-input.js.map +1 -1
- package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
- package/dist/server/dispatch-as-plurnk.js +4 -22
- package/dist/server/dispatch-as-plurnk.js.map +1 -1
- package/dist/server/drain.sql +65 -42
- package/dist/server/envelope.d.ts +8 -0
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +9 -7
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +49 -13
- package/dist/server/lifecycle-recovery.sql +14 -17
- package/dist/server/logEntry.d.ts +1 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +4 -1
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/logEntry.sql +25 -1
- package/dist/server/loopDocs.d.ts +2 -2
- package/dist/server/loopDocs.d.ts.map +1 -1
- package/dist/server/loopDocs.js +38 -31
- package/dist/server/loopDocs.js.map +1 -1
- package/dist/server/loopDocs.sql +1 -3
- package/dist/server/model-catalog.d.ts.map +1 -1
- package/dist/server/model-catalog.js +2 -1
- package/dist/server/model-catalog.js.map +1 -1
- package/dist/server/model-route.d.ts +1 -1
- package/dist/server/model-route.d.ts.map +1 -1
- package/dist/server/model-route.js +4 -2
- package/dist/server/model-route.js.map +1 -1
- package/dist/server/seam-entry-read.sql +3 -4
- package/dist/server/seam-loop.sql +2 -9
- package/dist/server/workspace-capabilities.sql +19 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +5 -17
- package/dist/service.js.map +1 -1
- package/docs/members.md +83 -0
- package/docs/skills.md +50 -0
- package/migrations/001_workspaces.sql +53 -0
- package/migrations/002_workers.sql +183 -0
- package/migrations/003_loops.sql +326 -0
- package/migrations/004_inference.sql +360 -0
- package/migrations/005_entries.sql +207 -0
- package/migrations/006_log.sql +578 -0
- package/migrations/007_subscriptions.sql +175 -0
- package/migrations/008_interactions.sql +29 -0
- package/package.json +33 -40
- package/digest-sql/channel-dispositions/dispositions.sql +0 -15
- package/digest-sql/channel-state/state.sql +0 -6
- package/digest-sql/curation/curation.sql +0 -6
- package/digest-sql/derivations/derivations.sql +0 -4
- package/digest-sql/embeddings/embeddings.sql +0 -4
- package/digest-sql/entry-dispositions/dispositions.sql +0 -15
- package/digest-sql/entry-state/state.sql +0 -6
- package/digest-sql/token-counts/token-counts.sql +0 -2
- package/dist/core/EmbeddingCall.d.ts +0 -23
- package/dist/core/EmbeddingCall.d.ts.map +0 -1
- package/dist/core/EmbeddingCall.js +0 -149
- package/dist/core/EmbeddingCall.js.map +0 -1
- package/dist/core/OverflowTurn.d.ts +0 -11
- package/dist/core/OverflowTurn.d.ts.map +0 -1
- package/dist/core/OverflowTurn.js +0 -80
- package/dist/core/OverflowTurn.js.map +0 -1
- package/dist/core/Owner.d.ts +0 -8
- package/dist/core/Owner.d.ts.map +0 -1
- package/dist/core/Owner.js +0 -46
- package/dist/core/Owner.js.map +0 -1
- package/dist/core/SendBroadcastHandler.d.ts.map +0 -1
- package/dist/core/SendBroadcastHandler.js +0 -159
- package/dist/core/SendBroadcastHandler.js.map +0 -1
- package/dist/core/VectorPump.d.ts +0 -28
- package/dist/core/VectorPump.d.ts.map +0 -1
- package/dist/core/VectorPump.js +0 -130
- package/dist/core/VectorPump.js.map +0 -1
- package/dist/core/owner.sql +0 -11
- package/dist/core/worker-settings.d.ts +0 -10
- package/dist/core/worker-settings.d.ts.map +0 -1
- package/dist/core/worker-settings.js +0 -53
- package/dist/core/worker-settings.js.map +0 -1
- package/dist/schemes/_entry-chunk.d.ts +0 -14
- package/dist/schemes/_entry-chunk.d.ts.map +0 -1
- package/dist/schemes/_entry-chunk.js +0 -165
- package/dist/schemes/_entry-chunk.js.map +0 -1
- package/dist/schemes/_entry-semantic.d.ts +0 -63
- package/dist/schemes/_entry-semantic.d.ts.map +0 -1
- package/dist/schemes/_entry-semantic.js +0 -299
- package/dist/schemes/_entry-semantic.js.map +0 -1
- package/dist/schemes/_entry-semantic.sql +0 -99
- package/dist/schemes/cosine.d.ts +0 -4
- package/dist/schemes/cosine.d.ts.map +0 -1
- package/dist/schemes/cosine.js +0 -9
- package/dist/schemes/cosine.js.map +0 -1
- package/dist/server/WorkerCapabilities.d.ts +0 -21
- package/dist/server/WorkerCapabilities.d.ts.map +0 -1
- package/dist/server/WorkerCapabilities.js.map +0 -1
- package/dist/server/WorkerResidency.d.ts +0 -40
- package/dist/server/WorkerResidency.d.ts.map +0 -1
- package/dist/server/WorkerResidency.js +0 -283
- package/dist/server/WorkerResidency.js.map +0 -1
- package/dist/server/seam-log-read.sql +0 -21
- package/dist/server/worker-capabilities.sql +0 -28
- package/migrations/001_schema.sql +0 -2207
package/dist/server/drain.sql
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
-- {§worker-loop-lifecycle} — the worker-level loop queue: enqueue at status 100,
|
|
2
|
-
-- claim atomically (100 → 102) in FIFO order
|
|
2
|
+
-- claim eligible tasks atomically (100 → 102) in FIFO order and continue draining.
|
|
3
3
|
|
|
4
4
|
-- {§worker-model-selection} — resolved model routes are append-only; one row per complete
|
|
5
5
|
-- resolved tuple. Create-or-lookup is one owner (the drain boundary).
|
|
@@ -17,19 +17,31 @@ SELECT alias, provider, model, base_url FROM model_routes WHERE id = $id;
|
|
|
17
17
|
|
|
18
18
|
-- PREP: drain_enqueue_loop
|
|
19
19
|
-- Insert a loop at queued state. Sequence is per-worker, 1-based.
|
|
20
|
-
INSERT INTO loops (worker_id, sequence, status, prompt, prompt_source, model_route_id, spawn_model_route_id, reasoning_policy, max_turns)
|
|
21
|
-
VALUES ($worker_id,
|
|
22
|
-
|
|
20
|
+
INSERT INTO loops (worker_id, sequence, status, prompt, prompt_source, model_route_id, spawn_model_route_id, reasoning_policy, max_turns, policy, open_paths, scheduled_at, repeat_interval_ms)
|
|
21
|
+
VALUES ($worker_id, (SELECT COALESCE(MAX(sequence), 0) + 1 FROM loops WHERE worker_id = $worker_id), 100,
|
|
22
|
+
$prompt, $prompt_source, $model_route_id, $spawn_model_route_id, $reasoning_policy, $max_turns, $policy, $open_paths,
|
|
23
|
+
$scheduled_at, $repeat_interval_ms)
|
|
24
|
+
RETURNING id, scheduled_at, repeat_interval_ms;
|
|
25
|
+
|
|
26
|
+
-- PREP: drain_ready_loop
|
|
27
|
+
SELECT id FROM loops WHERE worker_id = $worker_id AND status = 100
|
|
28
|
+
AND (scheduled_at IS NULL OR wait_revision > 0 OR scheduled_at <= $now)
|
|
29
|
+
ORDER BY sequence LIMIT 1;
|
|
30
|
+
|
|
31
|
+
-- PREP: drain_scheduled_loops
|
|
32
|
+
SELECT id, wait_revision, scheduled_at FROM loops
|
|
33
|
+
WHERE worker_id = $worker_id AND status = 100 AND scheduled_at IS NOT NULL AND wait_revision = 0;
|
|
23
34
|
|
|
24
35
|
-- PREP: drain_claim_next_loop
|
|
25
|
-
--
|
|
26
|
-
-- return it. Returns no row when the queue is empty. The ORDER BY sequence
|
|
27
|
-
-- + LIMIT 1 inside the subquery is the FIFO discipline.
|
|
36
|
+
-- Claim the oldest eligible task. A WAIT wake keeps its already-selected slot.
|
|
28
37
|
UPDATE loops
|
|
29
|
-
SET status = 102
|
|
38
|
+
SET status = 102,
|
|
39
|
+
scheduled_at = CASE WHEN repeat_interval_ms IS NULL OR wait_revision > 0 THEN scheduled_at
|
|
40
|
+
ELSE scheduled_at + MAX(0, CAST(($now - scheduled_at) / repeat_interval_ms AS INTEGER)) * repeat_interval_ms END
|
|
30
41
|
WHERE id = (
|
|
31
42
|
SELECT id FROM loops
|
|
32
43
|
WHERE worker_id = $worker_id AND status = 100
|
|
44
|
+
AND (scheduled_at IS NULL OR wait_revision > 0 OR scheduled_at <= $now)
|
|
33
45
|
ORDER BY sequence ASC
|
|
34
46
|
LIMIT 1
|
|
35
47
|
)
|
|
@@ -39,15 +51,21 @@ RETURNING id, sequence, prompt, policy, max_turns;
|
|
|
39
51
|
SELECT max_turns FROM loops WHERE id = $loop_id;
|
|
40
52
|
|
|
41
53
|
-- PREP: drain_current_loop_for_worker
|
|
42
|
-
--
|
|
43
|
-
--
|
|
44
|
-
-- next turn; {§methods-loop-run-fold-consistency} requires an IRC to target a PARKED loop's
|
|
45
|
-
-- resume turn instead of orphaning it with a fresh loop. (102 preferred if both somehow exist.)
|
|
54
|
+
-- {§loop-wake-identity}: unaddressed arrivals choose the running loop first,
|
|
55
|
+
-- otherwise the oldest parked loop. Admission checks and writes that exact id.
|
|
46
56
|
SELECT id, sequence FROM loops
|
|
47
57
|
WHERE worker_id = $worker_id AND status IN (102, 202)
|
|
48
58
|
ORDER BY (status = 102) DESC, sequence ASC
|
|
49
59
|
LIMIT 1;
|
|
50
60
|
|
|
61
|
+
-- PREP: drain_injection_target
|
|
62
|
+
SELECT worker_id, sequence FROM loops WHERE id = $loop_id AND status IN (100, 102, 202);
|
|
63
|
+
|
|
64
|
+
-- PREP: drain_message_source
|
|
65
|
+
SELECT l.worker_id, w.workspace_id, l.status
|
|
66
|
+
FROM loops l JOIN workers w ON w.id = l.worker_id
|
|
67
|
+
WHERE l.id = $loop_id;
|
|
68
|
+
|
|
51
69
|
-- PREP: drain_next_turn_seq_for_loop
|
|
52
70
|
-- Next turn sequence for the given loop. Used by Engine.inject to compute
|
|
53
71
|
-- the turn on which its next prompt frame will be published.
|
|
@@ -61,11 +79,12 @@ SELECT workspace_id FROM workers WHERE id = $worker_id;
|
|
|
61
79
|
|
|
62
80
|
-- PREP: drain_next_prompt_ordinal_for_loop
|
|
63
81
|
-- {§prompt-loop-containment} — derive the next per-loop frame ordinal from the
|
|
64
|
-
-- greatest
|
|
82
|
+
-- greatest persisted delivery ordinal. The initial frame reserves ordinal 1 even
|
|
65
83
|
-- before turn 1 materializes it, so an injection starts at 2.
|
|
66
|
-
SELECT COALESCE(MAX(
|
|
67
|
-
FROM entries
|
|
68
|
-
WHERE scheme = 'prompt' AND
|
|
84
|
+
SELECT COALESCE(MAX(json_extract(e.attributes, '$.ordinal')), 1) + 1 AS next
|
|
85
|
+
FROM entries e JOIN workers w ON w.workspace_id = e.workspace_id AND w.name = e.authority
|
|
86
|
+
WHERE scheme = 'prompt' AND w.id = $worker_id
|
|
87
|
+
AND substr(pathname, 1, $prefix_len) = substr($pattern, 1, $prefix_len);
|
|
69
88
|
|
|
70
89
|
-- PREP: drain_undelivered_prompts_for_loop
|
|
71
90
|
-- {§prompt-loop-containment} - the prompts the loop contains but has not yet delivered: no
|
|
@@ -73,40 +92,40 @@ WHERE scheme = 'prompt' AND authority = '' AND owner_id = $owner_id AND pathname
|
|
|
73
92
|
-- boundary publishes each, so every arrival reaches the model exactly once.
|
|
74
93
|
SELECT c.content, e.pathname, e.attributes
|
|
75
94
|
FROM entries e
|
|
95
|
+
JOIN workers w ON w.workspace_id = e.workspace_id AND w.name = e.authority
|
|
76
96
|
JOIN entry_channels c ON c.entry_id = e.id
|
|
77
97
|
WHERE e.scheme = 'prompt'
|
|
78
|
-
AND
|
|
79
|
-
AND e.
|
|
80
|
-
AND e.pathname LIKE $pattern
|
|
98
|
+
AND w.id = $worker_id
|
|
99
|
+
AND substr(e.pathname, 1, $prefix_len) = substr($pattern, 1, $prefix_len)
|
|
81
100
|
AND c.name = 'body'
|
|
82
101
|
AND NOT EXISTS (
|
|
83
102
|
SELECT 1 FROM log_entries le
|
|
84
103
|
WHERE le.loop_id = $loop_id AND le.origin = '_plurnk' AND le.op = 'prompt'
|
|
85
104
|
AND le.scheme = 'prompt' AND le.pathname = e.pathname
|
|
86
105
|
)
|
|
87
|
-
ORDER BY
|
|
106
|
+
ORDER BY json_extract(e.attributes, '$.ordinal') ASC;
|
|
88
107
|
|
|
89
108
|
-- PREP: drain_get_all_prompt_bodies_for_loop
|
|
90
|
-
-- Sources the Active
|
|
109
|
+
-- Sources the Active Prompts section: EVERY prompt entry the
|
|
91
110
|
-- current loop holds, OLDEST first — typically one, but an active loop admits injected
|
|
92
|
-
-- prompts (multiple prompt
|
|
111
|
+
-- prompts (multiple prompt://<worker>/<loop>/<id> entries), all shown in order. Same pattern as
|
|
93
112
|
-- the latest-only sibling (promptLoopPrefix pattern, built JS-side); the section renders
|
|
94
113
|
-- each body in its fixed model-facing enclosure.
|
|
95
114
|
SELECT c.content, e.pathname
|
|
96
115
|
FROM entries e
|
|
116
|
+
JOIN workers w ON w.workspace_id = e.workspace_id AND w.name = e.authority
|
|
97
117
|
JOIN entry_channels c ON c.entry_id = e.id
|
|
98
118
|
WHERE e.scheme = 'prompt'
|
|
99
|
-
AND
|
|
100
|
-
AND e.
|
|
101
|
-
AND e.pathname LIKE $pattern
|
|
119
|
+
AND w.id = $worker_id
|
|
120
|
+
AND substr(e.pathname, 1, $prefix_len) = substr($pattern, 1, $prefix_len)
|
|
102
121
|
AND c.name = 'body'
|
|
103
|
-
ORDER BY
|
|
122
|
+
ORDER BY json_extract(e.attributes, '$.ordinal') ASC;
|
|
104
123
|
|
|
105
124
|
-- PREP: drain_orphaned_prompts_for_loop
|
|
106
125
|
-- A loop can terminate before consuming a next-turn prompt injected into it
|
|
107
126
|
-- (a wake-on-completion, or a runLoop-while-active prompt that landed on a turn the
|
|
108
|
-
-- loop never reached). Engine.inject writes prompt
|
|
109
|
-
--
|
|
127
|
+
-- loop never reached). Engine.inject writes prompt://<worker>/<loop>/<id>;
|
|
128
|
+
-- a prompt without a publication row has not been delivered.
|
|
110
129
|
-- Return the complete orphan set oldest-first with the ended loop posture so
|
|
111
130
|
-- one recovery loop can preserve frame cardinality and ordering.
|
|
112
131
|
-- $pattern = promptLoopPrefix + '%', $prefix_len = length of that prefix
|
|
@@ -118,19 +137,22 @@ SELECT c.content AS body, l.policy AS policy, l.model_route_id AS model_route_id
|
|
|
118
137
|
json_extract(e.attributes, '$.openPaths') AS open_paths,
|
|
119
138
|
json_extract(e.attributes, '$.source') AS prompt_source
|
|
120
139
|
FROM entries e
|
|
140
|
+
JOIN workers w ON w.workspace_id = e.workspace_id AND w.name = e.authority
|
|
121
141
|
JOIN entry_channels c ON c.entry_id = e.id
|
|
122
142
|
JOIN loops l ON l.id = $loop_id
|
|
123
143
|
WHERE e.scheme = 'prompt'
|
|
124
|
-
AND
|
|
125
|
-
AND
|
|
126
|
-
AND
|
|
144
|
+
AND l.status IN (200, 413, 429, 499, 500, 504, 508)
|
|
145
|
+
AND l.terminated_by IS NOT 'cancel'
|
|
146
|
+
AND l.sequence > (SELECT cancelled_through_sequence FROM workers WHERE id = l.worker_id)
|
|
147
|
+
AND w.id = $worker_id
|
|
148
|
+
AND substr(e.pathname, 1, $prefix_len) = substr($pattern, 1, $prefix_len)
|
|
127
149
|
AND c.name = 'body'
|
|
128
150
|
AND NOT EXISTS (
|
|
129
151
|
SELECT 1 FROM log_entries le
|
|
130
152
|
WHERE le.loop_id = $loop_id AND le.origin = '_plurnk' AND le.op = 'prompt'
|
|
131
153
|
AND le.scheme = 'prompt' AND le.pathname = e.pathname
|
|
132
154
|
)
|
|
133
|
-
ORDER BY
|
|
155
|
+
ORDER BY json_extract(e.attributes, '$.ordinal') ASC;
|
|
134
156
|
|
|
135
157
|
-- PREP: drain_enqueue_orphan_recovery_loop
|
|
136
158
|
-- {§prompt-loop-containment}: recovery identity is the concluded source loop.
|
|
@@ -140,7 +162,8 @@ INSERT INTO loops (
|
|
|
140
162
|
open_paths, orphan_source_loop_id
|
|
141
163
|
)
|
|
142
164
|
VALUES (
|
|
143
|
-
$worker_id,
|
|
165
|
+
$worker_id, (SELECT COALESCE(MAX(sequence), 0) + 1 FROM loops WHERE worker_id = $worker_id),
|
|
166
|
+
100, $prompt, $prompt_source, $policy, $model_route_id, $spawn_model_route_id, $reasoning_policy, $max_turns,
|
|
144
167
|
$open_paths, $orphan_source_loop_id
|
|
145
168
|
)
|
|
146
169
|
ON CONFLICT (orphan_source_loop_id) DO UPDATE
|
|
@@ -154,12 +177,12 @@ RETURNING id, sequence, status;
|
|
|
154
177
|
WITH orphaned(id, ordinal) AS MATERIALIZED (
|
|
155
178
|
SELECT e.id,
|
|
156
179
|
ROW_NUMBER() OVER (
|
|
157
|
-
ORDER BY
|
|
180
|
+
ORDER BY json_extract(e.attributes, '$.ordinal') ASC
|
|
158
181
|
)
|
|
159
182
|
FROM entries e
|
|
183
|
+
JOIN workers w ON w.workspace_id = e.workspace_id AND w.name = e.authority
|
|
160
184
|
WHERE e.scheme = 'prompt'
|
|
161
|
-
AND
|
|
162
|
-
AND e.owner_id = $owner_id
|
|
185
|
+
AND w.id = $worker_id
|
|
163
186
|
AND e.pathname LIKE $source_pattern
|
|
164
187
|
AND EXISTS (
|
|
165
188
|
SELECT 1 FROM entry_channels c
|
|
@@ -172,16 +195,16 @@ WITH orphaned(id, ordinal) AS MATERIALIZED (
|
|
|
172
195
|
)
|
|
173
196
|
)
|
|
174
197
|
UPDATE entries
|
|
175
|
-
SET pathname = $target_prefix || (
|
|
198
|
+
SET pathname = $target_prefix || substr(pathname, $source_prefix_len + 1),
|
|
199
|
+
attributes = json_set(attributes, '$.ordinal', (
|
|
176
200
|
SELECT ordinal FROM orphaned WHERE orphaned.id = entries.id
|
|
177
|
-
)
|
|
201
|
+
))
|
|
178
202
|
WHERE id IN (SELECT id FROM orphaned)
|
|
179
203
|
RETURNING id, pathname;
|
|
180
204
|
|
|
181
205
|
-- PREP: drain_find_slept_loop
|
|
182
|
-
--
|
|
183
|
-
|
|
184
|
-
SELECT id FROM loops WHERE worker_id = $worker_id AND status = 202 ORDER BY sequence DESC LIMIT 1;
|
|
206
|
+
-- Existence/arrival selection only; completion wakes use all eligible waits.
|
|
207
|
+
SELECT id FROM loops WHERE worker_id = $worker_id AND status = 202 ORDER BY sequence ASC LIMIT 1;
|
|
185
208
|
|
|
186
209
|
-- PREP: drain_loop_generation_policy
|
|
187
210
|
SELECT model_route_id, spawn_model_route_id, reasoning_policy FROM loops WHERE id = $loop_id;
|
|
@@ -203,7 +226,7 @@ FROM subscriptions WHERE worker_id = $worker_id AND closed_at IS NULL;
|
|
|
203
226
|
|
|
204
227
|
-- PREP: worker_parent_id
|
|
205
228
|
-- A worker's parent (worker:// spawn / fork set parent_worker_id, {§lifecycle-terms}). NULL = a root worker.
|
|
206
|
-
--
|
|
229
|
+
-- {§worker-lifecycle-child-wake}: direct parent of a terminal task's worker.
|
|
207
230
|
SELECT parent_worker_id FROM workers WHERE id = $worker_id;
|
|
208
231
|
|
|
209
232
|
-- PREP: worker_lineage_contains
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Db } from "../core/Db.ts";
|
|
2
2
|
import { type SchemeResult } from "../core/results.ts";
|
|
3
|
+
import { type ApplicationWorkerKind, type LoopLifecycle as WorkerLifecycle } from "@plurnk/plurnk-contracts";
|
|
3
4
|
export interface WorkspaceRow {
|
|
4
5
|
id: number;
|
|
5
6
|
name: string;
|
|
@@ -12,7 +13,14 @@ export interface WorkerRow {
|
|
|
12
13
|
created_at: string;
|
|
13
14
|
origin: "model" | "client" | "_plurnk";
|
|
14
15
|
parentWorkerId: number | null;
|
|
16
|
+
kind: ApplicationWorkerKind;
|
|
17
|
+
lifecycle: WorkerLifecycle;
|
|
15
18
|
}
|
|
19
|
+
export declare const projectWorkerRow: <T extends {
|
|
20
|
+
latestLoopStatus: number | null;
|
|
21
|
+
}>(row: T) => Omit<T, "latestLoopStatus"> & {
|
|
22
|
+
lifecycle: WorkerLifecycle;
|
|
23
|
+
};
|
|
16
24
|
export interface WorkerQuery {
|
|
17
25
|
origin?: WorkerRow["origin"];
|
|
18
26
|
parentWorkerId?: number | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAgB,EAAyB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"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"}
|
package/dist/server/envelope.js
CHANGED
|
@@ -8,11 +8,16 @@ import GitMembership from "../core/git-membership.js";
|
|
|
8
8
|
import Results, { OperationFailureError } from "../core/results.js";
|
|
9
9
|
import LoopLifecycle from "../core/LoopLifecycle.js";
|
|
10
10
|
import WorkerName from "../core/WorkerName.js";
|
|
11
|
+
import { lifecycleOfLoopStatus } from "@plurnk/plurnk-contracts";
|
|
11
12
|
const envelopeFailure = (owner, code, status, detail, extensions = {}) => new OperationFailureError(Results.failure(owner, code, status, detail, {}, extensions));
|
|
13
|
+
// The SQL projects the latest loop's status; the shared vocabulary turns it into a lifecycle word.
|
|
14
|
+
export const projectWorkerRow = (row) => {
|
|
15
|
+
const { latestLoopStatus, ...rest } = row;
|
|
16
|
+
return { ...rest, lifecycle: lifecycleOfLoopStatus(latestLoopStatus) };
|
|
17
|
+
};
|
|
12
18
|
export default class Envelope {
|
|
13
19
|
// {§workspace-auto-name} — five characters from the line-anchor alphabet, no prefix:
|
|
14
|
-
// a name says nothing about where the workspace came from.
|
|
15
|
-
// workspace-local `<prefix>-<ordinal>` contract in WorkerName.
|
|
20
|
+
// a name says nothing about where the workspace came from.
|
|
16
21
|
static AUTO_NAME_ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
|
17
22
|
static generateWorkspaceName() {
|
|
18
23
|
return Array.from(randomBytes(5), (byte) => Envelope.AUTO_NAME_ALPHABET[byte % 62]).join("");
|
|
@@ -38,7 +43,6 @@ export default class Envelope {
|
|
|
38
43
|
await GitMembership.resolveGitMembership(db, workspace.id, undefined);
|
|
39
44
|
const worker = await WorkerName.claimAuto(db, {
|
|
40
45
|
workspaceId: workspace.id,
|
|
41
|
-
prefix: "client",
|
|
42
46
|
origin: "client",
|
|
43
47
|
});
|
|
44
48
|
return {
|
|
@@ -88,7 +92,6 @@ export default class Envelope {
|
|
|
88
92
|
}
|
|
89
93
|
return await WorkerName.claimAuto(db, {
|
|
90
94
|
workspaceId,
|
|
91
|
-
prefix: "client",
|
|
92
95
|
origin: "client",
|
|
93
96
|
});
|
|
94
97
|
}
|
|
@@ -122,7 +125,6 @@ export default class Envelope {
|
|
|
122
125
|
if (name === undefined) {
|
|
123
126
|
return await WorkerName.claimAuto(db, {
|
|
124
127
|
workspaceId,
|
|
125
|
-
prefix: "model",
|
|
126
128
|
origin: "model",
|
|
127
129
|
});
|
|
128
130
|
}
|
|
@@ -141,7 +143,6 @@ export default class Envelope {
|
|
|
141
143
|
// distinguishes this default from arbitrary fresh conversations.
|
|
142
144
|
const worker = await WorkerName.ensureDefaultConversation(db, {
|
|
143
145
|
workspaceId,
|
|
144
|
-
prefix: "model",
|
|
145
146
|
});
|
|
146
147
|
return worker.id;
|
|
147
148
|
}
|
|
@@ -159,12 +160,13 @@ export default class Envelope {
|
|
|
159
160
|
}
|
|
160
161
|
static async listWorkersForWorkspace(db, workspaceId, query = {}) {
|
|
161
162
|
const filterParent = Object.hasOwn(query, "parentWorkerId");
|
|
162
|
-
|
|
163
|
+
const rows = await db.envelope_list_workers_for_workspace.all({
|
|
163
164
|
workspace_id: workspaceId,
|
|
164
165
|
origin: query.origin ?? null,
|
|
165
166
|
filter_parent: filterParent ? 1 : 0,
|
|
166
167
|
parent_worker_id: query.parentWorkerId ?? null,
|
|
167
168
|
});
|
|
169
|
+
return rows.map(projectWorkerRow);
|
|
168
170
|
}
|
|
169
171
|
// {§methods-workspace-prompts}: expose root-conversation loop seeds directly,
|
|
170
172
|
// without forcing clients to reconstruct prompt history from log rows.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,kFAAkF;AAClF,qFAAqF;AACrF,4FAA4F;AAG5F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,aAAa,MAAM,2BAA2B,CAAC;AACtD,OAAO,OAAO,EAAE,EAAE,qBAAqB,EAAqB,MAAM,oBAAoB,CAAC;AACvF,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,UAAU,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"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"}
|
package/dist/server/envelope.sql
CHANGED
|
@@ -33,50 +33,86 @@ INSERT INTO workers (workspace_id, name, origin)
|
|
|
33
33
|
VALUES ($workspace_id, $name, $origin)
|
|
34
34
|
RETURNING id, name, origin;
|
|
35
35
|
|
|
36
|
+
-- {§application-worker-observation}: kind is minted lineage (fork boundary → fork, other child →
|
|
37
|
+
-- work, root → conversation); latestLoopStatus feeds the shared lifecycle vocabulary in TS.
|
|
36
38
|
-- PREP: envelope_get_worker_by_id
|
|
37
39
|
SELECT id, name, workspace_id, created_at, origin,
|
|
38
|
-
parent_worker_id AS parentWorkerId
|
|
40
|
+
parent_worker_id AS parentWorkerId,
|
|
41
|
+
CASE WHEN fork_event_boundary IS NOT NULL THEN 'fork'
|
|
42
|
+
WHEN parent_worker_id IS NOT NULL THEN 'work'
|
|
43
|
+
ELSE 'conversation' END AS kind,
|
|
44
|
+
(SELECT l.status FROM work_loops l WHERE l.worker_id = workers.id ORDER BY l.sequence DESC LIMIT 1) AS latestLoopStatus
|
|
39
45
|
FROM workers
|
|
40
46
|
WHERE id = $id;
|
|
41
47
|
|
|
42
48
|
-- PREP: envelope_get_worker_by_name
|
|
43
49
|
SELECT id, name, workspace_id, created_at, origin,
|
|
44
|
-
parent_worker_id AS parentWorkerId
|
|
50
|
+
parent_worker_id AS parentWorkerId,
|
|
51
|
+
CASE WHEN fork_event_boundary IS NOT NULL THEN 'fork'
|
|
52
|
+
WHEN parent_worker_id IS NOT NULL THEN 'work'
|
|
53
|
+
ELSE 'conversation' END AS kind,
|
|
54
|
+
(SELECT l.status FROM work_loops l WHERE l.worker_id = workers.id ORDER BY l.sequence DESC LIMIT 1) AS latestLoopStatus
|
|
45
55
|
FROM workers
|
|
46
56
|
WHERE workspace_id = $workspace_id AND name = $name;
|
|
47
57
|
|
|
48
58
|
-- PREP: envelope_list_workers_for_workspace
|
|
49
|
-
SELECT id, name, created_at, origin, parent_worker_id AS parentWorkerId
|
|
59
|
+
SELECT id, name, created_at, origin, parent_worker_id AS parentWorkerId,
|
|
60
|
+
CASE WHEN fork_event_boundary IS NOT NULL THEN 'fork'
|
|
61
|
+
WHEN parent_worker_id IS NOT NULL THEN 'work'
|
|
62
|
+
ELSE 'conversation' END AS kind,
|
|
63
|
+
(SELECT l.status FROM work_loops l WHERE l.worker_id = workers.id ORDER BY l.sequence DESC LIMIT 1) AS latestLoopStatus
|
|
50
64
|
FROM workers
|
|
51
65
|
WHERE workspace_id = $workspace_id
|
|
52
66
|
AND ($origin IS NULL OR origin = $origin)
|
|
53
67
|
AND ($filter_parent = 0 OR parent_worker_id IS $parent_worker_id)
|
|
54
68
|
ORDER BY created_at DESC;
|
|
55
69
|
|
|
56
|
-
-- PREP:
|
|
57
|
-
-- {§
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
-- PREP: worker_settings_update
|
|
61
|
-
UPDATE workers
|
|
62
|
-
SET settings = $settings,
|
|
63
|
-
version = version + 1
|
|
64
|
-
WHERE id = $id
|
|
70
|
+
-- PREP: workspace_capability_policy_update
|
|
71
|
+
-- {§workspace-capability-policy}: one atomic field replacement preserves other settings.
|
|
72
|
+
UPDATE workspaces SET settings = json_set(settings, '$.capabilities', json($policy))
|
|
73
|
+
WHERE id = $workspace_id
|
|
65
74
|
RETURNING id;
|
|
66
75
|
|
|
67
76
|
-- PREP: worker_generation_policy_read
|
|
68
77
|
-- {§worker-model-selection}/{§worker-reasoning-policy} — one durable generation policy.
|
|
69
|
-
SELECT model_route_id, spawn_model_route_id, reasoning_policy FROM workers WHERE id = $id;
|
|
78
|
+
SELECT model_route_id, spawn_model_route_id, reasoning_policy, reasoning_source FROM workers WHERE id = $id;
|
|
70
79
|
|
|
71
80
|
-- PREP: worker_generation_policy_update
|
|
81
|
+
-- {§worker-model-selection}: test liveness in the policy write, not before it.
|
|
72
82
|
UPDATE workers
|
|
73
83
|
SET model_route_id = $model_route_id,
|
|
74
84
|
spawn_model_route_id = $spawn_model_route_id,
|
|
75
85
|
reasoning_policy = $reasoning_policy,
|
|
86
|
+
reasoning_source = $reasoning_source,
|
|
76
87
|
version = version + 1
|
|
77
88
|
WHERE id = $id
|
|
89
|
+
AND (
|
|
90
|
+
model_route_id IS NULL
|
|
91
|
+
OR (model_route_id IS $model_route_id
|
|
92
|
+
AND spawn_model_route_id IS $spawn_model_route_id
|
|
93
|
+
AND reasoning_policy IS $reasoning_policy)
|
|
94
|
+
OR NOT EXISTS (
|
|
95
|
+
SELECT 1 FROM loops
|
|
96
|
+
WHERE worker_id = workers.id AND status IN (100, 102, 202)
|
|
97
|
+
)
|
|
98
|
+
)
|
|
78
99
|
RETURNING id;
|
|
79
100
|
|
|
101
|
+
-- PREP: worker_generation_policy_selectable
|
|
102
|
+
-- Avoid provider setup for a disallowed change; the write rechecks after setup.
|
|
103
|
+
SELECT id FROM workers
|
|
104
|
+
WHERE id = $id
|
|
105
|
+
AND (
|
|
106
|
+
model_route_id IS NULL
|
|
107
|
+
OR (model_route_id IS $model_route_id
|
|
108
|
+
AND spawn_model_route_id IS $spawn_model_route_id
|
|
109
|
+
AND reasoning_policy IS $reasoning_policy)
|
|
110
|
+
OR NOT EXISTS (
|
|
111
|
+
SELECT 1 FROM loops
|
|
112
|
+
WHERE worker_id = workers.id AND status IN (100, 102, 202)
|
|
113
|
+
)
|
|
114
|
+
);
|
|
115
|
+
|
|
80
116
|
-- PREP: envelope_list_workspace_prompts
|
|
81
117
|
-- {§methods-workspace-prompts}: nonempty model-root loop seeds, newest-first;
|
|
82
118
|
-- spawned and forked children are not workspace-level user prompt history.
|
|
@@ -47,16 +47,6 @@ SET failure = json_object(
|
|
|
47
47
|
)
|
|
48
48
|
WHERE (SELECT state FROM inference_calls WHERE id = model_calls.id) = 'pending';
|
|
49
49
|
|
|
50
|
-
-- PREP: recovery_fail_open_embedding_calls
|
|
51
|
-
-- Workspace-only and turn-owned embedding inferences lose the same
|
|
52
|
-
-- process-local owner. Their physical requests were settled above.
|
|
53
|
-
UPDATE embedding_calls
|
|
54
|
-
SET failure = json_object(
|
|
55
|
-
'name', 'OwnerVanished',
|
|
56
|
-
'message', 'The daemon restarted before this embedding response was durably observed; whether the provider completed the call is unknown.'
|
|
57
|
-
)
|
|
58
|
-
WHERE (SELECT state FROM inference_calls WHERE id = embedding_calls.id) = 'pending';
|
|
59
|
-
|
|
60
50
|
-- PREP: recovery_fail_open_turns
|
|
61
51
|
-- Every open turn has lost its process-local producer, including a narrow crash
|
|
62
52
|
-- window after its loop parked or queued. Provider evidence settles first; then
|
|
@@ -131,12 +121,18 @@ SET closed_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now'),
|
|
|
131
121
|
WHERE closed_at IS NULL;
|
|
132
122
|
|
|
133
123
|
-- PREP: recovery_resume_unblocked_parks
|
|
134
|
-
--
|
|
135
|
-
--
|
|
136
|
-
--
|
|
124
|
+
-- {§loop-wake-identity}: a persisted completion beats a future clock. Otherwise
|
|
125
|
+
-- only an untimed, now-empty join wakes here; clock ownership is restored below
|
|
126
|
+
-- through the same scheduler used after a live park.
|
|
137
127
|
UPDATE loops
|
|
138
|
-
SET status = 100
|
|
128
|
+
SET status = 100,
|
|
129
|
+
wait_deadline_at = NULL,
|
|
130
|
+
wait_poll_interval = NULL,
|
|
131
|
+
wait_poll_at = NULL
|
|
139
132
|
WHERE status = 202
|
|
133
|
+
AND (observed_wake_revision < (SELECT wake_revision FROM workers WHERE id = loops.worker_id)
|
|
134
|
+
OR (wait_deadline_at IS NULL
|
|
135
|
+
AND COALESCE(wait_poll_interval, 0) = 0
|
|
140
136
|
AND NOT EXISTS (
|
|
141
137
|
SELECT 1
|
|
142
138
|
FROM subscriptions s
|
|
@@ -148,7 +144,7 @@ WHERE status = 202
|
|
|
148
144
|
JOIN loops child_loop ON child_loop.worker_id = child.id
|
|
149
145
|
WHERE child.parent_worker_id = loops.worker_id
|
|
150
146
|
AND child_loop.status IN (100, 102, 202)
|
|
151
|
-
);
|
|
147
|
+
)));
|
|
152
148
|
|
|
153
149
|
-- PREP: recovery_orphan_prompt_sources
|
|
154
150
|
-- {§prompt-loop-containment}: finish an absent or partially staged orphan
|
|
@@ -159,14 +155,15 @@ FROM loops source
|
|
|
159
155
|
JOIN workers w ON w.id = source.worker_id
|
|
160
156
|
LEFT JOIN loops recovery ON recovery.orphan_source_loop_id = source.id
|
|
161
157
|
WHERE source.status IN (200, 413, 429, 499, 500, 504, 508)
|
|
158
|
+
AND source.terminated_by IS NOT 'cancel'
|
|
159
|
+
AND source.sequence > w.cancelled_through_sequence
|
|
162
160
|
AND (recovery.id IS NULL OR recovery.status = 100)
|
|
163
161
|
AND EXISTS (
|
|
164
162
|
SELECT 1
|
|
165
163
|
FROM entries e
|
|
166
164
|
JOIN entry_channels c ON c.entry_id = e.id AND c.name = 'body'
|
|
167
165
|
WHERE e.scheme = 'prompt'
|
|
168
|
-
AND e.authority =
|
|
169
|
-
AND e.owner_id = source.worker_id
|
|
166
|
+
AND e.workspace_id = w.workspace_id AND e.authority = w.name
|
|
170
167
|
AND e.pathname LIKE '/' || source.sequence || '/%'
|
|
171
168
|
AND NOT EXISTS (
|
|
172
169
|
SELECT 1 FROM log_entries le
|
|
@@ -11,7 +11,6 @@ export type LogEntryWire = {
|
|
|
11
11
|
origin: string;
|
|
12
12
|
source: string | null;
|
|
13
13
|
op: string | null;
|
|
14
|
-
delimiter: string;
|
|
15
14
|
signal: unknown;
|
|
16
15
|
scheme: string | null;
|
|
17
16
|
username: string | null;
|
|
@@ -34,5 +33,6 @@ export type LogEntryWire = {
|
|
|
34
33
|
export default class LogEntry {
|
|
35
34
|
#private;
|
|
36
35
|
static fetchLogEntry(db: Db, id: number): Promise<LogEntryWire>;
|
|
36
|
+
static wire(row: Record<string, unknown>): LogEntryWire;
|
|
37
37
|
}
|
|
38
38
|
//# sourceMappingURL=logEntry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logEntry.d.ts","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAMxC,MAAM,MAAM,YAAY,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"logEntry.d.ts","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAMxC,MAAM,MAAM,YAAY,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,QAAQ;;IAWzB,OAAa,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAIpE;IAGD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAgCtD;CACJ"}
|
package/dist/server/logEntry.js
CHANGED
|
@@ -16,6 +16,10 @@ export default class LogEntry {
|
|
|
16
16
|
const row = await db.log_entry_by_id.get({ id });
|
|
17
17
|
if (row === undefined)
|
|
18
18
|
throw new Error(`log_entries row ${id} not found`);
|
|
19
|
+
return LogEntry.wire(row);
|
|
20
|
+
}
|
|
21
|
+
// One hydrated row, as log_entry_by_id and log_entries_recent both select it.
|
|
22
|
+
static wire(row) {
|
|
19
23
|
return {
|
|
20
24
|
id: row.id,
|
|
21
25
|
worker_id: row.worker_id,
|
|
@@ -28,7 +32,6 @@ export default class LogEntry {
|
|
|
28
32
|
origin: row.origin,
|
|
29
33
|
source: row.source,
|
|
30
34
|
op: row.op,
|
|
31
|
-
delimiter: row.delimiter,
|
|
32
35
|
signal: LogEntry.#parseJsonOrNull(row.signal),
|
|
33
36
|
scheme: row.scheme,
|
|
34
37
|
username: row.username,
|
|
@@ -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;AAwCzC,MAAM,CAAC,OAAO,OAAO,QAAQ;IACzB,MAAM,CAAC,gBAAgB,CAAC,CAAU;QAC9B,kEAAkE;QAClE,uCAAuC;QACvC,kFAAkF;QAClF,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAC3D,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAM,EAAE,EAAU;QACzC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,GAAG,CAA0B,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1E,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,GAA4B;QACpC,OAAO;YACH,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,SAAS,EAAE,GAAG,CAAC,SAAmB;YAClC,OAAO,EAAE,GAAG,CAAC,OAAiB;YAC9B,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,OAAO,EAAE,GAAG,CAAC,OAAiB;YAC9B,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,MAAM,EAAE,GAAG,CAAC,MAAuB;YACnC,EAAE,EAAE,GAAG,CAAC,EAAmB;YAC3B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7C,MAAM,EAAE,GAAG,CAAC,MAAuB;YACnC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,IAAI,EAAE,GAAG,CAAC,IAAqB;YAC/B,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,KAAK,EAAE,GAAG,CAAC,KAAsB;YACjC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,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,WAAqB;YACtC,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,WAAW,EAAE,GAAG,CAAC,WAAqB;YACtC,SAAS,EAAE,GAAG,CAAC,SAAmB;YAClC,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;YAC3C,GAAG,CAAC,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7E,CAAC;IACN,CAAC;CACJ"}
|
package/dist/server/logEntry.sql
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
SELECT le.*, l.sequence AS loop_seq, t.sequence AS turn_seq,
|
|
7
7
|
CASE
|
|
8
8
|
WHEN le.origin = 'model'
|
|
9
|
-
AND le.op
|
|
9
|
+
AND le.op IN ('SEND', 'TASK')
|
|
10
10
|
AND json_type(t.packet, '$.assistant.reasoning') = 'text'
|
|
11
11
|
AND length(json_extract(t.packet, '$.assistant.reasoning')) > 0
|
|
12
12
|
THEN json_extract(t.packet, '$.assistant.reasoning')
|
|
@@ -15,3 +15,27 @@ FROM log_entries le
|
|
|
15
15
|
JOIN loops l ON l.id = le.loop_id
|
|
16
16
|
JOIN turns t ON t.id = le.turn_id
|
|
17
17
|
WHERE le.id = $id;
|
|
18
|
+
|
|
19
|
+
-- PREP: log_entries_recent
|
|
20
|
+
-- {§methods-log-read}: the newest rows a client asks for, hydrated exactly as log_entry_by_id
|
|
21
|
+
-- hydrates one — a page is one statement, never one statement per row.
|
|
22
|
+
SELECT le.*, l.sequence AS loop_seq, t.sequence AS turn_seq,
|
|
23
|
+
CASE
|
|
24
|
+
WHEN le.origin = 'model'
|
|
25
|
+
AND le.op IN ('SEND', 'TASK')
|
|
26
|
+
AND json_type(t.packet, '$.assistant.reasoning') = 'text'
|
|
27
|
+
AND length(json_extract(t.packet, '$.assistant.reasoning')) > 0
|
|
28
|
+
THEN json_extract(t.packet, '$.assistant.reasoning')
|
|
29
|
+
END AS reasoning
|
|
30
|
+
FROM log_entries le
|
|
31
|
+
JOIN loops l ON l.id = le.loop_id
|
|
32
|
+
JOIN turns t ON t.id = le.turn_id
|
|
33
|
+
WHERE le.worker_id = $worker_id
|
|
34
|
+
AND ($loop_id IS NULL OR le.loop_id = $loop_id)
|
|
35
|
+
AND ($turn_id IS NULL OR le.turn_id = $turn_id)
|
|
36
|
+
AND ($since_id IS NULL OR le.id > $since_id)
|
|
37
|
+
AND ($loop_seq IS NULL OR l.sequence = $loop_seq)
|
|
38
|
+
AND ($turn_seq IS NULL OR t.sequence = $turn_seq)
|
|
39
|
+
AND ($sequence IS NULL OR le.sequence = $sequence)
|
|
40
|
+
ORDER BY le.at DESC
|
|
41
|
+
LIMIT $limit;
|
|
@@ -2,7 +2,7 @@ import type Engine from "../core/Engine.ts";
|
|
|
2
2
|
import type { Db } from "../core/Db.ts";
|
|
3
3
|
export default class LoopDocs {
|
|
4
4
|
#private;
|
|
5
|
-
static evict(db: Db,
|
|
6
|
-
static materialize(engine: Engine, db: Db, workspaceId: number
|
|
5
|
+
static evict(db: Db, workspaceId: number): void;
|
|
6
|
+
static materialize(engine: Engine, db: Db, workspaceId: number): Promise<void>;
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=loopDocs.d.ts.map
|