@plurnk/plurnk-service 1.16.5 → 1.18.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 +140 -246
- package/INSTALL.md +84 -138
- package/README.md +10 -6
- package/SPEC.md +2468 -1694
- 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 +4 -1
- package/dist/content/read-resolve.d.ts.map +1 -1
- package/dist/content/read-resolve.js +42 -7
- package/dist/content/read-resolve.js.map +1 -1
- package/dist/core/AdmittedTurnExecutor.d.ts +2 -5
- package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
- package/dist/core/AdmittedTurnExecutor.js +96 -88
- 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 +122 -93
- package/dist/core/CapabilityResolver.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +15 -11
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +12 -13
- 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 +208 -161
- package/dist/core/DataStatementRunner.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +24 -26
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +381 -232
- 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 +74 -164
- 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 +21 -0
- package/dist/core/ExecutorRegistry.d.ts +11 -5
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +37 -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 +44 -12
- 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 +12 -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 +31 -36
- 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 +161 -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.d.ts.map +1 -1
- package/dist/core/ModelCall.js +2 -6
- package/dist/core/ModelCall.js.map +1 -1
- package/dist/core/ModelCall.sql +41 -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 +26 -23
- 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 +15 -0
- package/dist/core/RuntimeWorker.js.map +1 -0
- package/dist/core/RuntimeWorker.sql +11 -0
- package/dist/core/SchemeRegistry.d.ts +12 -16
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +59 -85
- 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 +11 -8
- package/dist/core/StrikeRail.d.ts.map +1 -1
- package/dist/core/StrikeRail.js +63 -114
- 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 +77 -51
- 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} +24 -18
- package/dist/core/TurnDispositionHandler.d.ts.map +1 -0
- package/dist/core/TurnDispositionHandler.js +206 -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 +47 -24
- 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 +8 -15
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +1175 -1317
- 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 +64 -48
- package/dist/core/WorkerControlHandler.js.map +1 -1
- package/dist/core/WorkerName.d.ts +11 -12
- package/dist/core/WorkerName.d.ts.map +1 -1
- package/dist/core/WorkerName.js +40 -47
- 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 +33 -10
- 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-catalog.d.ts +28 -0
- package/dist/core/env-catalog.d.ts.map +1 -0
- package/dist/core/env-catalog.js +99 -0
- package/dist/core/env-catalog.js.map +1 -0
- 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 +15 -1
- 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 +26 -20
- 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/operation-target-groups.d.ts.map +1 -1
- package/dist/core/operation-target-groups.js +2 -1
- package/dist/core/operation-target-groups.js.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 +381 -388
- 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 +30 -91
- package/dist/digest/Digest.js.map +1 -1
- package/dist/digest/DigestRender.d.ts +1 -0
- package/dist/digest/DigestRender.d.ts.map +1 -1
- package/dist/digest/DigestRender.js +58 -62
- package/dist/digest/DigestRender.js.map +1 -1
- package/dist/digest/digest-rows.d.ts +16 -32
- package/dist/digest/digest-rows.d.ts.map +1 -1
- package/dist/digest/digest.sql +54 -20
- package/dist/schemes/Exec.d.ts +6 -12
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +318 -215
- 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/ExecScheduler.js +2 -2
- package/dist/schemes/ExecScheduler.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 -91
- 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 +7 -15
- 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 +117 -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 +159 -45
- 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 +20 -26
- 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 +5 -3
- package/dist/schemes/_search-index.d.ts.map +1 -1
- package/dist/schemes/_search-index.js +169 -160
- package/dist/schemes/_search-index.js.map +1 -1
- package/dist/schemes/_search-index.sql +47 -0
- package/dist/schemes/exec-abort.js +1 -1
- package/dist/schemes/exec-abort.js.map +1 -1
- package/dist/schemes/exec-env.d.ts +3 -0
- package/dist/schemes/exec-env.d.ts.map +1 -1
- package/dist/schemes/exec-env.js +66 -15
- package/dist/schemes/exec-env.js.map +1 -1
- 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 +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 +7 -9
- package/dist/server/ClientReads.js.map +1 -1
- package/dist/server/Daemon.d.ts +15 -21
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +165 -168
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DaemonModule.d.ts +29 -22
- 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/EnvFunctionality.d.ts +43 -0
- package/dist/server/EnvFunctionality.d.ts.map +1 -0
- package/dist/server/EnvFunctionality.js +194 -0
- package/dist/server/EnvFunctionality.js.map +1 -0
- package/dist/server/Functionality.d.ts +12 -11
- package/dist/server/Functionality.d.ts.map +1 -1
- package/dist/server/Functionality.js +279 -142
- package/dist/server/Functionality.js.map +1 -1
- package/dist/server/FunctionalityManager.d.ts +5 -5
- package/dist/server/FunctionalityManager.d.ts.map +1 -1
- package/dist/server/FunctionalityManager.js +29 -57
- 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 -38
- 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 +25 -0
- package/dist/server/Retention.d.ts.map +1 -0
- package/dist/server/Retention.js +57 -0
- package/dist/server/Retention.js.map +1 -0
- package/dist/server/Retention.sql +59 -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 +102 -106
- 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 +38 -0
- package/dist/server/WorkspaceResidency.d.ts.map +1 -0
- package/dist/server/WorkspaceResidency.js +226 -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 +5 -46
- 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 +66 -43
- package/dist/server/envelope.d.ts +8 -1
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +9 -19
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +49 -13
- package/dist/server/lifecycle-recovery.sql +18 -20
- 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 +64 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +21 -18
- package/dist/service.js.map +1 -1
- package/docs/env.md +55 -0
- package/docs/members.md +83 -0
- package/docs/skills.md +50 -0
- package/migrations/001_workspaces.sql +53 -0
- package/migrations/002_workers.sql +198 -0
- package/migrations/003_loops.sql +326 -0
- package/migrations/004_inference.sql +401 -0
- package/migrations/005_entries.sql +215 -0
- package/migrations/006_log.sql +581 -0
- package/migrations/007_subscriptions.sql +175 -0
- package/migrations/008_interactions.sql +29 -0
- package/package.json +44 -41
- 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/core/Engine.sql
CHANGED
|
@@ -1,103 +1,11 @@
|
|
|
1
1
|
-- Engine SQL. SPEC {§arch} (architecture), {§scheme} (op dispatch + log).
|
|
2
2
|
|
|
3
|
-
-- PREP: engine_loop_status
|
|
4
|
-
SELECT status FROM loops WHERE id = $loop_id;
|
|
5
|
-
|
|
6
|
-
-- PREP: engine_worker_has_live_child
|
|
7
|
-
-- A non-terminal child worker (worker:// spawn/fork set parent_worker_id) — a "live thing the worker holds",
|
|
8
|
-
-- like an open stream. A SEND signal 200 while one exists is a premature-terminate ({§send-premature-terminate}).
|
|
9
|
-
-- Live = a child with ANY unresolved loop (100/102/202) — the SAME definition
|
|
10
|
-
-- engine_child_workers_live uses for the Active Child Workers orientation, so the 409 gate and the section the model
|
|
11
|
-
-- reads NEVER disagree: a refused termination is always backed by a child the model can SEE and KILL
|
|
12
|
-
-- ({§child-orientation}). Administrative loops may interleave with model loops, so newest-loop
|
|
13
|
-
-- inference is not a valid worker-liveness test.
|
|
14
|
-
SELECT 1 AS live FROM workers r
|
|
15
|
-
JOIN loops l ON l.worker_id = r.id
|
|
16
|
-
WHERE r.parent_worker_id = $worker_id AND l.status IN (100, 102, 202) LIMIT 1;
|
|
17
|
-
|
|
18
3
|
-- PREP: engine_count_active_loops_for_worker
|
|
19
4
|
-- Wake-on-completion uses this to decide whether to open a new loop or
|
|
20
5
|
-- let the existing one pick up the channel transition at the next turn
|
|
21
6
|
-- boundary. Status 102 = "in progress" (any non-terminal state).
|
|
22
7
|
SELECT COUNT(*) AS n FROM loops WHERE worker_id = $worker_id AND status = 102;
|
|
23
8
|
|
|
24
|
-
-- PREP: engine_get_loop_policy
|
|
25
|
-
-- Complete persisted policy. LoopPolicyReader is the sole validation path
|
|
26
|
-
-- ({§loop-policy-effective-read}).
|
|
27
|
-
SELECT policy FROM loops WHERE id = $loop_id;
|
|
28
|
-
|
|
29
|
-
-- PREP: engine_set_loop_policy
|
|
30
|
-
-- Stores the loop's complete immutable policy at creation/setup time.
|
|
31
|
-
UPDATE loops SET policy = $policy WHERE id = $loop_id;
|
|
32
|
-
|
|
33
|
-
-- PREP: engine_set_loop_open_paths
|
|
34
|
-
-- {§methods-loop-run-open-paths}: persist the initial prompt frame's selected
|
|
35
|
-
-- paths (string[] JSON) until turn 1 materializes that frame.
|
|
36
|
-
UPDATE loops SET open_paths = $open_paths WHERE id = $loop_id;
|
|
37
|
-
|
|
38
|
-
-- PREP: engine_get_loop_prompt
|
|
39
|
-
-- Initial prompt frame. Its durable log occurrence, not a process-local/model
|
|
40
|
-
-- ordinal, decides whether runTurn still needs to publish it.
|
|
41
|
-
SELECT l.prompt, l.prompt_source, l.sequence, l.open_paths,
|
|
42
|
-
EXISTS (
|
|
43
|
-
SELECT 1
|
|
44
|
-
FROM log_entries le
|
|
45
|
-
WHERE le.loop_id = l.id
|
|
46
|
-
AND le.op = 'prompt'
|
|
47
|
-
AND le.pathname = '/' || l.sequence || '/1'
|
|
48
|
-
) AS prompt_published
|
|
49
|
-
FROM loops l
|
|
50
|
-
WHERE l.id = $loop_id;
|
|
51
|
-
|
|
52
|
-
-- PREP: engine_reclaim_queued_loop
|
|
53
|
-
-- {§worker-lifecycle-wake-requeue-not-terminal} — atomic 100→102 re-claim by loop id. A wake
|
|
54
|
-
-- re-queued this loop while ITS OWN live drain was between turns; the drain re-claims and
|
|
55
|
-
-- keeps running (the injected prompt is already the next turn). Conditional so a racing
|
|
56
|
-
-- claimant can never double-claim.
|
|
57
|
-
UPDATE loops SET status = 102 WHERE id = $loop_id AND status = 100;
|
|
58
|
-
|
|
59
|
-
-- PREP: workspace_get_settings
|
|
60
|
-
-- {§operator-config} — the workspace's validated client settings bag, read at
|
|
61
|
-
-- each owning use site with its declared composition semantics.
|
|
62
|
-
SELECT settings FROM workspaces WHERE id = $workspace_id;
|
|
63
|
-
|
|
64
|
-
-- PREP: engine_list_owner_entries
|
|
65
|
-
-- {§entry-owner} — one principal's entries (catalogRowsFor source for an owner-scoped FIND/foist):
|
|
66
|
-
-- the commons, a worker's own space, or a named space — exactly one owner's rows, its perspective.
|
|
67
|
-
SELECT e.id AS entry_id, e.scheme, e.authority, e.pathname, ec.name AS channel, ec.content, ec.mimetype, ec.weight AS weight, ec.deep_hash,
|
|
68
|
-
json_extract(e.attributes, '$.sourceProjection.mimetype') AS source_mimetype,
|
|
69
|
-
d.parse_issues, d.summary,
|
|
70
|
-
s.id AS subscription_id,
|
|
71
|
-
CASE WHEN s.closed_at IS NULL
|
|
72
|
-
THEN CAST(unixepoch('now') - unixepoch(s.opened_at) AS INTEGER)
|
|
73
|
-
ELSE NULL
|
|
74
|
-
END AS seconds,
|
|
75
|
-
s.close_status
|
|
76
|
-
FROM entries e
|
|
77
|
-
JOIN entry_channels ec ON ec.entry_id = e.id
|
|
78
|
-
JOIN workers owner ON owner.id = e.owner_id
|
|
79
|
-
LEFT JOIN derivations d ON d.deep_hash = ec.deep_hash
|
|
80
|
-
LEFT JOIN subscriptions s ON s.id = (
|
|
81
|
-
SELECT latest.id
|
|
82
|
-
FROM subscriptions latest
|
|
83
|
-
WHERE latest.entry_id = e.id
|
|
84
|
-
ORDER BY latest.id DESC
|
|
85
|
-
LIMIT 1
|
|
86
|
-
)
|
|
87
|
-
WHERE owner.workspace_id = $workspace_id AND e.owner_id = $owner_id
|
|
88
|
-
ORDER BY e.updated_at ASC, e.id ASC, ec.name;
|
|
89
|
-
|
|
90
|
-
-- PREP: engine_next_turn_sequence
|
|
91
|
-
SELECT COALESCE(MAX(sequence), 0) + 1 AS next FROM turns WHERE loop_id = $loop_id;
|
|
92
|
-
|
|
93
|
-
-- PREP: engine_loop_packet_count
|
|
94
|
-
-- Exact model-request chronology for client status. Administrative turns and
|
|
95
|
-
-- physical provider retries carry no packet and therefore do not contribute.
|
|
96
|
-
SELECT COUNT(*) AS count
|
|
97
|
-
FROM turns
|
|
98
|
-
WHERE loop_id = $loop_id
|
|
99
|
-
AND packet IS NOT NULL;
|
|
100
|
-
|
|
101
9
|
-- PREP: engine_loop_usage
|
|
102
10
|
-- Latest packet-bearing model-turn gauge ({§tokenomics-client-gauge}), surfaced beside the derived
|
|
103
11
|
-- accounting projection on {§notifications-loop-terminated}. Physical usage
|
|
@@ -169,611 +77,6 @@ FROM (
|
|
|
169
77
|
)
|
|
170
78
|
ORDER BY attribution;
|
|
171
79
|
|
|
172
|
-
-- PREP: engine_loop_turn_seqs
|
|
173
|
-
-- Look up (loop_seq, turn_seq) for a given (loop_id, turn_id). Used by
|
|
174
|
-
-- #writeLog when an op needs to address itself or its output by log
|
|
175
|
-
-- coordinate (e.g. EXEC's stream entry at exec:///<loop_seq>/<turn_seq>/<sequence>/EXEC).
|
|
176
|
-
SELECT l.sequence AS loop_seq, t.sequence AS turn_seq
|
|
177
|
-
FROM loops l, turns t
|
|
178
|
-
WHERE l.id = $loop_id AND t.id = $turn_id;
|
|
179
|
-
|
|
180
|
-
-- PREP: engine_open_model_call
|
|
181
|
-
-- Logical identity and request attribution become durable before provider I/O.
|
|
182
|
-
INSERT INTO inference_calls (
|
|
183
|
-
workspace_id, turn_id, sequence, kind, attributions, request_model
|
|
184
|
-
)
|
|
185
|
-
SELECT
|
|
186
|
-
w.workspace_id,
|
|
187
|
-
t.id,
|
|
188
|
-
COALESCE((SELECT MAX(sequence) FROM inference_calls WHERE turn_id = $turn_id), 0) + 1,
|
|
189
|
-
$kind,
|
|
190
|
-
$attributions,
|
|
191
|
-
$model
|
|
192
|
-
FROM turns t
|
|
193
|
-
JOIN loops l ON l.id = t.loop_id
|
|
194
|
-
JOIN workers w ON w.id = l.worker_id
|
|
195
|
-
WHERE t.id = $turn_id
|
|
196
|
-
RETURNING id, sequence;
|
|
197
|
-
|
|
198
|
-
-- PREP: engine_observe_model_call_response
|
|
199
|
-
-- Preserve the logical response before call-specific interpretation. Physical
|
|
200
|
-
-- request accounting has already settled through its cardinal observer path.
|
|
201
|
-
UPDATE model_calls SET
|
|
202
|
-
native_inputs = $native_inputs,
|
|
203
|
-
response = $response,
|
|
204
|
-
failure = $failure,
|
|
205
|
-
capacity = $capacity,
|
|
206
|
-
finish_reason = $finish_reason,
|
|
207
|
-
response_model = $model
|
|
208
|
-
WHERE id = $id
|
|
209
|
-
AND (SELECT state FROM inference_calls WHERE id = model_calls.id) = 'pending';
|
|
210
|
-
|
|
211
|
-
-- PREP: engine_fail_model_call
|
|
212
|
-
UPDATE model_calls SET
|
|
213
|
-
failure = $failure,
|
|
214
|
-
capacity = $capacity
|
|
215
|
-
WHERE id = $id
|
|
216
|
-
AND (SELECT state FROM inference_calls WHERE id = model_calls.id) = 'pending';
|
|
217
|
-
|
|
218
|
-
-- PREP: engine_open_embedding_call
|
|
219
|
-
INSERT INTO inference_calls (
|
|
220
|
-
workspace_id, turn_id, sequence, kind, attributions, request_model
|
|
221
|
-
)
|
|
222
|
-
VALUES (
|
|
223
|
-
$workspace_id,
|
|
224
|
-
$turn_id,
|
|
225
|
-
COALESCE((
|
|
226
|
-
SELECT MAX(sequence)
|
|
227
|
-
FROM inference_calls
|
|
228
|
-
WHERE ($turn_id IS NOT NULL AND turn_id = $turn_id)
|
|
229
|
-
OR ($turn_id IS NULL AND turn_id IS NULL AND workspace_id = $workspace_id)
|
|
230
|
-
), 0) + 1,
|
|
231
|
-
$kind,
|
|
232
|
-
'[]',
|
|
233
|
-
$model
|
|
234
|
-
)
|
|
235
|
-
RETURNING id, sequence;
|
|
236
|
-
|
|
237
|
-
-- PREP: engine_prepare_embedding_call
|
|
238
|
-
UPDATE embedding_calls
|
|
239
|
-
SET input_count = $input_count
|
|
240
|
-
WHERE id = $id
|
|
241
|
-
AND input_count IS NULL
|
|
242
|
-
AND (SELECT state FROM inference_calls WHERE id = embedding_calls.id) = 'pending';
|
|
243
|
-
|
|
244
|
-
-- PREP: engine_observe_embedding_call_response
|
|
245
|
-
UPDATE embedding_calls
|
|
246
|
-
SET output_count = $output_count,
|
|
247
|
-
metadata = $metadata
|
|
248
|
-
WHERE id = $id
|
|
249
|
-
AND output_count IS NULL
|
|
250
|
-
AND failure IS NULL
|
|
251
|
-
AND (SELECT state FROM inference_calls WHERE id = embedding_calls.id) = 'pending';
|
|
252
|
-
|
|
253
|
-
-- PREP: engine_fail_embedding_call
|
|
254
|
-
UPDATE embedding_calls
|
|
255
|
-
SET failure = $failure
|
|
256
|
-
WHERE id = $id
|
|
257
|
-
AND output_count IS NULL
|
|
258
|
-
AND failure IS NULL
|
|
259
|
-
AND (SELECT state FROM inference_calls WHERE id = embedding_calls.id) = 'pending';
|
|
260
|
-
|
|
261
|
-
-- PREP: engine_open_turn_attempt
|
|
262
|
-
INSERT INTO turn_attempts (model_call_id)
|
|
263
|
-
VALUES ($model_call_id)
|
|
264
|
-
RETURNING id;
|
|
265
|
-
|
|
266
|
-
-- PREP: engine_classify_turn_attempt_response
|
|
267
|
-
UPDATE turn_attempts SET
|
|
268
|
-
accepted = $accepted,
|
|
269
|
-
parse_errors = $parse_errors
|
|
270
|
-
WHERE id = $id AND accepted IS NULL;
|
|
271
|
-
|
|
272
|
-
-- PREP: engine_open_provider_request
|
|
273
|
-
-- The provider calls this immediately before physical I/O.
|
|
274
|
-
INSERT INTO provider_requests (inference_call_id, sequence, provider, model)
|
|
275
|
-
VALUES ($inference_call_id, $sequence, $provider, $model)
|
|
276
|
-
RETURNING id;
|
|
277
|
-
|
|
278
|
-
-- PREP: engine_settle_provider_request
|
|
279
|
-
UPDATE provider_requests SET
|
|
280
|
-
state = 'settled',
|
|
281
|
-
outcome = $outcome,
|
|
282
|
-
status = $status,
|
|
283
|
-
usage_input = $usage_input,
|
|
284
|
-
usage_output = $usage_output,
|
|
285
|
-
usage_total = $usage_total,
|
|
286
|
-
usage_input_no_cache = $usage_input_no_cache,
|
|
287
|
-
usage_input_cache_read = $usage_input_cache_read,
|
|
288
|
-
usage_input_cache_write = $usage_input_cache_write,
|
|
289
|
-
usage_output_text = $usage_output_text,
|
|
290
|
-
usage_output_reasoning = $usage_output_reasoning,
|
|
291
|
-
cost_kind = $cost_kind,
|
|
292
|
-
cost_amount = $cost_amount,
|
|
293
|
-
cost_currency = $cost_currency,
|
|
294
|
-
cost_usd_equivalent = $cost_usd_equivalent,
|
|
295
|
-
cost_source = $cost_source,
|
|
296
|
-
cost_reason = $cost_reason,
|
|
297
|
-
completed_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
|
|
298
|
-
WHERE id = $id AND state = 'pending';
|
|
299
|
-
|
|
300
|
-
-- PREP: engine_list_workspace_entries
|
|
301
|
-
-- Every owner-held entry of a workspace — all schemes, all channels — for
|
|
302
|
-
-- internal indexing and aggregate inspection. Addressable catalogs use the
|
|
303
|
-
-- owner-filtered statements above.
|
|
304
|
-
-- The latest subscription carries stream lifecycle into the catalog. `seconds`
|
|
305
|
-
-- is the live age of an open stream; close_status is the exact terminal status
|
|
306
|
-
-- of a closed one. Entries with no subscription remain ordinary static entries.
|
|
307
|
-
SELECT e.id AS entry_id, e.scheme, e.authority, e.pathname, ec.name AS channel, ec.content, ec.mimetype, ec.weight AS weight, ec.deep_hash,
|
|
308
|
-
d.disposition AS deep_disposition, d.reason AS deep_reason,
|
|
309
|
-
s.id AS subscription_id,
|
|
310
|
-
CASE WHEN s.closed_at IS NULL
|
|
311
|
-
THEN CAST(unixepoch('now') - unixepoch(s.opened_at) AS INTEGER)
|
|
312
|
-
ELSE NULL
|
|
313
|
-
END AS seconds,
|
|
314
|
-
s.close_status
|
|
315
|
-
FROM entries e
|
|
316
|
-
JOIN entry_channels ec ON ec.entry_id = e.id
|
|
317
|
-
JOIN workers owner ON owner.id = e.owner_id
|
|
318
|
-
LEFT JOIN derivations d ON d.deep_hash = ec.deep_hash
|
|
319
|
-
LEFT JOIN subscriptions s ON s.id = (
|
|
320
|
-
SELECT latest.id
|
|
321
|
-
FROM subscriptions latest
|
|
322
|
-
WHERE latest.entry_id = e.id
|
|
323
|
-
ORDER BY latest.id DESC
|
|
324
|
-
LIMIT 1
|
|
325
|
-
)
|
|
326
|
-
WHERE owner.workspace_id = $workspace_id
|
|
327
|
-
-- User Note 5 — mtime-ascending: dormant entries hold the stable prompt-cache prefix; churn clusters at the tail.
|
|
328
|
-
ORDER BY e.updated_at ASC, e.id ASC, ec.name;
|
|
329
|
-
|
|
330
|
-
-- PREP: engine_scheme_catalog_summary
|
|
331
|
-
-- Per-scheme entry tally plus one-level catalog-row count (direct entries and
|
|
332
|
-
-- distinct first-segment `dir/**` summaries). The engine uses the latter to
|
|
333
|
-
-- encode a valid first-N file preview range without guessing how many rows the
|
|
334
|
-
-- shallow projection will produce.
|
|
335
|
-
SELECT e.scheme AS scheme,
|
|
336
|
-
COUNT(DISTINCT e.id) AS entries,
|
|
337
|
-
COUNT(DISTINCT CASE
|
|
338
|
-
WHEN instr(ltrim(e.pathname, '/'), '/') = 0
|
|
339
|
-
THEN json_array('entry', e.authority, ltrim(e.pathname, '/'))
|
|
340
|
-
ELSE json_array('scope', e.authority, substr(ltrim(e.pathname, '/'), 1, instr(ltrim(e.pathname, '/'), '/')))
|
|
341
|
-
END) AS shallow_items
|
|
342
|
-
FROM entries e
|
|
343
|
-
JOIN entry_channels ec ON ec.entry_id = e.id
|
|
344
|
-
JOIN workers owner ON owner.id = e.owner_id
|
|
345
|
-
WHERE owner.workspace_id = $workspace_id
|
|
346
|
-
GROUP BY e.scheme
|
|
347
|
-
ORDER BY e.scheme;
|
|
348
|
-
|
|
349
|
-
-- PREP: engine_initialize_ambient_cursor
|
|
350
|
-
-- Worker creation owns the baseline, and fork creation owns its inherited
|
|
351
|
-
-- cursor/boundary. Packet assembly merely verifies that durable invariant.
|
|
352
|
-
SELECT ambient_event_cursor
|
|
353
|
-
FROM workers
|
|
354
|
-
WHERE id = $worker_id
|
|
355
|
-
AND workspace_id = $workspace_id;
|
|
356
|
-
|
|
357
|
-
-- PREP: engine_pull_ambient_events
|
|
358
|
-
-- One SQLite snapshot captures both ends of the closed observation window.
|
|
359
|
-
-- The LEFT JOIN returns the boundary even when the window contains no event.
|
|
360
|
-
WITH observation AS (
|
|
361
|
-
SELECT w.ambient_event_cursor AS cursor,
|
|
362
|
-
w.parent_worker_id,
|
|
363
|
-
w.fork_event_boundary,
|
|
364
|
-
COALESCE(
|
|
365
|
-
(SELECT MAX(ae.id) FROM ambient_events ae WHERE ae.workspace_id = $workspace_id),
|
|
366
|
-
w.ambient_event_cursor,
|
|
367
|
-
0
|
|
368
|
-
) AS boundary
|
|
369
|
-
FROM workers w
|
|
370
|
-
WHERE w.id = $worker_id AND w.workspace_id = $workspace_id
|
|
371
|
-
)
|
|
372
|
-
SELECT o.cursor, o.boundary,
|
|
373
|
-
ae.id AS event_id, ae.producer_worker_id, producer.name AS producer_worker_name,
|
|
374
|
-
ae.kind, ae.source, ae.at,
|
|
375
|
-
ae.op, ae.delimiter, ae.signal,
|
|
376
|
-
ae.scheme, ae.username, ae.password, ae.hostname, ae.port,
|
|
377
|
-
ae.pathname, ae.query, ae.fragment, ae.line_marker,
|
|
378
|
-
ae.tx, ae.mimetype_tx, ae.rx, ae.mimetype_rx,
|
|
379
|
-
ae.state, ae.outcome, ae.attrs,
|
|
380
|
-
ae.status_rx, ae.terminated_by
|
|
381
|
-
FROM observation o
|
|
382
|
-
LEFT JOIN ambient_events ae
|
|
383
|
-
ON ae.workspace_id = $workspace_id
|
|
384
|
-
AND ae.id > o.cursor
|
|
385
|
-
AND ae.id <= o.boundary
|
|
386
|
-
AND ae.producer_worker_id != $worker_id
|
|
387
|
-
AND (
|
|
388
|
-
ae.target_parent_worker_id = $worker_id
|
|
389
|
-
OR ae.workspace_broadcast = 1
|
|
390
|
-
OR (
|
|
391
|
-
o.fork_event_boundary IS NOT NULL
|
|
392
|
-
AND ae.target_parent_worker_id = o.parent_worker_id
|
|
393
|
-
AND ae.id <= o.fork_event_boundary
|
|
394
|
-
)
|
|
395
|
-
)
|
|
396
|
-
LEFT JOIN workers producer ON producer.id = ae.producer_worker_id
|
|
397
|
-
ORDER BY ae.id;
|
|
398
|
-
|
|
399
|
-
-- PREP: engine_insert_ambient_delta
|
|
400
|
-
-- Materialize one occurrence into the observer's self-contained log. The
|
|
401
|
-
-- targeted conflict rule makes crash replay idempotent without swallowing any
|
|
402
|
-
-- unrelated sequence, FK, or shape violation.
|
|
403
|
-
INSERT INTO log_entries (
|
|
404
|
-
worker_id, loop_id, turn_id, sequence, at, origin, source, ambient_event_id,
|
|
405
|
-
op, delimiter, signal,
|
|
406
|
-
scheme, username, password, hostname, port, pathname, query, fragment,
|
|
407
|
-
lineMarker, tx, mimetype_tx,
|
|
408
|
-
rx, mimetype_rx, status_rx, weight, state, outcome, initial_folded, attrs
|
|
409
|
-
) VALUES (
|
|
410
|
-
$worker_id, $loop_id, $turn_id, $sequence, $at, '_plurnk', $source, $event_id,
|
|
411
|
-
$op, $delimiter, $signal,
|
|
412
|
-
$scheme, $username, $password, $hostname, $port, $pathname, $query, $fragment,
|
|
413
|
-
$line_marker, $tx, $mimetype_tx,
|
|
414
|
-
$rx, $mimetype_rx, $status, $weight, $state, $outcome, $folded, $attrs
|
|
415
|
-
)
|
|
416
|
-
ON CONFLICT(worker_id, ambient_event_id) WHERE ambient_event_id IS NOT NULL DO NOTHING
|
|
417
|
-
RETURNING id;
|
|
418
|
-
|
|
419
|
-
-- PREP: engine_ambient_delta_id
|
|
420
|
-
-- Crash replay may find the observation row already inserted but its copied
|
|
421
|
-
-- classifications incomplete. Resolve that row so idempotent tag writes can finish.
|
|
422
|
-
SELECT id FROM log_entries WHERE worker_id = $worker_id AND ambient_event_id = $event_id;
|
|
423
|
-
|
|
424
|
-
-- PREP: engine_advance_ambient_cursor
|
|
425
|
-
-- Advance only from the snapshot that was actually materialized. A concurrent
|
|
426
|
-
-- pull winning the CAS is safe; a loser replays idempotently on its next turn.
|
|
427
|
-
UPDATE workers
|
|
428
|
-
SET ambient_event_cursor = $boundary
|
|
429
|
-
WHERE id = $worker_id
|
|
430
|
-
AND workspace_id = $workspace_id
|
|
431
|
-
AND ambient_event_cursor IS $cursor
|
|
432
|
-
AND $boundary >= ambient_event_cursor
|
|
433
|
-
RETURNING ambient_event_cursor;
|
|
434
|
-
|
|
435
|
-
-- PREP: engine_worker_stream_channels
|
|
436
|
-
-- {§exec-stream} — every not-yet-terminally-published stream channel the worker
|
|
437
|
-
-- owns, with its durable per-subscription cursor. Log curation never rewinds it.
|
|
438
|
-
SELECT s.id AS subscription_id, sp.id AS publication_id,
|
|
439
|
-
sp.published_end, sp.terminal_published,
|
|
440
|
-
e.scheme AS runtime, e.authority, e.pathname AS coord,
|
|
441
|
-
ec.name AS channel, ec.content AS content, ec.mimetype AS mimetype,
|
|
442
|
-
ec.state AS state, ec.producer_result AS producer_result,
|
|
443
|
-
s.published_channel AS published_channel
|
|
444
|
-
FROM subscriptions s
|
|
445
|
-
JOIN entries e ON e.id = s.entry_id
|
|
446
|
-
JOIN subscription_publications sp ON sp.subscription_id = s.id
|
|
447
|
-
JOIN entry_channels ec ON ec.entry_id = s.entry_id AND ec.name = sp.channel
|
|
448
|
-
WHERE s.worker_id = $worker_id
|
|
449
|
-
AND sp.terminal_published = 0
|
|
450
|
-
ORDER BY s.id, ec.name;
|
|
451
|
-
|
|
452
|
-
-- PREP: engine_insert_stream_delta
|
|
453
|
-
-- {§exec-stream} / {§env-delta} — materialize a channel's next publishable content as a
|
|
454
|
-
-- foisted READ row (the model READs the stream it never typed). origin=_plurnk; fragment is
|
|
455
|
-
-- the channel; source links an EXEC observation to its causal invocation;
|
|
456
|
-
-- attrs.streamEnd is the next turn's cursor. Only terminal observations
|
|
457
|
-
-- materialize here, initially visible; active progress stays in Child Streams. {§exec-stream}
|
|
458
|
-
INSERT INTO log_entries (
|
|
459
|
-
worker_id, loop_id, turn_id, sequence, origin, source, model_call_id,
|
|
460
|
-
subscription_publication_id,
|
|
461
|
-
op, scheme, hostname, port, pathname, fragment, tx, mimetype_tx, rx, mimetype_rx, status_rx, weight, attrs, initial_folded
|
|
462
|
-
) VALUES (
|
|
463
|
-
$worker_id, $loop_id, $turn_id, $sequence, '_plurnk', $source, NULL,
|
|
464
|
-
$subscription_publication_id,
|
|
465
|
-
'READ', $scheme, $hostname, $port, $pathname, $fragment, '', 'text/plain', $rx, 'application/json', $status, $weight, $attrs, $folded
|
|
466
|
-
);
|
|
467
|
-
|
|
468
|
-
-- PREP: engine_child_workers_live
|
|
469
|
-
-- The worker's LIVE child workers — any loop non-terminal (100 pending / 102 processing / 202 parked).
|
|
470
|
-
-- Powers the Active Child Workers orienting section ({§child-orientation}): terse `* <status> worker://<name>`
|
|
471
|
-
-- pointers so the model SEES what it holds live and reasons for itself (READ/KILL), never told to.
|
|
472
|
-
-- Empty → section omitted.
|
|
473
|
-
SELECT r.name,
|
|
474
|
-
CASE
|
|
475
|
-
WHEN SUM(CASE WHEN l.status = 102 THEN 1 ELSE 0 END) > 0 THEN 102
|
|
476
|
-
WHEN SUM(CASE WHEN l.status = 202 THEN 1 ELSE 0 END) > 0 THEN 202
|
|
477
|
-
ELSE 100
|
|
478
|
-
END AS status
|
|
479
|
-
FROM workers r
|
|
480
|
-
JOIN loops l ON l.worker_id = r.id AND l.status IN (100, 102, 202)
|
|
481
|
-
WHERE r.parent_worker_id = $worker_id AND l.status IN (100, 102, 202)
|
|
482
|
-
GROUP BY r.id, r.name
|
|
483
|
-
ORDER BY r.name;
|
|
484
|
-
|
|
485
|
-
-- PREP: engine_parent_worker
|
|
486
|
-
-- The worker's PARENT, when it has one — its name and the status of its latest loop. Powers the
|
|
487
|
-
-- Parent Worker orienting section ({§child-orientation}, #394): a child can only name its parent's
|
|
488
|
-
-- streams and space if it is told the name. Absent → section omitted.
|
|
489
|
-
SELECT p.name,
|
|
490
|
-
COALESCE((SELECT l.status FROM loops l WHERE l.worker_id = p.id ORDER BY l.id DESC LIMIT 1), 0) AS status
|
|
491
|
-
FROM workers c JOIN workers p ON p.id = c.parent_worker_id
|
|
492
|
-
WHERE c.id = $worker_id;
|
|
493
|
-
|
|
494
|
-
-- PREP: engine_child_streams_open
|
|
495
|
-
-- The worker's OPEN streams (subscriptions not yet closed), one row per published channel with its
|
|
496
|
-
-- size and the size last reported to the model (the publication cursor). Powers the Child Streams
|
|
497
|
-
-- orienting section ({§child-orientation}): `* active <runtime>:///<coord> — <channel> N lines (+D)`
|
|
498
|
-
-- pointers the model READs/KILLs. Nothing else reaches the model while a stream is active
|
|
499
|
-
-- ({§exec-stream}). Empty → section omitted.
|
|
500
|
-
SELECT s.scheme, e.authority, e.pathname, sp.id AS publication_id, ec.name AS channel,
|
|
501
|
-
(length(ec.content) - length(replace(ec.content, char(10), ''))) AS lines,
|
|
502
|
-
length(ec.content) AS bytes, sp.published_end AS reported
|
|
503
|
-
FROM subscriptions s
|
|
504
|
-
JOIN entries e ON e.id = s.entry_id
|
|
505
|
-
JOIN subscription_publications sp ON sp.subscription_id = s.id
|
|
506
|
-
JOIN entry_channels ec ON ec.entry_id = s.entry_id AND ec.name = sp.channel
|
|
507
|
-
WHERE s.worker_id = $worker_id AND s.closed_at IS NULL
|
|
508
|
-
ORDER BY e.pathname, ec.name;
|
|
509
|
-
|
|
510
|
-
-- PREP: engine_stream_reported
|
|
511
|
-
-- {§child-orientation} — the publication cursor now records the size last reported to the
|
|
512
|
-
-- model by the Child Streams pointer, so the next packet can say how much the stream grew.
|
|
513
|
-
UPDATE subscription_publications SET published_end = $reported
|
|
514
|
-
WHERE id = $publication_id AND published_end < $reported;
|
|
515
|
-
|
|
516
|
-
-- PREP: engine_render_errors
|
|
517
|
-
-- SPEC {§operation-results}: 4xx/5xx log rows are indexed in the packet's errors as
|
|
518
|
-
-- LogCoordinate pointers, forcing the model to confront failures instead of letting
|
|
519
|
-
-- them rot in log:///. Window = the current would-be model turn AND the immediately
|
|
520
|
-
-- preceding completed model turn: prior-model-turn for action failures the
|
|
521
|
-
-- model just caused, current-turn so a pre-generate engine error surfaces THIS turn
|
|
522
|
-
-- rather than a turn late. Packetless chronology never hides a model failure.
|
|
523
|
-
-- {§operation-result-uniform-error-channel}
|
|
524
|
-
WITH previous_model_turn AS (
|
|
525
|
-
SELECT id
|
|
526
|
-
FROM turns
|
|
527
|
-
WHERE loop_id = $loop_id
|
|
528
|
-
AND sequence < $current_turn_seq
|
|
529
|
-
AND producer = 'model'
|
|
530
|
-
AND kind = 'inference'
|
|
531
|
-
AND completed_at IS NOT NULL
|
|
532
|
-
ORDER BY sequence DESC
|
|
533
|
-
LIMIT 1
|
|
534
|
-
)
|
|
535
|
-
SELECT
|
|
536
|
-
le.origin, le.op, le.attrs, le.sequence, le.status_rx, le.rx, le.mimetype_rx,
|
|
537
|
-
le.scheme, le.pathname,
|
|
538
|
-
t.sequence AS turn_seq, l.sequence AS loop_seq
|
|
539
|
-
FROM active_log_entries le
|
|
540
|
-
JOIN turns t ON t.id = le.turn_id
|
|
541
|
-
JOIN loops l ON l.id = le.loop_id
|
|
542
|
-
WHERE le.loop_id = $loop_id
|
|
543
|
-
AND le.status_rx >= 400
|
|
544
|
-
-- {§log-row-self-explains}: every >=400 row points at ITSELF — the op row carries its failure
|
|
545
|
-
-- message on its meta line (packet-wire), so the pointer leads to a record that states its why.
|
|
546
|
-
AND (
|
|
547
|
-
t.sequence = $current_turn_seq
|
|
548
|
-
OR t.id = (SELECT id FROM previous_model_turn)
|
|
549
|
-
)
|
|
550
|
-
ORDER BY t.sequence, le.sequence;
|
|
551
|
-
|
|
552
|
-
-- PREP: overflow_turn_causal_rows
|
|
553
|
-
-- {§overflow-turn-curation} — one deterministic causal set: rows already in
|
|
554
|
-
-- the packetless candidate and rows from the worker's immediately preceding
|
|
555
|
-
-- completed turn.
|
|
556
|
-
WITH current_turn AS (
|
|
557
|
-
SELECT turn.id, turn.sequence AS turn_seq,
|
|
558
|
-
loop.id AS loop_id, loop.sequence AS loop_seq, loop.worker_id
|
|
559
|
-
FROM turns turn
|
|
560
|
-
JOIN loops loop ON loop.id = turn.loop_id
|
|
561
|
-
WHERE turn.id = $turn_id AND loop.id = $loop_id
|
|
562
|
-
),
|
|
563
|
-
previous_turn AS (
|
|
564
|
-
SELECT prior.id
|
|
565
|
-
FROM turns prior
|
|
566
|
-
JOIN loops prior_loop ON prior_loop.id = prior.loop_id
|
|
567
|
-
JOIN current_turn current ON current.worker_id = prior_loop.worker_id
|
|
568
|
-
WHERE prior.completed_at IS NOT NULL
|
|
569
|
-
AND (
|
|
570
|
-
prior_loop.sequence < current.loop_seq
|
|
571
|
-
OR (
|
|
572
|
-
prior_loop.sequence = current.loop_seq
|
|
573
|
-
AND prior.sequence < current.turn_seq
|
|
574
|
-
)
|
|
575
|
-
)
|
|
576
|
-
ORDER BY prior_loop.sequence DESC, prior.sequence DESC
|
|
577
|
-
LIMIT 1
|
|
578
|
-
),
|
|
579
|
-
causal_rows(id) AS (
|
|
580
|
-
SELECT row.id
|
|
581
|
-
FROM active_log_entries row
|
|
582
|
-
WHERE row.turn_id = $turn_id
|
|
583
|
-
OR row.turn_id = (SELECT id FROM previous_turn)
|
|
584
|
-
)
|
|
585
|
-
SELECT row.id,
|
|
586
|
-
(loop.sequence || '/' || turn.sequence || '/' || row.sequence) AS coordinate,
|
|
587
|
-
row.origin, row.op, row.attrs,
|
|
588
|
-
row.tx, row.mimetype_tx, row.rx, row.mimetype_rx,
|
|
589
|
-
row.folded
|
|
590
|
-
FROM causal_rows causal
|
|
591
|
-
JOIN active_log_entries row ON row.id = causal.id
|
|
592
|
-
JOIN turns turn ON turn.id = row.turn_id
|
|
593
|
-
JOIN loops loop ON loop.id = row.loop_id
|
|
594
|
-
ORDER BY loop.sequence, turn.sequence, row.sequence;
|
|
595
|
-
|
|
596
|
-
-- PREP: engine_render_log
|
|
597
|
-
-- Render-time log-section assembly ({§body-projection}).
|
|
598
|
-
-- Yields log_entries for the whole worker — the conversation's working
|
|
599
|
-
-- memory carries across loops within a worker, not just the
|
|
600
|
-
-- current loop. Coordinates append /<op> only for rows that represent an operation.
|
|
601
|
-
-- Status 202 entries in state='proposed' are model-invisible until resolved.
|
|
602
|
-
-- Folded intervals are projected against the canonical body by packet-wire;
|
|
603
|
-
-- wholly suppressed rows remain listed and exactly READable. {§log-kill-scope}
|
|
604
|
-
SELECT
|
|
605
|
-
le.id,
|
|
606
|
-
l.sequence AS loop_seq,
|
|
607
|
-
t.sequence AS turn_seq,
|
|
608
|
-
le.sequence,
|
|
609
|
-
-- le.origin is attribution, never a render filter; the worker's actor — {§actor-boundary-origin-not-filter} {§machine-processes-worker-origin}
|
|
610
|
-
le.origin,
|
|
611
|
-
le.op, le.delimiter, le.signal,
|
|
612
|
-
le.scheme, le.username, le.password,
|
|
613
|
-
le.hostname, le.port, le.pathname,
|
|
614
|
-
le.query, le.fragment,
|
|
615
|
-
le.status_rx, le.rx, le.mimetype_rx,
|
|
616
|
-
le.tx, le.mimetype_tx,
|
|
617
|
-
le.state, le.outcome, le.folded, delivery.delivered_at AS native_delivered_at,
|
|
618
|
-
le.source, le.weight, le.attrs
|
|
619
|
-
FROM active_log_entries le
|
|
620
|
-
JOIN turns t ON t.id = le.turn_id
|
|
621
|
-
JOIN loops l ON l.id = le.loop_id
|
|
622
|
-
LEFT JOIN native_content_deliveries delivery ON delivery.log_entry_id = le.id
|
|
623
|
-
-- WHERE renders exactly one worker's log — {§actor-boundary-isolation} {§machine-processes-worker-is-its-log}
|
|
624
|
-
-- the AND NOT clauses keep proposed (202) rows hidden until resolved ({§proposal-proposed-hidden})
|
|
625
|
-
-- and dissolve successful log-curation receipts: a model-authored log-target KILL
|
|
626
|
-
-- row renders in exactly the packet after its turn — the actor sees its 200 or 204 once — and
|
|
627
|
-
-- leaves the projection as soon as a later model turn has rows ({§log-kill-meta-operation},
|
|
628
|
-
-- {§curation-receipt-dissolves}). Every failed operation remains visible through
|
|
629
|
-
-- {§operation-result-uniform-error-channel}.
|
|
630
|
-
WHERE le.worker_id = $worker_id
|
|
631
|
-
AND NOT (le.status_rx = 202 AND le.state = 'proposed')
|
|
632
|
-
AND NOT (
|
|
633
|
-
(COALESCE(le.op, '') = 'KILL' AND le.scheme = 'log')
|
|
634
|
-
AND le.status_rx < 400
|
|
635
|
-
AND le.source IS NULL
|
|
636
|
-
AND le.turn_id <> (
|
|
637
|
-
SELECT MAX(latest.turn_id) FROM active_log_entries latest
|
|
638
|
-
WHERE latest.worker_id = le.worker_id AND latest.origin = 'model'
|
|
639
|
-
)
|
|
640
|
-
)
|
|
641
|
-
-- Successful maintenance-turn rows (doc reconciliation) never render: a
|
|
642
|
-
-- receipt answers an asker and these turns have none. Rows stay durable and
|
|
643
|
-
-- READ-able; failures remain visible ({§operation-result-uniform-error-channel}).
|
|
644
|
-
AND NOT (
|
|
645
|
-
t.producer = '_plurnk'
|
|
646
|
-
AND t.kind = 'maintenance'
|
|
647
|
-
AND COALESCE(le.status_rx, 200) < 400
|
|
648
|
-
AND le.source IS NULL
|
|
649
|
-
)
|
|
650
|
-
ORDER BY l.sequence, t.sequence, le.sequence;
|
|
651
|
-
|
|
652
|
-
-- PREP: engine_log_selection_high_water
|
|
653
|
-
-- An admitted program resolves log curation against the event journal as it
|
|
654
|
-
-- existed on entry. Later statements may observe earlier effects, but a broad
|
|
655
|
-
-- KILL cannot capture operation rows the same program is still emitting.
|
|
656
|
-
SELECT COALESCE(MAX(id), 0) AS max_id
|
|
657
|
-
FROM log_entries
|
|
658
|
-
WHERE worker_id = $worker_id;
|
|
659
|
-
|
|
660
|
-
-- PREP: engine_insert_log_entry
|
|
661
|
-
-- Default state='resolved' covers the common path (non-proposing schemes
|
|
662
|
-
-- return their final status immediately). Status 202 + state='proposed'
|
|
663
|
-
-- triggers the proposal lifecycle (engine pauses dispatch; client resolves
|
|
664
|
-
-- via proposal resolution; entry transitions through engine_resolve_log_entry).
|
|
665
|
-
INSERT INTO log_entries (
|
|
666
|
-
worker_id, loop_id, turn_id, sequence, origin, source, model_call_id,
|
|
667
|
-
op, delimiter, signal,
|
|
668
|
-
scheme, username, password, hostname, port,
|
|
669
|
-
pathname, query, fragment, lineMarker,
|
|
670
|
-
tx, mimetype_tx, rx, mimetype_rx, status_rx, weight,
|
|
671
|
-
state, outcome, attrs, initial_folded
|
|
672
|
-
) VALUES (
|
|
673
|
-
$worker_id, $loop_id, $turn_id, $sequence, $origin, $source, $model_call_id,
|
|
674
|
-
$op, $delimiter, $signal,
|
|
675
|
-
$scheme, $username, $password, $hostname, $port,
|
|
676
|
-
$pathname, $query, $fragment, $lineMarker,
|
|
677
|
-
$tx, $mimetype_tx, $rx, $mimetype_rx, $status_rx, $weight,
|
|
678
|
-
$state, $outcome, $attrs, COALESCE($initial_folded, '[]')
|
|
679
|
-
)
|
|
680
|
-
RETURNING id;
|
|
681
|
-
|
|
682
|
-
-- PREP: engine_resolve_log_entry
|
|
683
|
-
-- Transitions a proposed log entry to its terminal state. Used by the
|
|
684
|
-
-- proposal lifecycle (client resolution, auto resolution, timeout, abort).
|
|
685
|
-
-- Updates status_rx + rx + state + outcome atomically.
|
|
686
|
-
UPDATE log_entries
|
|
687
|
-
SET state = $state,
|
|
688
|
-
outcome = $outcome,
|
|
689
|
-
status_rx = $status_rx,
|
|
690
|
-
rx = $rx,
|
|
691
|
-
weight = $weight,
|
|
692
|
-
deep_hash = NULL
|
|
693
|
-
WHERE id = $id
|
|
694
|
-
AND state = 'proposed';
|
|
695
|
-
|
|
696
|
-
-- PREP: engine_log_entry_coordinate
|
|
697
|
-
-- Resolve a durable operation occurrence after a proposal settles so a
|
|
698
|
-
-- Problem Details instance names the same model-facing log URI as every
|
|
699
|
-
-- immediately failed operation.
|
|
700
|
-
SELECT l.sequence AS loop_seq,
|
|
701
|
-
t.sequence AS turn_seq,
|
|
702
|
-
le.sequence AS sequence,
|
|
703
|
-
le.op AS op,
|
|
704
|
-
le.attrs AS attrs,
|
|
705
|
-
le.tx AS tx,
|
|
706
|
-
le.mimetype_tx AS mimetype_tx,
|
|
707
|
-
le.mimetype_rx AS mimetype_rx
|
|
708
|
-
FROM log_entries le
|
|
709
|
-
JOIN turns t ON t.id = le.turn_id
|
|
710
|
-
JOIN loops l ON l.id = le.loop_id
|
|
711
|
-
WHERE le.id = $id;
|
|
712
|
-
|
|
713
|
-
-- PREP: engine_turn_packet_boundaries
|
|
714
|
-
-- {§send-premature-terminate}/{§wait-obligation-matrix} — operations whose useful effect crosses
|
|
715
|
-
-- into the next packet: READ/FIND/BARE results, successful EDIT/COPY/MOVE receipts (the model
|
|
716
|
-
-- sees what it changed before it claims done — deterministic railing, one cached turn), plus
|
|
717
|
-
-- successful log curation. Receipts block an explicit (TERM); a log KILL blocks only the
|
|
718
|
-
-- empty-(WAIT) inference because explicit final housekeeping remains valid.
|
|
719
|
-
SELECT id, op FROM active_log_entries
|
|
720
|
-
WHERE turn_id = $turn_id
|
|
721
|
-
AND origin = 'model'
|
|
722
|
-
AND (op IN ('READ', 'FIND', 'BARE')
|
|
723
|
-
OR (op IN ('EDIT', 'COPY', 'MOVE') AND status_rx < 400)
|
|
724
|
-
OR (op = 'KILL' AND scheme = 'log' AND status_rx < 400));
|
|
725
|
-
|
|
726
|
-
-- PREP: engine_worker_has_undelivered_stream_term
|
|
727
|
-
-- A stream may finish between its EXEC and a same-turn SEND. It is then no longer
|
|
728
|
-
-- live, but its terminal outcome has not crossed the pre-turn observation boundary:
|
|
729
|
-
-- one or more selected channel publication rows remain nonterminal. Treat that
|
|
730
|
-
-- closed result like a same-turn retrieval or child termination so an empty
|
|
731
|
-
-- join cannot conclude over unseen work.
|
|
732
|
-
-- Completion is information independently of payload: an empty success and especially
|
|
733
|
-
-- an empty failure must receive the same terminal observation as a non-empty stream.
|
|
734
|
-
-- The close status rides along: the terminal gate lets a successful close through
|
|
735
|
-
-- ({§send-premature-terminate}); the empty-join path delivers every close.
|
|
736
|
-
SELECT DISTINCT s.handle AS handle, s.close_status AS closeStatus
|
|
737
|
-
FROM subscriptions s
|
|
738
|
-
JOIN subscription_publications sp ON sp.subscription_id = s.id
|
|
739
|
-
WHERE s.worker_id = $worker_id
|
|
740
|
-
AND s.closed_at IS NOT NULL
|
|
741
|
-
AND sp.terminal_published = 0
|
|
742
|
-
LIMIT 8;
|
|
743
|
-
|
|
744
|
-
-- PREP: engine_turn_failures
|
|
745
|
-
-- {§send-premature-terminate} — THIS turn's failed op results (the model's own ops, status >= 400), whose
|
|
746
|
-
-- errors the model cannot have seen (they land next packet). A [200] or already-drained [202] over
|
|
747
|
-
-- them concludes blind past a failure — refused 409; [499] abandons regardless (declaring failure
|
|
748
|
-
-- IS weighing it).
|
|
749
|
-
-- Actionless engine errors are excluded because only model-authored failures can make
|
|
750
|
-
-- the model's concluding disposition blind. A model-authored statement that
|
|
751
|
-
-- failed grammar parsing is different: source='grammar' records a bounded operation failure
|
|
752
|
-
-- from the accepted emission, unseen until the next packet, so it gates completion like every
|
|
753
|
-
-- other failed model operation.
|
|
754
|
-
SELECT id FROM active_log_entries
|
|
755
|
-
WHERE turn_id = $turn_id
|
|
756
|
-
AND origin = 'model'
|
|
757
|
-
AND status_rx >= 400
|
|
758
|
-
AND (op != 'error' OR source = 'grammar');
|
|
759
|
-
|
|
760
|
-
-- PREP: engine_loop_sequence
|
|
761
|
-
-- The loop's per-worker sequence — the model-facing coordinate (prompt/<worker>/<loop-seq>/<turn-seq>,
|
|
762
|
-
-- matching the log's loop-relative numbering). The raw db id leaked into prompt paths and the
|
|
763
|
-
-- model's first loop read as prompt/2/1 (the docs loop holds id 1). Owner: minor but annoying.
|
|
764
|
-
SELECT sequence FROM loops WHERE id = $loop_id;
|
|
765
|
-
|
|
766
|
-
-- PREP: engine_worker_has_inference_history
|
|
767
|
-
-- Administrative turns may legitimately precede the first provider exchange.
|
|
768
|
-
-- Initialization is therefore keyed to inference history, never loop ordinals.
|
|
769
|
-
SELECT EXISTS (
|
|
770
|
-
SELECT 1
|
|
771
|
-
FROM turns t
|
|
772
|
-
JOIN loops l ON l.id = t.loop_id
|
|
773
|
-
WHERE l.worker_id = $worker_id
|
|
774
|
-
AND (t.producer = 'model' OR t.kind = 'initialization')
|
|
775
|
-
) AS present;
|
|
776
|
-
|
|
777
80
|
-- PREP: engine_worker_lineage_root
|
|
778
81
|
-- The no-parent root of a worker lineage; a root worker returns itself.
|
|
779
82
|
-- {§worker-primary}
|
|
@@ -799,30 +102,3 @@ SELECT current.provider_identity AS worker_id,
|
|
|
799
102
|
FROM workers current
|
|
800
103
|
JOIN lineage root ON root.parent_worker_id IS NULL
|
|
801
104
|
WHERE current.id = $worker_id;
|
|
802
|
-
|
|
803
|
-
-- PREP: engine_worker_has_undelivered_child_term
|
|
804
|
-
-- A child conclusion newer than the parent's observation cursor is complete but
|
|
805
|
-
-- not delivered. This is the same durable boundary the next packet consumes,
|
|
806
|
-
-- not a second timestamp race. {§send-undelivered-child-term}
|
|
807
|
-
SELECT 1 AS pending
|
|
808
|
-
FROM ambient_events ae
|
|
809
|
-
JOIN workers parent ON parent.id = $worker_id
|
|
810
|
-
WHERE ae.workspace_id = parent.workspace_id
|
|
811
|
-
AND ae.kind = 'loop_termination'
|
|
812
|
-
AND ae.target_parent_worker_id = parent.id
|
|
813
|
-
AND ae.id > COALESCE(parent.ambient_event_cursor, 0)
|
|
814
|
-
LIMIT 1;
|
|
815
|
-
|
|
816
|
-
-- PREP: engine_calibration_samples
|
|
817
|
-
-- {§tokenomics-calibrated-readout} — one model's last five settled emission responses, each pairing
|
|
818
|
-
-- the request's measured packet weight with the provider's reported prompt count.
|
|
819
|
-
-- Newest first; only rows where both figures are positive.
|
|
820
|
-
SELECT json_extract(t.packet, '$.weight') AS weight, pr.usage_input AS reported
|
|
821
|
-
FROM provider_requests pr
|
|
822
|
-
JOIN inference_calls ic ON ic.id = pr.inference_call_id
|
|
823
|
-
JOIN turns t ON t.id = ic.turn_id
|
|
824
|
-
WHERE pr.model = $model AND pr.state = 'settled' AND pr.outcome = 'response'
|
|
825
|
-
AND ic.kind = 'emission' AND pr.usage_input > 0
|
|
826
|
-
AND t.packet IS NOT NULL AND json_extract(t.packet, '$.weight') > 0
|
|
827
|
-
ORDER BY pr.id DESC
|
|
828
|
-
LIMIT 5;
|