@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/schemes/Log.sql
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
-- coordinate; KILL mutates only the active projection.
|
|
3
3
|
|
|
4
4
|
-- PREP: log_read_by_coordinate
|
|
5
|
-
SELECT le.origin, le.op, le.scheme, le.pathname, le.status_rx,
|
|
5
|
+
SELECT le.id, le.origin, le.op, le.scheme, le.pathname, le.status_rx, le.folded,
|
|
6
6
|
le.tx, le.mimetype_tx, le.rx, le.mimetype_rx, le.attrs
|
|
7
7
|
FROM active_log_entries le
|
|
8
8
|
JOIN turns t ON t.id = le.turn_id
|
|
@@ -11,7 +11,7 @@ WHERE l.worker_id = $worker_id AND l.sequence = $loop_seq AND t.sequence = $turn
|
|
|
11
11
|
|
|
12
12
|
-- PREP: log_id_by_coordinate
|
|
13
13
|
-- Resolve a concrete active log:/// coordinate within the worker.
|
|
14
|
-
SELECT le.id, le.origin, le.op, le.attrs FROM active_log_entries le
|
|
14
|
+
SELECT le.id, le.origin, le.op, le.attrs, le.tx FROM active_log_entries le
|
|
15
15
|
JOIN turns t ON t.id = le.turn_id
|
|
16
16
|
JOIN loops l ON l.id = t.loop_id
|
|
17
17
|
WHERE l.worker_id = $worker_id
|
|
@@ -25,7 +25,7 @@ WHERE l.worker_id = $worker_id
|
|
|
25
25
|
-- coordinate tree. TypeScript appends the canonical projected OP and applies
|
|
26
26
|
-- the authoritative shell-glob match.
|
|
27
27
|
SELECT le.id, (l.sequence || '/' || t.sequence || '/' || le.sequence) AS coordinate,
|
|
28
|
-
le.origin, le.op, le.attrs
|
|
28
|
+
le.origin, le.op, le.attrs, le.tx
|
|
29
29
|
FROM active_log_entries le
|
|
30
30
|
JOIN turns t ON t.id = le.turn_id
|
|
31
31
|
JOIN loops l ON l.id = t.loop_id
|
|
@@ -51,7 +51,12 @@ SELECT
|
|
|
51
51
|
le.rx,
|
|
52
52
|
le.mimetype_rx,
|
|
53
53
|
le.attrs,
|
|
54
|
-
le.folded
|
|
54
|
+
le.folded,
|
|
55
|
+
CASE WHEN json_valid(le.rx) THEN (json_type(le.rx, '$.nativeContentHash') = 'text'
|
|
56
|
+
AND ((SELECT packet FROM turns WHERE id = $turn_id) IS NULL OR EXISTS (
|
|
57
|
+
SELECT 1 FROM json_each((SELECT packet FROM turns WHERE id = $turn_id), '$.attachments') part
|
|
58
|
+
WHERE json_extract(part.value, '$.coordinate') = (l.sequence || '/' || t.sequence || '/' || le.sequence)
|
|
59
|
+
))) ELSE 0 END AS native_active
|
|
55
60
|
FROM active_log_entries le
|
|
56
61
|
JOIN turns t ON t.id = le.turn_id
|
|
57
62
|
JOIN loops l ON l.id = t.loop_id
|
|
@@ -63,15 +68,21 @@ UPDATE log_entry_projections SET folded = $folded
|
|
|
63
68
|
WHERE log_entry_id = $id AND active = 1 AND json(folded) != json($folded)
|
|
64
69
|
RETURNING log_entry_id AS id;
|
|
65
70
|
|
|
66
|
-
-- PREP:
|
|
67
|
-
--
|
|
68
|
-
--
|
|
71
|
+
-- PREP: log_apply_projection_plan
|
|
72
|
+
-- {§log-curation-direct}: a direct core-scheme curation lands its whole plan or none of it. Every
|
|
73
|
+
-- target's precondition is counted once, before any row changes; one stale target means zero rows.
|
|
74
|
+
-- The same collision-checked transition as the dispatcher's atomic curation event, without an op row.
|
|
69
75
|
UPDATE log_entry_projections
|
|
70
|
-
SET active =
|
|
71
|
-
folded =
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
AND
|
|
76
|
+
SET active = json_extract(plan.value, '$.activeAfter'),
|
|
77
|
+
folded = json_extract(plan.value, '$.foldedAfter')
|
|
78
|
+
FROM json_each($targets) AS plan
|
|
79
|
+
WHERE log_entry_projections.log_entry_id = json_extract(plan.value, '$.id')
|
|
80
|
+
AND (
|
|
81
|
+
SELECT COUNT(*) FROM json_each($targets) AS t
|
|
82
|
+
JOIN log_entry_projections p ON p.log_entry_id = json_extract(t.value, '$.id')
|
|
83
|
+
AND p.active = json_extract(t.value, '$.activeBefore')
|
|
84
|
+
AND json(p.folded) = json(json_extract(t.value, '$.foldedBefore'))
|
|
85
|
+
) = json_array_length($targets)
|
|
75
86
|
RETURNING log_entry_id AS id;
|
|
76
87
|
|
|
77
88
|
-- PREP: log_find_candidates
|
|
@@ -80,7 +91,7 @@ RETURNING log_entry_id AS id;
|
|
|
80
91
|
-- fields Log's rx projection renders (FIND must match exactly what READ shows). Coordinate-ordered.
|
|
81
92
|
SELECT
|
|
82
93
|
(l.sequence || '/' || t.sequence || '/' || le.sequence) AS coordinate,
|
|
83
|
-
le.origin, le.op, le.tx, le.mimetype_tx, le.rx, le.mimetype_rx, le.weight, le.deep_hash, le.attrs
|
|
94
|
+
le.origin, le.op, le.tx, le.mimetype_tx, le.rx, le.mimetype_rx, le.weight, le.deep_hash, le.attrs, le.folded
|
|
84
95
|
FROM active_log_entries le
|
|
85
96
|
JOIN turns t ON t.id = le.turn_id
|
|
86
97
|
JOIN loops l ON l.id = t.loop_id
|
|
@@ -109,7 +120,7 @@ SELECT
|
|
|
109
120
|
le.deep_hash,
|
|
110
121
|
d.disposition AS deep_disposition,
|
|
111
122
|
d.reason AS deep_reason,
|
|
112
|
-
le.attrs
|
|
123
|
+
le.attrs, le.folded
|
|
113
124
|
FROM active_log_entries le
|
|
114
125
|
LEFT JOIN derivations d ON d.deep_hash = le.deep_hash
|
|
115
126
|
JOIN workers w ON w.id = le.worker_id
|
|
@@ -119,4 +130,161 @@ WHERE w.workspace_id = $workspace_id
|
|
|
119
130
|
ORDER BY le.id;
|
|
120
131
|
|
|
121
132
|
-- PREP: log_set_deep_hash
|
|
122
|
-
UPDATE log_entries SET deep_hash = $deep_hash
|
|
133
|
+
UPDATE log_entries SET deep_hash = $deep_hash
|
|
134
|
+
WHERE id = $log_entry_id AND EXISTS (
|
|
135
|
+
SELECT 1 FROM log_entry_projections
|
|
136
|
+
WHERE log_entry_id = $log_entry_id AND active = 1 AND json(folded) = json($folded)
|
|
137
|
+
);
|
|
138
|
+
|
|
139
|
+
-- INIT: log_entries_initialize_projection
|
|
140
|
+
DROP TRIGGER IF EXISTS log_entries_initialize_projection;
|
|
141
|
+
CREATE TRIGGER log_entries_initialize_projection
|
|
142
|
+
AFTER INSERT ON log_entries
|
|
143
|
+
BEGIN
|
|
144
|
+
INSERT INTO log_entry_projections (log_entry_id, active, folded)
|
|
145
|
+
VALUES (NEW.id, 1, '[]');
|
|
146
|
+
END;
|
|
147
|
+
|
|
148
|
+
-- INIT: log_entry_projections_invalidate_derivation
|
|
149
|
+
-- {§log-readable-projection} — derived artifacts describe the active body.
|
|
150
|
+
DROP TRIGGER IF EXISTS log_entry_projections_invalidate_derivation;
|
|
151
|
+
CREATE TRIGGER log_entry_projections_invalidate_derivation
|
|
152
|
+
AFTER UPDATE OF folded, active ON log_entry_projections
|
|
153
|
+
WHEN OLD.active != NEW.active OR json(OLD.folded) != json(NEW.folded)
|
|
154
|
+
BEGIN
|
|
155
|
+
UPDATE log_entries SET deep_hash = NULL WHERE id = NEW.log_entry_id;
|
|
156
|
+
END;
|
|
157
|
+
|
|
158
|
+
-- INIT: log_entries_apply_curation
|
|
159
|
+
-- One outer INSERT owns the whole landed curation event: exact selected rows,
|
|
160
|
+
-- their before/after projection, and the resulting current
|
|
161
|
+
-- state. Trigger failure rolls the operation row and all effects back together.
|
|
162
|
+
-- The private plan is erased before INSERT returns.
|
|
163
|
+
-- {§log-kill-scope} — a log KILL either retires a row whole (active 1→0, visibility untouched)
|
|
164
|
+
-- or folds a span of its body (active stays 1, visibility changes).
|
|
165
|
+
DROP TRIGGER IF EXISTS log_entries_apply_curation;
|
|
166
|
+
CREATE TRIGGER log_entries_apply_curation
|
|
167
|
+
AFTER INSERT ON log_entries
|
|
168
|
+
WHEN NEW.op = 'KILL'
|
|
169
|
+
AND NEW.status_rx < 400
|
|
170
|
+
AND NEW.scheme = 'log'
|
|
171
|
+
AND json_type(NEW.attrs, '$.__plurnk_curation') = 'object'
|
|
172
|
+
BEGIN
|
|
173
|
+
SELECT CASE WHEN
|
|
174
|
+
COALESCE(json_type(NEW.attrs, '$.__plurnk_curation.targets'), '') != 'array'
|
|
175
|
+
OR json_array_length(NEW.attrs, '$.__plurnk_curation.targets') = 0
|
|
176
|
+
OR EXISTS (
|
|
177
|
+
SELECT 1
|
|
178
|
+
FROM json_each(NEW.attrs, '$.__plurnk_curation.targets') selected
|
|
179
|
+
WHERE selected.type != 'object'
|
|
180
|
+
OR COALESCE(json_type(selected.value, '$.id'), '') != 'integer'
|
|
181
|
+
OR json_extract(selected.value, '$.id') <= 0
|
|
182
|
+
OR COALESCE(json_type(selected.value, '$.activeBefore'), '') != 'integer'
|
|
183
|
+
OR json_extract(selected.value, '$.activeBefore') NOT IN (0, 1)
|
|
184
|
+
OR COALESCE(json_type(selected.value, '$.activeAfter'), '') != 'integer'
|
|
185
|
+
OR json_extract(selected.value, '$.activeAfter') NOT IN (0, 1)
|
|
186
|
+
OR COALESCE(json_type(selected.value, '$.foldedBefore'), '') != 'array'
|
|
187
|
+
OR COALESCE(json_type(selected.value, '$.foldedAfter'), '') != 'array'
|
|
188
|
+
OR EXISTS (
|
|
189
|
+
SELECT 1 FROM json_each(selected.value) field
|
|
190
|
+
WHERE field.key NOT IN ('id', 'activeBefore', 'activeAfter', 'foldedBefore', 'foldedAfter')
|
|
191
|
+
)
|
|
192
|
+
OR EXISTS (
|
|
193
|
+
SELECT 1
|
|
194
|
+
FROM (
|
|
195
|
+
SELECT 'before' AS side, range.key, range.value, range.type
|
|
196
|
+
FROM json_each(json_extract(selected.value, '$.foldedBefore')) range
|
|
197
|
+
UNION ALL
|
|
198
|
+
SELECT 'after' AS side, range.key, range.value, range.type
|
|
199
|
+
FROM json_each(json_extract(selected.value, '$.foldedAfter')) range
|
|
200
|
+
) range
|
|
201
|
+
WHERE range.type != 'array'
|
|
202
|
+
OR json_array_length(range.value) != 2
|
|
203
|
+
OR COALESCE(json_type(range.value, '$[0]'), '') != 'integer'
|
|
204
|
+
OR COALESCE(json_type(range.value, '$[1]'), '') != 'integer'
|
|
205
|
+
OR json_extract(range.value, '$[0]') < 1
|
|
206
|
+
OR (
|
|
207
|
+
json_extract(range.value, '$[1]') != -1
|
|
208
|
+
AND json_extract(range.value, '$[1]') < json_extract(range.value, '$[0]')
|
|
209
|
+
)
|
|
210
|
+
OR EXISTS (
|
|
211
|
+
SELECT 1
|
|
212
|
+
FROM json_each(
|
|
213
|
+
CASE range.side
|
|
214
|
+
WHEN 'before' THEN json_extract(selected.value, '$.foldedBefore')
|
|
215
|
+
ELSE json_extract(selected.value, '$.foldedAfter')
|
|
216
|
+
END
|
|
217
|
+
) previous
|
|
218
|
+
WHERE previous.key = range.key - 1
|
|
219
|
+
AND (
|
|
220
|
+
json_extract(previous.value, '$[1]') = -1
|
|
221
|
+
OR json_extract(range.value, '$[0]') <= json_extract(previous.value, '$[1]') + 1
|
|
222
|
+
)
|
|
223
|
+
)
|
|
224
|
+
)
|
|
225
|
+
)
|
|
226
|
+
OR (
|
|
227
|
+
SELECT COUNT(*) FROM json_each(NEW.attrs, '$.__plurnk_curation.targets')
|
|
228
|
+
) != (
|
|
229
|
+
SELECT COUNT(DISTINCT json_extract(value, '$.id'))
|
|
230
|
+
FROM json_each(NEW.attrs, '$.__plurnk_curation.targets')
|
|
231
|
+
)
|
|
232
|
+
OR EXISTS (
|
|
233
|
+
SELECT 1
|
|
234
|
+
FROM json_each(NEW.attrs, '$.__plurnk_curation.targets') selected
|
|
235
|
+
LEFT JOIN log_entries target ON target.id = json_extract(selected.value, '$.id')
|
|
236
|
+
LEFT JOIN log_entry_projections projection ON projection.log_entry_id = target.id
|
|
237
|
+
WHERE target.id IS NULL
|
|
238
|
+
OR projection.log_entry_id IS NULL
|
|
239
|
+
OR target.worker_id != NEW.worker_id
|
|
240
|
+
OR target.id = NEW.id
|
|
241
|
+
OR projection.active != json_extract(selected.value, '$.activeBefore')
|
|
242
|
+
OR json(projection.folded) != json(json_extract(selected.value, '$.foldedBefore'))
|
|
243
|
+
OR NOT (
|
|
244
|
+
json_extract(selected.value, '$.activeBefore') = 1
|
|
245
|
+
AND (
|
|
246
|
+
json_extract(selected.value, '$.activeAfter') = 1
|
|
247
|
+
OR json(json_extract(selected.value, '$.foldedBefore')) = json(json_extract(selected.value, '$.foldedAfter'))
|
|
248
|
+
)
|
|
249
|
+
)
|
|
250
|
+
)
|
|
251
|
+
THEN RAISE(ABORT, 'invalid private log curation payload') END;
|
|
252
|
+
|
|
253
|
+
INSERT INTO log_curation_effects (
|
|
254
|
+
operation_log_entry_id,
|
|
255
|
+
target_log_entry_id,
|
|
256
|
+
active_before,
|
|
257
|
+
active_after,
|
|
258
|
+
folded_before,
|
|
259
|
+
folded_after
|
|
260
|
+
)
|
|
261
|
+
SELECT
|
|
262
|
+
NEW.id,
|
|
263
|
+
target.id,
|
|
264
|
+
json_extract(selected.value, '$.activeBefore'),
|
|
265
|
+
json_extract(selected.value, '$.activeAfter'),
|
|
266
|
+
json_extract(selected.value, '$.foldedBefore'),
|
|
267
|
+
json_extract(selected.value, '$.foldedAfter')
|
|
268
|
+
FROM json_each(NEW.attrs, '$.__plurnk_curation.targets') selected
|
|
269
|
+
JOIN log_entries target ON target.id = json_extract(selected.value, '$.id');
|
|
270
|
+
|
|
271
|
+
UPDATE log_entry_projections
|
|
272
|
+
SET active = (
|
|
273
|
+
SELECT json_extract(selected.value, '$.activeAfter')
|
|
274
|
+
FROM json_each(NEW.attrs, '$.__plurnk_curation.targets') selected
|
|
275
|
+
WHERE json_extract(selected.value, '$.id') = log_entry_projections.log_entry_id
|
|
276
|
+
),
|
|
277
|
+
folded = (
|
|
278
|
+
SELECT json_extract(selected.value, '$.foldedAfter')
|
|
279
|
+
FROM json_each(NEW.attrs, '$.__plurnk_curation.targets') selected
|
|
280
|
+
WHERE json_extract(selected.value, '$.id') = log_entry_projections.log_entry_id
|
|
281
|
+
)
|
|
282
|
+
WHERE log_entry_id IN (
|
|
283
|
+
SELECT json_extract(value, '$.id')
|
|
284
|
+
FROM json_each(NEW.attrs, '$.__plurnk_curation.targets')
|
|
285
|
+
);
|
|
286
|
+
|
|
287
|
+
UPDATE log_entries
|
|
288
|
+
SET attrs = json_remove(attrs, '$.__plurnk_curation')
|
|
289
|
+
WHERE id = NEW.id;
|
|
290
|
+
END;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Prompt.d.ts","sourceRoot":"","sources":["../../src/schemes/Prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChJ,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"Prompt.d.ts","sourceRoot":"","sources":["../../src/schemes/Prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChJ,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D,MAAM,CAAC,OAAO,OAAO,MAAO,YAAW,aAAa;IAChD,MAAM,CAAC,QAAQ,EAAE,cAAc,CAW7B;IAGI,SAAS,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAGtG;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAE7E;CACJ"}
|
package/dist/schemes/Prompt.js
CHANGED
|
@@ -1,28 +1,19 @@
|
|
|
1
1
|
import LineAnchors from "../content/line-anchors.js";
|
|
2
|
-
// {§prompt-
|
|
3
|
-
// prompt:///<loopSeq>/<turnSeq>, owned by the worker via owner_id — the address carries only the
|
|
4
|
-
// loop coordinate, so no worker identity ever rides a pathname or a packet. SELF-ONLY by
|
|
5
|
-
// construction: packets are per-worker and every cross-worker prompt flow (parent→child inject,
|
|
6
|
-
// the drain's orphan promotion) is engine-mediated, so the face takes no authority slot — a
|
|
7
|
-
// worker only ever addresses its own frames. Engine-authored (writableBy excludes the model);
|
|
8
|
-
// prompt-target log rows remain ordinary curatable memory.
|
|
2
|
+
// {§prompt-address}: immutable-to-model task frames at literal workspace addresses.
|
|
9
3
|
export default class Prompt {
|
|
10
4
|
static manifest = {
|
|
11
5
|
name: "prompt",
|
|
6
|
+
authority: "resource",
|
|
12
7
|
channels: { body: "text/markdown" },
|
|
13
8
|
defaultChannel: "body",
|
|
14
9
|
category: "data",
|
|
15
|
-
entryOwner: "worker",
|
|
16
|
-
inherit: "snapshot",
|
|
17
10
|
writableBy: ["client", "_plurnk"],
|
|
18
11
|
volatile: false,
|
|
19
12
|
modelVisible: true,
|
|
20
13
|
folderScopes: true,
|
|
21
14
|
textEditScopes: true,
|
|
22
|
-
example: "### READ0 (prompt:///1/1)",
|
|
23
15
|
};
|
|
24
|
-
//
|
|
25
|
-
// worker it addresses. The actionless prompt log row is written separately.
|
|
16
|
+
// The actionless prompt log row is written separately from its source entry.
|
|
26
17
|
async editBatch(statements, ctx) {
|
|
27
18
|
LineAnchors.assertResolved(statements);
|
|
28
19
|
return ctx.entries.operations.editBatch(statements);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Prompt.js","sourceRoot":"","sources":["../../src/schemes/Prompt.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAErD,
|
|
1
|
+
{"version":3,"file":"Prompt.js","sourceRoot":"","sources":["../../src/schemes/Prompt.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAErD,oFAAoF;AACpF,MAAM,CAAC,OAAO,OAAO,MAAM;IACvB,MAAM,CAAC,QAAQ,GAAmB;QAC9B,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;QACnC,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;QACjC,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;KACvB,CAAC;IAEF,6EAA6E;IAC7E,KAAK,CAAC,SAAS,CAAC,UAA4C,EAAE,GAAc;QACxE,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACvC,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAc;QAC/C,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuestionTool.d.ts","sourceRoot":"","sources":["../../src/schemes/QuestionTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAW,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAe,MAAM,sBAAsB,CAAC;AAcxH,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"QuestionTool.d.ts","sourceRoot":"","sources":["../../src/schemes/QuestionTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAW,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAe,MAAM,sBAAsB,CAAC;AAcxH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;CAiBT,CAAC;AAExB,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IAClD,IAAa,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,CAE3C;IAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAEpD;IAEQ,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE9C;IAEc,KAAK,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAEnD;IAEc,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CA4C7F;CACJ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseExecutor, Results } from "@plurnk/plurnk-execs";
|
|
2
2
|
import { Validator } from "@plurnk/plurnk-contracts";
|
|
3
3
|
// {§question-tool} — the native request-user-input runtime. The model asks the
|
|
4
|
-
// human through one registered
|
|
4
|
+
// human through one registered executor tool, wired directly against the standard
|
|
5
5
|
// client-interaction lifecycle (no loopback MCP, no proposal masquerade). The
|
|
6
6
|
// body is the MCP2 2026-07-28 form-elicitation shape verbatim —
|
|
7
7
|
// `{ message, requestedSchema }` — and the result is the standard
|
|
@@ -14,6 +14,7 @@ export const questionRuntimeDecl = {
|
|
|
14
14
|
glyph: "❓",
|
|
15
15
|
summary: "Ask the user to answer a question.",
|
|
16
16
|
invocation: {
|
|
17
|
+
target: { role: "label", kind: "literal", required: false },
|
|
17
18
|
body: { role: "MCP2 form-elicitation object", required: true },
|
|
18
19
|
example: { body: QUESTION_BODY_EXAMPLE },
|
|
19
20
|
},
|
|
@@ -24,7 +25,7 @@ export const questionRuntimeDecl = {
|
|
|
24
25
|
| \`message\` | The question shown to the user (non-empty string). |
|
|
25
26
|
| \`requestedSchema\` | JSON Schema object the user's answer must satisfy; \`enum\`/enumNames/oneOf/array/boolean/string/number forms supported. |
|
|
26
27
|
|
|
27
|
-
|
|
28
|
+
An optional target is a label, not a recipient. The result is \`{ "action": "accept", "content": <answer> }\` or \`{ "action": "cancel" }\`; a waiting loop resumes when the answer arrives.`,
|
|
28
29
|
};
|
|
29
30
|
export default class QuestionTool extends BaseExecutor {
|
|
30
31
|
get traits() {
|
|
@@ -56,8 +57,7 @@ export default class QuestionTool extends BaseExecutor {
|
|
|
56
57
|
return Results.failure("executor:question", "invalid-body", 400, "The question body must carry a non-empty message and a requestedSchema object.", {}, { recovery: "Use the MCP2 form-elicitation shape: { message, requestedSchema }.", retryable: false });
|
|
57
58
|
}
|
|
58
59
|
signal.throwIfAborted();
|
|
59
|
-
// The
|
|
60
|
-
// already produces; the executor owns only the mapping from the body.
|
|
60
|
+
// The interaction schema describes the answer, not this executor's output.
|
|
61
61
|
const request = Validator.assertClientInteractionRequest({
|
|
62
62
|
toolName: "question",
|
|
63
63
|
arguments: { message: r.message, requestedSchema: r.requestedSchema },
|
|
@@ -65,17 +65,9 @@ export default class QuestionTool extends BaseExecutor {
|
|
|
65
65
|
responseSchema: r.requestedSchema,
|
|
66
66
|
});
|
|
67
67
|
const resolution = await interact(request);
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const result = payload !== null && typeof payload === "object"
|
|
72
|
-
&& (payload.action === "accept"
|
|
73
|
-
|| payload.action === "decline"
|
|
74
|
-
|| payload.action === "cancel")
|
|
75
|
-
? payload
|
|
76
|
-
: resolution.status === "cancelled"
|
|
77
|
-
? { action: "cancel" }
|
|
78
|
-
: { action: "accept", content: payload ?? {} };
|
|
68
|
+
const result = resolution.status === "cancelled"
|
|
69
|
+
? { action: "cancel" }
|
|
70
|
+
: { action: "accept", content: resolution.payload };
|
|
79
71
|
write("results", `${JSON.stringify(result, null, 2)}\n`, "application/json");
|
|
80
72
|
setState("results", "closed");
|
|
81
73
|
return { status: 200, attrs: { action: result.action } };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuestionTool.js","sourceRoot":"","sources":["../../src/schemes/QuestionTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,+EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"QuestionTool.js","sourceRoot":"","sources":["../../src/schemes/QuestionTool.ts"],"names":[],"mappings":"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"}
|
package/dist/schemes/Skill.d.ts
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type
|
|
3
|
-
|
|
1
|
+
import { type SkillTree } from "@plurnk/plurnk-agent-skills";
|
|
2
|
+
import { type FindStatement, type ParsedPath } from "@plurnk/plurnk-contracts";
|
|
3
|
+
import { type ByteSource, type EntryAddress, type EntryCoordinate, type RepresentationPreparationRequest, type RepresentationPreparationResult, type SchemeHandler, type SchemeManifest } from "@plurnk/plurnk-schemes";
|
|
4
|
+
import { CoreSchemeAdapterBase, type CoreSchemeCallContext } from "../core/CoreSchemeServices.ts";
|
|
5
|
+
import { type FindResult } from "./_entry-find.ts";
|
|
6
|
+
export default class Skill extends CoreSchemeAdapterBase implements SchemeHandler {
|
|
7
|
+
#private;
|
|
4
8
|
static manifest: SchemeManifest;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
constructor(trees: (workspaceId: number) => ReadonlyMap<string, SkillTree>);
|
|
10
|
+
resolveEntryAddress(target: ParsedPath, ctx: CoreSchemeCallContext): Promise<EntryAddress | null>;
|
|
11
|
+
byteSource({ authority, pathname }: EntryCoordinate, ctx: CoreSchemeCallContext): ByteSource;
|
|
12
|
+
prepareRepresentation(request: RepresentationPreparationRequest, ctx: CoreSchemeCallContext): Promise<RepresentationPreparationResult>;
|
|
13
|
+
find(statement: FindStatement, ctx: CoreSchemeCallContext): Promise<FindResult>;
|
|
9
14
|
}
|
|
10
15
|
//# sourceMappingURL=Skill.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Skill.d.ts","sourceRoot":"","sources":["../../src/schemes/Skill.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Skill.d.ts","sourceRoot":"","sources":["../../src/schemes/Skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAc,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3F,OAAO,EAEH,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,aAAa,EAClB,KAAK,cAAc,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAOlG,OAAkB,EAAmB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI/E,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,qBAAsB,YAAW,aAAa;;IAC7E,MAAM,CAAC,QAAQ,EAAE,cAAc,CAU7B;IAIF,YAAY,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EAGzE;IAEK,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAItG;IAED,UAAU,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,qBAAqB,GAAG,UAAU,CAG3F;IA+DD,qBAAqB,CAAC,OAAO,EAAE,gCAAgC,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAErI;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CA6CpF;CACJ"}
|
package/dist/schemes/Skill.js
CHANGED
|
@@ -1,35 +1,163 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import
|
|
7
|
-
|
|
1
|
+
var _a;
|
|
2
|
+
import { SkillResourceError } from "@plurnk/plurnk-agent-skills";
|
|
3
|
+
import { PathSyntax } from "@plurnk/plurnk-contracts";
|
|
4
|
+
import { MimetypeInputLimitError } from "@plurnk/plurnk-mimetypes";
|
|
5
|
+
import { GeneratedByteSource, } from "@plurnk/plurnk-schemes";
|
|
6
|
+
import { CoreSchemeAdapterBase } from "../core/CoreSchemeServices.js";
|
|
7
|
+
import { entryCoordinateOf } from "../core/plurnk-uri.js";
|
|
8
|
+
import FileMaterialization from "../core/file-materialization.js";
|
|
9
|
+
import MimetypeBinary from "../content/mimetype-binary.js";
|
|
10
|
+
import Results from "../core/results.js";
|
|
11
|
+
import EntryCrud from "./_entry-crud.js";
|
|
12
|
+
import EntryFind, { emptyFindFields } from "./_entry-find.js";
|
|
13
|
+
import { pathScope, pathScopeMatches } from "./_path-scope.js";
|
|
14
|
+
// {§skills-resources} The resource tree is truth; entries are demand-loaded projections.
|
|
15
|
+
class Skill extends CoreSchemeAdapterBase {
|
|
8
16
|
static manifest = {
|
|
9
17
|
name: "skill",
|
|
10
|
-
|
|
18
|
+
authority: "resource",
|
|
19
|
+
channels: {},
|
|
11
20
|
defaultChannel: "body",
|
|
12
21
|
category: "data",
|
|
13
|
-
|
|
14
|
-
inherit: "snapshot",
|
|
15
|
-
writableBy: ["model", "client"],
|
|
22
|
+
writableBy: ["_plurnk", "plugin"],
|
|
16
23
|
volatile: false,
|
|
17
|
-
modelVisible: true,
|
|
18
24
|
folderScopes: true,
|
|
19
|
-
|
|
25
|
+
modelVisible: true,
|
|
20
26
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
#trees;
|
|
28
|
+
constructor(trees) {
|
|
29
|
+
super();
|
|
30
|
+
this.#trees = trees;
|
|
31
|
+
}
|
|
32
|
+
async resolveEntryAddress(target, ctx) {
|
|
33
|
+
const address = entryCoordinateOf(target, "resource");
|
|
34
|
+
const trees = this.#trees(ctx.workspaceId);
|
|
35
|
+
return PathSyntax.hasGlob(address.authority) || trees.has(address.authority) ? address : null;
|
|
36
|
+
}
|
|
37
|
+
byteSource({ authority, pathname }, ctx) {
|
|
38
|
+
return this.#trees(ctx.workspaceId).get(authority)?.resource(pathname.replace(/^\//u, ""))
|
|
39
|
+
?? new GeneratedByteSource(async () => null);
|
|
40
|
+
}
|
|
41
|
+
static #refusal(cause, address) {
|
|
42
|
+
const target = `skill://${address.authority}${address.pathname}`;
|
|
43
|
+
if (cause?.code === "ENOENT") {
|
|
44
|
+
return Results.failure("scheme:skill", "entry-not-found", 404, `No skill resource exists at ${target}.`, {}, { target });
|
|
45
|
+
}
|
|
46
|
+
if (cause instanceof SkillResourceError) {
|
|
47
|
+
const outside = cause.code === "SKILL_PATH_OUTSIDE_ROOT";
|
|
48
|
+
return Results.failure("scheme:skill", outside ? "resource-outside-root" : "resource-invalid", outside ? 403 : 400, cause.message, {}, { target });
|
|
49
|
+
}
|
|
50
|
+
throw cause;
|
|
51
|
+
}
|
|
52
|
+
async #materialize(address, core) {
|
|
53
|
+
try {
|
|
54
|
+
const source = this.byteSource(address, core);
|
|
55
|
+
const size = await source.size();
|
|
56
|
+
if (size === null)
|
|
57
|
+
return _a.#refusal({ code: "ENOENT" }, address);
|
|
58
|
+
const mimetypes = core.mimetypes;
|
|
59
|
+
if (mimetypes === undefined)
|
|
60
|
+
throw new Error("Skill requires the configured mimetype registry.");
|
|
61
|
+
const mimetype = await FileMaterialization.detectSourceMimetype(address.pathname, source, mimetypes);
|
|
62
|
+
let content = "";
|
|
63
|
+
let outputMimetype = mimetype;
|
|
64
|
+
let attributes = {};
|
|
65
|
+
if (await MimetypeBinary.isBinaryMimetype(mimetype, mimetypes)) {
|
|
66
|
+
let metadata = { mimetype };
|
|
67
|
+
try {
|
|
68
|
+
const projected = await mimetypes.projectReadableStream(_a.#chunks(source, size), mimetype);
|
|
69
|
+
if (projected !== null) {
|
|
70
|
+
content = projected.content;
|
|
71
|
+
outputMimetype = "text/markdown";
|
|
72
|
+
metadata = { mimetype: projected.sourceMimetype, facts: projected.facts };
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch (cause) {
|
|
76
|
+
if (!(cause instanceof MimetypeInputLimitError))
|
|
77
|
+
throw cause;
|
|
78
|
+
metadata = { mimetype, maximumBytes: cause.maximumBytes, observedBytes: cause.observedBytes };
|
|
79
|
+
}
|
|
80
|
+
attributes = { sourceProjection: metadata };
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
const materialization = FileMaterialization.classify(size);
|
|
84
|
+
if (materialization.disposition === "input-limit") {
|
|
85
|
+
const rejection = FileMaterialization.rejection(`skill://${address.authority}${address.pathname}`, materialization);
|
|
86
|
+
return Results.failure("scheme:skill", rejection.code, rejection.status, rejection.detail, {}, rejection.extensions);
|
|
87
|
+
}
|
|
88
|
+
content = new TextDecoder().decode(await source.read(1, size));
|
|
89
|
+
}
|
|
90
|
+
const written = await EntryCrud.writeEntry(address, {
|
|
91
|
+
channels: { body: { content, mimetype: outputMimetype } },
|
|
92
|
+
attributes,
|
|
93
|
+
}, core, "skill");
|
|
94
|
+
return written.status >= 400 ? written : { status: 200 };
|
|
95
|
+
}
|
|
96
|
+
catch (cause) {
|
|
97
|
+
return _a.#refusal(cause, address);
|
|
98
|
+
}
|
|
24
99
|
}
|
|
25
|
-
async
|
|
26
|
-
|
|
100
|
+
static async *#chunks(source, size) {
|
|
101
|
+
for (let start = 1; start <= size; start += 65536) {
|
|
102
|
+
yield await source.read(start, Math.min(start + 65535, size));
|
|
103
|
+
}
|
|
27
104
|
}
|
|
28
|
-
|
|
29
|
-
return
|
|
105
|
+
prepareRepresentation(request, ctx) {
|
|
106
|
+
return this.#materialize(request, this.coreContext(ctx));
|
|
30
107
|
}
|
|
31
108
|
async find(statement, ctx) {
|
|
32
|
-
|
|
109
|
+
const core = this.coreContext(ctx);
|
|
110
|
+
if (statement.target === null)
|
|
111
|
+
return { ...emptyFindFields(), ...Results.failure("scheme:skill", "target-required", 400, "FIND requires a skill resource target.") };
|
|
112
|
+
const coordinate = entryCoordinateOf(statement.target, "resource");
|
|
113
|
+
const authorityScope = pathScope(coordinate.authority, false);
|
|
114
|
+
const scope = pathScope(coordinate.pathname, true);
|
|
115
|
+
const inScope = (pathname) => scope.kind === "glob" && scope.shallowPrefix !== null
|
|
116
|
+
? pathname.startsWith(scope.shallowPrefix)
|
|
117
|
+
: pathScopeMatches(scope, pathname);
|
|
118
|
+
const trees = this.#trees(core.workspaceId);
|
|
119
|
+
const available = new Set();
|
|
120
|
+
for (const [authority, tree] of trees) {
|
|
121
|
+
if (!pathScopeMatches(authorityScope, authority))
|
|
122
|
+
continue;
|
|
123
|
+
try {
|
|
124
|
+
const paths = scope.kind === "exact"
|
|
125
|
+
? [scope.pathname.replace(/^\//u, "")]
|
|
126
|
+
: await tree.list();
|
|
127
|
+
for (const relative of paths) {
|
|
128
|
+
const pathname = `/${relative}`;
|
|
129
|
+
// A shallow FIND also needs deeper names for its folder summaries.
|
|
130
|
+
if (!inScope(pathname))
|
|
131
|
+
continue;
|
|
132
|
+
const prepared = await this.#materialize({ authority, pathname }, core);
|
|
133
|
+
if (prepared.status === 404)
|
|
134
|
+
continue;
|
|
135
|
+
if (prepared.status !== 200)
|
|
136
|
+
return { ...emptyFindFields(), ...prepared };
|
|
137
|
+
available.add(`${authority}\0${pathname}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
catch (cause) {
|
|
141
|
+
return { ...emptyFindFields(), ..._a.#refusal(cause, { authority, pathname: coordinate.pathname }) };
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
const cached = await core.db.find_workspace_entry_candidate_ids.all({
|
|
145
|
+
workspace_id: core.workspaceId, scheme: "skill",
|
|
146
|
+
authority: null, scope_prefix: null, channel: "body",
|
|
147
|
+
});
|
|
148
|
+
for (const address of cached) {
|
|
149
|
+
if (!trees.has(address.authority)
|
|
150
|
+
|| (pathScopeMatches(authorityScope, address.authority)
|
|
151
|
+
&& inScope(address.pathname)
|
|
152
|
+
&& !available.has(`${address.authority}\0${address.pathname}`))) {
|
|
153
|
+
await EntryCrud.deleteEntry(address, core, "skill");
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return EntryFind.findWorkspaceEntries(statement, core, _a.manifest, {
|
|
157
|
+
bytes: (pathname, authority) => this.byteSource({ authority, pathname }, core),
|
|
158
|
+
});
|
|
33
159
|
}
|
|
34
160
|
}
|
|
161
|
+
_a = Skill;
|
|
162
|
+
export default Skill;
|
|
35
163
|
//# sourceMappingURL=Skill.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Skill.js","sourceRoot":"","sources":["../../src/schemes/Skill.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"Skill.js","sourceRoot":"","sources":["../../src/schemes/Skill.ts"],"names":[],"mappings":"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"}
|