@plurnk/plurnk-service 1.3.12 → 1.4.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 +84 -77
- package/INSTALL.md +50 -25
- package/README.md +24 -10
- package/SPEC.md +2311 -928
- package/dist/Paths.d.ts +4 -1
- package/dist/Paths.d.ts.map +1 -1
- package/dist/Paths.js +23 -21
- 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 +3 -3
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +1 -1
- package/dist/content/index.js.map +1 -1
- package/dist/content/line-marker.d.ts +6 -9
- package/dist/content/line-marker.d.ts.map +1 -1
- package/dist/content/line-marker.js +7 -11
- package/dist/content/line-marker.js.map +1 -1
- package/dist/content/matcher.d.ts +14 -25
- 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-resolve.d.ts +8 -4
- package/dist/content/read-resolve.d.ts.map +1 -1
- package/dist/content/read-resolve.js +101 -49
- package/dist/content/read-resolve.js.map +1 -1
- package/dist/core/BranchReceipt.d.ts +7 -0
- package/dist/core/BranchReceipt.d.ts.map +1 -0
- package/dist/core/BranchReceipt.js +27 -0
- package/dist/core/BranchReceipt.js.map +1 -0
- package/dist/core/BudgetOverflow.d.ts +23 -0
- package/dist/core/BudgetOverflow.d.ts.map +1 -0
- package/dist/core/BudgetOverflow.js +61 -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 +28 -9
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +28 -21
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +11 -10
- package/dist/core/CoreSchemeServices.d.ts +10 -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 +29 -20
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +1488 -599
- 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 +48 -20
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +1208 -789
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +309 -217
- 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 +17 -0
- package/dist/core/LogBody.d.ts.map +1 -0
- package/dist/core/LogBody.js +148 -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 -1
- package/dist/core/LoopLifecycle.d.ts.map +1 -1
- package/dist/core/LoopLifecycle.js +55 -9
- package/dist/core/LoopLifecycle.js.map +1 -1
- package/dist/core/LoopLifecycle.sql +9 -3
- 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 +25 -24
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +313 -375
- 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 +1 -2
- package/dist/core/StrikeRail.d.ts.map +1 -1
- package/dist/core/StrikeRail.js +25 -55
- package/dist/core/StrikeRail.js.map +1 -1
- 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 +1 -1
- package/dist/core/caps/CapsResolve.d.ts.map +1 -1
- 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 +24 -8
- package/dist/core/caps/DbChannelCaps.js.map +1 -1
- package/dist/core/caps/DbEntryCaps.d.ts +4 -13
- package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
- package/dist/core/caps/DbEntryCaps.js +15 -6
- 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 +12 -11
- 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 -4
- package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.js +57 -62
- 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 +14 -7
- package/dist/core/caps/DbTagCaps.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 +41 -27
- 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.map +1 -1
- package/dist/core/git-iso.js +9 -15
- package/dist/core/git-iso.js.map +1 -1
- package/dist/core/git-membership.d.ts +1 -1
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +198 -146
- 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 +10 -11
- package/dist/core/git-state.js.map +1 -1
- 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 +2 -20
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +242 -368
- 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 +16 -5
- package/dist/core/results.d.ts.map +1 -1
- package/dist/core/results.js +27 -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 +9 -11
- 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} +11 -11
- 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 +337 -138
- package/dist/digest/Digest.js.map +1 -1
- package/dist/digest/digest.sql +19 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/matrix/live-specimen.d.ts +9 -0
- package/dist/matrix/live-specimen.d.ts.map +1 -0
- package/dist/matrix/live-specimen.js +37 -0
- package/dist/matrix/live-specimen.js.map +1 -0
- 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 +6 -11
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +364 -247
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts +8 -7
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +48 -9
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/File.d.ts +7 -11
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +279 -142
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts +4 -8
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +475 -208
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +62 -30
- package/dist/schemes/Prompt.d.ts +3 -2
- package/dist/schemes/Prompt.d.ts.map +1 -1
- package/dist/schemes/Prompt.js +9 -6
- package/dist/schemes/Prompt.js.map +1 -1
- package/dist/schemes/Skill.d.ts +1 -1
- package/dist/schemes/Skill.d.ts.map +1 -1
- package/dist/schemes/Skill.js +2 -3
- package/dist/schemes/Skill.js.map +1 -1
- package/dist/schemes/Worker.d.ts +8 -16
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +179 -69
- 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 +10 -9
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +59 -13
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +20 -8
- package/dist/schemes/_entry-find.d.ts +20 -15
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +339 -174
- 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 +9 -14
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +149 -77
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-ops.sql +1 -1
- package/dist/schemes/_entry-semantic.d.ts +23 -8
- package/dist/schemes/_entry-semantic.d.ts.map +1 -1
- package/dist/schemes/_entry-semantic.js +141 -60
- 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 +326 -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 +48 -0
- package/dist/server/BranchBatches.d.ts.map +1 -0
- package/dist/server/BranchBatches.js +591 -0
- package/dist/server/BranchBatches.js.map +1 -0
- package/dist/server/Daemon.d.ts +36 -66
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +920 -446
- 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 +152 -0
- package/dist/server/client-input.d.ts +12 -0
- package/dist/server/client-input.d.ts.map +1 -1
- package/dist/server/client-input.js +262 -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 +92 -62
- package/dist/server/envelope.d.ts +2 -5
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +119 -95
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +19 -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 +79 -2
- package/dist/server/logEntry.d.ts +3 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +4 -2
- 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 +66 -60
- package/dist/service.js.map +1 -1
- package/migrations/001_schema.sql +897 -0
- package/package.json +57 -26
- 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
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
// Search-index materialization for every readable workspace body. Entries
|
|
2
|
+
// and logs attach to the same immutable, content-addressed derivation artifacts;
|
|
3
|
+
// FTS, vectors, and graph relationships consume those artifacts uniformly.
|
|
4
|
+
import { isMimetypeInputError } from "@plurnk/plurnk-mimetypes";
|
|
5
|
+
import { createHash } from "node:crypto";
|
|
6
|
+
import { availableParallelism } from "node:os";
|
|
7
|
+
import EntryGraph from "./_entry-graph.js";
|
|
8
|
+
import EntrySemantic from "./_entry-semantic.js";
|
|
9
|
+
import LogBody from "../core/LogBody.js";
|
|
10
|
+
import matchSearchExclusion from "./_search-exclusion.js";
|
|
11
|
+
const NO_PROJECTION_IDENTITY = "projection:none";
|
|
12
|
+
export default class SearchIndex {
|
|
13
|
+
// The index materializes one immutable artifact per exact READ body and
|
|
14
|
+
// configuration identity, then atomically attaches resource addresses to it.
|
|
15
|
+
// Cancellation leaves a building artifact unattached for retry; a typed
|
|
16
|
+
// invalid-source failure is terminal and observable so
|
|
17
|
+
// one malformed specimen cannot hold workspace readiness hostage.
|
|
18
|
+
// Hash-keyed chains serialize concurrent workspace warm requests for the same
|
|
19
|
+
// artifact while distinct artifacts remain parallel.
|
|
20
|
+
static #deriveChains = new Map();
|
|
21
|
+
static async #deriveOne(ctx, r, hash, semanticPlan, searchExcluded, binary, callbacks = {}) {
|
|
22
|
+
const prior = SearchIndex.#deriveChains.get(hash) ?? Promise.resolve();
|
|
23
|
+
const run = prior.then(() => SearchIndex.#deriveOneUnlocked(ctx, r, hash, semanticPlan, searchExcluded, binary, callbacks));
|
|
24
|
+
const tail = run.catch(() => { }); // the chain survives a failed link; deriveOne's caller sees the rejection
|
|
25
|
+
SearchIndex.#deriveChains.set(hash, tail);
|
|
26
|
+
void tail.finally(() => {
|
|
27
|
+
if (SearchIndex.#deriveChains.get(hash) === tail)
|
|
28
|
+
SearchIndex.#deriveChains.delete(hash);
|
|
29
|
+
});
|
|
30
|
+
return run;
|
|
31
|
+
}
|
|
32
|
+
static async #deriveOneUnlocked(ctx, r, hash, semanticPlan, searchExcluded, binary, callbacks) {
|
|
33
|
+
const { db, mimetypes } = ctx;
|
|
34
|
+
if (mimetypes === undefined)
|
|
35
|
+
throw new Error("deriveOne: ctx.mimetypes is required");
|
|
36
|
+
const attach = async () => {
|
|
37
|
+
if (r.attachment === "entry") {
|
|
38
|
+
await db.graph_set_deep_hash.run({ entry_id: r.id, deep_hash: hash });
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
await db.log_set_deep_hash.run({ log_entry_id: r.id, deep_hash: hash });
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
let artifact = await db.derivation_get.get({ deep_hash: hash });
|
|
45
|
+
if (artifact?.state === "complete") {
|
|
46
|
+
await attach();
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (artifact === undefined) {
|
|
50
|
+
artifact = await db.derivation_create.get({ deep_hash: hash });
|
|
51
|
+
}
|
|
52
|
+
if (artifact === undefined)
|
|
53
|
+
throw new Error(`failed to create derivation artifact ${hash}`);
|
|
54
|
+
const derivationId = artifact.id;
|
|
55
|
+
const attachComplete = async (disposition, reason = null) => {
|
|
56
|
+
await db.derivation_complete.run({ derivation_id: derivationId, disposition, reason });
|
|
57
|
+
await attach();
|
|
58
|
+
};
|
|
59
|
+
const wantGraph = r.content.length > 0 && !binary;
|
|
60
|
+
if (searchExcluded !== undefined) {
|
|
61
|
+
await EntryGraph.populateFrom(db, derivationId, [], []);
|
|
62
|
+
await EntrySemantic.indexFts(db, derivationId, "");
|
|
63
|
+
await EntrySemantic.indexEmbedding(db, derivationId, [], undefined);
|
|
64
|
+
await attachComplete("excluded", searchExcluded);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (!wantGraph) {
|
|
68
|
+
await EntryGraph.populateFrom(db, derivationId, [], []);
|
|
69
|
+
await EntrySemantic.indexFts(db, derivationId, "");
|
|
70
|
+
await EntrySemantic.indexEmbedding(db, derivationId, [], undefined);
|
|
71
|
+
await attachComplete("nonsemantic", r.content.length === 0 ? "empty" : "binary");
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
let result;
|
|
75
|
+
try {
|
|
76
|
+
result = await mimetypes.process({ content: r.content, hint: r.mimetype, path: r.pathname }, { channels: ["symbols", "references"] });
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
if (ctx.signal?.aborted === true || !isMimetypeInputError(error))
|
|
80
|
+
throw error;
|
|
81
|
+
await EntryGraph.populateFrom(db, derivationId, [], []);
|
|
82
|
+
await EntrySemantic.indexFts(db, derivationId, "");
|
|
83
|
+
await EntrySemantic.indexEmbedding(db, derivationId, [], undefined);
|
|
84
|
+
await attachComplete("failed", error instanceof Error ? error.message : String(error));
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
for (const notice of result.notices ?? [])
|
|
88
|
+
callbacks.onNotice?.(notice);
|
|
89
|
+
// Persistence and embedding operations are outside typed input-failure
|
|
90
|
+
// containment. An internal/operational failure leaves the artifact
|
|
91
|
+
// building and propagates so a later warm can retry; it is never
|
|
92
|
+
// mislabeled as one malformed resource.
|
|
93
|
+
await EntryGraph.populateFrom(db, derivationId, result.symbols ?? [], result.references ?? []);
|
|
94
|
+
// The stored default body is the exact text READ exposes and therefore the
|
|
95
|
+
// only honest coordinate space for FTS and vectors. Acquisition schemes
|
|
96
|
+
// project noisy source material before writing that body (HTTP retains raw
|
|
97
|
+
// HTML in an auxiliary channel); authored files remain verbatim data.
|
|
98
|
+
const semanticSource = r.content;
|
|
99
|
+
await EntrySemantic.indexFts(db, derivationId, semanticSource);
|
|
100
|
+
// Size rejection is vector-only: membership, READ, graph, and FTS remain exhaustive.
|
|
101
|
+
if (EntrySemantic.embedSizeRejection(semanticSource) !== null) {
|
|
102
|
+
await EntrySemantic.indexEmbedding(db, derivationId, [], undefined);
|
|
103
|
+
await attachComplete("lexical", "max_embed_size");
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (semanticPlan.info === null) {
|
|
107
|
+
await EntrySemantic.indexEmbedding(db, derivationId, [], undefined);
|
|
108
|
+
await attachComplete("lexical", "embedder_unavailable");
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const { chunks, model } = await EntrySemantic.deriveEmbeddings(semanticPlan, semanticSource, result.symbols ?? [], undefined, undefined, ctx.signal, callbacks.onProgress);
|
|
112
|
+
await EntrySemantic.indexEmbedding(db, derivationId, chunks, model);
|
|
113
|
+
await attachComplete(chunks.length > 0 ? "vector" : "nonsemantic", chunks.length > 0 ? null : "no_embedding_content");
|
|
114
|
+
}
|
|
115
|
+
static async maintain(ctx) {
|
|
116
|
+
const { db, workspaceId, mimetypes } = ctx;
|
|
117
|
+
if (mimetypes === undefined)
|
|
118
|
+
throw new Error("SearchIndex.maintain: ctx.mimetypes is required");
|
|
119
|
+
const progressSteps = Number(process.env.PLURNK_SERVICE_DERIVE_PROGRESS_STEPS);
|
|
120
|
+
if (!Number.isInteger(progressSteps) || progressSteps <= 0) {
|
|
121
|
+
throw new RangeError(`PLURNK_SERVICE_DERIVE_PROGRESS_STEPS must be a positive integer; got ${JSON.stringify(process.env.PLURNK_SERVICE_DERIVE_PROGRESS_STEPS)}`);
|
|
122
|
+
}
|
|
123
|
+
const progressHeartbeatMs = Number(process.env.PLURNK_SERVICE_DERIVE_PROGRESS_HEARTBEAT_MS);
|
|
124
|
+
if (!Number.isInteger(progressHeartbeatMs) || progressHeartbeatMs <= 0) {
|
|
125
|
+
throw new RangeError(`PLURNK_SERVICE_DERIVE_PROGRESS_HEARTBEAT_MS must be a positive integer; got ${JSON.stringify(process.env.PLURNK_SERVICE_DERIVE_PROGRESS_HEARTBEAT_MS)}`);
|
|
126
|
+
}
|
|
127
|
+
// Validate global graph persistence tuning before resource-local
|
|
128
|
+
// derivation containment can classify a handler failure.
|
|
129
|
+
EntryGraph.storeBatch();
|
|
130
|
+
const entryRows = await db.engine_list_workspace_entries.all({ workspace_id: workspaceId });
|
|
131
|
+
const logRows = await db.log_derivation_rows.all({ workspace_id: workspaceId });
|
|
132
|
+
// One resolved plan supplies both chunking and the configuration identity
|
|
133
|
+
// for every entry in this pass ({§semantic-embed-dedup}).
|
|
134
|
+
const semanticPlan = await EntrySemantic.prepareEmbeddings(mimetypes);
|
|
135
|
+
const deepCfgSig = semanticPlan.signature;
|
|
136
|
+
const projectionIdentities = new Map();
|
|
137
|
+
const projectionIdentityFor = (mimetype, content, binary, searchExcluded) => {
|
|
138
|
+
if (searchExcluded !== undefined || content.length === 0 || binary) {
|
|
139
|
+
return Promise.resolve(NO_PROJECTION_IDENTITY);
|
|
140
|
+
}
|
|
141
|
+
const cached = projectionIdentities.get(mimetype);
|
|
142
|
+
if (cached !== undefined)
|
|
143
|
+
return cached;
|
|
144
|
+
const identity = mimetypes.projectionIdentity(mimetype);
|
|
145
|
+
projectionIdentities.set(mimetype, identity);
|
|
146
|
+
return identity;
|
|
147
|
+
};
|
|
148
|
+
// No embedder (absent OR PLURNK_SERVICE_EMBED_DISABLE) is represented by
|
|
149
|
+
// the same plan and `embed:none` signature; derivation keeps only graph/FTS.
|
|
150
|
+
// Compute the changed-resource worklist before scheduling so aggregate
|
|
151
|
+
// progress has a stable total. {§derivation-dedup-parallel}
|
|
152
|
+
const pending = [];
|
|
153
|
+
for (const r of entryRows) {
|
|
154
|
+
if (r.channel !== "body")
|
|
155
|
+
continue; // derivation fires on the body channel only
|
|
156
|
+
const searchExcluded = matchSearchExclusion(r);
|
|
157
|
+
const dispositionIdentity = searchExcluded === undefined ? "included" : `excluded:${searchExcluded}`;
|
|
158
|
+
const binary = (await mimetypes.classify(r.mimetype)).binary;
|
|
159
|
+
const projectionIdentity = await projectionIdentityFor(r.mimetype, r.content, binary, searchExcluded);
|
|
160
|
+
const hash = derivationHash({
|
|
161
|
+
content: r.content,
|
|
162
|
+
mimetype: r.mimetype,
|
|
163
|
+
binary,
|
|
164
|
+
projectionIdentity,
|
|
165
|
+
semanticIdentity: deepCfgSig,
|
|
166
|
+
dispositionIdentity,
|
|
167
|
+
});
|
|
168
|
+
if (hash !== r.deep_hash)
|
|
169
|
+
pending.push({
|
|
170
|
+
r: {
|
|
171
|
+
id: r.entry_id,
|
|
172
|
+
attachment: "entry",
|
|
173
|
+
pathname: r.pathname,
|
|
174
|
+
content: r.content,
|
|
175
|
+
mimetype: r.mimetype,
|
|
176
|
+
},
|
|
177
|
+
hash,
|
|
178
|
+
searchExcluded,
|
|
179
|
+
binary,
|
|
180
|
+
}); // unchanged since last derivation → deep rows persist
|
|
181
|
+
}
|
|
182
|
+
for (const row of logRows) {
|
|
183
|
+
const projection = LogBody.resolve({
|
|
184
|
+
op: row.op,
|
|
185
|
+
tx: row.tx,
|
|
186
|
+
rx: row.rx,
|
|
187
|
+
mimetypeTx: row.mimetype_tx,
|
|
188
|
+
mimetypeRx: row.mimetype_rx,
|
|
189
|
+
});
|
|
190
|
+
const binary = (await mimetypes.classify(projection.mimetype)).binary;
|
|
191
|
+
const projectionIdentity = await projectionIdentityFor(projection.mimetype, projection.content, binary, undefined);
|
|
192
|
+
const hash = derivationHash({
|
|
193
|
+
content: projection.content,
|
|
194
|
+
mimetype: projection.mimetype,
|
|
195
|
+
binary,
|
|
196
|
+
projectionIdentity,
|
|
197
|
+
semanticIdentity: deepCfgSig,
|
|
198
|
+
dispositionIdentity: "included",
|
|
199
|
+
});
|
|
200
|
+
if (hash !== row.deep_hash)
|
|
201
|
+
pending.push({
|
|
202
|
+
r: {
|
|
203
|
+
id: row.id,
|
|
204
|
+
attachment: "log",
|
|
205
|
+
pathname: row.coordinate,
|
|
206
|
+
content: projection.content,
|
|
207
|
+
mimetype: projection.mimetype,
|
|
208
|
+
},
|
|
209
|
+
hash,
|
|
210
|
+
searchExcluded: undefined,
|
|
211
|
+
binary,
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
const hasVectorCandidate = semanticPlan.info !== null && pending.some(({ r, searchExcluded, binary }) => searchExcluded === undefined
|
|
215
|
+
&& r.content.length > 0
|
|
216
|
+
&& !binary
|
|
217
|
+
&& EntrySemantic.embedSizeRejection(r.content) === null);
|
|
218
|
+
if (hasVectorCandidate)
|
|
219
|
+
EntrySemantic.assertExactChunking(semanticPlan, ctx.pushNotice);
|
|
220
|
+
// {§derivation-dedup-parallel} — warm smaller projections before an
|
|
221
|
+
// expensive outlier; ordering never changes exhaustive derivation.
|
|
222
|
+
pending.sort((a, b) => a.r.content.length - b.r.content.length);
|
|
223
|
+
const total = pending.length;
|
|
224
|
+
const step = total > 1 ? Math.max(1, Math.floor(total / progressSteps)) : 0;
|
|
225
|
+
let completed = 0;
|
|
226
|
+
const projectionNotices = new Set();
|
|
227
|
+
const forwardProjectionNotice = (notice) => {
|
|
228
|
+
const key = JSON.stringify(notice);
|
|
229
|
+
if (projectionNotices.has(key))
|
|
230
|
+
return;
|
|
231
|
+
projectionNotices.add(key);
|
|
232
|
+
ctx.pushNotice?.(notice);
|
|
233
|
+
};
|
|
234
|
+
const tick = () => {
|
|
235
|
+
completed++;
|
|
236
|
+
if (step > 0 && (completed === total || completed % step === 0)) {
|
|
237
|
+
const percent = Math.floor((completed / total) * 100);
|
|
238
|
+
ctx.pushNotice?.({ source: "engine:derivation", kind: "embed_progress", message: `Indexing repository semantics: ${percent}% (${completed}/${total})`, completed, total, percent, level: "info" });
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
// Each derivation identity builds one shared artifact while distinct
|
|
242
|
+
// artifacts run with bounded concurrency. {§derivation-dedup-parallel}
|
|
243
|
+
const groups = new Map();
|
|
244
|
+
for (const p of pending) {
|
|
245
|
+
const g = groups.get(p.hash);
|
|
246
|
+
if (g === undefined)
|
|
247
|
+
groups.set(p.hash, [p]);
|
|
248
|
+
else
|
|
249
|
+
g.push(p);
|
|
250
|
+
}
|
|
251
|
+
const rawConcurrency = process.env.PLURNK_SERVICE_DERIVE_CONCURRENCY;
|
|
252
|
+
const cores = availableParallelism();
|
|
253
|
+
const configuredConcurrency = rawConcurrency === undefined || rawConcurrency.trim() === ""
|
|
254
|
+
// Entry derivation is a producer tier above the all-core embedding pool.
|
|
255
|
+
// A square-root fan-out keeps that pool fed without simultaneously
|
|
256
|
+
// materializing one enormous symbol/chunk graph per host core.
|
|
257
|
+
? Math.max(1, Math.floor(Math.sqrt(cores)))
|
|
258
|
+
: Number(rawConcurrency);
|
|
259
|
+
if (!Number.isInteger(configuredConcurrency) || configuredConcurrency === 0 || configuredConcurrency < -1) {
|
|
260
|
+
throw new RangeError(`PLURNK_SERVICE_DERIVE_CONCURRENCY must be -1 (match cores) or a positive integer; got ${JSON.stringify(rawConcurrency)}`);
|
|
261
|
+
}
|
|
262
|
+
const concurrency = configuredConcurrency === -1 ? availableParallelism() : configuredConcurrency;
|
|
263
|
+
let lastHeartbeatAt = 0;
|
|
264
|
+
const workerPool = async (work) => {
|
|
265
|
+
let next = 0;
|
|
266
|
+
const worker = async () => {
|
|
267
|
+
while (next < work.length) {
|
|
268
|
+
if (ctx.signal?.aborted === true)
|
|
269
|
+
return;
|
|
270
|
+
const group = work[next++];
|
|
271
|
+
for (const { r, hash, searchExcluded, binary } of group) {
|
|
272
|
+
if (Boolean(ctx.signal?.aborted))
|
|
273
|
+
return;
|
|
274
|
+
await SearchIndex.#deriveOne(ctx, r, hash, semanticPlan, searchExcluded, binary, {
|
|
275
|
+
onNotice: forwardProjectionNotice,
|
|
276
|
+
onProgress: (progress) => {
|
|
277
|
+
if (step === 0 || progress.total <= 1)
|
|
278
|
+
return;
|
|
279
|
+
const milestone = progress.completed === progress.total
|
|
280
|
+
|| progress.completed % Math.max(1, Math.floor(progress.total / progressSteps)) === 0;
|
|
281
|
+
if (!milestone)
|
|
282
|
+
return;
|
|
283
|
+
const now = Date.now();
|
|
284
|
+
if (now - lastHeartbeatAt < progressHeartbeatMs)
|
|
285
|
+
return;
|
|
286
|
+
lastHeartbeatAt = now;
|
|
287
|
+
const percent = Math.floor((completed / total) * 100);
|
|
288
|
+
ctx.pushNotice?.({
|
|
289
|
+
source: "engine:derivation",
|
|
290
|
+
kind: "embed_progress",
|
|
291
|
+
message: `Indexing repository semantics: ${percent}% (${completed}/${total})`,
|
|
292
|
+
completed,
|
|
293
|
+
total,
|
|
294
|
+
percent,
|
|
295
|
+
phase: progress.phase,
|
|
296
|
+
level: "info",
|
|
297
|
+
});
|
|
298
|
+
},
|
|
299
|
+
});
|
|
300
|
+
tick();
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
await Promise.all(Array.from({ length: Math.min(concurrency, work.length || 1) }, () => worker()));
|
|
305
|
+
};
|
|
306
|
+
// Each group stays on one worker: its representative completes the artifact, then every
|
|
307
|
+
// sibling attaches that same immutable result.
|
|
308
|
+
await workerPool([...groups.values()]);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
function derivationHash(input) {
|
|
312
|
+
return createHash("sha256")
|
|
313
|
+
.update(input.content)
|
|
314
|
+
.update("\0")
|
|
315
|
+
.update(input.mimetype)
|
|
316
|
+
.update("\0")
|
|
317
|
+
.update(input.binary ? "binary" : "text")
|
|
318
|
+
.update("\0")
|
|
319
|
+
.update(input.projectionIdentity)
|
|
320
|
+
.update("\0")
|
|
321
|
+
.update(input.semanticIdentity)
|
|
322
|
+
.update("\0")
|
|
323
|
+
.update(input.dispositionIdentity)
|
|
324
|
+
.digest("hex");
|
|
325
|
+
}
|
|
326
|
+
//# sourceMappingURL=_search-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_search-index.js","sourceRoot":"","sources":["../../src/schemes/_search-index.ts"],"names":[],"mappings":"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"}
|
package/dist/schemes/cosine.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// SqlRite function module
|
|
1
|
+
// SqlRite function module for ~semantic ({§relation-indexed-dialects}). The sqlrite contract requires a
|
|
2
2
|
// default-export handler and turns the filename into the SQL function name — so
|
|
3
3
|
// this is a thin registration adapter; the logic lives in EntrySemantic.cosine
|
|
4
4
|
// (OO). `deterministic` marks it a pure function so SQLite may optimize it. One
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosine.js","sourceRoot":"","sources":["../../src/schemes/cosine.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"cosine.js","sourceRoot":"","sources":["../../src/schemes/cosine.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAChF,8EAA8E;AAC9E,OAAO,aAAa,MAAM,sBAAsB,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAClC,eAAe,CAAC,CAAa,EAAE,CAAa,EAAU,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
// The abort-reason protocol @plurnk/plurnk-execs' SubprocessExecutor reads off `signal.reason`:
|
|
2
2
|
// { signal } → deliver exactly that Unix signal, once, no escalation.
|
|
3
|
-
// { housekeeping: true, graceMs } → loop/
|
|
3
|
+
// { housekeeping: true, graceMs } → loop/worker teardown: the polite signal, then SIGKILL after graceMs.
|
|
4
4
|
// A { signal: null } reason (a bare KILL) carries no override, so the executor applies its own
|
|
5
5
|
// polite default, SIGHUP — the gentlest rung; the model escalates with explicit codes.
|
|
6
6
|
export default class ExecAbort {
|
|
7
7
|
// The grace a teardown straggler gets before the hard SIGKILL. The executor refuses to bake a
|
|
8
8
|
// number (it'd be a magic literal there); the consumer owns it — env-tunable, 2s default. A
|
|
9
|
-
// getter, not a static field, so a test can set the env at runtime. §worker-lifecycle-total-reap
|
|
9
|
+
// getter, not a static field, so a test can set the env at runtime. {§worker-lifecycle-total-reap}
|
|
10
10
|
static get graceMs() {
|
|
11
11
|
return Number(process.env.PLURNK_SERVICE_EXEC_KILL_GRACE_MS ?? "2000");
|
|
12
12
|
}
|
|
13
|
-
// Loop/
|
|
13
|
+
// Loop/worker teardown — a bounded reap, so Exec.idle() can't wedge on a signal-ignoring spawn.
|
|
14
14
|
static teardownReason() {
|
|
15
15
|
return { housekeeping: true, graceMs: ExecAbort.graceMs };
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec-abort.js","sourceRoot":"","sources":["../../src/schemes/exec-abort.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,8FAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"exec-abort.js","sourceRoot":"","sources":["../../src/schemes/exec-abort.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,8FAA8F;AAC9F,4GAA4G;AAC5G,+FAA+F;AAC/F,uFAAuF;AACvF,MAAM,CAAC,OAAO,OAAO,SAAS;IAC1B,8FAA8F;IAC9F,4FAA4F;IAC5F,mGAAmG;IACnG,MAAM,KAAK,OAAO;QACd,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED,gGAAgG;IAChG,MAAM,CAAC,cAAc;QACjB,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;IAC9D,CAAC;IAED,mGAAmG;IACnG,mGAAmG;IACnG,MAAM,CAAC,UAAU,CAAC,MAAqB;QACnC,OAAO,EAAE,MAAM,EAAE,CAAC;IACtB,CAAC;IAED,8FAA8F;IAC9F,6FAA6F;IAC7F,mGAAmG;IACnG,MAAM,CAAC,aAAa;QAChB,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;IAC9D,CAAC;CACJ"}
|
package/dist/schemes/exec-env.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// SPEC §exec {§exec-env-scoped} — the environment an EXEC subprocess receives.
|
|
1
|
+
// SPEC {§exec} {§exec-env-scoped} — the environment an EXEC subprocess receives.
|
|
2
2
|
//
|
|
3
3
|
// It gets the *project's* environment (its `.env`, the standard shell vars like PATH
|
|
4
4
|
// and HOME) so the model's commands run as the project expects — but never plurnk's
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
//
|
|
10
10
|
// A denylist, not an allowlist: a subprocess needs the long tail of inherited vars
|
|
11
11
|
// (PATH, HOME, LANG, the project's own keys); only plurnk's two owned families are
|
|
12
|
-
// stripped. The service owns this policy; the executor
|
|
13
|
-
//
|
|
12
|
+
// stripped. The service owns this policy; the subprocess executor spawns with
|
|
13
|
+
// the environment it is handed.
|
|
14
14
|
import { providerCredentialEnvNames } from "@plurnk/plurnk-models";
|
|
15
15
|
export default class ExecEnv {
|
|
16
16
|
// Read at call time (not memoized) so a secret set into process.env after boot is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec-env.js","sourceRoot":"","sources":["../../src/schemes/exec-env.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"exec-env.js","sourceRoot":"","sources":["../../src/schemes/exec-env.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,qFAAqF;AACrF,oFAAoF;AACpF,8EAA8E;AAC9E,yFAAyF;AACzF,2GAA2G;AAC3G,kEAAkE;AAClE,EAAE;AACF,mFAAmF;AACnF,mFAAmF;AACnF,8EAA8E;AAC9E,gCAAgC;AAEhC,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,kFAAkF;IAClF,sCAAsC;IACtC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG;QAC9C,MAAM,YAAY,GAAG,IAAI,GAAG,CACxB,0BAA0B,EAAE,CAC/B,CAAC;QACF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAAE,SAAS;YAC7F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;oBAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtD,CAAC;QACL,CAAC;QACD,MAAM,GAAG,GAAsB,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAE,uCAAuC;YAC1G,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Db } from "../core/Db.ts";
|
|
2
|
+
import { type SchemeResult } from "../core/results.ts";
|
|
3
|
+
import type { LoopFlags, WriterTier } from "../core/types.ts";
|
|
4
|
+
import type WorkspaceGate from "../core/WorkspaceGate.ts";
|
|
5
|
+
export interface EnqueueBranchWorker {
|
|
6
|
+
workspaceId: number;
|
|
7
|
+
parentWorkerId: number;
|
|
8
|
+
op: "WORK" | "FORK";
|
|
9
|
+
name: string;
|
|
10
|
+
prompt: string;
|
|
11
|
+
flags: LoopFlags;
|
|
12
|
+
origin: WriterTier;
|
|
13
|
+
}
|
|
14
|
+
export interface BranchBatchDependencies {
|
|
15
|
+
settleWorkspace(workspaceId: number): Promise<void>;
|
|
16
|
+
createChild(args: EnqueueBranchWorker): Promise<{
|
|
17
|
+
workerId: number;
|
|
18
|
+
loopId: number;
|
|
19
|
+
}>;
|
|
20
|
+
startChild(workspaceId: number, workerId: number, loopId: number): Promise<SchemeResult>;
|
|
21
|
+
wakeParent(workspaceId: number, workerId: number): Promise<void>;
|
|
22
|
+
notify(workspaceId: number, payload: Readonly<Record<string, unknown>>): void;
|
|
23
|
+
}
|
|
24
|
+
export default class BranchBatches {
|
|
25
|
+
#private;
|
|
26
|
+
constructor(db: Db, gate: WorkspaceGate, dependencies: BranchBatchDependencies);
|
|
27
|
+
enqueue(args: {
|
|
28
|
+
workspaceId: number;
|
|
29
|
+
parentWorkerId: number;
|
|
30
|
+
parentLoopId: number;
|
|
31
|
+
parentTurnId: number;
|
|
32
|
+
op: "WORK" | "FORK";
|
|
33
|
+
name: string;
|
|
34
|
+
branch: string;
|
|
35
|
+
prompt: string;
|
|
36
|
+
flags: LoopFlags;
|
|
37
|
+
origin: WriterTier;
|
|
38
|
+
}): Promise<{
|
|
39
|
+
workerId: number;
|
|
40
|
+
loopId: number;
|
|
41
|
+
}>;
|
|
42
|
+
sealTurn(parentTurnId: number): Promise<void>;
|
|
43
|
+
completionGate(workerId: number): Promise<SchemeResult | null>;
|
|
44
|
+
recover(): Promise<void>;
|
|
45
|
+
idle(): Promise<void>;
|
|
46
|
+
beginStop(): void;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=BranchBatches.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BranchBatches.d.ts","sourceRoot":"","sources":["../../src/server/BranchBatches.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAKxC,OAAgB,EAAyB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AA8B1D,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACpC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,WAAW,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtF,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACzF,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;CACjF;AAID,MAAM,CAAC,OAAO,OAAO,aAAa;;IAQ9B,YAAY,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAK7E;IAEK,OAAO,CAAC,IAAI,EAAE;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,SAAS,CAAC;QACjB,MAAM,EAAE,UAAU,CAAC;KACtB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CA6HhD;IAKK,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBlD;IAEK,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA8CnE;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA0B7B;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1B;IAED,SAAS,IAAI,IAAI,CAEhB;CAqeJ"}
|