@plurnk/plurnk-service 1.3.12 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.defaults +95 -91
- package/INSTALL.md +54 -28
- package/README.md +25 -10
- package/SPEC.md +2426 -942
- package/dist/Paths.d.ts +4 -1
- package/dist/Paths.d.ts.map +1 -1
- package/dist/Paths.js +24 -23
- package/dist/Paths.js.map +1 -1
- package/dist/build-info.json +1 -1
- package/dist/content/edit-receipt.d.ts +13 -28
- package/dist/content/edit-receipt.d.ts.map +1 -1
- package/dist/content/edit-receipt.js +285 -104
- package/dist/content/edit-receipt.js.map +1 -1
- package/dist/content/edited-span.d.ts.map +1 -1
- package/dist/content/edited-span.js +2 -5
- package/dist/content/edited-span.js.map +1 -1
- package/dist/content/index.d.ts +4 -3
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +2 -1
- package/dist/content/index.js.map +1 -1
- package/dist/content/line-marker.d.ts +10 -9
- package/dist/content/line-marker.d.ts.map +1 -1
- package/dist/content/line-marker.js +8 -11
- package/dist/content/line-marker.js.map +1 -1
- package/dist/content/matcher.d.ts +15 -26
- package/dist/content/matcher.d.ts.map +1 -1
- package/dist/content/matcher.js +77 -107
- package/dist/content/matcher.js.map +1 -1
- package/dist/content/mimetype-binary.d.ts +2 -2
- package/dist/content/mimetype-binary.d.ts.map +1 -1
- package/dist/content/mimetype-binary.js +10 -10
- package/dist/content/mimetype-binary.js.map +1 -1
- package/dist/content/path-mimetype.js +3 -3
- package/dist/content/path-mimetype.js.map +1 -1
- package/dist/content/read-projector.d.ts +14 -0
- package/dist/content/read-projector.d.ts.map +1 -0
- package/dist/content/read-projector.js +86 -0
- package/dist/content/read-projector.js.map +1 -0
- package/dist/content/read-resolve.d.ts +6 -7
- package/dist/content/read-resolve.d.ts.map +1 -1
- package/dist/content/read-resolve.js +36 -59
- package/dist/content/read-resolve.js.map +1 -1
- package/dist/core/BranchReceipt.d.ts +6 -0
- package/dist/core/BranchReceipt.d.ts.map +1 -0
- package/dist/core/BranchReceipt.js +24 -0
- package/dist/core/BranchReceipt.js.map +1 -0
- package/dist/core/BudgetOverflow.d.ts +20 -0
- package/dist/core/BudgetOverflow.d.ts.map +1 -0
- package/dist/core/BudgetOverflow.js +49 -0
- package/dist/core/BudgetOverflow.js.map +1 -0
- package/dist/core/BudgetReadout.d.ts +8 -0
- package/dist/core/BudgetReadout.d.ts.map +1 -0
- package/dist/core/BudgetReadout.js +79 -0
- package/dist/core/BudgetReadout.js.map +1 -0
- package/dist/core/ChannelWrite.d.ts +31 -9
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +30 -23
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +14 -12
- package/dist/core/CoreSchemeServices.d.ts +18 -4
- package/dist/core/CoreSchemeServices.d.ts.map +1 -1
- package/dist/core/CoreSchemeServices.js +7 -1
- package/dist/core/CoreSchemeServices.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +26 -21
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +1626 -671
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/DurableStatement.d.ts +6 -0
- package/dist/core/DurableStatement.d.ts.map +1 -0
- package/dist/core/DurableStatement.js +51 -0
- package/dist/core/DurableStatement.js.map +1 -0
- package/dist/core/Engine.d.ts +64 -29
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +1348 -835
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +329 -234
- package/dist/core/EnvFlags.js +1 -1
- package/dist/core/EnvFlags.js.map +1 -1
- package/dist/core/ErrorDetail.d.ts +6 -0
- package/dist/core/ErrorDetail.d.ts.map +1 -0
- package/dist/core/ErrorDetail.js +20 -0
- package/dist/core/ErrorDetail.js.map +1 -0
- package/dist/core/ExecutorRegistry.d.ts +14 -3
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +56 -30
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/GitBranch.d.ts +20 -0
- package/dist/core/GitBranch.d.ts.map +1 -0
- package/dist/core/GitBranch.js +110 -0
- package/dist/core/GitBranch.js.map +1 -0
- package/dist/core/JournalTurn.d.ts +9 -0
- package/dist/core/JournalTurn.d.ts.map +1 -0
- package/dist/core/JournalTurn.js +14 -0
- package/dist/core/JournalTurn.js.map +1 -0
- package/dist/core/JournalTurn.sql +10 -0
- package/dist/core/LogBody.d.ts +18 -0
- package/dist/core/LogBody.d.ts.map +1 -0
- package/dist/core/LogBody.js +180 -0
- package/dist/core/LogBody.js.map +1 -0
- package/dist/core/LoopFlagsReader.d.ts +7 -0
- package/dist/core/LoopFlagsReader.d.ts.map +1 -0
- package/dist/core/LoopFlagsReader.js +33 -0
- package/dist/core/LoopFlagsReader.js.map +1 -0
- package/dist/core/LoopLifecycle.d.ts +8 -2
- package/dist/core/LoopLifecycle.d.ts.map +1 -1
- package/dist/core/LoopLifecycle.js +54 -11
- package/dist/core/LoopLifecycle.js.map +1 -1
- package/dist/core/LoopLifecycle.sql +10 -7
- package/dist/core/NoticeChannel.d.ts +13 -0
- package/dist/core/NoticeChannel.d.ts.map +1 -0
- package/dist/core/NoticeChannel.js +40 -0
- package/dist/core/NoticeChannel.js.map +1 -0
- package/dist/core/Owner.d.ts +0 -1
- package/dist/core/Owner.d.ts.map +1 -1
- package/dist/core/Owner.js +2 -5
- package/dist/core/Owner.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts +27 -25
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +321 -383
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/ProblemLog.d.ts +26 -0
- package/dist/core/ProblemLog.d.ts.map +1 -0
- package/dist/core/ProblemLog.js +58 -0
- package/dist/core/ProblemLog.js.map +1 -0
- package/dist/core/ProposalLifecycle.d.ts +15 -21
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +291 -78
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ProviderInstantiate.d.ts.map +1 -1
- package/dist/core/ProviderInstantiate.js +51 -48
- package/dist/core/ProviderInstantiate.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts +14 -8
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +189 -114
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/ServiceTeardown.d.ts +11 -0
- package/dist/core/ServiceTeardown.d.ts.map +1 -0
- package/dist/core/ServiceTeardown.js +70 -0
- package/dist/core/ServiceTeardown.js.map +1 -0
- package/dist/core/StoredPacket.d.ts +29 -0
- package/dist/core/StoredPacket.d.ts.map +1 -0
- package/dist/core/StoredPacket.js +147 -0
- package/dist/core/StoredPacket.js.map +1 -0
- package/dist/core/StrikeRail.d.ts +6 -3
- package/dist/core/StrikeRail.d.ts.map +1 -1
- package/dist/core/StrikeRail.js +27 -56
- package/dist/core/StrikeRail.js.map +1 -1
- package/dist/core/TerminalResult.d.ts +16 -0
- package/dist/core/TerminalResult.d.ts.map +1 -0
- package/dist/core/TerminalResult.js +49 -0
- package/dist/core/TerminalResult.js.map +1 -0
- package/dist/core/WorkerControlAddress.d.ts +17 -0
- package/dist/core/WorkerControlAddress.d.ts.map +1 -0
- package/dist/core/WorkerControlAddress.js +44 -0
- package/dist/core/WorkerControlAddress.js.map +1 -0
- package/dist/core/WorkerName.d.ts +31 -0
- package/dist/core/WorkerName.d.ts.map +1 -0
- package/dist/core/WorkerName.js +95 -0
- package/dist/core/WorkerName.js.map +1 -0
- package/dist/core/WorkerName.sql +36 -0
- package/dist/core/WorkspaceGate.d.ts +14 -0
- package/dist/core/WorkspaceGate.d.ts.map +1 -0
- package/dist/core/WorkspaceGate.js +155 -0
- package/dist/core/WorkspaceGate.js.map +1 -0
- package/dist/core/caps/CapsResolve.d.ts +5 -1
- package/dist/core/caps/CapsResolve.d.ts.map +1 -1
- package/dist/core/caps/CapsResolve.js +8 -4
- package/dist/core/caps/CapsResolve.js.map +1 -1
- package/dist/core/caps/DbChannelCaps.d.ts +5 -11
- package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
- package/dist/core/caps/DbChannelCaps.js +30 -12
- package/dist/core/caps/DbChannelCaps.js.map +1 -1
- package/dist/core/caps/DbEntryCaps.d.ts +5 -14
- package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
- package/dist/core/caps/DbEntryCaps.js +27 -8
- 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 +18 -15
- package/dist/core/caps/DbNotifyCaps.js.map +1 -1
- package/dist/core/caps/DbProjectionCaps.d.ts +5 -5
- package/dist/core/caps/DbProjectionCaps.d.ts.map +1 -1
- package/dist/core/caps/DbProjectionCaps.js +21 -4
- package/dist/core/caps/DbProjectionCaps.js.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.d.ts +4 -6
- package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.js +75 -66
- package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
- package/dist/core/caps/DbTagCaps.d.ts +5 -12
- package/dist/core/caps/DbTagCaps.d.ts.map +1 -1
- package/dist/core/caps/DbTagCaps.js +20 -11
- package/dist/core/caps/DbTagCaps.js.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.d.ts +6 -1
- package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.js +6 -6
- package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
- package/dist/core/content-hash.js +1 -1
- package/dist/core/content-hash.js.map +1 -1
- package/dist/core/env-defaults.d.ts.map +1 -1
- package/dist/core/env-defaults.js.map +1 -1
- package/dist/core/fork.d.ts.map +1 -1
- package/dist/core/fork.js +55 -30
- package/dist/core/fork.js.map +1 -1
- package/dist/core/fork.sql +43 -29
- package/dist/core/git-env.d.ts +2 -0
- package/dist/core/git-env.d.ts.map +1 -1
- package/dist/core/git-env.js +13 -18
- package/dist/core/git-env.js.map +1 -1
- package/dist/core/git-iso.d.ts +3 -2
- package/dist/core/git-iso.d.ts.map +1 -1
- package/dist/core/git-iso.js +36 -27
- package/dist/core/git-iso.js.map +1 -1
- package/dist/core/git-membership.d.ts +2 -1
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +276 -162
- package/dist/core/git-membership.js.map +1 -1
- package/dist/core/git-state.d.ts +8 -1
- package/dist/core/git-state.d.ts.map +1 -1
- package/dist/core/git-state.js +44 -26
- package/dist/core/git-state.js.map +1 -1
- package/dist/core/namespace.d.ts +1 -0
- package/dist/core/namespace.d.ts.map +1 -1
- package/dist/core/namespace.js +20 -0
- package/dist/core/namespace.js.map +1 -1
- package/dist/core/optimistic-settlement.d.ts +2 -0
- package/dist/core/optimistic-settlement.d.ts.map +1 -0
- package/dist/core/optimistic-settlement.js +14 -0
- package/dist/core/optimistic-settlement.js.map +1 -0
- package/dist/core/owner.sql +1 -1
- package/dist/core/packet-inject.d.ts.map +1 -1
- package/dist/core/packet-inject.js +7 -11
- package/dist/core/packet-inject.js.map +1 -1
- package/dist/core/packet-wire.d.ts +3 -21
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +305 -385
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plurnk-uri.d.ts +12 -1
- package/dist/core/plurnk-uri.d.ts.map +1 -1
- package/dist/core/plurnk-uri.js +49 -29
- package/dist/core/plurnk-uri.js.map +1 -1
- package/dist/core/results.d.ts +18 -5
- package/dist/core/results.d.ts.map +1 -1
- package/dist/core/results.js +33 -18
- package/dist/core/results.js.map +1 -1
- package/dist/core/ruler_count.d.ts +4 -0
- package/dist/core/ruler_count.d.ts.map +1 -0
- package/dist/core/ruler_count.js +7 -0
- package/dist/core/ruler_count.js.map +1 -0
- package/dist/core/scheme-types.d.ts +3 -17
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/scheme-types.js.map +1 -1
- package/dist/core/search-gate.d.ts.map +1 -1
- package/dist/core/search-gate.js +3 -11
- package/dist/core/search-gate.js.map +1 -1
- package/dist/core/teaching-corpus.d.ts +6 -0
- package/dist/core/teaching-corpus.d.ts.map +1 -0
- package/dist/core/teaching-corpus.js +23 -0
- package/dist/core/teaching-corpus.js.map +1 -0
- package/dist/core/teaching.d.ts +0 -1
- package/dist/core/teaching.d.ts.map +1 -1
- package/dist/core/teaching.js +2 -8
- package/dist/core/teaching.js.map +1 -1
- package/dist/core/token-ruler.d.ts.map +1 -1
- package/dist/core/token-ruler.js +3 -16
- package/dist/core/token-ruler.js.map +1 -1
- package/dist/core/turn-scheduler.d.ts +1 -1
- package/dist/core/turn-scheduler.d.ts.map +1 -1
- package/dist/core/turn-scheduler.js +1 -1
- package/dist/core/turn-scheduler.js.map +1 -1
- package/dist/core/worker-cap.d.ts +2 -4
- package/dist/core/worker-cap.d.ts.map +1 -1
- package/dist/core/worker-cap.js +13 -4
- package/dist/core/worker-cap.js.map +1 -1
- package/dist/core/{run-ops.sql → worker-ops.sql} +14 -14
- package/dist/core/workspace-settings.d.ts.map +1 -1
- package/dist/core/workspace-settings.js +17 -9
- package/dist/core/workspace-settings.js.map +1 -1
- package/dist/digest/Digest.d.ts +2 -1
- package/dist/digest/Digest.d.ts.map +1 -1
- package/dist/digest/Digest.js +510 -149
- package/dist/digest/Digest.js.map +1 -1
- package/dist/digest/digest.sql +23 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/observe/api.d.ts +6 -0
- package/dist/observe/api.d.ts.map +1 -0
- package/dist/observe/api.js +11 -0
- package/dist/observe/api.js.map +1 -0
- package/dist/observe/init.d.ts +7 -0
- package/dist/observe/init.d.ts.map +1 -0
- package/dist/observe/init.js +159 -0
- package/dist/observe/init.js.map +1 -0
- package/dist/observe/metrics.d.ts +6 -0
- package/dist/observe/metrics.d.ts.map +1 -0
- package/dist/observe/metrics.js +15 -0
- package/dist/observe/metrics.js.map +1 -0
- package/dist/observe/spans.d.ts +4 -0
- package/dist/observe/spans.d.ts.map +1 -0
- package/dist/observe/spans.js +51 -0
- package/dist/observe/spans.js.map +1 -0
- package/dist/schemes/EffectPolicy.d.ts +1 -0
- package/dist/schemes/EffectPolicy.d.ts.map +1 -1
- package/dist/schemes/EffectPolicy.js +5 -2
- package/dist/schemes/EffectPolicy.js.map +1 -1
- package/dist/schemes/Exec.d.ts +9 -14
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +402 -262
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts +9 -9
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +49 -18
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/File.d.ts +7 -13
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +280 -151
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts +8 -12
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +402 -233
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +71 -32
- package/dist/schemes/Prompt.d.ts +3 -3
- package/dist/schemes/Prompt.d.ts.map +1 -1
- package/dist/schemes/Prompt.js +10 -10
- package/dist/schemes/Prompt.js.map +1 -1
- package/dist/schemes/Skill.d.ts +2 -3
- package/dist/schemes/Skill.d.ts.map +1 -1
- package/dist/schemes/Skill.js +2 -6
- package/dist/schemes/Skill.js.map +1 -1
- package/dist/schemes/Worker.d.ts +11 -19
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +210 -89
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-chunk.d.ts.map +1 -1
- package/dist/schemes/_entry-chunk.js +12 -5
- package/dist/schemes/_entry-chunk.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts +11 -9
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +72 -13
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +28 -10
- package/dist/schemes/_entry-find.d.ts +49 -18
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +348 -195
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-find.sql +20 -8
- package/dist/schemes/_entry-graph.d.ts +4 -2
- package/dist/schemes/_entry-graph.d.ts.map +1 -1
- package/dist/schemes/_entry-graph.js +55 -31
- package/dist/schemes/_entry-graph.js.map +1 -1
- package/dist/schemes/_entry-graph.sql +37 -22
- package/dist/schemes/_entry-manifest.d.ts +10 -15
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +50 -268
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.d.ts +14 -15
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +121 -110
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-ops.sql +2 -3
- package/dist/schemes/_entry-semantic.d.ts +22 -9
- package/dist/schemes/_entry-semantic.d.ts.map +1 -1
- package/dist/schemes/_entry-semantic.js +127 -67
- package/dist/schemes/_entry-semantic.js.map +1 -1
- package/dist/schemes/_entry-semantic.sql +63 -45
- package/dist/schemes/_entry-send.d.ts +3 -4
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js +48 -23
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/schemes/_path-scope.d.ts +23 -0
- package/dist/schemes/_path-scope.d.ts.map +1 -0
- package/dist/schemes/_path-scope.js +61 -0
- package/dist/schemes/_path-scope.js.map +1 -0
- package/dist/schemes/_search-candidate.d.ts +20 -0
- package/dist/schemes/_search-candidate.d.ts.map +1 -0
- package/dist/schemes/_search-candidate.js +19 -0
- package/dist/schemes/_search-candidate.js.map +1 -0
- package/dist/schemes/_search-exclusion.d.ts +7 -0
- package/dist/schemes/_search-exclusion.d.ts.map +1 -0
- package/dist/schemes/_search-exclusion.js +23 -0
- package/dist/schemes/_search-exclusion.js.map +1 -0
- package/dist/schemes/_search-index.d.ts +6 -0
- package/dist/schemes/_search-index.d.ts.map +1 -0
- package/dist/schemes/_search-index.js +328 -0
- package/dist/schemes/_search-index.js.map +1 -0
- package/dist/schemes/cosine.js +1 -1
- package/dist/schemes/cosine.js.map +1 -1
- package/dist/schemes/exec-abort.js +3 -3
- package/dist/schemes/exec-abort.js.map +1 -1
- package/dist/schemes/exec-env.js +3 -3
- package/dist/schemes/exec-env.js.map +1 -1
- package/dist/server/BranchBatches.d.ts +49 -0
- package/dist/server/BranchBatches.d.ts.map +1 -0
- package/dist/server/BranchBatches.js +592 -0
- package/dist/server/BranchBatches.js.map +1 -0
- package/dist/server/Daemon.d.ts +39 -71
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +1133 -491
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DaemonModule.d.ts +31 -0
- package/dist/server/DaemonModule.d.ts.map +1 -0
- package/dist/server/DaemonModule.js +2 -0
- package/dist/server/DaemonModule.js.map +1 -0
- package/dist/server/branch-batch.sql +154 -0
- package/dist/server/client-input.d.ts +13 -0
- package/dist/server/client-input.d.ts.map +1 -1
- package/dist/server/client-input.js +268 -57
- package/dist/server/client-input.js.map +1 -1
- package/dist/server/dispatch-as-plurnk.d.ts +1 -1
- package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
- package/dist/server/dispatch-as-plurnk.js +15 -7
- package/dist/server/dispatch-as-plurnk.js.map +1 -1
- package/dist/server/drain.sql +96 -65
- package/dist/server/envelope.d.ts +4 -7
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +118 -95
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +18 -23
- package/dist/server/exec-poll-backoff.js +1 -1
- package/dist/server/exec-poll-backoff.js.map +1 -1
- package/dist/server/lifecycle-recovery.sql +112 -2
- package/dist/server/logEntry.d.ts +4 -2
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +6 -3
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/logEntry.sql +1 -1
- package/dist/server/loop-model.d.ts.map +1 -1
- package/dist/server/loop-model.js +22 -9
- package/dist/server/loop-model.js.map +1 -1
- package/dist/server/loopDocs.d.ts.map +1 -1
- package/dist/server/loopDocs.js +5 -4
- package/dist/server/loopDocs.js.map +1 -1
- package/dist/server/seam-entry-read.sql +15 -10
- package/dist/server/seam-log-read.sql +2 -2
- package/dist/server/seam-loop.sql +1 -1
- package/dist/server/seam-proposal-list.sql +17 -7
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +79 -61
- package/dist/service.js.map +1 -1
- package/migrations/001_schema.sql +1010 -0
- package/package.json +65 -32
- package/dist/core/PluginLoader.d.ts +0 -20
- package/dist/core/PluginLoader.d.ts.map +0 -1
- package/dist/core/PluginLoader.js +0 -142
- package/dist/core/PluginLoader.js.map +0 -1
- package/dist/core/TelemetryChannel.d.ts +0 -37
- package/dist/core/TelemetryChannel.d.ts.map +0 -1
- package/dist/core/TelemetryChannel.js +0 -80
- package/dist/core/TelemetryChannel.js.map +0 -1
- package/dist/core/path-decode.d.ts +0 -3
- package/dist/core/path-decode.d.ts.map +0 -1
- package/dist/core/path-decode.js +0 -9
- package/dist/core/path-decode.js.map +0 -1
- package/dist/core/plugin-attribution.d.ts +0 -5
- package/dist/core/plugin-attribution.d.ts.map +0 -1
- package/dist/core/plugin-attribution.js +0 -39
- package/dist/core/plugin-attribution.js.map +0 -1
- package/dist/core/world-state.d.ts +0 -10
- package/dist/core/world-state.d.ts.map +0 -1
- package/dist/core/world-state.js +0 -35
- package/dist/core/world-state.js.map +0 -1
- package/dist/core/world-state.sql +0 -35
- package/dist/core/zero-pin.d.ts +0 -3
- package/dist/core/zero-pin.d.ts.map +0 -1
- package/dist/core/zero-pin.js +0 -16
- package/dist/core/zero-pin.js.map +0 -1
- package/dist/server/auto.d.ts +0 -6
- package/dist/server/auto.d.ts.map +0 -1
- package/dist/server/auto.js +0 -63
- package/dist/server/auto.js.map +0 -1
- package/dist/server/clientTurn.d.ts +0 -6
- package/dist/server/clientTurn.d.ts.map +0 -1
- package/dist/server/clientTurn.js +0 -22
- package/dist/server/clientTurn.js.map +0 -1
- package/dist/server/clientTurn.sql +0 -10
- package/dist/server/noProposals.d.ts +0 -6
- package/dist/server/noProposals.d.ts.map +0 -1
- package/dist/server/noProposals.js +0 -37
- package/dist/server/noProposals.js.map +0 -1
- package/dist/server/version-info.d.ts +0 -14
- package/dist/server/version-info.d.ts.map +0 -1
- package/dist/server/version-info.js +0 -69
- package/dist/server/version-info.js.map +0 -1
- package/migrations/0000-00-00.01_schema.sql +0 -536
- package/migrations/0004_loop-provider.sql +0 -3
- package/migrations/0005_subscription-published-channel.sql +0 -3
- package/migrations/0006_loop-max-turns.sql +0 -3
|
@@ -1,15 +1,34 @@
|
|
|
1
1
|
// ~semantic storage and ranking. Complete content-addressed derivations own the
|
|
2
|
-
//
|
|
2
|
+
// exact READ-body FTS, graph, and vectors. Vector search ranks every eligible
|
|
3
3
|
// vector in scope; FTS is only the explicit no-embedder fallback.
|
|
4
|
+
import { DEFAULT_RETRIEVAL_LIMIT } from "@plurnk/plurnk-contracts";
|
|
5
|
+
import { EmbeddingVector, TextCoordinates, } from "@plurnk/plurnk-mimetypes";
|
|
4
6
|
import EntryChunk from "./_entry-chunk.js";
|
|
5
7
|
export default class EntrySemantic {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
// FIND owns result positions uniformly across matcher dialects. Semantic
|
|
9
|
+
// search adds only an optional leading decimal threshold; any remaining
|
|
10
|
+
// integers retain the ordinary FIND positional meaning. The rank query
|
|
11
|
+
// needs only the prefix ending at the requested page, while an open-ended
|
|
12
|
+
// or malformed page remains exhaustive so the shared pager can report the
|
|
13
|
+
// authoritative result extent.
|
|
14
|
+
static resultSelection(marker) {
|
|
15
|
+
if (marker === null) {
|
|
16
|
+
return { threshold: null, page: { marks: [1, DEFAULT_RETRIEVAL_LIMIT] } };
|
|
11
17
|
}
|
|
12
|
-
|
|
18
|
+
const [first, ...remaining] = marker.marks;
|
|
19
|
+
if (Number.isInteger(first)) {
|
|
20
|
+
return {
|
|
21
|
+
threshold: null,
|
|
22
|
+
page: marker,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
const page = remaining.length === 0
|
|
26
|
+
? { marks: [1, DEFAULT_RETRIEVAL_LIMIT] }
|
|
27
|
+
: { marks: remaining };
|
|
28
|
+
return {
|
|
29
|
+
threshold: first,
|
|
30
|
+
page,
|
|
31
|
+
};
|
|
13
32
|
}
|
|
14
33
|
static maxEmbedSize() {
|
|
15
34
|
const raw = process.env.PLURNK_SERVICE_MAX_EMBED_SIZE;
|
|
@@ -33,13 +52,14 @@ export default class EntrySemantic {
|
|
|
33
52
|
if (content.length > 0)
|
|
34
53
|
await db.fts_insert.run({ derivation_id: derivationId, content });
|
|
35
54
|
}
|
|
36
|
-
// Cosine similarity over
|
|
55
|
+
// Cosine similarity over the framework-owned embedding wire — the SqlRite
|
|
37
56
|
// `cosine()` function delegates here (cosine.ts is the registration adapter).
|
|
38
|
-
// Alignment-proof: the BLOB Uint8Array may be an unaligned view, so copy the
|
|
39
|
-
// exact bytes to a fresh buffer before the Float32 view. A zero vector → 0.
|
|
40
57
|
static cosine(a, b) {
|
|
41
|
-
const x =
|
|
42
|
-
const y =
|
|
58
|
+
const x = EmbeddingVector.decode(a, undefined, "cosine left operand");
|
|
59
|
+
const y = EmbeddingVector.decode(b, undefined, "cosine right operand");
|
|
60
|
+
if (x.length !== y.length) {
|
|
61
|
+
throw new RangeError(`cosine operands must have the same dimension, got ${x.length} and ${y.length}`);
|
|
62
|
+
}
|
|
43
63
|
let dot = 0, nx = 0, ny = 0;
|
|
44
64
|
for (let i = 0; i < x.length; i++) {
|
|
45
65
|
dot += x[i] * y[i];
|
|
@@ -70,14 +90,15 @@ export default class EntrySemantic {
|
|
|
70
90
|
// handle): ABSENT → one whole-entry chunk from the fallback vector (today's
|
|
71
91
|
// behavior, no extra embed call); PRESENT → lossless tile, embed each chunk.
|
|
72
92
|
// Returns the chunk list + model for indexEmbedding; never touches the DB.
|
|
73
|
-
static async deriveEmbeddings(
|
|
74
|
-
const info =
|
|
93
|
+
static async deriveEmbeddings(plan, content, symbols, fallbackEmbedding, fallbackModel, signal, onProgress) {
|
|
94
|
+
const { info } = plan;
|
|
75
95
|
if (info === null) {
|
|
76
|
-
const totalLines =
|
|
96
|
+
const totalLines = TextCoordinates.logicalLines(content).length;
|
|
77
97
|
if (fallbackEmbedding === undefined || fallbackEmbedding.byteLength === 0 || totalLines === 0)
|
|
78
98
|
return { chunks: [], model: undefined };
|
|
79
99
|
return { chunks: [{ lineStart: 1, lineEnd: totalLines, vector: fallbackEmbedding }], model: fallbackModel };
|
|
80
100
|
}
|
|
101
|
+
EntrySemantic.assertExactChunking(plan);
|
|
81
102
|
// Symbol edges (a @graph endLine, or the line before a symbol starts) are the
|
|
82
103
|
// tiler's preferred cut points; it still tiles every line if there are none.
|
|
83
104
|
const boundaries = new Set();
|
|
@@ -87,23 +108,25 @@ export default class EntrySemantic {
|
|
|
87
108
|
if (typeof s.line === "number" && s.line > 1)
|
|
88
109
|
boundaries.add(s.line - 1);
|
|
89
110
|
}
|
|
90
|
-
//
|
|
91
|
-
//
|
|
92
|
-
//
|
|
93
|
-
//
|
|
111
|
+
// A remote embedder may omit its own counter. The pass-wide semantic plan
|
|
112
|
+
// preserves the one fallback tokenizer resolution, including identity and
|
|
113
|
+
// exactness; {§semantic-embed-dedup} owns its derivation identity and #95
|
|
114
|
+
// owns whether an inexact resolution may authorize chunking.
|
|
94
115
|
if (info.contextWindow === null)
|
|
95
116
|
throw new Error("remote embedder reports no input context window — set PLURNK_MIMETYPES_EMBED_CONTEXT_WINDOW to the endpoint's limit");
|
|
96
|
-
const counter =
|
|
117
|
+
const counter = plan.countTokens;
|
|
118
|
+
if (counter === null)
|
|
119
|
+
throw new Error("semantic plan has no token counter for an embedder with a declared context window");
|
|
120
|
+
signal?.throwIfAborted();
|
|
97
121
|
const budget = EntrySemantic.#chunkBudget(info.contextWindow);
|
|
98
|
-
let specs = await EntryChunk.tile(content, boundaries, budget, EntrySemantic.#chunkOverlap(), counter, (progress) => onProgress?.({ phase: "planning", ...progress }));
|
|
122
|
+
let specs = await EntryChunk.tile(content, boundaries, budget, EntrySemantic.#chunkOverlap(), (text) => counter(text, { signal }), (progress) => onProgress?.({ phase: "planning", ...progress }));
|
|
123
|
+
signal?.throwIfAborted();
|
|
99
124
|
if (specs.length === 0)
|
|
100
125
|
return { chunks: [], model: undefined };
|
|
101
|
-
//
|
|
102
|
-
//
|
|
103
|
-
//
|
|
104
|
-
|
|
105
|
-
// re-validates the partial and throws — embedBatch embeds raw text directly.
|
|
106
|
-
const vectors = await mimetypes.embedBatch(specs.map((s) => s.text), {
|
|
126
|
+
// Tiles cross the ordered batch seam as raw fragment text, never as
|
|
127
|
+
// standalone documents requiring format validation.
|
|
128
|
+
// {§mimetype-embedding}, {§derivation-dedup-parallel}
|
|
129
|
+
const vectors = await plan.mimetypes.embedBatch(specs.map((s) => s.text), {
|
|
107
130
|
signal,
|
|
108
131
|
onProgress: (progress) => onProgress?.({ phase: "embedding", ...progress }),
|
|
109
132
|
});
|
|
@@ -115,6 +138,17 @@ export default class EntrySemantic {
|
|
|
115
138
|
}
|
|
116
139
|
return { chunks, model: chunks.length > 0 ? info.model : undefined };
|
|
117
140
|
}
|
|
141
|
+
// {§semantic-embed-dedup} — an estimate may inform callers but cannot prove
|
|
142
|
+
// that a chunk fits an embedder's declared token window.
|
|
143
|
+
static assertExactChunking(plan, pushNotice) {
|
|
144
|
+
const { info, tokenizer } = plan;
|
|
145
|
+
if (info === null || info.countTokens !== null || tokenizer === null || tokenizer.exact)
|
|
146
|
+
return;
|
|
147
|
+
for (const notice of tokenizer.notices ?? [])
|
|
148
|
+
pushNotice?.(notice);
|
|
149
|
+
throw new Error(`semantic chunking requires an exact token counter for ${JSON.stringify(info.model)}; `
|
|
150
|
+
+ `${JSON.stringify(tokenizer.tokenizerId)} is an estimate and cannot prove the declared ${info.contextWindow}-token window`);
|
|
151
|
+
}
|
|
118
152
|
// Chunk budget in tokens — `.env.defaults` is the law, no code fallback. EMPTY =
|
|
119
153
|
// the embedder's reported window (scalable — NO model-specific number baked in);
|
|
120
154
|
// a positive value caps BELOW the window (e.g. to sweep granularity).
|
|
@@ -134,28 +168,44 @@ export default class EntrySemantic {
|
|
|
134
168
|
return v;
|
|
135
169
|
}
|
|
136
170
|
// The embedder capability surface (plugin window + tokenizer + model id), probed
|
|
137
|
-
// through the Mimetypes handle. null
|
|
171
|
+
// through the Mimetypes handle. null means semantic derivation is unavailable.
|
|
138
172
|
static async #embedderInfo(mimetypes) {
|
|
139
|
-
// PLURNK_SERVICE_EMBED_DISABLE=1 forces the no-embedder path even
|
|
140
|
-
//
|
|
141
|
-
// deep_hash config) funnels through here, so one gate makes everything FTS-only. The fast lane
|
|
142
|
-
// (mock-provider tests) sets it so the suite doesn't spin up the MiniLM worker pool for nothing.
|
|
173
|
+
// PLURNK_SERVICE_EMBED_DISABLE=1 forces the no-embedder path even though the default service
|
|
174
|
+
// includes one. The semantic stack funnels through this gate, so disabling it is wholly FTS-only.
|
|
143
175
|
if (process.env.PLURNK_SERVICE_EMBED_DISABLE === "1")
|
|
144
176
|
return null;
|
|
145
177
|
return await mimetypes.embedderInfo();
|
|
146
178
|
}
|
|
147
|
-
//
|
|
148
|
-
//
|
|
149
|
-
//
|
|
150
|
-
|
|
151
|
-
// get cosine-compared against the new model's), or sweeping the chunk knobs.
|
|
152
|
-
static async deepConfigSignature(mimetypes) {
|
|
179
|
+
// Resolve the pass-wide semantic facts once. The plan binds the selected
|
|
180
|
+
// counter to the same identity folded into every derivation hash, so entries
|
|
181
|
+
// cannot be tiled with provenance different from the configuration key.
|
|
182
|
+
static async prepareEmbeddings(mimetypes) {
|
|
153
183
|
const info = await EntrySemantic.#embedderInfo(mimetypes);
|
|
154
|
-
if (info === null)
|
|
155
|
-
return
|
|
156
|
-
|
|
184
|
+
if (info === null) {
|
|
185
|
+
return {
|
|
186
|
+
mimetypes,
|
|
187
|
+
info: null,
|
|
188
|
+
countTokens: null,
|
|
189
|
+
tokenizer: null,
|
|
190
|
+
signature: "embed:none",
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
const tokenizer = info.countTokens === null && info.contextWindow !== null
|
|
194
|
+
? await mimetypes.tokenizer(info.model ?? "")
|
|
195
|
+
: null;
|
|
196
|
+
const countTokens = info.countTokens ?? tokenizer?.countTokens ?? null;
|
|
197
|
+
const tokenizerIdentity = tokenizer === null
|
|
198
|
+
? ""
|
|
199
|
+
: `:tokenizer=${tokenizer.tokenizerId}:${tokenizer.exact ? "exact" : "estimate"}`;
|
|
200
|
+
const base = `embed:${info.model ?? "?"}:${info.contextWindow}:${info.contextWindow === null ? "?" : EntrySemantic.#chunkBudget(info.contextWindow)}:${EntrySemantic.#chunkOverlap()}:wire=${EmbeddingVector.encoding}${tokenizerIdentity}`;
|
|
157
201
|
const maxBytes = EntrySemantic.maxEmbedSize();
|
|
158
|
-
return
|
|
202
|
+
return {
|
|
203
|
+
mimetypes,
|
|
204
|
+
info,
|
|
205
|
+
countTokens,
|
|
206
|
+
tokenizer,
|
|
207
|
+
signature: maxBytes === 0 ? base : `${base}:max-bytes=${maxBytes}`,
|
|
208
|
+
};
|
|
159
209
|
}
|
|
160
210
|
// Build the FTS5 query used only by the no-embedder keyword fallback.
|
|
161
211
|
static ftsQueryFor(text) {
|
|
@@ -165,23 +215,27 @@ export default class EntrySemantic {
|
|
|
165
215
|
return [...new Set(terms)].join(" OR ");
|
|
166
216
|
}
|
|
167
217
|
// The ~query dispatch: embed the query text through the SAME channel and cosine-rank
|
|
168
|
-
// every vector in scope
|
|
169
|
-
// chunk's line span (the Finding extent). No embedder
|
|
170
|
-
// FTS-only keyword rank (whole-entry findings);
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
218
|
+
// every vector in scope. Each result carries its best-matching
|
|
219
|
+
// chunk's line span (the Finding extent). No embedder -> an unthresholded
|
|
220
|
+
// ranked prefix degrades to FTS-only keyword rank (whole-entry findings);
|
|
221
|
+
// a similarity threshold stays 501.
|
|
222
|
+
static async rankCandidates(db, candidates, mimetypes, queryText, selection) {
|
|
223
|
+
const { threshold } = selection;
|
|
224
|
+
const toResult = (x) => ({
|
|
225
|
+
key: x.key,
|
|
226
|
+
lineStart: x.line_start,
|
|
227
|
+
lineEnd: x.line_end,
|
|
228
|
+
});
|
|
229
|
+
if (threshold !== null && (threshold <= 0 || threshold >= 1)) {
|
|
230
|
+
return { status: 416, results: [] };
|
|
231
|
+
}
|
|
232
|
+
if (candidates.length === 0)
|
|
179
233
|
return { status: 200, results: [] };
|
|
180
|
-
const
|
|
234
|
+
const serializedCandidates = JSON.stringify(candidates);
|
|
181
235
|
// The query embedding honors the SAME gate as the corpus (#embedderInfo /
|
|
182
236
|
// PLURNK_SERVICE_EMBED_DISABLE): with the embeddings package installed but disabled,
|
|
183
237
|
// calling process() directly would compute a query vector and rank it against
|
|
184
|
-
// an empty
|
|
238
|
+
// an empty derivation_embeddings - every ~query silently []. Disabled means the honest
|
|
185
239
|
// FTS keyword fallback, same as no embedder at all.
|
|
186
240
|
const info = await EntrySemantic.#embedderInfo(mimetypes);
|
|
187
241
|
const r = info === null
|
|
@@ -190,28 +244,34 @@ export default class EntrySemantic {
|
|
|
190
244
|
if (r.embedding === undefined || r.embedding.byteLength === 0 || r.embeddingModel === undefined) {
|
|
191
245
|
// FTS fallback: no embedder, so there is no query vector to cosine with. Top-K ranks
|
|
192
246
|
// by BM25 keyword relevance alone; the <0.x> threshold form is intrinsically cosine-
|
|
193
|
-
// based (no bounded BM25 analogue)
|
|
194
|
-
if (
|
|
247
|
+
// based (no bounded BM25 analogue), so it stays 501.
|
|
248
|
+
if (threshold !== null)
|
|
195
249
|
return { status: 501, results: [] };
|
|
196
250
|
const ftsQuery = EntrySemantic.ftsQueryFor(queryText);
|
|
197
251
|
if (ftsQuery.length === 0)
|
|
198
252
|
return { status: 200, results: [] };
|
|
199
|
-
const rows = await db.
|
|
200
|
-
fts_query: ftsQuery,
|
|
253
|
+
const rows = await db.semantic_rank_candidates_fts.all({
|
|
254
|
+
fts_query: ftsQuery,
|
|
255
|
+
candidates: serializedCandidates,
|
|
256
|
+
k: -1,
|
|
201
257
|
});
|
|
202
258
|
return { status: 200, results: rows.map(toResult) };
|
|
203
259
|
}
|
|
204
|
-
if (
|
|
205
|
-
const rows = await db.
|
|
206
|
-
|
|
260
|
+
if (threshold === null) {
|
|
261
|
+
const rows = await db.semantic_rank_candidates.all({
|
|
262
|
+
candidates: serializedCandidates,
|
|
263
|
+
query_vector: r.embedding,
|
|
264
|
+
embedding_model: r.embeddingModel,
|
|
265
|
+
k: -1,
|
|
207
266
|
});
|
|
208
267
|
return { status: 200, results: rows.map(toResult) };
|
|
209
268
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
269
|
+
const rows = await db.semantic_rank_candidates_threshold.all({
|
|
270
|
+
candidates: serializedCandidates,
|
|
271
|
+
query_vector: r.embedding,
|
|
272
|
+
embedding_model: r.embeddingModel,
|
|
273
|
+
threshold,
|
|
274
|
+
cap: -1,
|
|
215
275
|
});
|
|
216
276
|
return { status: 200, results: rows.map(toResult) };
|
|
217
277
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-semantic.js","sourceRoot":"","sources":["../../src/schemes/_entry-semantic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"_entry-semantic.js","sourceRoot":"","sources":["../../src/schemes/_entry-semantic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,81 +1,99 @@
|
|
|
1
|
-
--
|
|
1
|
+
-- {§relation-indexed-dialects} Exhaustive cosine ranking over every complete
|
|
2
2
|
-- derivation in scope. FTS is retained only as the explicit no-embedder fallback;
|
|
3
3
|
-- it never gates vector recall.
|
|
4
4
|
|
|
5
5
|
-- PREP: fts_delete
|
|
6
|
-
DELETE FROM
|
|
6
|
+
DELETE FROM derivation_fts WHERE rowid = $derivation_id;
|
|
7
7
|
|
|
8
8
|
-- PREP: fts_insert
|
|
9
|
-
INSERT INTO
|
|
9
|
+
INSERT INTO derivation_fts (rowid, content) VALUES ($derivation_id, $content);
|
|
10
10
|
|
|
11
11
|
-- PREP: embedding_set
|
|
12
12
|
-- Insert ONE chunk's vector + its <L> extent + the model. The caller clears the
|
|
13
13
|
-- entry's rows (embedding_delete) first and inserts each chunk in seq order, so no
|
|
14
14
|
-- upsert is needed — a re-derivation is delete-all then insert-each.
|
|
15
|
-
INSERT INTO
|
|
15
|
+
INSERT INTO derivation_embeddings (derivation_id, chunk_seq, line_start, line_end, vector, embedding_model)
|
|
16
16
|
VALUES ($derivation_id, $chunk_seq, $line_start, $line_end, $vector, $embedding_model);
|
|
17
17
|
|
|
18
18
|
-- PREP: embedding_delete
|
|
19
19
|
-- Clears ALL of an entry's chunk rows (the re-derivation reset).
|
|
20
|
-
DELETE FROM
|
|
20
|
+
DELETE FROM derivation_embeddings WHERE derivation_id = $derivation_id;
|
|
21
21
|
|
|
22
|
-
-- PREP:
|
|
23
|
-
-- Exhaustive cosine rank over
|
|
24
|
-
-- Many chunk rows per
|
|
22
|
+
-- PREP: semantic_rank_candidates
|
|
23
|
+
-- Exhaustive cosine rank over caller-supplied address→derivation candidates.
|
|
24
|
+
-- Many chunk rows per resource → rank by its BEST chunk (per-resource top cosine via
|
|
25
25
|
-- ROW_NUMBER), and surface that winning chunk's line span as the finding extent
|
|
26
26
|
-- (Project Findings). embedding_model filter keeps cosine within one model's dimensions.
|
|
27
|
-
WITH
|
|
28
|
-
SELECT
|
|
27
|
+
WITH candidates AS (
|
|
28
|
+
SELECT json_extract(value, '$.key') AS key,
|
|
29
|
+
json_extract(value, '$.deepHash') AS deep_hash
|
|
30
|
+
FROM json_each($candidates)
|
|
31
|
+
),
|
|
32
|
+
ranked AS (
|
|
33
|
+
SELECT c.key, em.line_start, em.line_end,
|
|
29
34
|
cosine(em.vector, $query_vector) AS score,
|
|
30
|
-
ROW_NUMBER() OVER (PARTITION BY
|
|
31
|
-
FROM
|
|
32
|
-
JOIN
|
|
33
|
-
JOIN
|
|
35
|
+
ROW_NUMBER() OVER (PARTITION BY c.key ORDER BY cosine(em.vector, $query_vector) DESC) AS rn
|
|
36
|
+
FROM candidates c
|
|
37
|
+
JOIN derivations d ON d.deep_hash = c.deep_hash
|
|
38
|
+
JOIN derivation_embeddings em ON em.derivation_id = d.id AND em.embedding_model = $embedding_model
|
|
34
39
|
WHERE d.state = 'complete'
|
|
35
|
-
AND e.workspace_id = $workspace_id
|
|
36
|
-
AND e.scheme = $scheme
|
|
37
|
-
AND e.id IN (SELECT value FROM json_each($entry_ids))
|
|
38
40
|
)
|
|
39
|
-
SELECT
|
|
41
|
+
SELECT key, line_start, line_end FROM ranked
|
|
40
42
|
WHERE rn = 1
|
|
41
43
|
ORDER BY score DESC
|
|
42
44
|
LIMIT $k;
|
|
43
45
|
|
|
44
|
-
-- PREP:
|
|
45
|
-
--
|
|
46
|
-
--
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
-- PREP: semantic_rank_candidates_threshold
|
|
47
|
+
-- {§find-semantic-selection}: threshold the exhaustive cosine rank before the
|
|
48
|
+
-- shared FIND pager selects its ordered result page.
|
|
49
|
+
WITH candidates AS (
|
|
50
|
+
SELECT json_extract(value, '$.key') AS key,
|
|
51
|
+
json_extract(value, '$.deepHash') AS deep_hash
|
|
52
|
+
FROM json_each($candidates)
|
|
53
|
+
),
|
|
54
|
+
ranked AS (
|
|
55
|
+
SELECT c.key, em.line_start, em.line_end,
|
|
50
56
|
cosine(em.vector, $query_vector) AS score,
|
|
51
|
-
ROW_NUMBER() OVER (PARTITION BY
|
|
52
|
-
FROM
|
|
53
|
-
JOIN
|
|
54
|
-
JOIN
|
|
57
|
+
ROW_NUMBER() OVER (PARTITION BY c.key ORDER BY cosine(em.vector, $query_vector) DESC) AS rn
|
|
58
|
+
FROM candidates c
|
|
59
|
+
JOIN derivations d ON d.deep_hash = c.deep_hash
|
|
60
|
+
JOIN derivation_embeddings em ON em.derivation_id = d.id AND em.embedding_model = $embedding_model
|
|
55
61
|
WHERE d.state = 'complete'
|
|
56
|
-
AND e.workspace_id = $workspace_id
|
|
57
|
-
AND e.scheme = $scheme
|
|
58
|
-
AND e.id IN (SELECT value FROM json_each($entry_ids))
|
|
59
62
|
)
|
|
60
|
-
SELECT
|
|
63
|
+
SELECT key, line_start, line_end FROM ranked
|
|
61
64
|
WHERE rn = 1 AND score >= $threshold
|
|
62
65
|
ORDER BY score DESC
|
|
63
66
|
LIMIT $cap;
|
|
64
67
|
|
|
65
|
-
-- PREP:
|
|
66
|
-
-- FTS-only fallback when no embedder is installed: rank
|
|
67
|
-
-- relevance alone (no
|
|
68
|
+
-- PREP: semantic_rank_candidates_fts
|
|
69
|
+
-- FTS-only fallback when no embedder is installed: rank the exact READ body by BM25
|
|
70
|
+
-- relevance alone (no derivation_embeddings join, no cosine). Without
|
|
68
71
|
-- chunk vectors there is no winning span, so the finding is the whole entry — line
|
|
69
72
|
-- 1..its line count, derived from the indexed FTS content.
|
|
70
|
-
|
|
73
|
+
WITH candidates AS (
|
|
74
|
+
SELECT json_extract(value, '$.key') AS key,
|
|
75
|
+
json_extract(value, '$.deepHash') AS deep_hash
|
|
76
|
+
FROM json_each($candidates)
|
|
77
|
+
),
|
|
78
|
+
ranked AS (
|
|
79
|
+
SELECT c.key,
|
|
80
|
+
replace(replace(f.content, char(13) || char(10), char(10)), char(13), char(10)) AS content,
|
|
81
|
+
bm25(derivation_fts) AS score
|
|
82
|
+
FROM derivation_fts f
|
|
83
|
+
JOIN derivations d ON d.id = f.rowid AND d.state = 'complete'
|
|
84
|
+
JOIN candidates c ON c.deep_hash = d.deep_hash
|
|
85
|
+
WHERE f.content MATCH $fts_query
|
|
86
|
+
)
|
|
87
|
+
SELECT key,
|
|
71
88
|
1 AS line_start,
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
89
|
+
CASE
|
|
90
|
+
WHEN length(content) = 0 THEN 0
|
|
91
|
+
ELSE length(content) - length(replace(content, char(10), ''))
|
|
92
|
+
+ CASE
|
|
93
|
+
WHEN substr(content, -1) = char(10) THEN 0
|
|
94
|
+
ELSE 1
|
|
95
|
+
END
|
|
96
|
+
END AS line_end
|
|
97
|
+
FROM ranked
|
|
98
|
+
ORDER BY score
|
|
81
99
|
LIMIT $k;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import type { SendStatement } from "@plurnk/plurnk-
|
|
1
|
+
import type { SendStatement } from "@plurnk/plurnk-contracts";
|
|
2
2
|
import type { PlurnkSchemeContext } from "../core/scheme-types.ts";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
[key: string]: unknown;
|
|
3
|
+
import { type SchemeResult } from "../core/results.ts";
|
|
4
|
+
export interface SendResult extends SchemeResult {
|
|
6
5
|
}
|
|
7
6
|
export default class EntrySend {
|
|
8
7
|
#private;
|
|
@@ -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,
|
|
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;AAG9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,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,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA4HnJ;CACJ"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
// Shared SEND dispatcher for entry-bearing schemes. Schemes interpret
|
|
2
|
-
// status codes per SPEC §send-dispatch. v0 handles 410 (Gone, delete the resource)
|
|
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
4
|
import Owner from "../core/Owner.js";
|
|
5
|
-
import {
|
|
5
|
+
import { entryPathnameOf, renderAddress } from "../core/plurnk-uri.js";
|
|
6
6
|
import EntryCrud from "./_entry-crud.js";
|
|
7
7
|
import ChannelWrite from "../core/ChannelWrite.js";
|
|
8
|
+
import Results from "../core/results.js";
|
|
8
9
|
export default class EntrySend {
|
|
9
10
|
static #pathnameOf(statement) {
|
|
10
11
|
const path = statement.target;
|
|
11
12
|
if (path === null)
|
|
12
13
|
return null;
|
|
13
|
-
|
|
14
|
-
return path.raw; // regex source — parens are syntax, never encoded
|
|
15
|
-
return decodePathParens(path.kind === "url" ? path.pathname : path.raw); // #239 item 4
|
|
14
|
+
return entryPathnameOf(path);
|
|
16
15
|
}
|
|
17
16
|
static #fragmentOf(statement) {
|
|
18
17
|
const path = statement.target;
|
|
@@ -21,47 +20,73 @@ export default class EntrySend {
|
|
|
21
20
|
return path.fragment;
|
|
22
21
|
}
|
|
23
22
|
static async sendToWorkspaceEntry(statement, ctx, scheme, explicitOwnerId) {
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
const failure = (code, status, detail, fields = {}, extensions = {}) => Results.failure(`scheme:${scheme}`, code, status, detail, fields, extensions);
|
|
24
|
+
if (statement.target === null) {
|
|
25
|
+
return failure("target-required", 400, "Directed SEND requires a target path.", {}, {
|
|
26
|
+
recovery: "Provide the target path.",
|
|
27
|
+
retryable: false,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
26
30
|
const status = statement.signal;
|
|
27
|
-
if (status === null)
|
|
28
|
-
return
|
|
29
|
-
|
|
31
|
+
if (status === null) {
|
|
32
|
+
return failure("status-required", 400, "SEND requires a numeric status code.", {}, {
|
|
33
|
+
recovery: "Provide a numeric SEND status.",
|
|
34
|
+
retryable: false,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
// SEND[410] Gone — delete the targeted resource (SPEC {§send-dispatch}). With a
|
|
30
38
|
// #fragment, deletes just that channel; without, deletes the whole entry.
|
|
31
39
|
if (status === 410) {
|
|
32
40
|
const pathname = EntrySend.#pathnameOf(statement);
|
|
33
41
|
if (pathname === null)
|
|
34
|
-
return
|
|
42
|
+
return failure("target-required", 400, "SEND[410] requires a target path.");
|
|
43
|
+
const target = renderAddress(scheme, pathname);
|
|
35
44
|
const fragment = EntrySend.#fragmentOf(statement);
|
|
36
45
|
if (fragment !== null) {
|
|
37
46
|
const { db, workspaceId } = ctx;
|
|
38
47
|
const entry = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: explicitOwnerId ?? await Owner.commonsId(db, workspaceId), scheme, pathname });
|
|
39
|
-
if (entry === undefined)
|
|
40
|
-
return {
|
|
48
|
+
if (entry === undefined) {
|
|
49
|
+
return failure("entry-not-found", 404, `No entry exists at ${target}.`, {}, { target });
|
|
50
|
+
}
|
|
41
51
|
const deleted = await db.crud_delete_channel.get({ entry_id: entry.id, name: fragment });
|
|
42
|
-
return
|
|
52
|
+
return deleted === undefined
|
|
53
|
+
? failure("channel-not-found", 404, `No channel named #${fragment} exists at ${target}.`, {}, {
|
|
54
|
+
target,
|
|
55
|
+
channel: fragment,
|
|
56
|
+
})
|
|
57
|
+
: { status: 200 };
|
|
43
58
|
}
|
|
44
59
|
const result = await EntryCrud.deleteEntry(pathname, ctx, scheme, explicitOwnerId);
|
|
45
|
-
return
|
|
60
|
+
return result;
|
|
46
61
|
}
|
|
47
|
-
// SEND[499] Client Closed Request — cancel active subscription (SPEC §send-dispatch, §stream-control).
|
|
62
|
+
// SEND[499] Client Closed Request — cancel active subscription (SPEC {§send-dispatch}, {§stream-control}).
|
|
48
63
|
// Entry-bearing schemes never have subscriptions in v0; always return 404.
|
|
49
64
|
// Streaming schemes (sse / exec / etc.) override this and look up via
|
|
50
65
|
// findActiveSubscription, then call their teardown using the stored handle.
|
|
51
66
|
if (status === 499) {
|
|
52
67
|
const pathname = EntrySend.#pathnameOf(statement);
|
|
53
68
|
if (pathname === null)
|
|
54
|
-
return
|
|
69
|
+
return failure("target-required", 400, "SEND[499] requires a target path.");
|
|
70
|
+
const target = renderAddress(scheme, pathname);
|
|
55
71
|
const { db, workspaceId, workerId } = ctx;
|
|
56
72
|
const entry = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: explicitOwnerId ?? await Owner.commonsId(db, workspaceId), scheme, pathname });
|
|
57
|
-
if (entry === undefined)
|
|
58
|
-
return
|
|
73
|
+
if (entry === undefined) {
|
|
74
|
+
return failure("entry-not-found", 404, `No entry exists at ${target}.`, {}, { target });
|
|
75
|
+
}
|
|
59
76
|
const subscription = await ChannelWrite.findActiveSubscription(db, { workerId, entryId: entry.id });
|
|
60
|
-
if (subscription === null)
|
|
61
|
-
return
|
|
62
|
-
|
|
77
|
+
if (subscription === null) {
|
|
78
|
+
return failure("subscription-not-found", 404, `No active subscription exists at ${target}.`, {}, { target });
|
|
79
|
+
}
|
|
80
|
+
return failure("subscription-owned-elsewhere", 501, `Scheme '${subscription.scheme}' owns cancellation for this subscription.`, {}, {
|
|
81
|
+
target,
|
|
82
|
+
owningScheme: subscription.scheme,
|
|
83
|
+
retryable: false,
|
|
84
|
+
});
|
|
63
85
|
}
|
|
64
|
-
return
|
|
86
|
+
return failure("status-not-implemented", 501, `The '${scheme}' entry scheme does not interpret SEND status ${status}.`, {}, {
|
|
87
|
+
requestedStatus: status,
|
|
88
|
+
retryable: false,
|
|
89
|
+
}); // {§send-dispatch-entry-schemes-501-on-non-410}
|
|
65
90
|
}
|
|
66
91
|
}
|
|
67
92
|
//# sourceMappingURL=_entry-send.js.map
|