@plurnk/plurnk-service 1.17.0 → 1.19.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 +95 -14
- package/README.md +5 -3
- package/SPEC.md +1756 -1442
- package/dist/Paths.js +3 -3
- package/dist/build-info.json +1 -1
- package/dist/content/body-preview.d.ts +1 -0
- package/dist/content/body-preview.d.ts.map +1 -1
- package/dist/content/body-preview.js +8 -10
- package/dist/content/body-preview.js.map +1 -1
- package/dist/content/edit-receipt.d.ts.map +1 -1
- package/dist/content/edit-receipt.js +30 -29
- package/dist/content/edit-receipt.js.map +1 -1
- package/dist/content/line-anchors.d.ts.map +1 -1
- package/dist/content/line-anchors.js +17 -5
- package/dist/content/line-anchors.js.map +1 -1
- package/dist/content/read-projector.d.ts +2 -2
- package/dist/content/read-projector.d.ts.map +1 -1
- package/dist/content/read-projector.js +81 -39
- package/dist/content/read-projector.js.map +1 -1
- package/dist/content/read-resolve.d.ts +1 -0
- package/dist/content/read-resolve.d.ts.map +1 -1
- package/dist/content/read-resolve.js +13 -10
- package/dist/content/read-resolve.js.map +1 -1
- package/dist/content/scope-format.d.ts +9 -0
- package/dist/content/scope-format.d.ts.map +1 -0
- package/dist/content/scope-format.js +28 -0
- package/dist/content/scope-format.js.map +1 -0
- package/dist/core/AdministrativeLoop.d.ts +8 -0
- package/dist/core/AdministrativeLoop.d.ts.map +1 -0
- package/dist/core/AdministrativeLoop.js +16 -0
- package/dist/core/AdministrativeLoop.js.map +1 -0
- package/dist/core/AdmittedTurnExecutor.d.ts +2 -2
- package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
- package/dist/core/AdmittedTurnExecutor.js +26 -26
- package/dist/core/AdmittedTurnExecutor.js.map +1 -1
- package/dist/core/BareBatchRunner.d.ts +1 -2
- package/dist/core/BareBatchRunner.d.ts.map +1 -1
- package/dist/core/BareBatchRunner.js +7 -12
- package/dist/core/BareBatchRunner.js.map +1 -1
- package/dist/core/BudgetReadout.d.ts.map +1 -1
- package/dist/core/BudgetReadout.js +3 -4
- package/dist/core/BudgetReadout.js.map +1 -1
- package/dist/core/CapabilityPolicies.d.ts +4 -2
- package/dist/core/CapabilityPolicies.d.ts.map +1 -1
- package/dist/core/CapabilityPolicies.js +23 -2
- package/dist/core/CapabilityPolicies.js.map +1 -1
- package/dist/core/CapabilityResolver.d.ts +2 -2
- package/dist/core/CapabilityResolver.d.ts.map +1 -1
- package/dist/core/CapabilityResolver.js +46 -36
- package/dist/core/CapabilityResolver.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +4 -6
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +8 -8
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +17 -11
- package/dist/core/ClientInteractions.d.ts +11 -1
- package/dist/core/ClientInteractions.d.ts.map +1 -1
- package/dist/core/ClientInteractions.js +26 -2
- package/dist/core/ClientInteractions.js.map +1 -1
- package/dist/core/CoreSchemeServices.d.ts.map +1 -1
- package/dist/core/CoreSchemeServices.js +1 -0
- package/dist/core/CoreSchemeServices.js.map +1 -1
- package/dist/core/DataStatementRunner.d.ts.map +1 -1
- package/dist/core/DataStatementRunner.js +198 -148
- package/dist/core/DataStatementRunner.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +18 -5
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +135 -114
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Dispatcher.sql +11 -26
- package/dist/core/DurableStatement.d.ts +4 -1
- package/dist/core/DurableStatement.d.ts.map +1 -1
- package/dist/core/DurableStatement.js +4 -4
- package/dist/core/DurableStatement.js.map +1 -1
- package/dist/core/EditMutations.d.ts.map +1 -1
- package/dist/core/EditMutations.js +5 -2
- package/dist/core/EditMutations.js.map +1 -1
- package/dist/core/Engine.d.ts +11 -9
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +27 -65
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +2 -22
- package/dist/core/EnvFlags.d.ts.map +1 -1
- package/dist/core/EnvFlags.js +4 -2
- package/dist/core/EnvFlags.js.map +1 -1
- package/dist/core/ExecutionOutputs.sql +8 -0
- package/dist/core/ExecutorRegistry.d.ts +4 -0
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +3 -1
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/KillHandler.d.ts.map +1 -1
- package/dist/core/KillHandler.js +7 -12
- package/dist/core/KillHandler.js.map +1 -1
- package/dist/core/Knob.d.ts +9 -0
- package/dist/core/Knob.d.ts.map +1 -0
- package/dist/core/Knob.js +50 -0
- package/dist/core/Knob.js.map +1 -0
- package/dist/core/LogBody.d.ts.map +1 -1
- package/dist/core/LogBody.js +8 -36
- package/dist/core/LogBody.js.map +1 -1
- package/dist/core/LogEntryProjection.d.ts.map +1 -1
- package/dist/core/LogEntryProjection.js +8 -10
- package/dist/core/LogEntryProjection.js.map +1 -1
- package/dist/core/LogVisibility.d.ts.map +1 -1
- package/dist/core/LogVisibility.js +2 -1
- package/dist/core/LogVisibility.js.map +1 -1
- package/dist/core/LogWriter.d.ts.map +1 -1
- package/dist/core/LogWriter.js +11 -9
- package/dist/core/LogWriter.js.map +1 -1
- package/dist/core/LoopDriver.d.ts +1 -1
- package/dist/core/LoopDriver.d.ts.map +1 -1
- package/dist/core/LoopDriver.js +24 -32
- package/dist/core/LoopDriver.js.map +1 -1
- package/dist/core/LoopLifecycle.d.ts +4 -17
- package/dist/core/LoopLifecycle.d.ts.map +1 -1
- package/dist/core/LoopLifecycle.js +20 -22
- package/dist/core/LoopLifecycle.js.map +1 -1
- package/dist/core/LoopLifecycle.sql +36 -49
- package/dist/core/LoopOutcome.d.ts +10 -0
- package/dist/core/LoopOutcome.d.ts.map +1 -0
- package/dist/core/LoopOutcome.js +28 -0
- package/dist/core/LoopOutcome.js.map +1 -0
- package/dist/core/LoopPolicies.d.ts +7 -0
- package/dist/core/LoopPolicies.d.ts.map +1 -0
- package/dist/core/LoopPolicies.js +37 -0
- package/dist/core/LoopPolicies.js.map +1 -0
- package/dist/core/MessageResources.d.ts +15 -0
- package/dist/core/MessageResources.d.ts.map +1 -0
- package/dist/core/MessageResources.js +46 -0
- package/dist/core/MessageResources.js.map +1 -0
- package/dist/core/MessageResources.sql +36 -0
- 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 +7 -36
- package/dist/core/OperatorConfig.d.ts +2 -1
- package/dist/core/OperatorConfig.d.ts.map +1 -1
- package/dist/core/OperatorConfig.js +14 -6
- package/dist/core/OperatorConfig.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +20 -35
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/PacketBuilder.sql +24 -6
- package/dist/core/PatternSelection.d.ts +1 -1
- package/dist/core/PatternSelection.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.d.ts +3 -1
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +93 -28
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ProviderInstantiate.d.ts +1 -0
- package/dist/core/ProviderInstantiate.d.ts.map +1 -1
- package/dist/core/ProviderInstantiate.js +12 -7
- package/dist/core/ProviderInstantiate.js.map +1 -1
- package/dist/core/ReasoningView.d.ts +1 -2
- package/dist/core/ReasoningView.d.ts.map +1 -1
- package/dist/core/ReasoningView.js +9 -20
- package/dist/core/ReasoningView.js.map +1 -1
- package/dist/core/ResourceBindings.d.ts.map +1 -1
- package/dist/core/ResourceBindings.js +5 -4
- package/dist/core/ResourceBindings.js.map +1 -1
- package/dist/core/ResourceMutations.d.ts +4 -4
- package/dist/core/ResourceMutations.d.ts.map +1 -1
- package/dist/core/ResourceMutations.js +2 -3
- package/dist/core/ResourceMutations.js.map +1 -1
- package/dist/core/ResourceSelector.d.ts +10 -3
- package/dist/core/ResourceSelector.d.ts.map +1 -1
- package/dist/core/ResourceSelector.js +52 -13
- package/dist/core/ResourceSelector.js.map +1 -1
- package/dist/core/ResourceTransfers.d.ts.map +1 -1
- package/dist/core/ResourceTransfers.js +4 -2
- package/dist/core/ResourceTransfers.js.map +1 -1
- package/dist/core/RuntimeWorker.d.ts.map +1 -1
- package/dist/core/RuntimeWorker.js +6 -1
- package/dist/core/RuntimeWorker.js.map +1 -1
- package/dist/core/RuntimeWorker.sql +7 -1
- package/dist/core/SchemeRegistry.d.ts +2 -0
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +12 -6
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/StoredPacket.d.ts +3 -1
- package/dist/core/StoredPacket.d.ts.map +1 -1
- package/dist/core/StoredPacket.js +7 -3
- package/dist/core/StoredPacket.js.map +1 -1
- package/dist/core/StrikeRail.d.ts +2 -2
- package/dist/core/StrikeRail.d.ts.map +1 -1
- package/dist/core/StrikeRail.js +15 -7
- package/dist/core/StrikeRail.js.map +1 -1
- package/dist/core/TerminalResult.d.ts +2 -2
- package/dist/core/TerminalResult.d.ts.map +1 -1
- package/dist/core/TerminalResult.js +15 -8
- package/dist/core/TerminalResult.js.map +1 -1
- package/dist/core/ToolInputSchema.d.ts.map +1 -1
- package/dist/core/ToolInputSchema.js +24 -8
- package/dist/core/ToolInputSchema.js.map +1 -1
- package/dist/core/ToolResources.d.ts +1 -0
- package/dist/core/ToolResources.d.ts.map +1 -1
- package/dist/core/ToolResources.js +50 -26
- package/dist/core/ToolResources.js.map +1 -1
- package/dist/core/Turn.d.ts +3 -1
- package/dist/core/Turn.d.ts.map +1 -1
- package/dist/core/Turn.js +4 -1
- package/dist/core/Turn.js.map +1 -1
- package/dist/core/Turn.sql +14 -2
- package/dist/core/TurnDispositionHandler.d.ts +13 -23
- package/dist/core/TurnDispositionHandler.d.ts.map +1 -1
- package/dist/core/TurnDispositionHandler.js +30 -180
- package/dist/core/TurnDispositionHandler.js.map +1 -1
- package/dist/core/TurnMaterialization.d.ts +9 -7
- package/dist/core/TurnMaterialization.d.ts.map +1 -1
- package/dist/core/TurnMaterialization.js +66 -46
- package/dist/core/TurnMaterialization.js.map +1 -1
- package/dist/core/TurnMaterialization.sql +23 -6
- package/dist/core/TurnOps.d.ts.map +1 -1
- package/dist/core/TurnOps.js +2 -2
- package/dist/core/TurnOps.js.map +1 -1
- package/dist/core/TurnRunner.d.ts +2 -8
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +1116 -1123
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/TurnRunner.sql +1 -24
- package/dist/core/TurnSources.sql +42 -11
- package/dist/core/WorkerControlHandler.d.ts.map +1 -1
- package/dist/core/WorkerControlHandler.js +23 -0
- package/dist/core/WorkerControlHandler.js.map +1 -1
- package/dist/core/WorkerName.d.ts +3 -6
- package/dist/core/WorkerName.d.ts.map +1 -1
- package/dist/core/WorkerName.js +10 -26
- package/dist/core/WorkerName.js.map +1 -1
- package/dist/core/WorkspaceGate.js +4 -4
- package/dist/core/WorkspaceGate.js.map +1 -1
- package/dist/core/ambient.sql +45 -19
- package/dist/core/attachments.d.ts +3 -1
- package/dist/core/attachments.d.ts.map +1 -1
- package/dist/core/attachments.js +4 -0
- package/dist/core/attachments.js.map +1 -1
- package/dist/core/caps/CoreInteractionCaps.d.ts +1 -1
- package/dist/core/caps/CoreInteractionCaps.d.ts.map +1 -1
- package/dist/core/caps/CoreInteractionCaps.js +4 -2
- package/dist/core/caps/CoreInteractionCaps.js.map +1 -1
- package/dist/core/caps/DbChannelCaps.js +6 -6
- package/dist/core/caps/DbChannelCaps.js.map +1 -1
- package/dist/core/caps/DbEntryCaps.js +1 -1
- package/dist/core/caps/DbEntryCaps.js.map +1 -1
- package/dist/core/caps/DbMessageCaps.d.ts +10 -0
- package/dist/core/caps/DbMessageCaps.d.ts.map +1 -0
- package/dist/core/caps/DbMessageCaps.js +39 -0
- package/dist/core/caps/DbMessageCaps.js.map +1 -0
- package/dist/core/caps/DbProjectionCaps.d.ts +2 -2
- package/dist/core/caps/DbProjectionCaps.d.ts.map +1 -1
- package/dist/core/caps/DbProjectionCaps.js +10 -4
- package/dist/core/caps/DbProjectionCaps.js.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.d.ts +3 -1
- package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.js +11 -0
- 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/file-materialization.js +1 -1
- package/dist/core/file-materialization.js.map +1 -1
- package/dist/core/fork.sql +7 -6
- package/dist/core/git-state.d.ts +3 -2
- package/dist/core/git-state.d.ts.map +1 -1
- package/dist/core/git-state.js +38 -21
- package/dist/core/git-state.js.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.js +1 -1
- package/dist/core/packet-wire.d.ts +11 -0
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +382 -333
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plurnk-uri.d.ts +4 -5
- package/dist/core/plurnk-uri.d.ts.map +1 -1
- package/dist/core/plurnk-uri.js +10 -31
- package/dist/core/plurnk-uri.js.map +1 -1
- package/dist/core/scheme-types.d.ts +3 -1
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/scheme-types.js +1 -1
- package/dist/core/scheme-types.js.map +1 -1
- package/dist/core/teaching.d.ts.map +1 -1
- package/dist/core/teaching.js +2 -1
- package/dist/core/teaching.js.map +1 -1
- package/dist/core/types.d.ts +1 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/worker-ops.sql +3 -8
- package/dist/digest/Digest.d.ts.map +1 -1
- package/dist/digest/Digest.js +37 -30
- package/dist/digest/Digest.js.map +1 -1
- package/dist/digest/DigestRender.d.ts +2 -0
- package/dist/digest/DigestRender.d.ts.map +1 -1
- package/dist/digest/DigestRender.js +97 -9
- package/dist/digest/DigestRender.js.map +1 -1
- package/dist/digest/DigestRequiem.d.ts.map +1 -1
- package/dist/digest/DigestRequiem.js +13 -15
- package/dist/digest/DigestRequiem.js.map +1 -1
- package/dist/digest/digest-db.d.ts +3 -0
- package/dist/digest/digest-db.d.ts.map +1 -0
- package/dist/digest/digest-db.js +68 -0
- package/dist/digest/digest-db.js.map +1 -0
- package/dist/digest/digest-paths.d.ts +6 -0
- package/dist/digest/digest-paths.d.ts.map +1 -0
- package/dist/digest/digest-paths.js +23 -0
- package/dist/digest/digest-paths.js.map +1 -0
- package/dist/digest/digest-rows.d.ts +21 -0
- package/dist/digest/digest-rows.d.ts.map +1 -1
- package/dist/digest/digest.sql +24 -5
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/observe/genai.d.ts +2 -2
- package/dist/observe/genai.d.ts.map +1 -1
- package/dist/observe/genai.js +15 -5
- package/dist/observe/genai.js.map +1 -1
- package/dist/schemes/EffectPolicy.d.ts +0 -2
- package/dist/schemes/EffectPolicy.d.ts.map +1 -1
- package/dist/schemes/EffectPolicy.js +25 -36
- package/dist/schemes/EffectPolicy.js.map +1 -1
- package/dist/schemes/Exec.d.ts +4 -5
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +129 -82
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts +6 -5
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +49 -16
- 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/File.d.ts.map +1 -1
- package/dist/schemes/File.js +30 -21
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts +4 -4
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +30 -10
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/QuestionTool.d.ts.map +1 -1
- package/dist/schemes/QuestionTool.js +15 -2
- package/dist/schemes/QuestionTool.js.map +1 -1
- package/dist/schemes/TurnSource.d.ts +3 -2
- package/dist/schemes/TurnSource.d.ts.map +1 -1
- package/dist/schemes/TurnSource.js +87 -41
- package/dist/schemes/TurnSource.js.map +1 -1
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +22 -56
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.js +6 -6
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +37 -17
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +6 -5
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-fts.d.ts.map +1 -1
- package/dist/schemes/_entry-fts.js +6 -3
- package/dist/schemes/_entry-fts.js.map +1 -1
- package/dist/schemes/_entry-fts.sql +25 -6
- package/dist/schemes/_entry-manifest.d.ts +1 -1
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +10 -17
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-manifest.sql +1 -1
- package/dist/schemes/_entry-ops.js +4 -4
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-ops.sql +2 -2
- package/dist/schemes/_entry-readable.d.ts.map +1 -1
- package/dist/schemes/_entry-readable.js +5 -4
- package/dist/schemes/_entry-readable.js.map +1 -1
- package/dist/schemes/_entry-send.js +2 -2
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/schemes/_search-exclusion.d.ts +1 -0
- package/dist/schemes/_search-exclusion.d.ts.map +1 -1
- package/dist/schemes/_search-exclusion.js +12 -0
- package/dist/schemes/_search-exclusion.js.map +1 -1
- package/dist/schemes/_search-index.d.ts +5 -1
- package/dist/schemes/_search-index.d.ts.map +1 -1
- package/dist/schemes/_search-index.js +99 -59
- package/dist/schemes/_search-index.js.map +1 -1
- package/dist/schemes/_search-index.sql +17 -0
- package/dist/schemes/exec-abort.d.ts.map +1 -1
- package/dist/schemes/exec-abort.js +5 -4
- 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-lifetime.d.ts +11 -0
- package/dist/schemes/exec-lifetime.d.ts.map +1 -0
- package/dist/schemes/exec-lifetime.js +29 -0
- package/dist/schemes/exec-lifetime.js.map +1 -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 +1 -1
- package/dist/schemes/exec-runtime.js.map +1 -1
- package/dist/server/ClientReads.d.ts.map +1 -1
- package/dist/server/ClientReads.js +5 -2
- package/dist/server/ClientReads.js.map +1 -1
- package/dist/server/Daemon.d.ts +31 -7
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +137 -60
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DaemonModule.d.ts +25 -6
- package/dist/server/DaemonModule.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.d.ts +13 -11
- package/dist/server/DrainSupervisor.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.js +87 -98
- package/dist/server/DrainSupervisor.js.map +1 -1
- package/dist/server/EnvFunctionality.d.ts +52 -0
- package/dist/server/EnvFunctionality.d.ts.map +1 -0
- package/dist/server/EnvFunctionality.js +199 -0
- package/dist/server/EnvFunctionality.js.map +1 -0
- package/dist/server/Functionality.d.ts +4 -2
- package/dist/server/Functionality.d.ts.map +1 -1
- package/dist/server/Functionality.js +250 -106
- package/dist/server/Functionality.js.map +1 -1
- package/dist/server/FunctionalityManager.d.ts +5 -1
- package/dist/server/FunctionalityManager.d.ts.map +1 -1
- package/dist/server/FunctionalityManager.js +24 -8
- package/dist/server/FunctionalityManager.js.map +1 -1
- package/dist/server/HttpListener.d.ts +16 -0
- package/dist/server/HttpListener.d.ts.map +1 -0
- package/dist/server/HttpListener.js +81 -0
- package/dist/server/HttpListener.js.map +1 -0
- package/dist/server/MembersFunctionality.d.ts.map +1 -1
- package/dist/server/MembersFunctionality.js +12 -17
- package/dist/server/MembersFunctionality.js.map +1 -1
- package/dist/server/PlurnkSkill.d.ts.map +1 -1
- package/dist/server/PlurnkSkill.js +1 -0
- package/dist/server/PlurnkSkill.js.map +1 -1
- package/dist/server/Retention.d.ts +14 -0
- package/dist/server/Retention.d.ts.map +1 -1
- package/dist/server/Retention.js +52 -4
- package/dist/server/Retention.js.map +1 -1
- package/dist/server/Retention.sql +55 -1
- package/dist/server/ServiceModules.d.ts.map +1 -1
- package/dist/server/ServiceModules.js +2 -0
- package/dist/server/ServiceModules.js.map +1 -1
- package/dist/server/SkillsFunctionality.d.ts +2 -0
- package/dist/server/SkillsFunctionality.d.ts.map +1 -1
- package/dist/server/SkillsFunctionality.js +27 -17
- package/dist/server/SkillsFunctionality.js.map +1 -1
- package/dist/server/WorkspaceCapabilities.d.ts.map +1 -1
- package/dist/server/WorkspaceCapabilities.js +1 -0
- package/dist/server/WorkspaceCapabilities.js.map +1 -1
- package/dist/server/WorkspaceResidency.d.ts +2 -0
- package/dist/server/WorkspaceResidency.d.ts.map +1 -1
- package/dist/server/WorkspaceResidency.js +27 -0
- package/dist/server/WorkspaceResidency.js.map +1 -1
- package/dist/server/WorkspaceStorage.d.ts +8 -0
- package/dist/server/WorkspaceStorage.d.ts.map +1 -0
- package/dist/server/WorkspaceStorage.js +26 -0
- package/dist/server/WorkspaceStorage.js.map +1 -0
- package/dist/server/client-input.d.ts +4 -3
- package/dist/server/client-input.d.ts.map +1 -1
- package/dist/server/client-input.js +25 -27
- package/dist/server/client-input.js.map +1 -1
- package/dist/server/dispatch-as-plurnk.js +2 -2
- package/dist/server/dispatch-as-plurnk.js.map +1 -1
- package/dist/server/drain.sql +69 -132
- package/dist/server/envelope.d.ts +2 -3
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +7 -21
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +10 -6
- package/dist/server/exec-poll-backoff.js +3 -3
- package/dist/server/exec-poll-backoff.js.map +1 -1
- package/dist/server/lifecycle-recovery.sql +12 -38
- package/dist/server/logEntry.sql +2 -2
- package/dist/server/loopDocs.js +3 -3
- package/dist/server/loopDocs.sql +4 -2
- package/dist/server/model-catalog.d.ts.map +1 -1
- package/dist/server/model-catalog.js +2 -2
- package/dist/server/model-catalog.js.map +1 -1
- package/dist/server/seam-loop.sql +0 -1
- package/dist/server/workspace-capabilities.sql +45 -0
- package/dist/server/workspace-storage.sql +8 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +37 -11
- package/dist/service.js.map +1 -1
- package/docs/copy-move.md +31 -0
- package/docs/env.md +67 -0
- package/docs/members.md +4 -4
- package/docs/skills.md +2 -2
- package/migrations/002_workers.sql +41 -17
- package/migrations/003_loops.sql +82 -28
- package/migrations/004_inference.sql +53 -12
- package/migrations/005_entries.sql +135 -14
- package/migrations/006_log.sql +79 -24
- package/migrations/007_subscriptions.sql +10 -15
- package/package.json +45 -36
- package/dist/core/PromptFrames.d.ts +0 -12
- package/dist/core/PromptFrames.d.ts.map +0 -1
- package/dist/core/PromptFrames.js +0 -28
- package/dist/core/PromptFrames.js.map +0 -1
- package/dist/schemes/Prompt.d.ts +0 -8
- package/dist/schemes/Prompt.d.ts.map +0 -1
- package/dist/schemes/Prompt.js +0 -25
- package/dist/schemes/Prompt.js.map +0 -1
|
@@ -3,6 +3,23 @@
|
|
|
3
3
|
-- Version numbers order the chapters on a fresh database; they are not history. A shape
|
|
4
4
|
-- change edits the chapter in place; existing development databases are recreated.
|
|
5
5
|
|
|
6
|
+
-- {§content-store} Every settled body is stored once, addressed by its sha256, however many
|
|
7
|
+
-- channels, workspaces, forks or full-text rows carry it. Rows are immutable; retention collects
|
|
8
|
+
-- what nothing references.
|
|
9
|
+
-- The ONE engine-imposed constraint (SPEC {§stream-constraints}, {§stream-constraints-engine-one-cap}): 100 MiB char-length cap
|
|
10
|
+
-- per content body. All other limits are extrinsic.
|
|
11
|
+
CREATE TABLE IF NOT EXISTS contents (
|
|
12
|
+
id INTEGER NOT NULL PRIMARY KEY,
|
|
13
|
+
hash TEXT NOT NULL UNIQUE CHECK (length(hash) = 64),
|
|
14
|
+
content TEXT NOT NULL CHECK (length(content) <= 104857600)
|
|
15
|
+
) STRICT;
|
|
16
|
+
|
|
17
|
+
CREATE TRIGGER IF NOT EXISTS contents_immutable
|
|
18
|
+
BEFORE UPDATE ON contents
|
|
19
|
+
BEGIN
|
|
20
|
+
SELECT RAISE(ABORT, 'content is immutable');
|
|
21
|
+
END;
|
|
22
|
+
|
|
6
23
|
-- derivations
|
|
7
24
|
-- Content-addressed deep projections. Entry channels and log projections point
|
|
8
25
|
-- at a COMPLETE artifact by deep_hash; graph and FTS are stored once
|
|
@@ -15,6 +32,8 @@ CREATE TABLE IF NOT EXISTS derivations (
|
|
|
15
32
|
disposition TEXT CHECK (disposition IN ('indexed', 'excluded', 'unsearchable', 'failed')),
|
|
16
33
|
reason TEXT,
|
|
17
34
|
parse_issues INTEGER CHECK (parse_issues IS NULL OR parse_issues > 0),
|
|
35
|
+
-- {§content-store} The text this artifact full-text indexes; NULL = nothing indexed.
|
|
36
|
+
content_id INTEGER REFERENCES contents(id),
|
|
18
37
|
summary TEXT CHECK (
|
|
19
38
|
summary IS NULL OR (
|
|
20
39
|
length(summary) > 0
|
|
@@ -37,9 +56,7 @@ CREATE TABLE IF NOT EXISTS entries (
|
|
|
37
56
|
authority TEXT NOT NULL DEFAULT '',
|
|
38
57
|
pathname TEXT NOT NULL,
|
|
39
58
|
workspace_id INTEGER NOT NULL REFERENCES workspaces(id) ON DELETE CASCADE,
|
|
40
|
-
--
|
|
41
|
-
-- workspace paths into the exact turn that publishes the frame
|
|
42
|
-
-- ({§methods-loop-run-open-paths}).
|
|
59
|
+
-- Scheme-owned entry metadata.
|
|
43
60
|
attributes TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(attributes)),
|
|
44
61
|
default_channel TEXT NOT NULL DEFAULT 'body' CHECK (length(default_channel) > 0),
|
|
45
62
|
output INTEGER NOT NULL DEFAULT 0 CHECK (output IN (0, 1)),
|
|
@@ -65,17 +82,20 @@ CREATE TABLE IF NOT EXISTS entries (
|
|
|
65
82
|
-- {§entry-owner}, {§execution-output-identity}: one canonical resource key.
|
|
66
83
|
CREATE UNIQUE INDEX IF NOT EXISTS entries_identity ON entries (workspace_id, scheme, authority, pathname);
|
|
67
84
|
|
|
68
|
-
--
|
|
69
|
-
--
|
|
70
|
-
|
|
85
|
+
-- entry_channel_rows: the stored shape of a channel. A settled channel points at its body in
|
|
86
|
+
-- `contents`; an active stream's body is a private buffer that is interned when it settles.
|
|
87
|
+
-- Everything reads and writes channels through the `entry_channels` view below.
|
|
88
|
+
CREATE TABLE IF NOT EXISTS entry_channel_rows (
|
|
71
89
|
entry_id INTEGER NOT NULL,
|
|
72
90
|
name TEXT NOT NULL CHECK (length(name) > 0),
|
|
73
|
-
|
|
91
|
+
content_id INTEGER REFERENCES contents(id),
|
|
92
|
+
buffer TEXT CHECK (buffer IS NULL OR length(buffer) <= 104857600),
|
|
74
93
|
mimetype TEXT NOT NULL CHECK (length(mimetype) > 0),
|
|
75
94
|
weight INTEGER NOT NULL DEFAULT 0 CHECK (weight >= 0),
|
|
76
|
-
--
|
|
77
|
-
--
|
|
78
|
-
|
|
95
|
+
-- Line count of the body, kept at every write so a catalog lists extent without reading
|
|
96
|
+
-- bodies: a trailing newline terminates the last line; empty content has none
|
|
97
|
+
-- ({§tokenomics-weight-stored-at-write}).
|
|
98
|
+
lines INTEGER NOT NULL CHECK (lines >= 0),
|
|
79
99
|
-- Search derivation for this exact addressable channel representation.
|
|
80
100
|
-- Content or mimetype changes invalidate it at the owning channel row.
|
|
81
101
|
deep_hash TEXT,
|
|
@@ -110,13 +130,92 @@ CREATE TABLE IF NOT EXISTS entry_channels (
|
|
|
110
130
|
END
|
|
111
131
|
END
|
|
112
132
|
),
|
|
133
|
+
CHECK ((content_id IS NULL) <> (buffer IS NULL)),
|
|
113
134
|
PRIMARY KEY (entry_id, name),
|
|
114
135
|
FOREIGN KEY (entry_id) REFERENCES entries(id) ON DELETE CASCADE,
|
|
115
136
|
FOREIGN KEY (deep_hash) REFERENCES derivations(deep_hash)
|
|
116
137
|
) STRICT, WITHOUT ROWID;
|
|
117
138
|
|
|
118
139
|
-- {§db-fk-indexes} Derivation replacement checks channels by hash; catalog joins drive on it too.
|
|
119
|
-
CREATE INDEX IF NOT EXISTS
|
|
140
|
+
CREATE INDEX IF NOT EXISTS entry_channel_rows_deep_hash ON entry_channel_rows (deep_hash) WHERE deep_hash IS NOT NULL;
|
|
141
|
+
-- {§db-fk-indexes} Content collection asks whether any channel still points at a body.
|
|
142
|
+
CREATE INDEX IF NOT EXISTS entry_channel_rows_content ON entry_channel_rows (content_id) WHERE content_id IS NOT NULL;
|
|
143
|
+
|
|
144
|
+
-- {§content-store} The channel as every reader and writer sees it. content_hash is the stored
|
|
145
|
+
-- body's identity (NULL while a stream is active); a writer may bind it, and a bound hash must
|
|
146
|
+
-- be the content's.
|
|
147
|
+
CREATE VIEW IF NOT EXISTS entry_channels AS
|
|
148
|
+
SELECT entry_channel_rows.entry_id, entry_channel_rows.name,
|
|
149
|
+
COALESCE(entry_channel_rows.buffer, contents.content) AS content,
|
|
150
|
+
entry_channel_rows.mimetype, entry_channel_rows.weight, entry_channel_rows.lines,
|
|
151
|
+
contents.hash AS content_hash, entry_channel_rows.deep_hash, entry_channel_rows.state,
|
|
152
|
+
entry_channel_rows.producer_result
|
|
153
|
+
FROM entry_channel_rows
|
|
154
|
+
LEFT JOIN contents ON contents.id = entry_channel_rows.content_id;
|
|
155
|
+
|
|
156
|
+
CREATE TRIGGER IF NOT EXISTS entry_channels_insert
|
|
157
|
+
INSTEAD OF INSERT ON entry_channels
|
|
158
|
+
BEGIN
|
|
159
|
+
SELECT RAISE(ABORT, 'a channel requires content') WHERE NEW.content IS NULL;
|
|
160
|
+
SELECT RAISE(ABORT, 'content_hash does not match content')
|
|
161
|
+
WHERE NEW.content_hash IS NOT NULL AND NEW.content_hash IS NOT sha256(NEW.content);
|
|
162
|
+
INSERT INTO contents (hash, content)
|
|
163
|
+
SELECT COALESCE(NEW.content_hash, sha256(NEW.content)), NEW.content
|
|
164
|
+
WHERE COALESCE(NEW.state, 'static') <> 'active'
|
|
165
|
+
ON CONFLICT (hash) DO NOTHING;
|
|
166
|
+
INSERT INTO entry_channel_rows (entry_id, name, content_id, buffer, mimetype, weight, lines, deep_hash, state, producer_result)
|
|
167
|
+
VALUES (
|
|
168
|
+
NEW.entry_id, NEW.name,
|
|
169
|
+
CASE WHEN COALESCE(NEW.state, 'static') <> 'active'
|
|
170
|
+
THEN (SELECT id FROM contents WHERE hash = COALESCE(NEW.content_hash, sha256(NEW.content))) END,
|
|
171
|
+
CASE WHEN COALESCE(NEW.state, 'static') = 'active' THEN NEW.content END,
|
|
172
|
+
NEW.mimetype, COALESCE(NEW.weight, 0),
|
|
173
|
+
CASE WHEN length(NEW.content) = 0 THEN 0
|
|
174
|
+
WHEN substr(NEW.content, -1) = char(10) THEN length(NEW.content) - length(replace(NEW.content, char(10), ''))
|
|
175
|
+
ELSE length(NEW.content) - length(replace(NEW.content, char(10), '')) + 1 END,
|
|
176
|
+
NEW.deep_hash, COALESCE(NEW.state, 'static'), NEW.producer_result
|
|
177
|
+
);
|
|
178
|
+
END;
|
|
179
|
+
|
|
180
|
+
-- Each column group is written only when it changed, so a search attachment never reads as a
|
|
181
|
+
-- representation write and a lifecycle write never re-stores a body.
|
|
182
|
+
CREATE TRIGGER IF NOT EXISTS entry_channels_update
|
|
183
|
+
INSTEAD OF UPDATE ON entry_channels
|
|
184
|
+
BEGIN
|
|
185
|
+
SELECT RAISE(ABORT, 'a channel is addressed by (entry_id, name)')
|
|
186
|
+
WHERE NEW.entry_id IS NOT OLD.entry_id OR NEW.name IS NOT OLD.name;
|
|
187
|
+
SELECT RAISE(ABORT, 'a channel requires content') WHERE NEW.content IS NULL;
|
|
188
|
+
SELECT RAISE(ABORT, 'content_hash does not match content')
|
|
189
|
+
WHERE NEW.content_hash IS NOT NULL AND NEW.content_hash IS NOT OLD.content_hash
|
|
190
|
+
AND NEW.content_hash IS NOT sha256(NEW.content);
|
|
191
|
+
INSERT INTO contents (hash, content)
|
|
192
|
+
SELECT sha256(NEW.content), NEW.content
|
|
193
|
+
WHERE NEW.state <> 'active' AND (NEW.content IS NOT OLD.content OR OLD.state = 'active')
|
|
194
|
+
ON CONFLICT (hash) DO NOTHING;
|
|
195
|
+
UPDATE entry_channel_rows
|
|
196
|
+
SET content_id = CASE WHEN NEW.state <> 'active'
|
|
197
|
+
THEN (SELECT id FROM contents WHERE hash = sha256(NEW.content)) END,
|
|
198
|
+
buffer = CASE WHEN NEW.state = 'active' THEN NEW.content END,
|
|
199
|
+
lines = CASE WHEN length(NEW.content) = 0 THEN 0
|
|
200
|
+
WHEN substr(NEW.content, -1) = char(10) THEN length(NEW.content) - length(replace(NEW.content, char(10), ''))
|
|
201
|
+
ELSE length(NEW.content) - length(replace(NEW.content, char(10), '')) + 1 END
|
|
202
|
+
WHERE entry_id = OLD.entry_id AND name = OLD.name
|
|
203
|
+
AND (NEW.content IS NOT OLD.content OR (NEW.state = 'active') IS NOT (OLD.state = 'active'));
|
|
204
|
+
UPDATE entry_channel_rows
|
|
205
|
+
SET mimetype = NEW.mimetype, weight = NEW.weight, state = NEW.state, producer_result = NEW.producer_result
|
|
206
|
+
WHERE entry_id = OLD.entry_id AND name = OLD.name
|
|
207
|
+
AND (NEW.mimetype IS NOT OLD.mimetype OR NEW.weight IS NOT OLD.weight
|
|
208
|
+
OR NEW.state IS NOT OLD.state OR NEW.producer_result IS NOT OLD.producer_result);
|
|
209
|
+
UPDATE entry_channel_rows
|
|
210
|
+
SET deep_hash = NEW.deep_hash
|
|
211
|
+
WHERE entry_id = OLD.entry_id AND name = OLD.name AND NEW.deep_hash IS NOT OLD.deep_hash;
|
|
212
|
+
END;
|
|
213
|
+
|
|
214
|
+
CREATE TRIGGER IF NOT EXISTS entry_channels_delete
|
|
215
|
+
INSTEAD OF DELETE ON entry_channels
|
|
216
|
+
BEGIN
|
|
217
|
+
DELETE FROM entry_channel_rows WHERE entry_id = OLD.entry_id AND name = OLD.name;
|
|
218
|
+
END;
|
|
120
219
|
|
|
121
220
|
-- {§crud} A publication is one SQL statement: failure rolls back metadata and
|
|
122
221
|
-- every channel. The view is an input boundary, not a second persisted copy.
|
|
@@ -141,14 +240,28 @@ BEGIN
|
|
|
141
240
|
DELETE FROM entry_channels WHERE entry_id = (
|
|
142
241
|
SELECT id FROM entries WHERE workspace_id = NEW.workspace_id
|
|
143
242
|
AND scheme = NEW.scheme AND authority = NEW.authority AND pathname = NEW.pathname
|
|
144
|
-
);
|
|
243
|
+
) AND name NOT IN (SELECT key FROM json_each(NEW.channels));
|
|
244
|
+
UPDATE entry_channels
|
|
245
|
+
SET content = json_extract(c.value, '$.content'),
|
|
246
|
+
mimetype = json_extract(c.value, '$.mimetype'),
|
|
247
|
+
weight = json_extract(c.value, '$.weight'),
|
|
248
|
+
content_hash = json_extract(c.value, '$.content_hash'),
|
|
249
|
+
state = json_extract(c.value, '$.state'),
|
|
250
|
+
producer_result = json_extract(c.value, '$.producer_result')
|
|
251
|
+
FROM (SELECT key, value FROM json_each(NEW.channels)) AS c
|
|
252
|
+
WHERE entry_channels.name = c.key
|
|
253
|
+
AND entry_channels.entry_id = (
|
|
254
|
+
SELECT id FROM entries WHERE workspace_id = NEW.workspace_id
|
|
255
|
+
AND scheme = NEW.scheme AND authority = NEW.authority AND pathname = NEW.pathname
|
|
256
|
+
);
|
|
145
257
|
INSERT INTO entry_channels (entry_id, name, content, mimetype, weight, content_hash, state, producer_result)
|
|
146
258
|
SELECT e.id, c.key, json_extract(c.value, '$.content'), json_extract(c.value, '$.mimetype'),
|
|
147
259
|
json_extract(c.value, '$.weight'), json_extract(c.value, '$.content_hash'),
|
|
148
260
|
json_extract(c.value, '$.state'), json_extract(c.value, '$.producer_result')
|
|
149
261
|
FROM entries e, json_each(NEW.channels) c
|
|
150
262
|
WHERE e.workspace_id = NEW.workspace_id AND e.scheme = NEW.scheme
|
|
151
|
-
AND e.authority = NEW.authority AND e.pathname = NEW.pathname
|
|
263
|
+
AND e.authority = NEW.authority AND e.pathname = NEW.pathname
|
|
264
|
+
AND NOT EXISTS (SELECT 1 FROM entry_channel_rows r WHERE r.entry_id = e.id AND r.name = c.key);
|
|
152
265
|
END;
|
|
153
266
|
|
|
154
267
|
-- symbol_defs
|
|
@@ -192,7 +305,15 @@ CREATE INDEX IF NOT EXISTS symbol_refs_source ON symbol_refs (derivation_id, con
|
|
|
192
305
|
|
|
193
306
|
-- {§find-fulltext-selection} Native full-text index of the addressed READ body.
|
|
194
307
|
-- rowid is the content-addressed derivation id.
|
|
195
|
-
|
|
308
|
+
-- {§content-store} The index reads its text from the content store instead of keeping a copy:
|
|
309
|
+
-- external content, kept in step by the derivation triggers in _entry-fts.sql.
|
|
310
|
+
CREATE VIEW IF NOT EXISTS derivation_texts AS
|
|
311
|
+
SELECT derivations.id AS id, contents.content AS content
|
|
312
|
+
FROM derivations
|
|
313
|
+
JOIN contents ON contents.id = derivations.content_id;
|
|
314
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS derivation_fts USING fts5(content, content='derivation_texts', content_rowid='id');
|
|
315
|
+
-- {§db-fk-indexes} Content collection asks whether any derivation still indexes a body.
|
|
316
|
+
CREATE INDEX IF NOT EXISTS derivations_content ON derivations (content_id) WHERE content_id IS NOT NULL;
|
|
196
317
|
|
|
197
318
|
-- {§packet-attachment-parts}: READ snapshots survive source changes and log curation.
|
|
198
319
|
CREATE TABLE IF NOT EXISTS native_contents (
|
package/migrations/006_log.sql
CHANGED
|
@@ -112,22 +112,73 @@ CREATE INDEX IF NOT EXISTS log_entries_loop_id ON log_entries (l
|
|
|
112
112
|
-- {§db-fk-indexes} Derivation replacement checks the rows that cite the hash.
|
|
113
113
|
CREATE INDEX IF NOT EXISTS log_entries_deep_hash ON log_entries (deep_hash) WHERE deep_hash IS NOT NULL;
|
|
114
114
|
|
|
115
|
-
-- {§loop-response-messages}:
|
|
116
|
-
--
|
|
117
|
-
CREATE VIEW IF NOT EXISTS
|
|
118
|
-
SELECT le.loop_id,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
FROM log_entries le
|
|
122
|
-
WHERE le.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
115
|
+
-- {§loop-response-messages}: delivered messages remain executed evidence;
|
|
116
|
+
-- curation and loop termination cannot retract or replace them.
|
|
117
|
+
CREATE VIEW IF NOT EXISTS log_responses AS
|
|
118
|
+
SELECT le.id, le.loop_id, le.turn_id, le.worker_id, le.sequence, le.source, le.origin,
|
|
119
|
+
CASE WHEN json_valid(le.rx) THEN le.rx END AS rx,
|
|
120
|
+
CASE WHEN json_valid(le.tx) THEN COALESCE(json_extract(le.tx, '$.body.raw'), '') END AS content
|
|
121
|
+
FROM log_entries le
|
|
122
|
+
WHERE le.state = 'resolved'
|
|
123
|
+
AND le.op = 'SEND' AND le.status_rx BETWEEN 200 AND 299
|
|
124
|
+
AND le.source IS NULL AND le.inherited_history = 0
|
|
125
|
+
AND json_valid(le.tx)
|
|
126
|
+
AND json_type(CASE WHEN json_valid(le.rx) THEN le.rx END, '$.answers') = 'array'
|
|
127
|
+
AND typeof(content) = 'text';
|
|
128
|
+
|
|
129
|
+
CREATE VIEW IF NOT EXISTS message_responses AS
|
|
130
|
+
SELECT DISTINCT r.id, m.loop_id, m.worker_id, r.source, r.content, r.rx
|
|
131
|
+
FROM log_responses r
|
|
132
|
+
JOIN workers producer ON producer.id = r.worker_id
|
|
133
|
+
JOIN json_each(r.rx, '$.answers') answer
|
|
134
|
+
JOIN message_sources m ON m.path = answer.value AND m.workspace_id = producer.workspace_id
|
|
135
|
+
UNION ALL
|
|
136
|
+
SELECT r.id, r.loop_id, r.worker_id, r.source, r.content, r.rx
|
|
137
|
+
FROM log_responses r WHERE json_array_length(r.rx, '$.answers') = 0;
|
|
138
|
+
|
|
139
|
+
CREATE VIEW IF NOT EXISTS unanswered_messages AS
|
|
140
|
+
SELECT m.* FROM message_sources m
|
|
141
|
+
WHERE NOT EXISTS (
|
|
142
|
+
SELECT 1 FROM log_responses r
|
|
143
|
+
JOIN workers w ON w.id = r.worker_id, json_each(r.rx, '$.answers') answer
|
|
144
|
+
WHERE w.workspace_id = m.workspace_id AND answer.value = m.path
|
|
145
|
+
);
|
|
146
|
+
|
|
147
|
+
-- {§message-reply-delivery}: notify the sender and the assigned conversation.
|
|
148
|
+
-- UNION prevents duplicate delivery when both roles belong to the same worker.
|
|
149
|
+
-- {§loop-answer}: a child's answer to the very task its parent delegated is NOT delivered here;
|
|
150
|
+
-- the parent receives it once, as the child's termination row, which carries that answer at
|
|
151
|
+
-- ops://<child>/<loop> (operator, 2026-09-19). Replies to any other message still deliver.
|
|
152
|
+
CREATE VIEW IF NOT EXISTS delegated_task_answers AS
|
|
153
|
+
SELECT r.id AS source_record_id, parent.id AS recipient_worker_id
|
|
154
|
+
FROM log_responses r
|
|
155
|
+
JOIN workers producer ON producer.id = r.worker_id
|
|
156
|
+
JOIN workers parent ON parent.id = producer.parent_worker_id
|
|
157
|
+
JOIN json_each(r.rx, '$.answers') answer
|
|
158
|
+
JOIN message_sources m ON m.path = answer.value AND m.workspace_id = producer.workspace_id
|
|
159
|
+
WHERE m.loop_id = r.loop_id AND m.ordinal = 1 AND m.source = 'worker://' || parent.name;
|
|
160
|
+
|
|
161
|
+
CREATE VIEW IF NOT EXISTS message_reply_deliveries AS
|
|
162
|
+
SELECT DISTINCT r.id AS source_record_id, r.loop_id, m.workspace_id,
|
|
163
|
+
r.worker_id AS producer_worker_id, m.worker_id AS recipient_worker_id
|
|
164
|
+
FROM log_responses r
|
|
165
|
+
JOIN workers producer ON producer.id = r.worker_id
|
|
166
|
+
JOIN json_each(r.rx, '$.answers') answer
|
|
167
|
+
JOIN message_sources m ON m.path = answer.value AND m.workspace_id = producer.workspace_id
|
|
168
|
+
UNION
|
|
169
|
+
SELECT r.id, r.loop_id, m.workspace_id, r.worker_id, sender.id
|
|
170
|
+
FROM log_responses r
|
|
171
|
+
JOIN workers producer ON producer.id = r.worker_id
|
|
172
|
+
JOIN json_each(r.rx, '$.answers') answer
|
|
173
|
+
JOIN message_sources m ON m.path = answer.value AND m.workspace_id = producer.workspace_id
|
|
174
|
+
JOIN workers sender ON sender.workspace_id = m.workspace_id AND m.source = 'worker://' || sender.name;
|
|
175
|
+
|
|
176
|
+
CREATE VIEW IF NOT EXISTS delivered_message_replies AS
|
|
177
|
+
SELECT d.* FROM message_reply_deliveries d
|
|
178
|
+
WHERE NOT EXISTS (
|
|
179
|
+
SELECT 1 FROM delegated_task_answers t
|
|
180
|
+
WHERE t.source_record_id = d.source_record_id AND t.recipient_worker_id = d.recipient_worker_id
|
|
181
|
+
);
|
|
131
182
|
|
|
132
183
|
CREATE UNIQUE INDEX IF NOT EXISTS log_entries_model_call_id
|
|
133
184
|
ON log_entries (model_call_id)
|
|
@@ -514,8 +565,12 @@ FROM (
|
|
|
514
565
|
-- private to the worker it serves and never crosses to the parent.
|
|
515
566
|
CASE
|
|
516
567
|
WHEN t.producer = '_plurnk' AND t.kind IN ('operation', 'initialization', 'maintenance') THEN NULL
|
|
568
|
+
WHEN EXISTS (
|
|
569
|
+
SELECT 1 FROM message_reply_deliveries d
|
|
570
|
+
WHERE d.source_record_id = le.id AND d.recipient_worker_id = w.parent_worker_id
|
|
571
|
+
) THEN NULL
|
|
517
572
|
ELSE w.parent_worker_id
|
|
518
|
-
END AS
|
|
573
|
+
END AS recipient_worker_id,
|
|
519
574
|
CASE
|
|
520
575
|
WHEN le.state = 'resolved'
|
|
521
576
|
AND NOT (t.producer = '_plurnk' AND t.kind = 'maintenance')
|
|
@@ -564,15 +619,15 @@ FROM (
|
|
|
564
619
|
json_remove(le.attrs, '$.__plurnk_curation') AS attrs
|
|
565
620
|
FROM log_entries le
|
|
566
621
|
JOIN workers w ON w.id = le.worker_id
|
|
567
|
-
JOIN loops l ON l.id = le.loop_id
|
|
568
622
|
JOIN turns t ON t.id = le.turn_id
|
|
569
623
|
WHERE le.ambient_event_id IS NULL
|
|
570
624
|
AND le.inherited_history = 0
|
|
571
|
-
AND le.
|
|
572
|
-
AND
|
|
573
|
-
|
|
574
|
-
le.
|
|
575
|
-
|
|
625
|
+
AND COALESCE(json_extract(le.attrs, '$.kind'), '') != 'message'
|
|
626
|
+
AND (
|
|
627
|
+
le.op IN ('EDIT', 'COPY', 'MOVE', 'SEND', 'WORK', 'FORK')
|
|
628
|
+
OR CASE WHEN json_valid(le.tx) THEN json_type(le.tx, '$.runtime') END = 'text'
|
|
629
|
+
OR (le.op = 'KILL' AND COALESCE(le.scheme, 'file') != 'log')
|
|
576
630
|
)
|
|
631
|
+
AND le.state != 'proposed'
|
|
577
632
|
) candidate
|
|
578
|
-
WHERE
|
|
633
|
+
WHERE recipient_worker_id IS NOT NULL OR workspace_broadcast = 1;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
-- MIGRATE: 7 subscriptions
|
|
2
|
-
-- Chapter 7 of the schema baseline ({§db-schema-baseline}):
|
|
2
|
+
-- Chapter 7 of the schema baseline ({§db-schema-baseline}): held streams, events and their observation cursors.
|
|
3
3
|
-- Version numbers order the chapters on a fresh database; they are not history. A shape
|
|
4
4
|
-- change edits the chapter in place; existing development databases are recreated.
|
|
5
5
|
|
|
@@ -19,13 +19,10 @@ CREATE TABLE IF NOT EXISTS subscriptions (
|
|
|
19
19
|
published_channel TEXT CHECK (published_channel IS NULL OR length(published_channel) > 0),
|
|
20
20
|
source TEXT CHECK (source IS NULL OR length(source) > 0),
|
|
21
21
|
opened_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
|
|
22
|
-
--
|
|
23
|
-
--
|
|
24
|
-
poll_seconds INTEGER CHECK (poll_seconds IS NULL OR poll_seconds >= 0),
|
|
25
|
-
-- EXEC `<0>` — turn-scoped: the stream is reaped at the worker's next pre-turn so it never survives
|
|
26
|
-
-- into the subsequent turn; its terminal output surfaces initially visible like any conclusion. {§exec-poll}
|
|
22
|
+
-- `[{"lifetime":"turn"}]`: the stream is reaped at the worker's next pre-turn so it never survives
|
|
23
|
+
-- into the subsequent turn; its terminal output surfaces initially visible like any conclusion. {§exec-lifetime}
|
|
27
24
|
turn_scoped INTEGER NOT NULL DEFAULT 0 CHECK (turn_scoped IN (0, 1)),
|
|
28
|
-
-- {§worker-obligations}: a
|
|
25
|
+
-- {§worker-obligations}: a `[{"lifetime":"detached"}]` spawn outlives its loop and is nobody's obligation.
|
|
29
26
|
detached INTEGER NOT NULL DEFAULT 0 CHECK (detached IN (0, 1)),
|
|
30
27
|
closed_at TEXT,
|
|
31
28
|
close_status INTEGER CHECK (close_status IS NULL OR (close_status BETWEEN 100 AND 599)),
|
|
@@ -140,14 +137,7 @@ BEGIN
|
|
|
140
137
|
SELECT RAISE(ABORT, 'subscription channel result violates the channel producer contract');
|
|
141
138
|
END;
|
|
142
139
|
|
|
143
|
-
--
|
|
144
|
-
-- are curated model context and therefore cannot own this lifecycle fact.
|
|
145
|
-
-- The row survives KILLing any generated observation and disappears only with
|
|
146
|
-
-- its subscription. {§exec-stream}
|
|
147
|
-
-- {§worker-obligations}: what a worker still holds — an open stream that is not detached, or a
|
|
148
|
-
-- child with an unresolved loop (the same liveness the Delegation section shows, so the 409 gate
|
|
149
|
-
-- and the section the model reads never disagree, {§child-orientation}). The one definition the
|
|
150
|
-
-- completion gate, the wait matrix, and the drain's wake settlement all read.
|
|
140
|
+
-- {§worker-obligations}: the shared worker work a loop is held on.
|
|
151
141
|
CREATE VIEW IF NOT EXISTS worker_obligations AS
|
|
152
142
|
SELECT w.id AS worker_id,
|
|
153
143
|
EXISTS (
|
|
@@ -160,6 +150,11 @@ SELECT w.id AS worker_id,
|
|
|
160
150
|
) AS workers
|
|
161
151
|
FROM workers w;
|
|
162
152
|
|
|
153
|
+
CREATE VIEW IF NOT EXISTS loop_obligations AS
|
|
154
|
+
SELECT l.id AS loop_id, held.streams, held.workers
|
|
155
|
+
FROM loops l JOIN worker_obligations held ON held.worker_id = l.worker_id;
|
|
156
|
+
|
|
157
|
+
-- {§exec-stream}: publication cursors survive curation of generated observations.
|
|
163
158
|
CREATE TABLE IF NOT EXISTS subscription_publications (
|
|
164
159
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
165
160
|
version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
|
package/package.json
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-service",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.19.0",
|
|
4
4
|
"description": "Plurnk agent runtime — the server / engine / core. Implements the @plurnk/plurnk-contracts contract.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"plurnk",
|
|
7
|
+
"agent",
|
|
8
|
+
"llm",
|
|
9
|
+
"daemon",
|
|
10
|
+
"agui",
|
|
11
|
+
"sqlite",
|
|
12
|
+
"harness"
|
|
13
|
+
],
|
|
5
14
|
"type": "module",
|
|
6
15
|
"license": "MIT",
|
|
7
16
|
"engines": {
|
|
@@ -39,12 +48,11 @@
|
|
|
39
48
|
"start": "node --conditions=plurnk-dev src/service.ts",
|
|
40
49
|
"types:sqlrite": "node scripts/sqlrite-types.mjs --write",
|
|
41
50
|
"types:sqlrite:check": "node scripts/sqlrite-types.mjs",
|
|
42
|
-
"artifacts:begin": "node ../scripts/test-artifacts.mjs begin",
|
|
43
|
-
"pretest:intg": "npm run artifacts:begin",
|
|
44
51
|
"test:lint": "npm run types:sqlrite:check && tsc --noEmit && tsc --noEmit -p tsconfig.test.json",
|
|
45
52
|
"test:unit": "node --conditions=plurnk-dev --import=./test/setup.ts --env-file-if-exists=.env.defaults --test --test-timeout=30000 scripts/*.test.mjs src/**/*.test.ts",
|
|
46
|
-
"test:intg": "PLURNK_SERVICE_FILES_ITEMS=0 node --conditions=plurnk-dev --import=./test/setup.ts --env-file-if-exists=.env.defaults --test --test-concurrency=8 --test-timeout=30000 test/intg/*.test.ts",
|
|
53
|
+
"test:intg": "PLURNK_TEST_RUN=$(date -u +%Y%m%dT%H%M%SZ) PLURNK_SERVICE_FILES_ITEMS=0 node --conditions=plurnk-dev --import=./test/setup.ts --env-file-if-exists=.env.defaults --test --test-concurrency=8 --test-timeout=30000 test/intg/*.test.ts",
|
|
47
54
|
"test:mcp:dogfood": "PLURNK_MCP_DOGFOOD=1 node --conditions=plurnk-dev --import=./test/setup.ts --env-file-if-exists=.env.defaults --test --test-concurrency=1 --test-timeout=120000 test/intg/mcp-agui-composition.test.ts",
|
|
55
|
+
"test:a2a:tck": "node scripts/a2a-tck.mjs",
|
|
48
56
|
"test:live": "bash ../scripts/operator-environment.sh node --conditions=plurnk-dev scripts/live.mjs",
|
|
49
57
|
"test:live:specimen": "bash ../scripts/operator-environment.sh node --conditions=plurnk-dev scripts/live.mjs --specimen",
|
|
50
58
|
"test:live:zeropin": "PLURNK_ZERO_PIN=1 npm run test:live",
|
|
@@ -55,7 +63,6 @@
|
|
|
55
63
|
"fixture:demo": "node --conditions=plurnk-dev test/demo/_fixture.ts",
|
|
56
64
|
"test": "npm run test:lint && npm run test:unit && npm run test:intg",
|
|
57
65
|
"digest:missing": "node --conditions=plurnk-dev bin/digest-missing.ts",
|
|
58
|
-
"artifacts:clean": "node ../scripts/test-artifacts.mjs clean",
|
|
59
66
|
"dev:digest": "node --conditions=plurnk-dev bin/digest.ts",
|
|
60
67
|
"build:clean": "rm -rf dist",
|
|
61
68
|
"build:dist": "tsc -p tsconfig.build.json",
|
|
@@ -81,22 +88,24 @@
|
|
|
81
88
|
"@opentelemetry/resources": "^2.11.0",
|
|
82
89
|
"@opentelemetry/sdk-metrics": "^2.11.0",
|
|
83
90
|
"@opentelemetry/sdk-trace-base": "^2.11.0",
|
|
84
|
-
"@plurnk/plurnk-a2a": "1.
|
|
85
|
-
"@plurnk/plurnk-agui": "1.
|
|
86
|
-
"@plurnk/plurnk-contracts": "1.
|
|
87
|
-
"@plurnk/plurnk-
|
|
88
|
-
"@plurnk/plurnk-
|
|
89
|
-
"@plurnk/plurnk-execs
|
|
90
|
-
"@plurnk/plurnk-execs-
|
|
91
|
-
"@plurnk/plurnk-
|
|
92
|
-
"@plurnk/plurnk-
|
|
93
|
-
"@plurnk/plurnk-
|
|
94
|
-
"@plurnk/plurnk-
|
|
95
|
-
"@plurnk/plurnk-
|
|
96
|
-
"@plurnk/plurnk-
|
|
97
|
-
"@plurnk/plurnk-mimetypes
|
|
98
|
-
"@plurnk/plurnk-mimetypes-application-
|
|
99
|
-
"@plurnk/plurnk-mimetypes-application-
|
|
91
|
+
"@plurnk/plurnk-a2a": "1.19.0",
|
|
92
|
+
"@plurnk/plurnk-agui": "1.19.0",
|
|
93
|
+
"@plurnk/plurnk-contracts": "1.19.0",
|
|
94
|
+
"@plurnk/plurnk-parser": "1.19.0",
|
|
95
|
+
"@plurnk/plurnk-schedule": "1.19.0",
|
|
96
|
+
"@plurnk/plurnk-execs": "1.19.0",
|
|
97
|
+
"@plurnk/plurnk-execs-common": "1.19.0",
|
|
98
|
+
"@plurnk/plurnk-execs-jq": "1.19.0",
|
|
99
|
+
"@plurnk/plurnk-execs-sqlite": "1.19.0",
|
|
100
|
+
"@plurnk/plurnk-hooks": "1.19.0",
|
|
101
|
+
"@plurnk/plurnk-mcp": "1.19.0",
|
|
102
|
+
"@plurnk/plurnk-meta": "1.19.0",
|
|
103
|
+
"@plurnk/plurnk-agent-skills": "1.19.0",
|
|
104
|
+
"@plurnk/plurnk-mimetypes": "1.19.0",
|
|
105
|
+
"@plurnk/plurnk-mimetypes-application-ipynb": "1.19.0",
|
|
106
|
+
"@plurnk/plurnk-mimetypes-application-json": "1.19.0",
|
|
107
|
+
"@plurnk/plurnk-mimetypes-application-jsonl": "1.19.0",
|
|
108
|
+
"@plurnk/plurnk-mimetypes-application-xml": "1.19.0",
|
|
100
109
|
"@plurnk/plurnk-mimetypes-grammar-bash": "1.16.1",
|
|
101
110
|
"@plurnk/plurnk-mimetypes-grammar-c": "1.16.1",
|
|
102
111
|
"@plurnk/plurnk-mimetypes-grammar-cpp": "1.16.1",
|
|
@@ -123,27 +132,27 @@
|
|
|
123
132
|
"@plurnk/plurnk-mimetypes-grammar-typescript": "1.16.1",
|
|
124
133
|
"@plurnk/plurnk-mimetypes-grammar-yaml": "1.16.1",
|
|
125
134
|
"@plurnk/plurnk-mimetypes-grammar-zig": "1.16.1",
|
|
126
|
-
"@plurnk/plurnk-mimetypes-application-pdf": "1.
|
|
127
|
-
"@plurnk/plurnk-mimetypes-image": "1.
|
|
128
|
-
"@plurnk/plurnk-mimetypes-
|
|
129
|
-
"@plurnk/plurnk-mimetypes-text-
|
|
130
|
-
"@plurnk/plurnk-mimetypes-text-
|
|
131
|
-
"@plurnk/plurnk-mimetypes-text-
|
|
132
|
-
"@plurnk/plurnk-mimetypes-text-
|
|
133
|
-
"@plurnk/plurnk-mimetypes-text-
|
|
134
|
-
"@plurnk/plurnk-mimetypes-text-
|
|
135
|
-
"@plurnk/plurnk-
|
|
136
|
-
"@plurnk/plurnk-
|
|
137
|
-
"@plurnk/plurnk-
|
|
138
|
-
"@plurnk/plurnk-schemes
|
|
135
|
+
"@plurnk/plurnk-mimetypes-application-pdf": "1.19.0",
|
|
136
|
+
"@plurnk/plurnk-mimetypes-image": "1.19.0",
|
|
137
|
+
"@plurnk/plurnk-mimetypes-audio": "1.19.0",
|
|
138
|
+
"@plurnk/plurnk-mimetypes-text-csv": "1.19.0",
|
|
139
|
+
"@plurnk/plurnk-mimetypes-text-diff": "1.19.0",
|
|
140
|
+
"@plurnk/plurnk-mimetypes-text-dotenv": "1.19.0",
|
|
141
|
+
"@plurnk/plurnk-mimetypes-text-html": "1.19.0",
|
|
142
|
+
"@plurnk/plurnk-mimetypes-text-ini": "1.19.0",
|
|
143
|
+
"@plurnk/plurnk-mimetypes-text-markdown": "1.19.0",
|
|
144
|
+
"@plurnk/plurnk-mimetypes-text-plain": "1.19.0",
|
|
145
|
+
"@plurnk/plurnk-models": "1.19.0",
|
|
146
|
+
"@plurnk/plurnk-providers": "1.19.0",
|
|
147
|
+
"@plurnk/plurnk-schemes": "1.19.0",
|
|
148
|
+
"@plurnk/plurnk-schemes-http": "1.19.0",
|
|
139
149
|
"@plurnk/plurnk-schemes-http-tavily": "^1.8.0",
|
|
140
|
-
"@possumtech/sqlrite": "^6.5.
|
|
150
|
+
"@possumtech/sqlrite": "^6.5.3",
|
|
141
151
|
"diff": "^9.0.0",
|
|
142
152
|
"yaml": "^2.9.0"
|
|
143
153
|
},
|
|
144
154
|
"devDependencies": {
|
|
145
155
|
"@opentelemetry/core": "^2.11.0",
|
|
146
|
-
"@plurnk/plurnk-mimetypes-tokenizers": "1.17.0",
|
|
147
156
|
"@types/diff": "^7.0.2"
|
|
148
157
|
},
|
|
149
158
|
"homepage": "https://github.com/plurnk/plurnk-service/tree/main/plurnk-core#readme",
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { PlurnkSchemeContext } from "./scheme-types.ts";
|
|
2
|
-
export default class PromptFrames {
|
|
3
|
-
static write(ctx: PlurnkSchemeContext, frame: {
|
|
4
|
-
loopSequence: number;
|
|
5
|
-
ordinal: number;
|
|
6
|
-
content: string;
|
|
7
|
-
openPaths: readonly string[];
|
|
8
|
-
source?: string | null;
|
|
9
|
-
pathname?: string | null;
|
|
10
|
-
}): Promise<string>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=PromptFrames.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PromptFrames.d.ts","sourceRoot":"","sources":["../../src/core/PromptFrames.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAM7D,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,OAAa,KAAK,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE;QAChD,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBlB;CACJ"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import EntryCrud from "../schemes/_entry-crud.js";
|
|
2
|
-
import WorkerName from "./WorkerName.js";
|
|
3
|
-
import { promptPathname } from "./plurnk-uri.js";
|
|
4
|
-
import { OperationFailureError } from "./results.js";
|
|
5
|
-
// {§prompt-address}: claim new identities atomically; reuse already-published identities.
|
|
6
|
-
export default class PromptFrames {
|
|
7
|
-
static async write(ctx, frame) {
|
|
8
|
-
const authority = await WorkerName.forId(ctx.db, ctx.workerId);
|
|
9
|
-
const createOnly = frame.pathname == null;
|
|
10
|
-
while (true) {
|
|
11
|
-
const pathname = frame.pathname ?? promptPathname(frame.loopSequence);
|
|
12
|
-
const result = await EntryCrud.writeEntry({ authority, pathname }, {
|
|
13
|
-
channels: { body: { content: frame.content, mimetype: "text/markdown" } },
|
|
14
|
-
attributes: {
|
|
15
|
-
ordinal: frame.ordinal,
|
|
16
|
-
openPaths: frame.openPaths,
|
|
17
|
-
...(frame.source == null ? {} : { source: frame.source }),
|
|
18
|
-
},
|
|
19
|
-
}, ctx, "prompt", { createOnly });
|
|
20
|
-
if (createOnly && result.status === 409)
|
|
21
|
-
continue;
|
|
22
|
-
if (result.status >= 400)
|
|
23
|
-
throw new OperationFailureError(result);
|
|
24
|
-
return pathname;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=PromptFrames.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PromptFrames.js","sourceRoot":"","sources":["../../src/core/PromptFrames.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,2BAA2B,CAAC;AAElD,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,0FAA0F;AAC1F,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAwB,EAAE,KAO5C;QACG,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC;QAC1C,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACtE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;gBAC/D,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE;gBACzE,UAAU,EAAE;oBACR,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;iBAC5D;aACJ,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;YAClC,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG;gBAAE,SAAS;YAClD,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG;gBAAE,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAClE,OAAO,QAAQ,CAAC;QACpB,CAAC;IACL,CAAC;CACJ"}
|
package/dist/schemes/Prompt.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { EntryEditResult, EntryFindResult, ResolvedEditStatement, SchemeCtx, SchemeHandler, SchemeManifest } from "@plurnk/plurnk-schemes";
|
|
2
|
-
import type { FindStatement } from "@plurnk/plurnk-contracts";
|
|
3
|
-
export default class Prompt implements SchemeHandler {
|
|
4
|
-
static manifest: SchemeManifest;
|
|
5
|
-
editBatch(statements: readonly ResolvedEditStatement[], ctx: SchemeCtx): Promise<EntryEditResult>;
|
|
6
|
-
find(statement: FindStatement, ctx: SchemeCtx): Promise<EntryFindResult>;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=Prompt.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import LineAnchors from "../content/line-anchors.js";
|
|
2
|
-
// {§prompt-address}: immutable-to-model task frames at literal workspace addresses.
|
|
3
|
-
export default class Prompt {
|
|
4
|
-
static manifest = {
|
|
5
|
-
name: "prompt",
|
|
6
|
-
authority: "resource",
|
|
7
|
-
channels: { body: "text/markdown" },
|
|
8
|
-
defaultChannel: "body",
|
|
9
|
-
category: "data",
|
|
10
|
-
writableBy: ["client", "_plurnk"],
|
|
11
|
-
volatile: false,
|
|
12
|
-
modelVisible: true,
|
|
13
|
-
folderScopes: true,
|
|
14
|
-
textEditScopes: true,
|
|
15
|
-
};
|
|
16
|
-
// The actionless prompt log row is written separately from its source entry.
|
|
17
|
-
async editBatch(statements, ctx) {
|
|
18
|
-
LineAnchors.assertResolved(statements);
|
|
19
|
-
return ctx.entries.operations.editBatch(statements);
|
|
20
|
-
}
|
|
21
|
-
async find(statement, ctx) {
|
|
22
|
-
return ctx.entries.operations.find(statement);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=Prompt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|