@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
|
@@ -5,20 +5,21 @@
|
|
|
5
5
|
-- per plurnk.md "Pattern Filtering" it runs against entry CONTENT, which
|
|
6
6
|
-- needs the mimetypes plugin (xpath/jsonpath/regex/glob over structured
|
|
7
7
|
-- content) — so the body match runs in JS (Matcher.matchAgainstContent) over
|
|
8
|
-
-- the
|
|
8
|
+
-- the selected-channel content this query returns. Static query handles every
|
|
9
9
|
-- filter combination via IS-NULL guards.
|
|
10
10
|
|
|
11
11
|
-- PREP: find_workspace_entry_candidates
|
|
12
|
-
-- $channel:
|
|
12
|
+
-- $channel: addressed channel whose content the body matcher runs against
|
|
13
13
|
-- $scope_prefix: the literal pathname prefix before any glob syntax, or NULL
|
|
14
14
|
-- for no prefix. TypeScript applies the authoritative shell-glob match; this
|
|
15
15
|
-- query supplies only a safe candidate superset.
|
|
16
|
-
SELECT e.id AS entry_id, e.
|
|
16
|
+
SELECT e.id AS entry_id, e.authority, e.pathname, ec.deep_hash, ec.content, ec.mimetype
|
|
17
17
|
FROM entries e
|
|
18
18
|
JOIN entry_channels ec ON ec.entry_id = e.id AND ec.name = $channel
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
JOIN workers owner ON owner.id = e.owner_id
|
|
20
|
+
WHERE owner.workspace_id = $workspace_id AND e.owner_id = $owner_id
|
|
21
21
|
AND e.scheme = $scheme
|
|
22
|
+
AND e.authority = $authority
|
|
22
23
|
AND ($scope_prefix IS NULL OR substr(e.pathname, 1, length($scope_prefix)) = $scope_prefix)
|
|
23
24
|
ORDER BY e.pathname;
|
|
24
25
|
|
|
@@ -26,11 +27,13 @@ ORDER BY e.pathname;
|
|
|
26
27
|
-- Relation matchers need the same target candidate set without loading every
|
|
27
28
|
-- candidate body across the SQL boundary. The ranker joins these identities to
|
|
28
29
|
-- derivations and performs exhaustive ranking within the selected set.
|
|
29
|
-
SELECT e.id AS entry_id, e.
|
|
30
|
+
SELECT e.id AS entry_id, e.authority, e.pathname, ec.deep_hash
|
|
30
31
|
FROM entries e
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
JOIN entry_channels ec ON ec.entry_id = e.id AND ec.name = $channel
|
|
33
|
+
JOIN workers owner ON owner.id = e.owner_id
|
|
34
|
+
WHERE owner.workspace_id = $workspace_id AND e.owner_id = $owner_id
|
|
33
35
|
AND e.scheme = $scheme
|
|
36
|
+
AND e.authority = $authority
|
|
34
37
|
AND ($scope_prefix IS NULL OR substr(e.pathname, 1, length($scope_prefix)) = $scope_prefix)
|
|
35
38
|
ORDER BY e.pathname;
|
|
36
39
|
|
|
@@ -39,7 +42,9 @@ ORDER BY e.pathname;
|
|
|
39
42
|
-- workspace, while the caller's target/tag candidate set still constrains
|
|
40
43
|
-- which addresses may be returned. Only the universal address→artifact pair
|
|
41
44
|
-- crosses this boundary.
|
|
42
|
-
SELECT (e.scheme || ':' || e.id) AS key,
|
|
45
|
+
SELECT (e.scheme || ':' || e.id || '#' || ec.name) AS key, ec.deep_hash
|
|
43
46
|
FROM entries e
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
JOIN entry_channels ec ON ec.entry_id = e.id
|
|
48
|
+
JOIN workers owner ON owner.id = e.owner_id
|
|
49
|
+
WHERE owner.workspace_id = $workspace_id
|
|
50
|
+
ORDER BY e.id, ec.name;
|
|
@@ -44,7 +44,8 @@ RETURNING id, state;
|
|
|
44
44
|
|
|
45
45
|
-- PREP: derivation_complete
|
|
46
46
|
UPDATE derivations
|
|
47
|
-
SET state = 'complete', disposition = $disposition, reason = $reason,
|
|
47
|
+
SET state = 'complete', disposition = $disposition, reason = $reason,
|
|
48
|
+
parse_issues = $parse_issues, summary = $summary
|
|
48
49
|
WHERE id = $derivation_id;
|
|
49
50
|
|
|
50
51
|
-- PREP: graph_referrers_candidates
|
|
@@ -96,8 +97,3 @@ WHERE d.name = $name;
|
|
|
96
97
|
-- {§graph-relations}
|
|
97
98
|
SELECT DISTINCT name FROM symbol_refs
|
|
98
99
|
WHERE derivation_id = $derivation_id AND container IS $container;
|
|
99
|
-
|
|
100
|
-
-- PREP: graph_set_deep_hash
|
|
101
|
-
-- Stamp the body-content hash at the moment an entry's deep channels were
|
|
102
|
-
-- (re)derived. The next manifest-add pass skips the entry while the hash holds.
|
|
103
|
-
UPDATE entries SET deep_hash = $deep_hash WHERE id = $entry_id;
|
|
@@ -5,7 +5,7 @@ export type CatalogChannel = EntryCatalogChannel;
|
|
|
5
5
|
export type CatalogDefaultChannel = EntryCatalogDefaultChannel;
|
|
6
6
|
export type CatalogEntry = [CatalogDefaultChannel, ...CatalogChannel[]];
|
|
7
7
|
export default class EntryManifest {
|
|
8
|
-
static toPath(scheme: string, pathname: string): string;
|
|
9
|
-
static catalogRowsFor(ctx: PlurnkSchemeContext, schemeFilter?: string, ownerId?: number): Promise<CatalogEntry[]>;
|
|
8
|
+
static toPath(scheme: string, authority: string, pathname: string): string;
|
|
9
|
+
static catalogRowsFor(ctx: PlurnkSchemeContext, schemeFilter?: string, ownerId?: number, authorityFilter?: string): Promise<CatalogEntry[]>;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=_entry-manifest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-manifest.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,KAAK,EACR,mBAAmB,EACnB,0BAA0B,EAC1B,oBAAoB,EACvB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"_entry-manifest.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,KAAK,EACR,mBAAmB,EACnB,0BAA0B,EAC1B,oBAAoB,EACvB,MAAM,wBAAwB,CAAC;AAqBhC,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AACnD,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC;AACjD,MAAM,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG,CAAC,qBAAqB,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;AAmBxE,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzE;IAED,OAAa,cAAc,CACvB,GAAG,EAAE,mBAAmB,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,YAAY,EAAE,CAAC,CAuEzB;CACJ"}
|
|
@@ -6,13 +6,22 @@
|
|
|
6
6
|
import { PathSyntax } from "@plurnk/plurnk-contracts";
|
|
7
7
|
import { renderAddress } from "../core/plurnk-uri.js";
|
|
8
8
|
import Owner from "../core/Owner.js";
|
|
9
|
+
const CATALOG_SUMMARY_CODE_POINTS = 256;
|
|
10
|
+
const catalogSummary = (value) => {
|
|
11
|
+
if (value === null)
|
|
12
|
+
return undefined;
|
|
13
|
+
const points = [...value];
|
|
14
|
+
return points.length <= CATALOG_SUMMARY_CODE_POINTS
|
|
15
|
+
? value
|
|
16
|
+
: `${points.slice(0, CATALOG_SUMMARY_CODE_POINTS - 1).join("")}…`;
|
|
17
|
+
};
|
|
9
18
|
export default class EntryManifest {
|
|
10
|
-
static toPath(scheme, pathname) {
|
|
19
|
+
static toPath(scheme, authority, pathname) {
|
|
11
20
|
if (scheme === "file")
|
|
12
21
|
return PathSyntax.escapeTarget(PathSyntax.encodeParens(pathname));
|
|
13
|
-
return renderAddress(scheme, pathname);
|
|
22
|
+
return renderAddress({ scheme, authority, pathname });
|
|
14
23
|
}
|
|
15
|
-
static async catalogRowsFor(ctx, schemeFilter, ownerId) {
|
|
24
|
+
static async catalogRowsFor(ctx, schemeFilter, ownerId, authorityFilter) {
|
|
16
25
|
const { db, workspaceId, mimetypes, weigh } = ctx;
|
|
17
26
|
if (mimetypes === undefined)
|
|
18
27
|
throw new Error("catalogRowsFor: ctx.mimetypes is required for the lines (extent) field");
|
|
@@ -23,10 +32,11 @@ export default class EntryManifest {
|
|
|
23
32
|
workspace_id: workspaceId,
|
|
24
33
|
owner_id: resolvedOwnerId,
|
|
25
34
|
});
|
|
26
|
-
const rows =
|
|
35
|
+
const rows = all.filter((row) => (schemeFilter === undefined || row.scheme === schemeFilter)
|
|
36
|
+
&& (authorityFilter === undefined || row.authority === authorityFilter));
|
|
27
37
|
const byEntry = new Map();
|
|
28
38
|
for (const row of rows) {
|
|
29
|
-
const path = EntryManifest.toPath(row.scheme, row.pathname);
|
|
39
|
+
const path = EntryManifest.toPath(row.scheme, row.authority, row.pathname);
|
|
30
40
|
let entry = byEntry.get(path);
|
|
31
41
|
if (entry === undefined) {
|
|
32
42
|
entry = {
|
|
@@ -61,12 +71,14 @@ export default class EntryManifest {
|
|
|
61
71
|
const channelPath = row.channel === entry.defaultChannel
|
|
62
72
|
? entry.path
|
|
63
73
|
: `${entry.path}#${PathSyntax.escapeTarget(row.channel)}`;
|
|
74
|
+
const summary = catalogSummary(row.summary);
|
|
64
75
|
entry.channels.push({
|
|
65
76
|
path: channelPath,
|
|
66
77
|
mimetype: row.mimetype,
|
|
67
78
|
weight: weigh(row.content),
|
|
68
79
|
lines: totalLines,
|
|
69
|
-
...(
|
|
80
|
+
...(summary === undefined ? {} : { summary }),
|
|
81
|
+
...(row.parse_issues !== null
|
|
70
82
|
? { parseIssues: row.parse_issues }
|
|
71
83
|
: {}),
|
|
72
84
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-manifest.js","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,yFAAyF;AACzF,+EAA+E;AAC/E,yEAAyE;AACzE,sDAAsD;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAMtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"_entry-manifest.js","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type RangeExtent, type ReadStatement, type TextRegion } from "@plurnk/plurnk-contracts";
|
|
2
2
|
import type { PlurnkSchemeContext, SchemeManifest } from "../core/scheme-types.ts";
|
|
3
3
|
import type { EditBatchReceipt, LineAnchorPrecondition } from "../content/index.ts";
|
|
4
4
|
import { type SchemeResultBase } from "../core/results.ts";
|
|
@@ -20,16 +20,17 @@ export type ReadResult = SchemeResultBase & {
|
|
|
20
20
|
};
|
|
21
21
|
export type OpenFoldResult = SchemeResultBase;
|
|
22
22
|
interface ReadAddress {
|
|
23
|
-
readonly ownerId
|
|
23
|
+
readonly ownerId: number;
|
|
24
|
+
readonly authority?: string;
|
|
24
25
|
readonly pathname?: string;
|
|
25
26
|
}
|
|
26
27
|
export default class EntryOps {
|
|
27
28
|
#private;
|
|
28
|
-
static editWorkspaceEntryBatch(statements: readonly ResolvedEditStatement[], ctx: PlurnkSchemeContext, manifest: SchemeManifest,
|
|
29
|
+
static editWorkspaceEntryBatch(statements: readonly ResolvedEditStatement[], ctx: PlurnkSchemeContext, manifest: SchemeManifest, ownerId: number, precondition?: LineAnchorPrecondition | null): Promise<EditResult>;
|
|
29
30
|
static deleteWorkspaceEntry(statement: {
|
|
30
31
|
target: ResolvedEditStatement["target"];
|
|
31
|
-
}, ctx: PlurnkSchemeContext, manifest: SchemeManifest,
|
|
32
|
-
static readWorkspaceEntry(statement: ReadStatement, ctx: PlurnkSchemeContext, manifest: SchemeManifest, address
|
|
32
|
+
}, ctx: PlurnkSchemeContext, manifest: SchemeManifest, ownerId: number): Promise<SchemeResultBase>;
|
|
33
|
+
static readWorkspaceEntry(statement: ReadStatement, ctx: PlurnkSchemeContext, manifest: SchemeManifest, address: ReadAddress | null): Promise<ReadResult>;
|
|
33
34
|
}
|
|
34
35
|
export {};
|
|
35
36
|
//# sourceMappingURL=_entry-ops.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-ops.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-ops.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"_entry-ops.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-ops.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE7G,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAsB,MAAM,wBAAwB,CAAC;AAYxF,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;CAAE,CAAC;AAKtI,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG;IACxC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAE9C,UAAU,WAAW;IACjB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,OAAO,QAAQ;;IAqDzB,OAAa,uBAAuB,CAChC,UAAU,EAAE,SAAS,qBAAqB,EAAE,EAC5C,GAAG,EAAE,mBAAmB,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,MAAM,EACf,YAAY,GAAE,sBAAsB,GAAG,IAAW,GACnD,OAAO,CAAC,UAAU,CAAC,CA6OrB;IAID,OAAa,oBAAoB,CAAC,SAAS,EAAE;QAAE,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAA;KAAE,EAAE,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA6BxL;IAED,OAAa,kBAAkB,CAC3B,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,mBAAmB,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,WAAW,GAAG,IAAI,GAC5B,OAAO,CAAC,UAAU,CAAC,CA2DrB;CACJ"}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import EntryCrud from "./_entry-crud.js";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
2
|
+
import { PathSyntax } from "@plurnk/plurnk-contracts";
|
|
3
|
+
import { entryCoordinateOf } from "../core/plurnk-uri.js";
|
|
4
4
|
import EntryManifest from "./_entry-manifest.js";
|
|
5
5
|
import { EditCollision, LineAnchors, LineMarkerOps, MimetypeBinary, PathMimetype, ReadProjector, editReceipt } from "../content/index.js";
|
|
6
6
|
import Results from "../core/results.js";
|
|
7
7
|
import { contentHash } from "../core/content-hash.js";
|
|
8
8
|
import DbProjectionCaps from "../core/caps/DbProjectionCaps.js";
|
|
9
9
|
export default class EntryOps {
|
|
10
|
-
static #
|
|
10
|
+
static #coordinateOf(statement, manifest) {
|
|
11
11
|
const t = statement.target;
|
|
12
12
|
if (t === null)
|
|
13
13
|
throw new Error("unreachable");
|
|
14
|
-
|
|
15
|
-
// entry layer; every remaining authority is part of entry identity.
|
|
16
|
-
return entryPathnameOf(t);
|
|
14
|
+
return entryCoordinateOf(t, manifest.authority ?? "namespace");
|
|
17
15
|
}
|
|
18
16
|
static #fragmentOf(statement) {
|
|
19
17
|
const t = statement.target;
|
|
@@ -36,11 +34,11 @@ export default class EntryOps {
|
|
|
36
34
|
// the declared universe, so one miss teaches the topology instead of forcing a guessing walk
|
|
37
35
|
// (failure specimen: a model probed #stdout/#stderr/#body against a results-channel search stream,
|
|
38
36
|
// each miss a bare 400 that taught nothing).
|
|
39
|
-
static #channelMiss(fragment, scheme, pathname, channels, defaultChannel) {
|
|
37
|
+
static #channelMiss(fragment, scheme, authority, pathname, channels, defaultChannel) {
|
|
40
38
|
const availableChannels = [...new Set([defaultChannel, ...Object.keys(channels)])].filter((channel) => channel.length > 0);
|
|
41
39
|
const requestedChannel = fragment ?? defaultChannel;
|
|
42
40
|
return {
|
|
43
|
-
detail: `Channel #${requestedChannel} does not exist at ${EntryManifest.toPath(scheme, pathname)}.`,
|
|
41
|
+
detail: `Channel #${requestedChannel} does not exist at ${EntryManifest.toPath(scheme, authority, pathname)}.`,
|
|
44
42
|
extensions: {
|
|
45
43
|
requestedChannel,
|
|
46
44
|
availableChannels,
|
|
@@ -51,15 +49,7 @@ export default class EntryOps {
|
|
|
51
49
|
},
|
|
52
50
|
};
|
|
53
51
|
}
|
|
54
|
-
|
|
55
|
-
// capability streams) resolves its authority itself (empty/~/name per its carving) and passes
|
|
56
|
-
// the result explicitly; everything else is the workspace commons.
|
|
57
|
-
static async #ownerOf(explicit, ctx) {
|
|
58
|
-
if (explicit !== undefined)
|
|
59
|
-
return explicit;
|
|
60
|
-
return Owner.commonsId(ctx.db, ctx.workspaceId);
|
|
61
|
-
}
|
|
62
|
-
static async editWorkspaceEntryBatch(statements, ctx, manifest, explicitOwnerId, precondition = null) {
|
|
52
|
+
static async editWorkspaceEntryBatch(statements, ctx, manifest, ownerId, precondition = null) {
|
|
63
53
|
LineAnchors.assertResolved(statements);
|
|
64
54
|
const failure = (code, status, detail, fields, extensions = {}) => Results.failure(`scheme:${manifest.name}`, code, status, detail, fields, extensions);
|
|
65
55
|
const statement = statements[0];
|
|
@@ -78,15 +68,16 @@ export default class EntryOps {
|
|
|
78
68
|
const { db, workspaceId } = ctx;
|
|
79
69
|
const { name: scheme, channels, defaultChannel } = manifest;
|
|
80
70
|
const fragment = EntryOps.#fragmentOf(statement);
|
|
81
|
-
const pathname = EntryOps.#
|
|
71
|
+
const { authority, pathname } = EntryOps.#coordinateOf(statement, manifest);
|
|
82
72
|
const targetChannel = EntryOps.#resolveChannel(fragment, channels, defaultChannel);
|
|
83
73
|
if (targetChannel === null) {
|
|
84
|
-
const miss = EntryOps.#channelMiss(fragment, scheme, pathname, channels, defaultChannel);
|
|
74
|
+
const miss = EntryOps.#channelMiss(fragment, scheme, authority, pathname, channels, defaultChannel);
|
|
85
75
|
return failure("channel-not-found", 400, miss.detail, { entryId: null, channel: null }, miss.extensions);
|
|
86
76
|
}
|
|
87
77
|
for (const candidate of statements.slice(1)) {
|
|
88
78
|
if (candidate.target === null
|
|
89
|
-
|| EntryOps.#
|
|
79
|
+
|| EntryOps.#coordinateOf(candidate, manifest).authority !== authority
|
|
80
|
+
|| EntryOps.#coordinateOf(candidate, manifest).pathname !== pathname
|
|
90
81
|
|| EntryOps.#fragmentOf(candidate) !== fragment) {
|
|
91
82
|
return failure("edit-batch-mismatch", 400, "The EDIT batch spans multiple resources or channels.", { entryId: null, channel: targetChannel }, {
|
|
92
83
|
recovery: "Submit a separate EDIT batch for each resource and channel.",
|
|
@@ -94,11 +85,10 @@ export default class EntryOps {
|
|
|
94
85
|
});
|
|
95
86
|
}
|
|
96
87
|
}
|
|
97
|
-
const
|
|
98
|
-
const existing = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: ownerId, scheme, pathname });
|
|
88
|
+
const existing = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: ownerId, scheme, authority, pathname });
|
|
99
89
|
// Non-default channel write requires the entry to exist ({§channel-selection-fragment-on-nonexistent-404}).
|
|
100
90
|
if (existing === undefined && fragment !== null) {
|
|
101
|
-
return failure("entry-not-found", 404, `No entry exists at ${EntryManifest.toPath(scheme, pathname)}.`, { entryId: null, channel: targetChannel });
|
|
91
|
+
return failure("entry-not-found", 404, `No entry exists at ${EntryManifest.toPath(scheme, authority, pathname)}.`, { entryId: null, channel: targetChannel });
|
|
102
92
|
}
|
|
103
93
|
// Effective mimetype for this entry, per the shared contracts:
|
|
104
94
|
// "Path suffix declares mimetype; absent suffix defers to scheme default."
|
|
@@ -111,6 +101,7 @@ export default class EntryOps {
|
|
|
111
101
|
: await db.ops_read_channel.get({
|
|
112
102
|
workspace_id: workspaceId,
|
|
113
103
|
scheme,
|
|
104
|
+
authority,
|
|
114
105
|
pathname,
|
|
115
106
|
channel: targetChannel,
|
|
116
107
|
owner_id: ownerId,
|
|
@@ -186,8 +177,9 @@ export default class EntryOps {
|
|
|
186
177
|
status: 304,
|
|
187
178
|
entryId: existingEntryId,
|
|
188
179
|
channel: targetChannel,
|
|
180
|
+
detail: "the target already matches this content — move on or re-READ; never re-send the same body",
|
|
189
181
|
...(scopeNormalizations === undefined ? {} : { scopeNormalizations }),
|
|
190
|
-
}; // {§edit-noop-304}
|
|
182
|
+
}; // {§edit-noop-304} — teaching rides the receipt, not the hot path (#342)
|
|
191
183
|
}
|
|
192
184
|
let entryId;
|
|
193
185
|
let createdNow;
|
|
@@ -196,10 +188,11 @@ export default class EntryOps {
|
|
|
196
188
|
workspace_id: workspaceId,
|
|
197
189
|
owner_id: ownerId,
|
|
198
190
|
scheme,
|
|
191
|
+
authority,
|
|
199
192
|
pathname,
|
|
200
193
|
});
|
|
201
194
|
if (row === undefined) {
|
|
202
|
-
return EditCollision.result(precondition?.identity ?? EntryManifest.toPath(scheme, pathname), { entryId: null, channel: targetChannel });
|
|
195
|
+
return EditCollision.result(precondition?.identity ?? EntryManifest.toPath(scheme, authority, pathname), { entryId: null, channel: targetChannel });
|
|
203
196
|
}
|
|
204
197
|
entryId = row.id;
|
|
205
198
|
createdNow = true;
|
|
@@ -225,7 +218,7 @@ export default class EntryOps {
|
|
|
225
218
|
expected_content: originalContent,
|
|
226
219
|
});
|
|
227
220
|
if (landed === undefined) {
|
|
228
|
-
return EditCollision.result(precondition?.identity ?? EntryManifest.toPath(scheme, pathname), { entryId, channel: targetChannel });
|
|
221
|
+
return EditCollision.result(precondition?.identity ?? EntryManifest.toPath(scheme, authority, pathname), { entryId, channel: targetChannel });
|
|
229
222
|
}
|
|
230
223
|
// EDIT writes exactly the one resolved channel — {§per-entry-channels-edit-writes-only-body}.
|
|
231
224
|
// Search derivation is not a write concern. SearchIndex attaches the
|
|
@@ -244,7 +237,7 @@ export default class EntryOps {
|
|
|
244
237
|
}
|
|
245
238
|
// Owner-aware entry delete — the KILL counterpart of editWorkspaceEntry. Resolves
|
|
246
239
|
// the exact owner-held row, then deletes it (including channels by CASCADE). 404 when absent.
|
|
247
|
-
static async deleteWorkspaceEntry(statement, ctx, manifest,
|
|
240
|
+
static async deleteWorkspaceEntry(statement, ctx, manifest, ownerId) {
|
|
248
241
|
if (statement.target === null) {
|
|
249
242
|
return Results.failure(`scheme:${manifest.name}`, "delete-target-required", 400, "KILL requires a target path.", {}, {
|
|
250
243
|
recovery: "Provide the entry target.",
|
|
@@ -252,16 +245,15 @@ export default class EntryOps {
|
|
|
252
245
|
});
|
|
253
246
|
}
|
|
254
247
|
const { db, workspaceId } = ctx;
|
|
255
|
-
const pathname = EntryOps.#
|
|
256
|
-
const
|
|
257
|
-
const existing = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: ownerId, scheme: manifest.name, pathname });
|
|
248
|
+
const { authority, pathname } = EntryOps.#coordinateOf(statement, manifest);
|
|
249
|
+
const existing = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: ownerId, scheme: manifest.name, authority, pathname });
|
|
258
250
|
if (existing === undefined) {
|
|
259
|
-
return Results.failure(`scheme:${manifest.name}`, "entry-not-found", 404, `No entry exists at ${EntryManifest.toPath(manifest.name, pathname)}.`, {}, { target: EntryManifest.toPath(manifest.name, pathname) });
|
|
251
|
+
return Results.failure(`scheme:${manifest.name}`, "entry-not-found", 404, `No entry exists at ${EntryManifest.toPath(manifest.name, authority, pathname)}.`, {}, { target: EntryManifest.toPath(manifest.name, authority, pathname) });
|
|
260
252
|
}
|
|
261
253
|
await db.crud_delete_entry.run({ entry_id: existing.id });
|
|
262
254
|
return { status: 200 };
|
|
263
255
|
}
|
|
264
|
-
static async readWorkspaceEntry(statement, ctx, manifest, address
|
|
256
|
+
static async readWorkspaceEntry(statement, ctx, manifest, address) {
|
|
265
257
|
const failure = (code, status, detail, fields, extensions = {}) => Results.failure(`scheme:${manifest.name}`, code, status, detail, fields, extensions);
|
|
266
258
|
if (statement.target === null) {
|
|
267
259
|
return failure("read-target-required", 400, "READ requires a target path.", { content: null, mimetype: null, channel: null }, {
|
|
@@ -269,33 +261,34 @@ export default class EntryOps {
|
|
|
269
261
|
retryable: false,
|
|
270
262
|
});
|
|
271
263
|
}
|
|
264
|
+
if (address === null)
|
|
265
|
+
throw new Error("READ target reached storage without a bound entry principal");
|
|
272
266
|
// Scope by the manifest's persisted entries.scheme (storedScheme; absent →
|
|
273
267
|
// name). File persists under the reserved 'file' scheme ({§entry-identity-no-null}).
|
|
274
268
|
const scheme = EntryCrud.identityScheme(manifest);
|
|
275
|
-
const
|
|
269
|
+
const authoredCoordinate = EntryOps.#coordinateOf(statement, manifest);
|
|
270
|
+
const coordinate = {
|
|
271
|
+
authority: address.authority ?? authoredCoordinate.authority,
|
|
272
|
+
pathname: address.pathname ?? authoredCoordinate.pathname,
|
|
273
|
+
};
|
|
274
|
+
const { authority, pathname } = coordinate;
|
|
276
275
|
const selectedChannel = statement.target.kind === "url"
|
|
277
276
|
? statement.target.fragment ?? manifest.defaultChannel
|
|
278
277
|
: manifest.defaultChannel;
|
|
279
|
-
const
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
})
|
|
285
|
-
: renderTarget({ scheme: null, pathname });
|
|
286
|
-
if (identity === null)
|
|
287
|
-
throw new TypeError("READ resolved an unrenderable resource identity.");
|
|
288
|
-
const ownerId = await EntryOps.#ownerOf(address.ownerId, ctx);
|
|
289
|
-
const stored = await EntryCrud.readEntry(pathname, ctx, scheme, ownerId);
|
|
278
|
+
const baseIdentity = EntryManifest.toPath(scheme, authority, pathname);
|
|
279
|
+
const identity = selectedChannel === manifest.defaultChannel
|
|
280
|
+
? baseIdentity
|
|
281
|
+
: `${baseIdentity}#${PathSyntax.escapeTarget(selectedChannel)}`;
|
|
282
|
+
const stored = await EntryCrud.readEntry({ authority, pathname }, ctx, scheme, address.ownerId);
|
|
290
283
|
// {§read-read-404} + {§fs-errno} — ENOENT carries its fact, the RESOLVED name in wire
|
|
291
284
|
// canon: the model distinguishes wrong-address from wrong-range by the strings alone.
|
|
292
285
|
if (stored.entry === null) {
|
|
293
|
-
return failure("entry-not-found", 404, `No entry exists at ${EntryManifest.toPath(scheme, pathname)}.`, { content: null, mimetype: null, channel: null }, { target: EntryManifest.toPath(scheme, pathname) });
|
|
286
|
+
return failure("entry-not-found", 404, `No entry exists at ${EntryManifest.toPath(scheme, authority, pathname)}.`, { content: null, mimetype: null, channel: null }, { target: EntryManifest.toPath(scheme, authority, pathname) });
|
|
294
287
|
}
|
|
295
288
|
return ReadProjector.project({
|
|
296
289
|
statement,
|
|
297
290
|
manifest: { ...manifest, name: scheme },
|
|
298
|
-
target: EntryManifest.toPath(scheme, pathname),
|
|
291
|
+
target: EntryManifest.toPath(scheme, authority, pathname),
|
|
299
292
|
identity,
|
|
300
293
|
representation: stored.entry,
|
|
301
294
|
mimetypes: ctx.mimetypes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-ops.js","sourceRoot":"","sources":["../../src/schemes/_entry-ops.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"_entry-ops.js","sourceRoot":"","sources":["../../src/schemes/_entry-ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
-- PREP: ops_insert_workspace_entry_if_absent
|
|
6
6
|
-- EDIT creation claims identity without surfacing a uniqueness exception when
|
|
7
7
|
-- another correct writer wins the same resource concurrently.
|
|
8
|
-
INSERT INTO entries (
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
INSERT INTO entries (owner_id, scheme, authority, pathname)
|
|
9
|
+
SELECT $owner_id, $scheme, $authority, $pathname
|
|
10
|
+
FROM workers WHERE id = $owner_id AND workspace_id = $workspace_id
|
|
11
|
+
ON CONFLICT (owner_id, scheme, authority, pathname) DO NOTHING
|
|
11
12
|
RETURNING id;
|
|
12
13
|
|
|
13
14
|
-- PREP: ops_insert_channel_if_absent
|
|
@@ -34,12 +35,14 @@ WHERE entry_id = $entry_id
|
|
|
34
35
|
RETURNING name;
|
|
35
36
|
|
|
36
37
|
-- PREP: ops_read_channel
|
|
37
|
-
-- READ targeting a specific channel of an entry — identity is
|
|
38
|
+
-- READ targeting a specific channel of an entry — identity is
|
|
39
|
+
-- (owner, scheme, authority, pathname); owner determines workspace.
|
|
38
40
|
SELECT ec.content, ec.mimetype, ec.producer_result
|
|
39
41
|
FROM entries e
|
|
40
42
|
JOIN entry_channels ec ON ec.entry_id = e.id
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
JOIN workers owner ON owner.id = e.owner_id
|
|
44
|
+
WHERE owner.workspace_id = $workspace_id AND e.owner_id = $owner_id
|
|
43
45
|
AND e.scheme = $scheme
|
|
46
|
+
AND e.authority = $authority
|
|
44
47
|
AND e.pathname = $pathname
|
|
45
48
|
AND ec.name = $channel;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { SendStatement } from "@plurnk/plurnk-contracts";
|
|
2
|
-
import type { PlurnkSchemeContext } from "../core/scheme-types.ts";
|
|
2
|
+
import type { PlurnkSchemeContext, SchemeManifest } from "../core/scheme-types.ts";
|
|
3
3
|
import { type SchemeResult } from "../core/results.ts";
|
|
4
4
|
export interface SendResult extends SchemeResult {
|
|
5
5
|
}
|
|
6
6
|
export default class EntrySend {
|
|
7
7
|
#private;
|
|
8
|
-
static sendToWorkspaceEntry(statement: SendStatement, ctx: PlurnkSchemeContext,
|
|
8
|
+
static sendToWorkspaceEntry(statement: SendStatement, ctx: PlurnkSchemeContext, manifest: SchemeManifest, ownerId: number): Promise<SendResult>;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=_entry-send.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-send.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-send.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"_entry-send.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-send.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGnF,OAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,WAAW,UAAW,SAAQ,YAAY;CAAG;AAEnD,MAAM,CAAC,OAAO,OAAO,SAAS;;IAa1B,OAAa,oBAAoB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA+HpJ;CACJ"}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
// Shared SEND dispatcher for entry-bearing schemes. Schemes interpret
|
|
2
2
|
// status codes per SPEC {§send-dispatch}. v0 handles 410 (Gone, delete the resource)
|
|
3
3
|
// and 499 (Client Closed Request, cancel active subscription).
|
|
4
|
-
import
|
|
5
|
-
import { entryPathnameOf, renderAddress } from "../core/plurnk-uri.js";
|
|
4
|
+
import { entryCoordinateOf, renderAddress } from "../core/plurnk-uri.js";
|
|
6
5
|
import EntryCrud from "./_entry-crud.js";
|
|
7
6
|
import ChannelWrite from "../core/ChannelWrite.js";
|
|
8
7
|
import Results from "../core/results.js";
|
|
9
8
|
export default class EntrySend {
|
|
10
|
-
static #
|
|
9
|
+
static #coordinateOf(statement, manifest) {
|
|
11
10
|
const path = statement.target;
|
|
12
11
|
if (path === null)
|
|
13
12
|
return null;
|
|
14
|
-
return
|
|
13
|
+
return entryCoordinateOf(path, manifest.authority ?? "namespace");
|
|
15
14
|
}
|
|
16
15
|
static #fragmentOf(statement) {
|
|
17
16
|
const path = statement.target;
|
|
@@ -19,7 +18,8 @@ export default class EntrySend {
|
|
|
19
18
|
return null;
|
|
20
19
|
return path.fragment;
|
|
21
20
|
}
|
|
22
|
-
static async sendToWorkspaceEntry(statement, ctx,
|
|
21
|
+
static async sendToWorkspaceEntry(statement, ctx, manifest, ownerId) {
|
|
22
|
+
const scheme = manifest.storedScheme ?? manifest.name;
|
|
23
23
|
const failure = (code, status, detail, fields = {}, extensions = {}) => Results.failure(`scheme:${scheme}`, code, status, detail, fields, extensions);
|
|
24
24
|
if (statement.target === null) {
|
|
25
25
|
return failure("target-required", 400, "Directed SEND requires a target path.", {}, {
|
|
@@ -37,14 +37,15 @@ export default class EntrySend {
|
|
|
37
37
|
// SEND signal 410 Gone — delete the targeted resource (SPEC {§send-dispatch}). With a
|
|
38
38
|
// #fragment, deletes just that channel; without, deletes the whole entry.
|
|
39
39
|
if (status === 410) {
|
|
40
|
-
const
|
|
41
|
-
if (
|
|
40
|
+
const coordinate = EntrySend.#coordinateOf(statement, manifest);
|
|
41
|
+
if (coordinate === null)
|
|
42
42
|
return failure("target-required", 400, "`## SEND0 [410]` requires a target path.");
|
|
43
|
-
const
|
|
43
|
+
const { authority, pathname } = coordinate;
|
|
44
|
+
const target = renderAddress({ scheme, authority, pathname });
|
|
44
45
|
const fragment = EntrySend.#fragmentOf(statement);
|
|
45
46
|
if (fragment !== null) {
|
|
46
47
|
const { db, workspaceId } = ctx;
|
|
47
|
-
const entry = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id:
|
|
48
|
+
const entry = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: ownerId, scheme, authority, pathname });
|
|
48
49
|
if (entry === undefined) {
|
|
49
50
|
return failure("entry-not-found", 404, `No entry exists at ${target}.`, {}, { target });
|
|
50
51
|
}
|
|
@@ -56,7 +57,7 @@ export default class EntrySend {
|
|
|
56
57
|
})
|
|
57
58
|
: { status: 200 };
|
|
58
59
|
}
|
|
59
|
-
const result = await EntryCrud.deleteEntry(
|
|
60
|
+
const result = await EntryCrud.deleteEntry(coordinate, ctx, scheme, ownerId);
|
|
60
61
|
return result;
|
|
61
62
|
}
|
|
62
63
|
// SEND signal 499 Client Closed Request — cancel active subscription (SPEC {§send-dispatch}, {§stream-control}).
|
|
@@ -64,12 +65,13 @@ export default class EntrySend {
|
|
|
64
65
|
// Streaming schemes (sse / exec / etc.) override this and look up via
|
|
65
66
|
// findActiveSubscription, then call their teardown using the stored handle.
|
|
66
67
|
if (status === 499) {
|
|
67
|
-
const
|
|
68
|
-
if (
|
|
68
|
+
const coordinate = EntrySend.#coordinateOf(statement, manifest);
|
|
69
|
+
if (coordinate === null)
|
|
69
70
|
return failure("target-required", 400, "`## SEND0 [499]` requires a target path.");
|
|
70
|
-
const
|
|
71
|
+
const { authority, pathname } = coordinate;
|
|
72
|
+
const target = renderAddress({ scheme, authority, pathname });
|
|
71
73
|
const { db, workspaceId, workerId } = ctx;
|
|
72
|
-
const entry = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id:
|
|
74
|
+
const entry = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: ownerId, scheme, authority, pathname });
|
|
73
75
|
if (entry === undefined) {
|
|
74
76
|
return failure("entry-not-found", 404, `No entry exists at ${target}.`, {}, { target });
|
|
75
77
|
}
|