@plurnk/plurnk-service 1.16.4 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.defaults +122 -246
- package/INSTALL.md +84 -138
- package/README.md +9 -5
- package/SPEC.md +1710 -1015
- package/dist/Paths.d.ts +2 -0
- package/dist/Paths.d.ts.map +1 -1
- package/dist/Paths.js +2 -0
- package/dist/Paths.js.map +1 -1
- package/dist/build-info.d.ts.map +1 -1
- package/dist/build-info.js +7 -1
- package/dist/build-info.js.map +1 -1
- package/dist/build-info.json +1 -1
- package/dist/content/body-preview.d.ts +8 -0
- package/dist/content/body-preview.d.ts.map +1 -0
- package/dist/content/body-preview.js +39 -0
- package/dist/content/body-preview.js.map +1 -0
- package/dist/content/byte-view.d.ts +1 -4
- package/dist/content/byte-view.d.ts.map +1 -1
- package/dist/content/byte-view.js.map +1 -1
- package/dist/content/edit-collision.d.ts.map +1 -1
- package/dist/content/edit-collision.js +3 -4
- package/dist/content/edit-collision.js.map +1 -1
- package/dist/content/line-anchors.d.ts +2 -2
- package/dist/content/line-anchors.d.ts.map +1 -1
- package/dist/content/line-anchors.js +4 -3
- package/dist/content/line-anchors.js.map +1 -1
- package/dist/content/line-selection.d.ts +9 -0
- package/dist/content/line-selection.d.ts.map +1 -0
- package/dist/content/line-selection.js +29 -0
- package/dist/content/line-selection.js.map +1 -0
- package/dist/content/matcher.d.ts +0 -1
- package/dist/content/matcher.d.ts.map +1 -1
- package/dist/content/matcher.js +2 -3
- package/dist/content/matcher.js.map +1 -1
- package/dist/content/pattern-edits.d.ts +39 -0
- package/dist/content/pattern-edits.d.ts.map +1 -0
- package/dist/content/pattern-edits.js +121 -0
- package/dist/content/pattern-edits.js.map +1 -0
- package/dist/content/read-projector.d.ts +18 -9
- package/dist/content/read-projector.d.ts.map +1 -1
- package/dist/content/read-projector.js +132 -35
- package/dist/content/read-projector.js.map +1 -1
- package/dist/content/read-resolve.d.ts +3 -1
- package/dist/content/read-resolve.d.ts.map +1 -1
- package/dist/content/read-resolve.js +39 -7
- package/dist/content/read-resolve.js.map +1 -1
- package/dist/core/AdmittedTurnExecutor.d.ts +3 -5
- package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
- package/dist/core/AdmittedTurnExecutor.js +91 -83
- package/dist/core/AdmittedTurnExecutor.js.map +1 -1
- package/dist/core/BareBatchRunner.d.ts +6 -1
- package/dist/core/BareBatchRunner.d.ts.map +1 -1
- package/dist/core/BareBatchRunner.js +20 -5
- package/dist/core/BareBatchRunner.js.map +1 -1
- package/dist/core/BudgetReadout.d.ts +2 -3
- package/dist/core/BudgetReadout.d.ts.map +1 -1
- package/dist/core/BudgetReadout.js +23 -32
- package/dist/core/BudgetReadout.js.map +1 -1
- package/dist/core/CapabilityPolicies.d.ts +3 -8
- package/dist/core/CapabilityPolicies.d.ts.map +1 -1
- package/dist/core/CapabilityPolicies.js +2 -28
- package/dist/core/CapabilityPolicies.js.map +1 -1
- package/dist/core/CapabilityResolver.d.ts +10 -10
- package/dist/core/CapabilityResolver.d.ts.map +1 -1
- package/dist/core/CapabilityResolver.js +87 -65
- package/dist/core/CapabilityResolver.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +14 -11
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +11 -12
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +99 -9
- package/dist/core/ClientInteractions.d.ts.map +1 -1
- package/dist/core/ClientInteractions.js +7 -0
- package/dist/core/ClientInteractions.js.map +1 -1
- package/dist/core/CoreSchemeServices.d.ts +13 -10
- package/dist/core/CoreSchemeServices.d.ts.map +1 -1
- package/dist/core/CoreSchemeServices.js +13 -5
- package/dist/core/CoreSchemeServices.js.map +1 -1
- package/dist/core/DataStatementRunner.d.ts +2 -2
- package/dist/core/DataStatementRunner.d.ts.map +1 -1
- package/dist/core/DataStatementRunner.js +36 -39
- package/dist/core/DataStatementRunner.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +19 -26
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +369 -219
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Dispatcher.sql +66 -0
- package/dist/core/DurableStatement.d.ts.map +1 -1
- package/dist/core/DurableStatement.js +2 -1
- package/dist/core/DurableStatement.js.map +1 -1
- package/dist/core/EditMutations.d.ts +14 -18
- package/dist/core/EditMutations.d.ts.map +1 -1
- package/dist/core/EditMutations.js +211 -280
- package/dist/core/EditMutations.js.map +1 -1
- package/dist/core/EditMutations.sql +15 -0
- package/dist/core/EditSequence.d.ts +13 -0
- package/dist/core/EditSequence.d.ts.map +1 -0
- package/dist/core/EditSequence.js +73 -0
- package/dist/core/EditSequence.js.map +1 -0
- package/dist/core/Engine.d.ts +17 -23
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +73 -163
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +0 -724
- package/dist/core/EntryAddressBinding.d.ts +7 -17
- package/dist/core/EntryAddressBinding.d.ts.map +1 -1
- package/dist/core/EntryAddressBinding.js +12 -72
- package/dist/core/EntryAddressBinding.js.map +1 -1
- package/dist/core/ExecutionOutputs.d.ts +9 -0
- package/dist/core/ExecutionOutputs.d.ts.map +1 -0
- package/dist/core/ExecutionOutputs.js +36 -0
- package/dist/core/ExecutionOutputs.js.map +1 -0
- package/dist/core/ExecutionOutputs.sql +13 -0
- package/dist/core/ExecutorRegistry.d.ts +7 -5
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +36 -32
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/HostPaths.d.ts +1 -0
- package/dist/core/HostPaths.d.ts.map +1 -1
- package/dist/core/HostPaths.js +4 -0
- package/dist/core/HostPaths.js.map +1 -1
- package/dist/core/InferenceCall.d.ts.map +1 -1
- package/dist/core/InferenceCall.js +1 -2
- package/dist/core/InferenceCall.js.map +1 -1
- package/dist/core/InferenceCall.sql +29 -0
- package/dist/core/KillHandler.d.ts +1 -0
- package/dist/core/KillHandler.d.ts.map +1 -1
- package/dist/core/KillHandler.js +24 -21
- package/dist/core/KillHandler.js.map +1 -1
- package/dist/core/LogBody.d.ts +8 -1
- package/dist/core/LogBody.d.ts.map +1 -1
- package/dist/core/LogBody.js +42 -11
- package/dist/core/LogBody.js.map +1 -1
- package/dist/core/LogEntryProjection.d.ts +1 -0
- package/dist/core/LogEntryProjection.d.ts.map +1 -1
- package/dist/core/LogEntryProjection.js +18 -10
- package/dist/core/LogEntryProjection.js.map +1 -1
- package/dist/core/LogVisibility.d.ts +1 -0
- package/dist/core/LogVisibility.d.ts.map +1 -1
- package/dist/core/LogVisibility.js +3 -0
- package/dist/core/LogVisibility.js.map +1 -1
- package/dist/core/LogWriter.d.ts +2 -3
- package/dist/core/LogWriter.d.ts.map +1 -1
- package/dist/core/LogWriter.js +25 -32
- package/dist/core/LogWriter.js.map +1 -1
- package/dist/core/LogWriter.sql +23 -0
- package/dist/core/LoopDriver.d.ts +11 -8
- package/dist/core/LoopDriver.d.ts.map +1 -1
- package/dist/core/LoopDriver.js +163 -189
- package/dist/core/LoopDriver.js.map +1 -1
- package/dist/core/LoopDriver.sql +11 -0
- package/dist/core/LoopLifecycle.d.ts +32 -2
- package/dist/core/LoopLifecycle.d.ts.map +1 -1
- package/dist/core/LoopLifecycle.js +88 -4
- package/dist/core/LoopLifecycle.js.map +1 -1
- package/dist/core/LoopLifecycle.sql +145 -28
- package/dist/core/LoopPolicyReader.sql +6 -0
- package/dist/core/MembershipMaterialization.d.ts.map +1 -1
- package/dist/core/MembershipMaterialization.js +6 -28
- package/dist/core/MembershipMaterialization.js.map +1 -1
- package/dist/core/ModelCall.sql +70 -0
- package/dist/core/MutationEffects.d.ts +5 -3
- package/dist/core/MutationEffects.d.ts.map +1 -1
- package/dist/core/MutationEffects.js +10 -28
- package/dist/core/MutationEffects.js.map +1 -1
- package/dist/core/NativeContent.d.ts +6 -0
- package/dist/core/NativeContent.d.ts.map +1 -0
- package/dist/core/NativeContent.js +16 -0
- package/dist/core/NativeContent.js.map +1 -0
- package/dist/core/NativeContent.sql +6 -0
- package/dist/core/NoticeChannel.js +1 -1
- package/dist/core/NoticeChannel.js.map +1 -1
- package/dist/core/OperatorConfig.js +5 -5
- package/dist/core/OperatorConfig.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts +8 -5
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +117 -81
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/PacketBuilder.sql +146 -0
- package/dist/core/PatternSelection.d.ts +28 -0
- package/dist/core/PatternSelection.d.ts.map +1 -0
- package/dist/core/PatternSelection.js +42 -0
- package/dist/core/PatternSelection.js.map +1 -0
- package/dist/core/ProblemLog.d.ts.map +1 -1
- package/dist/core/ProblemLog.js +0 -1
- package/dist/core/ProblemLog.js.map +1 -1
- package/dist/core/PromptFrames.d.ts +12 -0
- package/dist/core/PromptFrames.d.ts.map +1 -0
- package/dist/core/PromptFrames.js +28 -0
- package/dist/core/PromptFrames.js.map +1 -0
- package/dist/core/ProposalLifecycle.d.ts +0 -1
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +20 -19
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ProposalLifecycle.sql +33 -0
- package/dist/core/ProviderInstantiate.d.ts +1 -1
- package/dist/core/ProviderInstantiate.d.ts.map +1 -1
- package/dist/core/ProviderInstantiate.js +7 -14
- package/dist/core/ProviderInstantiate.js.map +1 -1
- package/dist/core/ReasoningView.d.ts +9 -0
- package/dist/core/ReasoningView.d.ts.map +1 -0
- package/dist/core/ReasoningView.js +47 -0
- package/dist/core/ReasoningView.js.map +1 -0
- package/dist/core/ResourceBindings.d.ts +16 -0
- package/dist/core/ResourceBindings.d.ts.map +1 -0
- package/dist/core/ResourceBindings.js +45 -0
- package/dist/core/ResourceBindings.js.map +1 -0
- package/dist/core/ResourceMutations.d.ts +5 -8
- package/dist/core/ResourceMutations.d.ts.map +1 -1
- package/dist/core/ResourceMutations.js +6 -7
- package/dist/core/ResourceMutations.js.map +1 -1
- package/dist/core/ResourceSelector.d.ts +2 -2
- package/dist/core/ResourceSelector.d.ts.map +1 -1
- package/dist/core/ResourceSelector.js +122 -62
- package/dist/core/ResourceSelector.js.map +1 -1
- package/dist/core/ResourceTransfers.d.ts +4 -2
- package/dist/core/ResourceTransfers.d.ts.map +1 -1
- package/dist/core/ResourceTransfers.js +95 -26
- package/dist/core/ResourceTransfers.js.map +1 -1
- package/dist/core/RuntimeWorker.d.ts +5 -0
- package/dist/core/RuntimeWorker.d.ts.map +1 -0
- package/dist/core/RuntimeWorker.js +10 -0
- package/dist/core/RuntimeWorker.js.map +1 -0
- package/dist/core/RuntimeWorker.sql +5 -0
- package/dist/core/SchemeRegistry.d.ts +12 -16
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +58 -84
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/StoredPacket.d.ts +6 -1
- package/dist/core/StoredPacket.d.ts.map +1 -1
- package/dist/core/StoredPacket.js +30 -10
- package/dist/core/StoredPacket.js.map +1 -1
- package/dist/core/StrikeRail.d.ts +9 -6
- package/dist/core/StrikeRail.d.ts.map +1 -1
- package/dist/core/StrikeRail.js +60 -113
- package/dist/core/StrikeRail.js.map +1 -1
- package/dist/core/StrikeRail.sql +12 -0
- package/dist/core/TerminalResult.d.ts +1 -1
- package/dist/core/TerminalResult.d.ts.map +1 -1
- package/dist/core/TerminalResult.js +2 -2
- package/dist/core/TerminalResult.js.map +1 -1
- package/dist/core/TokenCalibration.d.ts +1 -6
- package/dist/core/TokenCalibration.d.ts.map +1 -1
- package/dist/core/TokenCalibration.js +13 -9
- package/dist/core/TokenCalibration.js.map +1 -1
- package/dist/core/TokenCalibration.sql +15 -0
- package/dist/core/ToolInputSchema.d.ts +6 -0
- package/dist/core/ToolInputSchema.d.ts.map +1 -0
- package/dist/core/ToolInputSchema.js +43 -0
- package/dist/core/ToolInputSchema.js.map +1 -0
- package/dist/core/ToolResources.d.ts.map +1 -1
- package/dist/core/ToolResources.js +76 -52
- package/dist/core/ToolResources.js.map +1 -1
- package/dist/core/Turn.d.ts +5 -2
- package/dist/core/Turn.d.ts.map +1 -1
- package/dist/core/Turn.js +13 -11
- package/dist/core/Turn.js.map +1 -1
- package/dist/core/Turn.sql +25 -39
- package/dist/core/{SendBroadcastHandler.d.ts → TurnDispositionHandler.d.ts} +25 -17
- package/dist/core/TurnDispositionHandler.d.ts.map +1 -0
- package/dist/core/TurnDispositionHandler.js +198 -0
- package/dist/core/TurnDispositionHandler.js.map +1 -0
- package/dist/core/TurnMaterialization.d.ts +2 -3
- package/dist/core/TurnMaterialization.d.ts.map +1 -1
- package/dist/core/TurnMaterialization.js +40 -15
- package/dist/core/TurnMaterialization.js.map +1 -1
- package/dist/core/TurnMaterialization.sql +44 -0
- package/dist/core/TurnOps.d.ts.map +1 -1
- package/dist/core/TurnOps.js +8 -64
- package/dist/core/TurnOps.js.map +1 -1
- package/dist/core/TurnRunner.d.ts +9 -12
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +232 -408
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/TurnRunner.sql +74 -0
- package/dist/core/TurnSources.sql +39 -0
- package/dist/core/WorkerControlAddress.d.ts +1 -0
- package/dist/core/WorkerControlAddress.d.ts.map +1 -1
- package/dist/core/WorkerControlAddress.js +5 -0
- package/dist/core/WorkerControlAddress.js.map +1 -1
- package/dist/core/WorkerControlHandler.d.ts +1 -3
- package/dist/core/WorkerControlHandler.d.ts.map +1 -1
- package/dist/core/WorkerControlHandler.js +41 -48
- package/dist/core/WorkerControlHandler.js.map +1 -1
- package/dist/core/WorkerName.d.ts +8 -6
- package/dist/core/WorkerName.d.ts.map +1 -1
- package/dist/core/WorkerName.js +33 -24
- package/dist/core/WorkerName.js.map +1 -1
- package/dist/core/WorkerName.sql +7 -10
- package/dist/core/WorkspaceGate.d.ts +1 -1
- package/dist/core/WorkspaceGate.d.ts.map +1 -1
- package/dist/core/WorkspaceGate.js +29 -6
- package/dist/core/WorkspaceGate.js.map +1 -1
- package/dist/core/ambient.sql +236 -0
- package/dist/core/attachments.d.ts +2 -1
- package/dist/core/attachments.d.ts.map +1 -1
- package/dist/core/attachments.js +5 -4
- package/dist/core/attachments.js.map +1 -1
- package/dist/core/caps/CapsResolve.d.ts +2 -3
- package/dist/core/caps/CapsResolve.d.ts.map +1 -1
- package/dist/core/caps/CapsResolve.js +5 -5
- package/dist/core/caps/CapsResolve.js.map +1 -1
- package/dist/core/caps/DbChannelCaps.d.ts +1 -1
- package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
- package/dist/core/caps/DbChannelCaps.js +4 -6
- package/dist/core/caps/DbChannelCaps.js.map +1 -1
- package/dist/core/caps/DbEntryCaps.d.ts +2 -1
- package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
- package/dist/core/caps/DbEntryCaps.js +11 -17
- package/dist/core/caps/DbEntryCaps.js.map +1 -1
- package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
- package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
- package/dist/core/caps/DbNotifyCaps.js +3 -5
- package/dist/core/caps/DbNotifyCaps.js.map +1 -1
- package/dist/core/caps/DbProjectionCaps.js +1 -1
- package/dist/core/caps/DbProjectionCaps.js.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.d.ts +1 -1
- package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.js +5 -7
- package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.d.ts +0 -2
- package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.js +4 -20
- package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
- package/dist/core/env-defaults.d.ts.map +1 -1
- package/dist/core/env-defaults.js +4 -2
- package/dist/core/env-defaults.js.map +1 -1
- package/dist/core/file-materialization.d.ts +4 -1
- package/dist/core/file-materialization.d.ts.map +1 -1
- package/dist/core/file-materialization.js +14 -0
- package/dist/core/file-materialization.js.map +1 -1
- package/dist/core/fork.d.ts +1 -6
- package/dist/core/fork.d.ts.map +1 -1
- package/dist/core/fork.js +9 -153
- package/dist/core/fork.js.map +1 -1
- package/dist/core/fork.sql +162 -185
- package/dist/core/git-env.d.ts +1 -0
- package/dist/core/git-env.d.ts.map +1 -1
- package/dist/core/git-env.js +39 -2
- package/dist/core/git-env.js.map +1 -1
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +64 -48
- package/dist/core/git-membership.js.map +1 -1
- package/dist/core/git-state.d.ts.map +1 -1
- package/dist/core/git-state.js +25 -19
- package/dist/core/git-state.js.map +1 -1
- package/dist/core/glob_match.d.ts +4 -0
- package/dist/core/glob_match.d.ts.map +1 -0
- package/dist/core/glob_match.js +7 -0
- package/dist/core/glob_match.js.map +1 -0
- package/dist/core/maintenance.sql +6 -0
- package/dist/core/mutation-types.d.ts +7 -28
- package/dist/core/mutation-types.d.ts.map +1 -1
- package/dist/core/packet-inject.d.ts.map +1 -1
- package/dist/core/packet-inject.js +2 -3
- package/dist/core/packet-inject.js.map +1 -1
- package/dist/core/packet-wire.d.ts +8 -6
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +131 -163
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plurnk-uri.d.ts +1 -1
- package/dist/core/plurnk-uri.d.ts.map +1 -1
- package/dist/core/plurnk-uri.js +5 -12
- package/dist/core/plurnk-uri.js.map +1 -1
- package/dist/core/scheme-types.d.ts +3 -3
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/scheme-types.js.map +1 -1
- package/dist/core/sha256.d.ts +4 -0
- package/dist/core/sha256.d.ts.map +1 -0
- package/dist/core/sha256.js +6 -0
- package/dist/core/sha256.js.map +1 -0
- package/dist/core/teaching.js +1 -1
- package/dist/core/teaching.js.map +1 -1
- package/dist/core/turn-scheduler.d.ts.map +1 -1
- package/dist/core/turn-scheduler.js +5 -18
- package/dist/core/turn-scheduler.js.map +1 -1
- package/dist/core/turn-signals.d.ts +0 -6
- package/dist/core/turn-signals.d.ts.map +1 -1
- package/dist/core/turn-signals.js +1 -7
- package/dist/core/turn-signals.js.map +1 -1
- package/dist/core/worker-ops.sql +15 -22
- package/dist/core/workspace-settings.d.ts.map +1 -1
- package/dist/core/workspace-settings.js +18 -2
- package/dist/core/workspace-settings.js.map +1 -1
- package/dist/core/workspace-settings.sql +6 -0
- package/dist/digest/Digest.d.ts.map +1 -1
- package/dist/digest/Digest.js +27 -90
- package/dist/digest/Digest.js.map +1 -1
- package/dist/digest/DigestRender.d.ts.map +1 -1
- package/dist/digest/DigestRender.js +14 -54
- package/dist/digest/DigestRender.js.map +1 -1
- package/dist/digest/digest-rows.d.ts +10 -32
- package/dist/digest/digest-rows.d.ts.map +1 -1
- package/dist/digest/digest.sql +43 -18
- package/dist/schemes/Exec.d.ts +6 -12
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +256 -188
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts +8 -6
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +33 -61
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/ExecutionInput.d.ts +12 -0
- package/dist/schemes/ExecutionInput.d.ts.map +1 -0
- package/dist/schemes/ExecutionInput.js +94 -0
- package/dist/schemes/ExecutionInput.js.map +1 -0
- package/dist/schemes/File.d.ts +5 -2
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +62 -92
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +84 -79
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +183 -15
- package/dist/schemes/Prompt.d.ts.map +1 -1
- package/dist/schemes/Prompt.js +3 -12
- package/dist/schemes/Prompt.js.map +1 -1
- package/dist/schemes/QuestionTool.d.ts +5 -0
- package/dist/schemes/QuestionTool.d.ts.map +1 -1
- package/dist/schemes/QuestionTool.js +6 -14
- package/dist/schemes/QuestionTool.js.map +1 -1
- package/dist/schemes/Skill.d.ts +12 -7
- package/dist/schemes/Skill.d.ts.map +1 -1
- package/dist/schemes/Skill.js +149 -21
- package/dist/schemes/Skill.js.map +1 -1
- package/dist/schemes/TurnSource.d.ts +12 -0
- package/dist/schemes/TurnSource.d.ts.map +1 -0
- package/dist/schemes/TurnSource.js +116 -0
- package/dist/schemes/TurnSource.js.map +1 -0
- package/dist/schemes/Worker.d.ts +3 -3
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +61 -208
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts +12 -15
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +63 -63
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +142 -46
- package/dist/schemes/_entry-find.d.ts +1 -3
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +111 -112
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-find.sql +22 -14
- package/dist/schemes/_entry-fts.d.ts +14 -0
- package/dist/schemes/_entry-fts.d.ts.map +1 -0
- package/dist/schemes/_entry-fts.js +82 -0
- package/dist/schemes/_entry-fts.js.map +1 -0
- package/dist/schemes/_entry-fts.sql +31 -0
- package/dist/schemes/_entry-graph.d.ts.map +1 -1
- package/dist/schemes/_entry-graph.js +6 -14
- package/dist/schemes/_entry-graph.js.map +1 -1
- package/dist/schemes/_entry-graph.sql +29 -44
- package/dist/schemes/_entry-manifest.d.ts +2 -1
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +15 -12
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-manifest.sql +26 -0
- package/dist/schemes/_entry-ops.d.ts +3 -5
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +30 -43
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-ops.sql +5 -6
- package/dist/schemes/_entry-readable.d.ts +8 -0
- package/dist/schemes/_entry-readable.d.ts.map +1 -0
- package/dist/schemes/_entry-readable.js +38 -0
- package/dist/schemes/_entry-readable.js.map +1 -0
- package/dist/schemes/_entry-send.d.ts +1 -1
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js +3 -3
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/schemes/_search-index.d.ts +1 -3
- package/dist/schemes/_search-index.d.ts.map +1 -1
- package/dist/schemes/_search-index.js +79 -110
- package/dist/schemes/_search-index.js.map +1 -1
- package/dist/schemes/_search-index.sql +30 -0
- package/dist/schemes/exec-runtime.d.ts +1 -1
- package/dist/schemes/exec-runtime.d.ts.map +1 -1
- package/dist/schemes/exec-runtime.js.map +1 -1
- package/dist/server/ClientReads.d.ts +2 -2
- package/dist/server/ClientReads.d.ts.map +1 -1
- package/dist/server/ClientReads.js +5 -8
- package/dist/server/ClientReads.js.map +1 -1
- package/dist/server/Daemon.d.ts +14 -21
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +135 -156
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DaemonModule.d.ts +23 -21
- package/dist/server/DaemonModule.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.d.ts +8 -21
- package/dist/server/DrainSupervisor.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.js +278 -306
- package/dist/server/DrainSupervisor.js.map +1 -1
- package/dist/server/Functionality.d.ts +11 -12
- package/dist/server/Functionality.d.ts.map +1 -1
- package/dist/server/Functionality.js +129 -101
- package/dist/server/Functionality.js.map +1 -1
- package/dist/server/FunctionalityManager.d.ts +3 -5
- package/dist/server/FunctionalityManager.d.ts.map +1 -1
- package/dist/server/FunctionalityManager.js +20 -58
- package/dist/server/FunctionalityManager.js.map +1 -1
- package/dist/server/MembersFunctionality.d.ts +5 -4
- package/dist/server/MembersFunctionality.d.ts.map +1 -1
- package/dist/server/MembersFunctionality.js +24 -37
- package/dist/server/MembersFunctionality.js.map +1 -1
- package/dist/server/PlurnkSkill.d.ts +11 -0
- package/dist/server/PlurnkSkill.d.ts.map +1 -0
- package/dist/server/PlurnkSkill.js +41 -0
- package/dist/server/PlurnkSkill.js.map +1 -0
- package/dist/server/Retention.d.ts +22 -0
- package/dist/server/Retention.d.ts.map +1 -0
- package/dist/server/Retention.js +54 -0
- package/dist/server/Retention.js.map +1 -0
- package/dist/server/Retention.sql +36 -0
- package/dist/server/ServiceModules.d.ts +5 -0
- package/dist/server/ServiceModules.d.ts.map +1 -0
- package/dist/server/ServiceModules.js +10 -0
- package/dist/server/ServiceModules.js.map +1 -0
- package/dist/server/SkillsFunctionality.d.ts +14 -19
- package/dist/server/SkillsFunctionality.d.ts.map +1 -1
- package/dist/server/SkillsFunctionality.js +97 -104
- package/dist/server/SkillsFunctionality.js.map +1 -1
- package/dist/server/WorkerModelResolver.d.ts +4 -0
- package/dist/server/WorkerModelResolver.d.ts.map +1 -1
- package/dist/server/WorkerModelResolver.js +72 -39
- package/dist/server/WorkerModelResolver.js.map +1 -1
- package/dist/server/WorkspaceCapabilities.d.ts +21 -0
- package/dist/server/WorkspaceCapabilities.d.ts.map +1 -0
- package/dist/server/{WorkerCapabilities.js → WorkspaceCapabilities.js} +40 -40
- package/dist/server/WorkspaceCapabilities.js.map +1 -0
- package/dist/server/WorkspaceResidency.d.ts +36 -0
- package/dist/server/WorkspaceResidency.d.ts.map +1 -0
- package/dist/server/WorkspaceResidency.js +199 -0
- package/dist/server/WorkspaceResidency.js.map +1 -0
- package/dist/server/client-input.d.ts +1 -4
- package/dist/server/client-input.d.ts.map +1 -1
- package/dist/server/client-input.js +4 -45
- package/dist/server/client-input.js.map +1 -1
- package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
- package/dist/server/dispatch-as-plurnk.js +4 -22
- package/dist/server/dispatch-as-plurnk.js.map +1 -1
- package/dist/server/drain.sql +65 -42
- package/dist/server/envelope.d.ts +8 -0
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +9 -7
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +49 -13
- package/dist/server/lifecycle-recovery.sql +14 -17
- package/dist/server/logEntry.d.ts +1 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +4 -1
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/logEntry.sql +25 -1
- package/dist/server/loopDocs.d.ts +2 -2
- package/dist/server/loopDocs.d.ts.map +1 -1
- package/dist/server/loopDocs.js +38 -31
- package/dist/server/loopDocs.js.map +1 -1
- package/dist/server/loopDocs.sql +1 -3
- package/dist/server/model-catalog.d.ts.map +1 -1
- package/dist/server/model-catalog.js +2 -1
- package/dist/server/model-catalog.js.map +1 -1
- package/dist/server/model-route.d.ts +1 -1
- package/dist/server/model-route.d.ts.map +1 -1
- package/dist/server/model-route.js +4 -2
- package/dist/server/model-route.js.map +1 -1
- package/dist/server/seam-entry-read.sql +3 -4
- package/dist/server/seam-loop.sql +2 -9
- package/dist/server/workspace-capabilities.sql +19 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +5 -17
- package/dist/service.js.map +1 -1
- package/docs/members.md +83 -0
- package/docs/skills.md +50 -0
- package/migrations/001_workspaces.sql +53 -0
- package/migrations/002_workers.sql +183 -0
- package/migrations/003_loops.sql +326 -0
- package/migrations/004_inference.sql +360 -0
- package/migrations/005_entries.sql +207 -0
- package/migrations/006_log.sql +578 -0
- package/migrations/007_subscriptions.sql +175 -0
- package/migrations/008_interactions.sql +29 -0
- package/package.json +33 -40
- package/digest-sql/channel-dispositions/dispositions.sql +0 -15
- package/digest-sql/channel-state/state.sql +0 -6
- package/digest-sql/curation/curation.sql +0 -6
- package/digest-sql/derivations/derivations.sql +0 -4
- package/digest-sql/embeddings/embeddings.sql +0 -4
- package/digest-sql/entry-dispositions/dispositions.sql +0 -15
- package/digest-sql/entry-state/state.sql +0 -6
- package/digest-sql/token-counts/token-counts.sql +0 -2
- package/dist/core/EmbeddingCall.d.ts +0 -23
- package/dist/core/EmbeddingCall.d.ts.map +0 -1
- package/dist/core/EmbeddingCall.js +0 -149
- package/dist/core/EmbeddingCall.js.map +0 -1
- package/dist/core/OverflowTurn.d.ts +0 -11
- package/dist/core/OverflowTurn.d.ts.map +0 -1
- package/dist/core/OverflowTurn.js +0 -80
- package/dist/core/OverflowTurn.js.map +0 -1
- package/dist/core/Owner.d.ts +0 -8
- package/dist/core/Owner.d.ts.map +0 -1
- package/dist/core/Owner.js +0 -46
- package/dist/core/Owner.js.map +0 -1
- package/dist/core/SendBroadcastHandler.d.ts.map +0 -1
- package/dist/core/SendBroadcastHandler.js +0 -159
- package/dist/core/SendBroadcastHandler.js.map +0 -1
- package/dist/core/VectorPump.d.ts +0 -28
- package/dist/core/VectorPump.d.ts.map +0 -1
- package/dist/core/VectorPump.js +0 -130
- package/dist/core/VectorPump.js.map +0 -1
- package/dist/core/owner.sql +0 -11
- package/dist/core/worker-settings.d.ts +0 -10
- package/dist/core/worker-settings.d.ts.map +0 -1
- package/dist/core/worker-settings.js +0 -53
- package/dist/core/worker-settings.js.map +0 -1
- package/dist/schemes/_entry-chunk.d.ts +0 -14
- package/dist/schemes/_entry-chunk.d.ts.map +0 -1
- package/dist/schemes/_entry-chunk.js +0 -165
- package/dist/schemes/_entry-chunk.js.map +0 -1
- package/dist/schemes/_entry-semantic.d.ts +0 -63
- package/dist/schemes/_entry-semantic.d.ts.map +0 -1
- package/dist/schemes/_entry-semantic.js +0 -299
- package/dist/schemes/_entry-semantic.js.map +0 -1
- package/dist/schemes/_entry-semantic.sql +0 -99
- package/dist/schemes/cosine.d.ts +0 -4
- package/dist/schemes/cosine.d.ts.map +0 -1
- package/dist/schemes/cosine.js +0 -9
- package/dist/schemes/cosine.js.map +0 -1
- package/dist/server/WorkerCapabilities.d.ts +0 -21
- package/dist/server/WorkerCapabilities.d.ts.map +0 -1
- package/dist/server/WorkerCapabilities.js.map +0 -1
- package/dist/server/WorkerResidency.d.ts +0 -40
- package/dist/server/WorkerResidency.d.ts.map +0 -1
- package/dist/server/WorkerResidency.js +0 -283
- package/dist/server/WorkerResidency.js.map +0 -1
- package/dist/server/seam-log-read.sql +0 -21
- package/dist/server/worker-capabilities.sql +0 -28
- package/migrations/001_schema.sql +0 -2207
package/dist/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"}
|
|
@@ -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,8EAA8E;AAC9E,8EAA8E;AAC9E,gEAAgE;AAChE,kEAAkE;AAClE,2EAA2E;AAC3E,yEAAyE;AACzE,oEAAoE;AAEpE,MAAM,qBAAqB,GAAG,uLAAuL,CAAC;AAEtN,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,oCAAoC;IAC7C,UAAU,EAAE;QACR,IAAI,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9D,OAAO,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;KAC3C;IACD,OAAO,EAAE;;;;;;;
|
|
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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"}
|