@plurnk/plurnk-service 1.7.0 → 1.9.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 +49 -42
- package/INSTALL.md +48 -11
- package/README.md +12 -2
- package/SPEC.md +1166 -475
- package/digest-sql/channel-dispositions/dispositions.sql +15 -0
- package/digest-sql/channel-state/state.sql +6 -0
- package/digest-sql/curation/curation.sql +5 -0
- package/digest-sql/derivations/derivations.sql +4 -0
- package/digest-sql/embeddings/embeddings.sql +4 -0
- package/digest-sql/entry-dispositions/dispositions.sql +15 -0
- package/digest-sql/entry-state/state.sql +6 -0
- package/digest-sql/token-counts/token-counts.sql +2 -0
- package/dist/Paths.d.ts +0 -4
- package/dist/Paths.d.ts.map +1 -1
- package/dist/Paths.js +1 -21
- package/dist/Paths.js.map +1 -1
- package/dist/build-info.json +1 -1
- package/dist/content/read-projector.d.ts.map +1 -1
- package/dist/content/read-projector.js +4 -3
- package/dist/content/read-projector.js.map +1 -1
- package/dist/core/BudgetReadout.d.ts.map +1 -1
- package/dist/core/BudgetReadout.js +12 -22
- package/dist/core/BudgetReadout.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +8 -3
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +40 -8
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +19 -5
- package/dist/core/CoreSchemeServices.d.ts +7 -3
- package/dist/core/CoreSchemeServices.d.ts.map +1 -1
- package/dist/core/CoreSchemeServices.js +8 -1
- package/dist/core/CoreSchemeServices.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +15 -6
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +352 -306
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Engine.d.ts +22 -10
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +86 -46
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +202 -177
- package/dist/core/EntryAddressBinding.d.ts +32 -0
- package/dist/core/EntryAddressBinding.d.ts.map +1 -0
- package/dist/core/EntryAddressBinding.js +93 -0
- package/dist/core/EntryAddressBinding.js.map +1 -0
- package/dist/core/ExecutorRegistry.d.ts +12 -6
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +34 -31
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/HostPaths.d.ts +29 -0
- package/dist/core/HostPaths.d.ts.map +1 -0
- package/dist/core/HostPaths.js +74 -0
- package/dist/core/HostPaths.js.map +1 -0
- package/dist/core/LegacyHome.d.ts +10 -0
- package/dist/core/LegacyHome.d.ts.map +1 -0
- package/dist/core/LegacyHome.js +170 -0
- package/dist/core/LegacyHome.js.map +1 -0
- package/dist/core/LogBody.d.ts +1 -1
- package/dist/core/LogBody.d.ts.map +1 -1
- package/dist/core/LogBody.js +21 -3
- package/dist/core/LogBody.js.map +1 -1
- package/dist/core/LogEntryProjection.js +1 -1
- package/dist/core/LogEntryProjection.js.map +1 -1
- package/dist/core/LogVisibility.d.ts +28 -0
- package/dist/core/LogVisibility.d.ts.map +1 -0
- package/dist/core/LogVisibility.js +215 -0
- package/dist/core/LogVisibility.js.map +1 -0
- package/dist/core/LoopLifecycle.d.ts +1 -0
- package/dist/core/LoopLifecycle.d.ts.map +1 -1
- package/dist/core/LoopLifecycle.js +8 -0
- package/dist/core/LoopLifecycle.js.map +1 -1
- package/dist/core/LoopLifecycle.sql +10 -0
- package/dist/core/OperatorConfig.d.ts +6 -0
- package/dist/core/OperatorConfig.d.ts.map +1 -0
- package/dist/core/OperatorConfig.js +95 -0
- package/dist/core/OperatorConfig.js.map +1 -0
- package/dist/core/OverflowTurn.d.ts +11 -0
- package/dist/core/OverflowTurn.d.ts.map +1 -0
- package/dist/core/OverflowTurn.js +81 -0
- package/dist/core/OverflowTurn.js.map +1 -0
- package/dist/core/Owner.js +3 -3
- package/dist/core/Owner.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts +7 -15
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +64 -127
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/ProblemLog.js +1 -1
- package/dist/core/ProblemLog.js.map +1 -1
- package/dist/core/ProposalLifecycle.d.ts +4 -1
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +86 -47
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ProviderInstantiate.d.ts +9 -5
- package/dist/core/ProviderInstantiate.d.ts.map +1 -1
- package/dist/core/ProviderInstantiate.js +99 -104
- package/dist/core/ProviderInstantiate.js.map +1 -1
- package/dist/core/ReasoningEvent.d.ts +13 -0
- package/dist/core/ReasoningEvent.d.ts.map +1 -0
- package/dist/core/ReasoningEvent.js +6 -0
- package/dist/core/ReasoningEvent.js.map +1 -0
- package/dist/core/ResourceMutations.d.ts +15 -19
- package/dist/core/ResourceMutations.d.ts.map +1 -1
- package/dist/core/ResourceMutations.js +118 -41
- package/dist/core/ResourceMutations.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts +12 -12
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +58 -57
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/ToolResources.d.ts +19 -0
- package/dist/core/ToolResources.d.ts.map +1 -0
- package/dist/core/ToolResources.js +123 -0
- package/dist/core/ToolResources.js.map +1 -0
- package/dist/core/Turn.d.ts +27 -0
- package/dist/core/Turn.d.ts.map +1 -0
- package/dist/core/Turn.js +43 -0
- package/dist/core/Turn.js.map +1 -0
- package/dist/core/Turn.sql +72 -0
- package/dist/core/TurnOps.d.ts +7 -0
- package/dist/core/TurnOps.d.ts.map +1 -0
- package/dist/core/TurnOps.js +73 -0
- package/dist/core/TurnOps.js.map +1 -0
- package/dist/core/TurnRunner.d.ts +56 -5
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +1163 -929
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/WorkerName.d.ts +2 -1
- package/dist/core/WorkerName.d.ts.map +1 -1
- package/dist/core/WorkerName.js +2 -1
- package/dist/core/WorkerName.js.map +1 -1
- package/dist/core/WorkerName.sql +17 -2
- package/dist/core/WorkspaceGate.js +1 -1
- package/dist/core/WorkspaceGate.js.map +1 -1
- package/dist/core/caps/CapsResolve.d.ts +2 -2
- package/dist/core/caps/CapsResolve.d.ts.map +1 -1
- package/dist/core/caps/CapsResolve.js +5 -7
- 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 +13 -11
- package/dist/core/caps/DbChannelCaps.js.map +1 -1
- package/dist/core/caps/DbEntryCaps.d.ts +5 -5
- package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
- package/dist/core/caps/DbEntryCaps.js +27 -30
- 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 +5 -3
- package/dist/core/caps/DbNotifyCaps.js.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.d.ts +3 -3
- package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.js +16 -26
- package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.d.ts +6 -4
- package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.js +37 -5
- 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 +7 -5
- package/dist/core/env-defaults.js.map +1 -1
- package/dist/core/file-creation-policy.d.ts +9 -0
- package/dist/core/file-creation-policy.d.ts.map +1 -0
- package/dist/core/file-creation-policy.js +25 -0
- package/dist/core/file-creation-policy.js.map +1 -0
- package/dist/core/fork.d.ts +4 -1
- package/dist/core/fork.d.ts.map +1 -1
- package/dist/core/fork.js +39 -16
- package/dist/core/fork.js.map +1 -1
- package/dist/core/fork.sql +83 -40
- package/dist/core/git-env.d.ts +0 -1
- package/dist/core/git-env.d.ts.map +1 -1
- package/dist/core/git-env.js +0 -3
- package/dist/core/git-env.js.map +1 -1
- package/dist/core/git-membership.d.ts +19 -1
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +233 -74
- 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 +13 -14
- package/dist/core/git-state.js.map +1 -1
- package/dist/core/operation-target-groups.d.ts +3 -0
- package/dist/core/operation-target-groups.d.ts.map +1 -0
- package/dist/core/operation-target-groups.js +53 -0
- package/dist/core/operation-target-groups.js.map +1 -0
- package/dist/core/packet-inject.d.ts +0 -1
- package/dist/core/packet-inject.d.ts.map +1 -1
- package/dist/core/packet-inject.js +6 -13
- package/dist/core/packet-inject.js.map +1 -1
- package/dist/core/packet-wire.d.ts +4 -0
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +226 -53
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plurnk-uri.d.ts +14 -3
- package/dist/core/plurnk-uri.d.ts.map +1 -1
- package/dist/core/plurnk-uri.js +62 -24
- package/dist/core/plurnk-uri.js.map +1 -1
- package/dist/core/scheme-types.d.ts +1 -0
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/teaching.d.ts.map +1 -1
- package/dist/core/teaching.js +4 -5
- package/dist/core/teaching.js.map +1 -1
- package/dist/core/worker-ops.sql +10 -6
- package/dist/core/worker-settings.d.ts +10 -0
- package/dist/core/worker-settings.d.ts.map +1 -0
- package/dist/core/worker-settings.js +32 -0
- package/dist/core/worker-settings.js.map +1 -0
- package/dist/core/workspace-settings.d.ts +2 -11
- package/dist/core/workspace-settings.d.ts.map +1 -1
- package/dist/core/workspace-settings.js +7 -47
- package/dist/core/workspace-settings.js.map +1 -1
- package/dist/digest/Digest.d.ts.map +1 -1
- package/dist/digest/Digest.js +164 -92
- package/dist/digest/Digest.js.map +1 -1
- package/dist/digest/digest.sql +9 -3
- package/dist/observe/genai.d.ts +9 -0
- package/dist/observe/genai.d.ts.map +1 -0
- package/dist/observe/genai.js +31 -0
- package/dist/observe/genai.js.map +1 -0
- package/dist/observe/spans.d.ts +3 -3
- package/dist/observe/spans.d.ts.map +1 -1
- package/dist/observe/spans.js +20 -5
- package/dist/observe/spans.js.map +1 -1
- package/dist/schemes/EffectPolicy.d.ts +3 -0
- package/dist/schemes/EffectPolicy.d.ts.map +1 -1
- package/dist/schemes/EffectPolicy.js +38 -6
- package/dist/schemes/EffectPolicy.js.map +1 -1
- package/dist/schemes/Exec.d.ts +3 -2
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +109 -34
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +5 -4
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +170 -80
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts +6 -2
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +73 -22
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +25 -7
- package/dist/schemes/Prompt.d.ts +2 -3
- package/dist/schemes/Prompt.d.ts.map +1 -1
- package/dist/schemes/Prompt.js +5 -9
- package/dist/schemes/Prompt.js.map +1 -1
- package/dist/schemes/QuestionTool.d.ts +10 -0
- package/dist/schemes/QuestionTool.d.ts.map +1 -0
- package/dist/schemes/QuestionTool.js +81 -0
- package/dist/schemes/QuestionTool.js.map +1 -0
- package/dist/schemes/Skill.d.ts.map +1 -1
- package/dist/schemes/Skill.js +6 -1
- package/dist/schemes/Skill.js.map +1 -1
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +97 -34
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts +5 -5
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +22 -17
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +77 -24
- package/dist/schemes/_entry-find.d.ts +8 -5
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +121 -40
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-find.sql +16 -11
- package/dist/schemes/_entry-graph.sql +2 -6
- package/dist/schemes/_entry-manifest.d.ts +2 -2
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +18 -6
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.d.ts +6 -5
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +39 -46
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-ops.sql +9 -6
- package/dist/schemes/_entry-send.d.ts +2 -2
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js +16 -14
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/schemes/_search-index.d.ts.map +1 -1
- package/dist/schemes/_search-index.js +39 -25
- package/dist/schemes/_search-index.js.map +1 -1
- package/dist/server/Daemon.d.ts +98 -15
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +864 -348
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DaemonModule.d.ts +84 -19
- package/dist/server/DaemonModule.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.d.ts +15 -10
- package/dist/server/DrainSupervisor.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.js +70 -19
- package/dist/server/DrainSupervisor.js.map +1 -1
- package/dist/server/Functionality.d.ts +44 -0
- package/dist/server/Functionality.d.ts.map +1 -0
- package/dist/server/Functionality.js +422 -0
- package/dist/server/Functionality.js.map +1 -0
- package/dist/server/FunctionalityManager.d.ts +22 -0
- package/dist/server/FunctionalityManager.d.ts.map +1 -0
- package/dist/server/FunctionalityManager.js +121 -0
- package/dist/server/FunctionalityManager.js.map +1 -0
- package/dist/server/SkillsFunctionality.d.ts +61 -0
- package/dist/server/SkillsFunctionality.d.ts.map +1 -0
- package/dist/server/SkillsFunctionality.js +449 -0
- package/dist/server/SkillsFunctionality.js.map +1 -0
- package/dist/server/WorkerCapabilities.d.ts +21 -0
- package/dist/server/WorkerCapabilities.d.ts.map +1 -0
- package/dist/server/WorkerCapabilities.js +214 -0
- package/dist/server/WorkerCapabilities.js.map +1 -0
- package/dist/server/WorkerResidency.d.ts +40 -0
- package/dist/server/WorkerResidency.d.ts.map +1 -0
- package/dist/server/WorkerResidency.js +283 -0
- package/dist/server/WorkerResidency.js.map +1 -0
- package/dist/server/client-input.d.ts +6 -2
- package/dist/server/client-input.d.ts.map +1 -1
- package/dist/server/client-input.js +72 -32
- package/dist/server/client-input.js.map +1 -1
- package/dist/server/dispatch-as-plurnk.d.ts +2 -2
- package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
- package/dist/server/dispatch-as-plurnk.js +109 -23
- package/dist/server/dispatch-as-plurnk.js.map +1 -1
- package/dist/server/drain.sql +33 -13
- package/dist/server/envelope.d.ts +7 -2
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +12 -6
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +36 -4
- package/dist/server/lifecycle-recovery.sql +24 -17
- package/dist/server/logEntry.d.ts +2 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +3 -2
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/logEntry.sql +7 -0
- package/dist/server/loop-model.d.ts +2 -2
- package/dist/server/loop-model.d.ts.map +1 -1
- package/dist/server/loop-model.js +23 -33
- package/dist/server/loop-model.js.map +1 -1
- package/dist/server/loopDocs.d.ts +2 -1
- package/dist/server/loopDocs.d.ts.map +1 -1
- package/dist/server/loopDocs.js +88 -21
- package/dist/server/loopDocs.js.map +1 -1
- package/dist/server/loopDocs.sql +14 -8
- package/dist/server/model-catalog.d.ts +3 -0
- package/dist/server/model-catalog.d.ts.map +1 -0
- package/dist/server/model-catalog.js +83 -0
- package/dist/server/model-catalog.js.map +1 -0
- package/dist/server/model-route.d.ts +7 -0
- package/dist/server/model-route.d.ts.map +1 -0
- package/dist/server/model-route.js +47 -0
- package/dist/server/model-route.js.map +1 -0
- package/dist/server/module-discovery.d.ts +13 -0
- package/dist/server/module-discovery.d.ts.map +1 -0
- package/dist/server/module-discovery.js +103 -0
- package/dist/server/module-discovery.js.map +1 -0
- package/dist/server/seam-entry-read.sql +9 -7
- package/dist/server/seam-log-read.sql +1 -1
- package/dist/server/seam-loop.sql +10 -1
- package/dist/server/seam-proposal-list.sql +4 -2
- package/dist/server/worker-capabilities.sql +19 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +193 -124
- package/dist/service.js.map +1 -1
- package/migrations/001_schema.sql +905 -196
- package/package.json +40 -38
- package/dist/core/ExecutableTools.d.ts +0 -11
- package/dist/core/ExecutableTools.d.ts.map +0 -1
- package/dist/core/ExecutableTools.js +0 -49
- package/dist/core/ExecutableTools.js.map +0 -1
- package/dist/core/JournalTurn.d.ts +0 -9
- package/dist/core/JournalTurn.d.ts.map +0 -1
- package/dist/core/JournalTurn.js +0 -14
- package/dist/core/JournalTurn.js.map +0 -1
- package/dist/core/JournalTurn.sql +0 -10
- package/dist/core/git-iso.d.ts +0 -13
- package/dist/core/git-iso.d.ts.map +0 -1
- package/dist/core/git-iso.js +0 -267
- package/dist/core/git-iso.js.map +0 -1
- package/dist/core/search-gate.d.ts +0 -17
- package/dist/core/search-gate.d.ts.map +0 -1
- package/dist/core/search-gate.js +0 -77
- package/dist/core/search-gate.js.map +0 -1
- package/dist/digest/Digest.sql +0 -1
- package/dist/server/workspace-capabilities.sql +0 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderInstantiate.js","sourceRoot":"","sources":["../../src/core/ProviderInstantiate.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,wEAAwE;AACxE,uEAAuE;AACvE,uEAAuE;AACvE,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"ProviderInstantiate.js","sourceRoot":"","sources":["../../src/core/ProviderInstantiate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type ReasoningEventPayload = {
|
|
2
|
+
workerId: number;
|
|
3
|
+
loopId: number;
|
|
4
|
+
turnId: number;
|
|
5
|
+
modelCallId: number;
|
|
6
|
+
} & ({
|
|
7
|
+
phase: "start" | "end";
|
|
8
|
+
} | {
|
|
9
|
+
phase: "content";
|
|
10
|
+
delta: string;
|
|
11
|
+
});
|
|
12
|
+
export type ReasoningEventNotify = (workspaceId: number, event: ReasoningEventPayload) => void;
|
|
13
|
+
//# sourceMappingURL=ReasoningEvent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReasoningEvent.d.ts","sourceRoot":"","sources":["../../src/core/ReasoningEvent.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACvB,GAAG,CACE;IAAE,KAAK,EAAE,OAAO,GAAG,KAAK,CAAA;CAAE,GAC1B;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACxC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAC/B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,qBAAqB,KAC3B,IAAI,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// {§notifications-reasoning-event} Transient readable-reasoning delivery to
|
|
2
|
+
// workspace-scoped presentation consumers. The provider response remains the
|
|
3
|
+
// durable authority; these events expose its live arrival without creating
|
|
4
|
+
// another stored representation.
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=ReasoningEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReasoningEvent.js","sourceRoot":"","sources":["../../src/core/ReasoningEvent.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,iCAAiC"}
|
|
@@ -1,26 +1,21 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { type
|
|
1
|
+
import { type CopyStatement, type EditStatement, type MoveStatement, type ParsedPath, type PlurnkStatement } from "@plurnk/plurnk-contracts";
|
|
2
|
+
import { type SchemeHandler, type SchemeResult } from "@plurnk/plurnk-schemes";
|
|
3
3
|
import type SchemeRegistry from "./SchemeRegistry.ts";
|
|
4
4
|
import type LiveSubscriptions from "./LiveSubscriptions.ts";
|
|
5
5
|
import type ProposalLifecycle from "./ProposalLifecycle.ts";
|
|
6
6
|
import type { ProposalSettlement } from "./ProposalLifecycle.ts";
|
|
7
7
|
import type { EntryData, ReadEntryResult, WriteEntryResult, DeleteEntryResult } from "../schemes/_entry-crud.ts";
|
|
8
8
|
import type { SchemeManifest, WriterTier, PlurnkSchemeContext } from "./scheme-types.ts";
|
|
9
|
+
import type EntryAddressBinding from "./EntryAddressBinding.ts";
|
|
10
|
+
import type { BoundEntryAddress, EntryAddressResolution } from "./EntryAddressBinding.ts";
|
|
9
11
|
type DispatchResult = SchemeResult;
|
|
10
12
|
type EditPreparationContext = {
|
|
11
13
|
readonly workspaceId: number;
|
|
14
|
+
readonly workerId: number;
|
|
12
15
|
readonly loopId: number;
|
|
13
16
|
readonly origin: WriterTier;
|
|
14
17
|
};
|
|
15
|
-
type
|
|
16
|
-
readonly ownerId: number;
|
|
17
|
-
readonly scheme: string;
|
|
18
|
-
readonly pathname: string;
|
|
19
|
-
};
|
|
20
|
-
type PreparedRepresentation = {
|
|
21
|
-
readonly address: ResolvedDataEntryAddress | null;
|
|
22
|
-
readonly result: DispatchResult | null;
|
|
23
|
-
};
|
|
18
|
+
type PreparedRepresentation = EntryAddressResolution;
|
|
24
19
|
type RunOperation = (schemeName: string | null, statement: PlurnkStatement, ctx: PlurnkSchemeContext) => Promise<DispatchResult>;
|
|
25
20
|
type PrepareDataRepresentation = (args: {
|
|
26
21
|
target: ParsedPath;
|
|
@@ -28,32 +23,33 @@ type PrepareDataRepresentation = (args: {
|
|
|
28
23
|
handler: SchemeHandler;
|
|
29
24
|
manifest: SchemeManifest;
|
|
30
25
|
ctx: PlurnkSchemeContext;
|
|
31
|
-
schemeCtx: SchemeCtx;
|
|
32
26
|
publishedChannel: string | null;
|
|
33
27
|
}) => Promise<PreparedRepresentation>;
|
|
34
28
|
type ProposalIds = {
|
|
35
29
|
workspaceId: number;
|
|
36
30
|
workerId: number;
|
|
31
|
+
functionalityWorkerId: number;
|
|
37
32
|
loopId: number;
|
|
38
33
|
turnId: number;
|
|
39
34
|
};
|
|
40
35
|
export default class ResourceMutations {
|
|
41
36
|
#private;
|
|
42
|
-
constructor({ schemes, liveSubscriptions, run, checkWritable, checkFlagsGate, editTargetIdentity, canonicalFilePath, prepareDataRepresentation, readEntry, writeEntry, deleteChannel, applyProposal, }: {
|
|
37
|
+
constructor({ schemes, liveSubscriptions, run, checkWritable, checkFlagsGate, editTargetIdentity, canonicalFilePath, prepareDataRepresentation, resolveDataEntryAddress, readEntry, writeEntry, deleteChannel, applyProposal, }: {
|
|
43
38
|
schemes: SchemeRegistry;
|
|
44
39
|
liveSubscriptions: LiveSubscriptions;
|
|
45
40
|
run: RunOperation;
|
|
46
|
-
checkWritable: (statement: PlurnkStatement, origin: WriterTier,
|
|
47
|
-
checkFlagsGate: (statement: PlurnkStatement, loopId: number,
|
|
48
|
-
editTargetIdentity: (statement: EditStatement, workspaceId: number) => Promise<{
|
|
41
|
+
checkWritable: (statement: PlurnkStatement, origin: WriterTier, workerId: number) => DispatchResult | null;
|
|
42
|
+
checkFlagsGate: (statement: PlurnkStatement, loopId: number, workerId: number) => Promise<DispatchResult | null>;
|
|
43
|
+
editTargetIdentity: (statement: EditStatement, workspaceId: number, workerId: number) => Promise<{
|
|
49
44
|
readonly key: string;
|
|
50
45
|
readonly identity: string | null;
|
|
51
46
|
}>;
|
|
52
47
|
canonicalFilePath: (pathname: string, workspaceId: number) => Promise<string | null>;
|
|
53
48
|
prepareDataRepresentation: PrepareDataRepresentation;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
resolveDataEntryAddress: EntryAddressBinding["resolve"];
|
|
50
|
+
readEntry: (scheme: string, address: BoundEntryAddress, ctx: PlurnkSchemeContext) => Promise<ReadEntryResult>;
|
|
51
|
+
writeEntry: (scheme: string, address: BoundEntryAddress, entry: EntryData, ctx: PlurnkSchemeContext) => Promise<WriteEntryResult>;
|
|
52
|
+
deleteChannel: (scheme: string, address: BoundEntryAddress, channel: string, ctx: PlurnkSchemeContext) => Promise<DeleteEntryResult>;
|
|
57
53
|
applyProposal: ProposalLifecycle["workerApply"];
|
|
58
54
|
});
|
|
59
55
|
prepareEditBatches(statements: readonly EditStatement[], context: EditPreparationContext, schemeCtx: PlurnkSchemeContext): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceMutations.d.ts","sourceRoot":"","sources":["../../src/core/ResourceMutations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ResourceMutations.d.ts","sourceRoot":"","sources":["../../src/core/ResourceMutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
var _a;
|
|
2
|
+
import { PathSyntax, } from "@plurnk/plurnk-contracts";
|
|
2
3
|
import { InvalidOperationResultError, } from "@plurnk/plurnk-schemes";
|
|
3
|
-
import {
|
|
4
|
+
import { entryCoordinateOf, renderAddress, renderTarget, schemeNameOf } from "./plurnk-uri.js";
|
|
4
5
|
import { assertEditBatchReceipt, assertEditReceipt, assertResourceEffects, EditCollision, editReceipt, LineAnchors, LineMarkerOps, MimetypeBinary, PathMimetype, projectEditReceipt, } from "../content/index.js";
|
|
5
6
|
import DbProjectionCaps from "./caps/DbProjectionCaps.js";
|
|
6
7
|
import SchemeCtxImpl from "./caps/SchemeCtxImpl.js";
|
|
7
8
|
import EntryCrud from "../schemes/_entry-crud.js";
|
|
8
9
|
import Results from "./results.js";
|
|
9
10
|
// Owns EDIT batch state and COPY/MOVE resource mutation composition.
|
|
10
|
-
// Dispatcher retains admission, generic scheme routing, proposal lifecycle, and
|
|
11
|
+
// Dispatcher retains admission, generic scheme routing, proposal lifecycle, and durable operation recording.
|
|
11
12
|
class ResourceMutations {
|
|
12
13
|
static #failure(code, status, detail, fields = {}, extensions = {}) {
|
|
13
14
|
return Results.failure("engine:dispatcher", code, status, detail, fields, extensions);
|
|
@@ -20,12 +21,13 @@ class ResourceMutations {
|
|
|
20
21
|
#editTargetIdentity;
|
|
21
22
|
#canonicalFilePath;
|
|
22
23
|
#prepareDataRepresentation;
|
|
24
|
+
#resolveDataEntryAddress;
|
|
23
25
|
#readEntry;
|
|
24
26
|
#writeEntry;
|
|
25
27
|
#deleteChannel;
|
|
26
28
|
#applyProposal;
|
|
27
29
|
#preparedEdits = new WeakMap();
|
|
28
|
-
constructor({ schemes, liveSubscriptions, run, checkWritable, checkFlagsGate, editTargetIdentity, canonicalFilePath, prepareDataRepresentation, readEntry, writeEntry, deleteChannel, applyProposal, }) {
|
|
30
|
+
constructor({ schemes, liveSubscriptions, run, checkWritable, checkFlagsGate, editTargetIdentity, canonicalFilePath, prepareDataRepresentation, resolveDataEntryAddress, readEntry, writeEntry, deleteChannel, applyProposal, }) {
|
|
29
31
|
this.#schemes = schemes;
|
|
30
32
|
this.#liveSubscriptions = liveSubscriptions;
|
|
31
33
|
this.#run = run;
|
|
@@ -34,6 +36,7 @@ class ResourceMutations {
|
|
|
34
36
|
this.#editTargetIdentity = editTargetIdentity;
|
|
35
37
|
this.#canonicalFilePath = canonicalFilePath;
|
|
36
38
|
this.#prepareDataRepresentation = prepareDataRepresentation;
|
|
39
|
+
this.#resolveDataEntryAddress = resolveDataEntryAddress;
|
|
37
40
|
this.#readEntry = readEntry;
|
|
38
41
|
this.#writeEntry = writeEntry;
|
|
39
42
|
this.#deleteChannel = deleteChannel;
|
|
@@ -64,7 +67,8 @@ class ResourceMutations {
|
|
|
64
67
|
return { statements: [], precondition: null };
|
|
65
68
|
const current = await this.#run(schemeName, {
|
|
66
69
|
op: "READ",
|
|
67
|
-
|
|
70
|
+
delimiter: first.delimiter,
|
|
71
|
+
annotation: null,
|
|
68
72
|
signal: null,
|
|
69
73
|
target: first.target,
|
|
70
74
|
lineMarker: { marks: [1, -1] },
|
|
@@ -143,9 +147,10 @@ class ResourceMutations {
|
|
|
143
147
|
}
|
|
144
148
|
async prepareEditBatches(statements, context, schemeCtx) {
|
|
145
149
|
const { workspaceId, loopId, origin } = context;
|
|
150
|
+
const ctx = schemeCtx;
|
|
146
151
|
const groups = new Map();
|
|
147
152
|
for (const statement of statements) {
|
|
148
|
-
const { key, identity } = await this.#editTargetIdentity(statement, workspaceId);
|
|
153
|
+
const { key, identity } = await this.#editTargetIdentity(statement, workspaceId, ctx.functionalityWorkerId);
|
|
149
154
|
const group = groups.get(key);
|
|
150
155
|
if (group === undefined)
|
|
151
156
|
groups.set(key, {
|
|
@@ -160,10 +165,10 @@ class ResourceMutations {
|
|
|
160
165
|
const first = group[0];
|
|
161
166
|
const schemeName = schemeNameOf(first.target);
|
|
162
167
|
let initial;
|
|
163
|
-
let denial = group.map((statement) => this.#checkWritable(statement, origin,
|
|
168
|
+
let denial = group.map((statement) => this.#checkWritable(statement, origin, ctx.functionalityWorkerId)).find((result) => result !== null) ?? null;
|
|
164
169
|
if (denial === null) {
|
|
165
170
|
for (const statement of group) {
|
|
166
|
-
denial = await this.#checkFlagsGate(statement, loopId,
|
|
171
|
+
denial = await this.#checkFlagsGate(statement, loopId, ctx.functionalityWorkerId);
|
|
167
172
|
if (denial !== null)
|
|
168
173
|
break;
|
|
169
174
|
}
|
|
@@ -175,10 +180,10 @@ class ResourceMutations {
|
|
|
175
180
|
initial = _a.#failure("target-required", 400, "EDIT requires a target scheme.", {}, { retryable: false });
|
|
176
181
|
}
|
|
177
182
|
else {
|
|
178
|
-
const handler = this.#schemes.get(schemeName,
|
|
183
|
+
const handler = this.#schemes.get(schemeName, ctx.functionalityWorkerId);
|
|
179
184
|
const method = handler?.editBatch;
|
|
180
|
-
const manifest = this.#schemes.manifestFor(schemeName,
|
|
181
|
-
if (typeof method !== "function" || manifest
|
|
185
|
+
const manifest = this.#schemes.manifestFor(schemeName, ctx.functionalityWorkerId);
|
|
186
|
+
if (handler === undefined || typeof method !== "function" || manifest?.category !== "data") {
|
|
182
187
|
initial = _a.#failure("operation-not-implemented", 501, `Scheme '${schemeName}' does not implement EDIT batches.`, {}, {
|
|
183
188
|
scheme: schemeName,
|
|
184
189
|
operation: "EDIT",
|
|
@@ -196,10 +201,30 @@ class ResourceMutations {
|
|
|
196
201
|
const publishedChannel = first.target?.kind === "url"
|
|
197
202
|
? first.target.fragment ?? manifest.defaultChannel
|
|
198
203
|
: manifest.defaultChannel;
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
204
|
+
if (first.target === null) {
|
|
205
|
+
throw new InvalidOperationResultError("An EDIT batch has no target.");
|
|
206
|
+
}
|
|
207
|
+
const binding = await this.#resolveDataEntryAddress({
|
|
208
|
+
target: first.target,
|
|
209
|
+
routedScheme: schemeName,
|
|
210
|
+
handler,
|
|
211
|
+
manifest,
|
|
212
|
+
ctx: schemeCtx,
|
|
213
|
+
});
|
|
214
|
+
if (binding.result !== null) {
|
|
215
|
+
initial = binding.result;
|
|
216
|
+
}
|
|
217
|
+
else if (binding.address === null) {
|
|
218
|
+
initial = _a.#failure("entry-not-found", 404, "The EDIT target could not be resolved.");
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
initial = Results.assert(await method.call(handler, resolved.statements, new SchemeCtxImpl(schemeCtx, addressedScheme ?? schemeName, manifest, this.#liveSubscriptions, {
|
|
222
|
+
authority: binding.address.authority,
|
|
223
|
+
ownerId: binding.address.ownerId,
|
|
224
|
+
publishedChannel,
|
|
225
|
+
editPrecondition: resolved.precondition,
|
|
226
|
+
})));
|
|
227
|
+
}
|
|
203
228
|
}
|
|
204
229
|
}
|
|
205
230
|
catch (err) {
|
|
@@ -341,8 +366,8 @@ class ResourceMutations {
|
|
|
341
366
|
retryable: false,
|
|
342
367
|
});
|
|
343
368
|
}
|
|
344
|
-
const handler = this.#schemes.get(scheme, ctx.
|
|
345
|
-
const manifest = this.#schemes.manifestFor(scheme, ctx.
|
|
369
|
+
const handler = this.#schemes.get(scheme, ctx.functionalityWorkerId);
|
|
370
|
+
const manifest = this.#schemes.manifestFor(scheme, ctx.functionalityWorkerId);
|
|
346
371
|
if (handler === undefined || manifest === undefined) {
|
|
347
372
|
return _a.#failure("scheme-not-found", 501, `COPY or MOVE addressed the unregistered scheme '${scheme}'.`, {}, {
|
|
348
373
|
scheme,
|
|
@@ -377,7 +402,8 @@ class ResourceMutations {
|
|
|
377
402
|
retryable: false,
|
|
378
403
|
});
|
|
379
404
|
}
|
|
380
|
-
const
|
|
405
|
+
const coordinate = entryCoordinateOf(target, manifest.authority ?? "namespace");
|
|
406
|
+
const { authority, pathname } = coordinate;
|
|
381
407
|
const canonicalFilePath = scheme === "file"
|
|
382
408
|
? await this.#canonicalFilePath(pathname, ctx.workspaceId)
|
|
383
409
|
: pathname;
|
|
@@ -385,6 +411,7 @@ class ResourceMutations {
|
|
|
385
411
|
target,
|
|
386
412
|
lineMarker,
|
|
387
413
|
scheme,
|
|
414
|
+
authority,
|
|
388
415
|
pathname,
|
|
389
416
|
identityPathname: canonicalFilePath ?? pathname,
|
|
390
417
|
channel,
|
|
@@ -442,21 +469,16 @@ class ResourceMutations {
|
|
|
442
469
|
};
|
|
443
470
|
}
|
|
444
471
|
async #selectSource(selection, ctx, operation) {
|
|
445
|
-
const handler = this.#schemes.get(selection.scheme, ctx.
|
|
472
|
+
const handler = this.#schemes.get(selection.scheme, ctx.functionalityWorkerId);
|
|
446
473
|
if (handler === undefined) {
|
|
447
474
|
throw new InvalidOperationResultError(`Resolved COPY/MOVE source scheme '${selection.scheme}' is no longer registered.`);
|
|
448
475
|
}
|
|
449
|
-
const addressedScheme = selection.target.kind === "url"
|
|
450
|
-
? selection.target.scheme
|
|
451
|
-
: selection.scheme;
|
|
452
|
-
const schemeCtx = new SchemeCtxImpl(ctx, addressedScheme, selection.manifest, this.#liveSubscriptions, { publishedChannel: selection.channel });
|
|
453
476
|
const prepared = await this.#prepareDataRepresentation({
|
|
454
477
|
target: selection.target,
|
|
455
478
|
routedScheme: selection.scheme,
|
|
456
479
|
handler,
|
|
457
480
|
manifest: selection.manifest,
|
|
458
481
|
ctx,
|
|
459
|
-
schemeCtx,
|
|
460
482
|
publishedChannel: selection.channel,
|
|
461
483
|
});
|
|
462
484
|
if (prepared.result !== null)
|
|
@@ -465,7 +487,7 @@ class ResourceMutations {
|
|
|
465
487
|
return _a.#failure("entry-not-found", 404, `No entry exists at ${this.#resourceAddress(selection)}.`, {}, { target: this.#resourceAddress(selection) });
|
|
466
488
|
}
|
|
467
489
|
const storageAddress = prepared.address;
|
|
468
|
-
const read = await EntryCrud.readEntry(storageAddress
|
|
490
|
+
const read = await EntryCrud.readEntry(storageAddress, ctx, storageAddress.scheme, storageAddress.ownerId);
|
|
469
491
|
if (read.status >= 400)
|
|
470
492
|
return read;
|
|
471
493
|
if (read.status !== 200 || read.entry === null) {
|
|
@@ -473,8 +495,8 @@ class ResourceMutations {
|
|
|
473
495
|
}
|
|
474
496
|
const selected = read.entry.channels[selection.channel];
|
|
475
497
|
if (selected === undefined) {
|
|
476
|
-
return _a.#failure("channel-not-found", 404, `No channel named #${selection.channel} exists at ${renderAddress(storageAddress
|
|
477
|
-
target: renderAddress(storageAddress
|
|
498
|
+
return _a.#failure("channel-not-found", 404, `No channel named #${selection.channel} exists at ${renderAddress(storageAddress)}.`, {}, {
|
|
499
|
+
target: renderAddress(storageAddress),
|
|
478
500
|
requestedChannel: selection.channel,
|
|
479
501
|
availableChannels: Object.keys(read.entry.channels),
|
|
480
502
|
retryable: false,
|
|
@@ -537,18 +559,21 @@ class ResourceMutations {
|
|
|
537
559
|
return { identity, checks };
|
|
538
560
|
}
|
|
539
561
|
#resourceAddress(selection) {
|
|
540
|
-
const address =
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
: selection.
|
|
548
|
-
|
|
562
|
+
const address = selection.scheme === "file"
|
|
563
|
+
? renderTarget({
|
|
564
|
+
scheme: null,
|
|
565
|
+
pathname: selection.identityPathname.replace(/^\//, ""),
|
|
566
|
+
})
|
|
567
|
+
: renderAddress({
|
|
568
|
+
scheme: selection.scheme,
|
|
569
|
+
authority: selection.authority,
|
|
570
|
+
pathname: selection.identityPathname,
|
|
571
|
+
});
|
|
549
572
|
if (address === null)
|
|
550
573
|
throw new Error("resolved resource selection has no renderable address");
|
|
551
|
-
return
|
|
574
|
+
return selection.channel === selection.manifest.defaultChannel
|
|
575
|
+
? address
|
|
576
|
+
: `${address}#${PathSyntax.escapeTarget(selection.channel)}`;
|
|
552
577
|
}
|
|
553
578
|
#pendingEffect(selection, action) {
|
|
554
579
|
return {
|
|
@@ -737,6 +762,7 @@ class ResourceMutations {
|
|
|
737
762
|
}
|
|
738
763
|
#sameChannel(left, right) {
|
|
739
764
|
return left.scheme === right.scheme
|
|
765
|
+
&& left.authority === right.authority
|
|
740
766
|
&& left.identityPathname === right.identityPathname
|
|
741
767
|
&& left.channel === right.channel;
|
|
742
768
|
}
|
|
@@ -750,13 +776,14 @@ class ResourceMutations {
|
|
|
750
776
|
proposalScheme: selection.scheme,
|
|
751
777
|
proposalTarget: {
|
|
752
778
|
scheme: selection.scheme,
|
|
779
|
+
authority: selection.authority,
|
|
753
780
|
pathname: selection.identityPathname,
|
|
754
781
|
},
|
|
755
782
|
},
|
|
756
783
|
};
|
|
757
784
|
}
|
|
758
785
|
async #invokeEditBatch(selection, edits, ctx, precondition = null) {
|
|
759
|
-
const handler = this.#schemes.get(selection.scheme, ctx.
|
|
786
|
+
const handler = this.#schemes.get(selection.scheme, ctx.functionalityWorkerId);
|
|
760
787
|
if (typeof handler?.editBatch !== "function") {
|
|
761
788
|
return _a.#failure("operation-not-implemented", 501, `Scheme '${selection.scheme}' does not implement EDIT batches.`, {}, {
|
|
762
789
|
scheme: selection.scheme,
|
|
@@ -766,7 +793,8 @@ class ResourceMutations {
|
|
|
766
793
|
}
|
|
767
794
|
const statements = edits.map(({ marker, body, position }) => ({
|
|
768
795
|
op: "EDIT",
|
|
769
|
-
|
|
796
|
+
delimiter: "",
|
|
797
|
+
annotation: null,
|
|
770
798
|
signal: null,
|
|
771
799
|
target: selection.target,
|
|
772
800
|
lineMarker: marker,
|
|
@@ -777,7 +805,21 @@ class ResourceMutations {
|
|
|
777
805
|
? selection.target.scheme
|
|
778
806
|
: selection.scheme;
|
|
779
807
|
try {
|
|
808
|
+
const binding = await this.#resolveDataEntryAddress({
|
|
809
|
+
target: selection.target,
|
|
810
|
+
routedScheme: selection.scheme,
|
|
811
|
+
handler,
|
|
812
|
+
manifest: selection.manifest,
|
|
813
|
+
ctx,
|
|
814
|
+
});
|
|
815
|
+
if (binding.result !== null)
|
|
816
|
+
return binding.result;
|
|
817
|
+
if (binding.address === null) {
|
|
818
|
+
return _a.#failure("entry-not-found", 404, `No entry exists at ${this.#resourceAddress(selection)}.`);
|
|
819
|
+
}
|
|
780
820
|
const result = Results.assert(await handler.editBatch(statements, new SchemeCtxImpl(ctx, addressedScheme, selection.manifest, this.#liveSubscriptions, {
|
|
821
|
+
authority: binding.address.authority,
|
|
822
|
+
ownerId: binding.address.ownerId,
|
|
781
823
|
publishedChannel: selection.channel,
|
|
782
824
|
editPrecondition: precondition,
|
|
783
825
|
})));
|
|
@@ -795,7 +837,24 @@ class ResourceMutations {
|
|
|
795
837
|
}
|
|
796
838
|
}
|
|
797
839
|
async #writeDestination(statement, source, destination, ctx) {
|
|
798
|
-
const
|
|
840
|
+
const handler = this.#schemes.get(destination.scheme, ctx.functionalityWorkerId);
|
|
841
|
+
if (handler === undefined) {
|
|
842
|
+
throw new InvalidOperationResultError(`Resolved COPY/MOVE destination scheme '${destination.scheme}' is no longer registered.`);
|
|
843
|
+
}
|
|
844
|
+
const binding = await this.#resolveDataEntryAddress({
|
|
845
|
+
target: destination.target,
|
|
846
|
+
routedScheme: destination.scheme,
|
|
847
|
+
handler,
|
|
848
|
+
manifest: destination.manifest,
|
|
849
|
+
ctx,
|
|
850
|
+
});
|
|
851
|
+
if (binding.result !== null)
|
|
852
|
+
return binding.result;
|
|
853
|
+
if (binding.address === null) {
|
|
854
|
+
return _a.#failure("entry-not-found", 404, `No destination entry address exists at ${this.#resourceAddress(destination)}.`);
|
|
855
|
+
}
|
|
856
|
+
const storageAddress = binding.address;
|
|
857
|
+
const existingResult = await this.#readEntry(destination.scheme, storageAddress, ctx);
|
|
799
858
|
if (existingResult.status >= 400 && existingResult.status !== 404) {
|
|
800
859
|
return existingResult;
|
|
801
860
|
}
|
|
@@ -857,7 +916,7 @@ class ResourceMutations {
|
|
|
857
916
|
mimetype: source.mimetype,
|
|
858
917
|
},
|
|
859
918
|
};
|
|
860
|
-
const written = await this.#writeEntry(destination.scheme,
|
|
919
|
+
const written = await this.#writeEntry(destination.scheme, storageAddress, { channels }, ctx);
|
|
861
920
|
const exactWritten = Results.assert(written);
|
|
862
921
|
const parseIssues = exactWritten.status === 200 || exactWritten.status === 201
|
|
863
922
|
? await new DbProjectionCaps(ctx).parseIssues(source.content, source.mimetype)
|
|
@@ -889,6 +948,7 @@ class ResourceMutations {
|
|
|
889
948
|
target: source.target,
|
|
890
949
|
lineMarker: source.lineMarker,
|
|
891
950
|
scheme: source.scheme,
|
|
951
|
+
authority: source.authority,
|
|
892
952
|
pathname: source.pathname,
|
|
893
953
|
channel: source.channel,
|
|
894
954
|
destination: this.#resourceAddress(destination),
|
|
@@ -917,7 +977,23 @@ class ResourceMutations {
|
|
|
917
977
|
async #removeMoveSource(statement, source, ctx, lineAnchorPrecondition = null) {
|
|
918
978
|
const effect = this.#pendingEffect(source, source.lineMarker === null ? "delete" : "update");
|
|
919
979
|
if (source.lineMarker === null) {
|
|
920
|
-
const
|
|
980
|
+
const handler = this.#schemes.get(source.scheme, ctx.functionalityWorkerId);
|
|
981
|
+
if (handler === undefined) {
|
|
982
|
+
throw new InvalidOperationResultError(`Resolved MOVE source scheme '${source.scheme}' is no longer registered.`);
|
|
983
|
+
}
|
|
984
|
+
const binding = await this.#resolveDataEntryAddress({
|
|
985
|
+
target: source.target,
|
|
986
|
+
routedScheme: source.scheme,
|
|
987
|
+
handler,
|
|
988
|
+
manifest: source.manifest,
|
|
989
|
+
ctx,
|
|
990
|
+
});
|
|
991
|
+
if (binding.result !== null)
|
|
992
|
+
return binding.result;
|
|
993
|
+
if (binding.address === null) {
|
|
994
|
+
return _a.#failure("entry-not-found", 404, `No MOVE source entry exists at ${this.#resourceAddress(source)}.`);
|
|
995
|
+
}
|
|
996
|
+
const deleted = await this.#deleteChannel(source.scheme, binding.address, source.channel, ctx);
|
|
921
997
|
return this.#finalizeEffects(Results.assert(deleted), source, [effect]);
|
|
922
998
|
}
|
|
923
999
|
const edited = await this.#invokeEditBatch(source, [{
|
|
@@ -1082,6 +1158,7 @@ class ResourceMutations {
|
|
|
1082
1158
|
};
|
|
1083
1159
|
}
|
|
1084
1160
|
if (resolvedSource.scheme !== deferred.scheme
|
|
1161
|
+
|| resolvedSource.authority !== deferred.authority
|
|
1085
1162
|
|| resolvedSource.pathname !== deferred.pathname
|
|
1086
1163
|
|| resolvedSource.channel !== deferred.channel) {
|
|
1087
1164
|
throw new InvalidOperationResultError("A deferred MOVE source no longer resolves to its recorded identity.");
|