@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
package/dist/server/envelope.sql
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
-- Envelope lifecycle queries. SPEC §connection-lifecycle.
|
|
1
|
+
-- Envelope lifecycle queries. SPEC {§connection-lifecycle}.
|
|
2
2
|
|
|
3
3
|
-- PREP: envelope_insert_workspace
|
|
4
4
|
INSERT INTO workspaces (name, project_root, settings)
|
|
5
5
|
VALUES ($name, $project_root, $settings)
|
|
6
|
+
ON CONFLICT(name) DO NOTHING
|
|
6
7
|
RETURNING id, name, project_root;
|
|
7
8
|
|
|
8
9
|
-- PREP: envelope_get_workspace
|
|
@@ -15,13 +16,18 @@ SELECT id FROM workspaces WHERE name = $name;
|
|
|
15
16
|
|
|
16
17
|
-- PREP: envelope_set_workspace_name
|
|
17
18
|
-- Used by workspace.rename. The workspace name is a MUTABLE handle (vs a worker's
|
|
18
|
-
-- immutable name, §machine-processes). Returns the updated row to refresh the
|
|
19
|
+
-- immutable name, {§machine-processes}). Returns the updated row to refresh the
|
|
19
20
|
-- caller's ClientEnvelope copy.
|
|
20
|
-
UPDATE workspaces SET name = $name
|
|
21
|
+
UPDATE workspaces SET name = $name
|
|
22
|
+
WHERE id = $id
|
|
23
|
+
AND NOT EXISTS (
|
|
24
|
+
SELECT 1 FROM workspaces AS other
|
|
25
|
+
WHERE other.name = $name AND other.id <> $id
|
|
26
|
+
)
|
|
21
27
|
RETURNING id, name;
|
|
22
28
|
|
|
23
29
|
-- PREP: envelope_insert_worker
|
|
24
|
-
-- origin is the worker's actor (§machine-processes): 'model' (the conversation),
|
|
30
|
+
-- origin is the worker's actor ({§machine-processes}): 'model' (the conversation),
|
|
25
31
|
-- 'client' (a connection's own worker), or 'plurnk' (the runtime self-hosting worker).
|
|
26
32
|
INSERT INTO workers (workspace_id, name, origin)
|
|
27
33
|
VALUES ($workspace_id, $name, $origin)
|
|
@@ -30,12 +36,6 @@ RETURNING id, name, origin;
|
|
|
30
36
|
-- PREP: envelope_get_worker_by_id
|
|
31
37
|
SELECT id, name, workspace_id, origin FROM workers WHERE id = $id;
|
|
32
38
|
|
|
33
|
-
-- PREP: envelope_count_workers_by_prefix
|
|
34
|
-
-- {§worker-auto-name} — ever-created count for the per-workspace ordinal auto-name
|
|
35
|
-
-- (`<prefix>-<N>`); monotonic (counts terminated workers too), so a reclaimed name
|
|
36
|
-
-- never re-mints. The fork_count_branches pattern, workspace-wide.
|
|
37
|
-
SELECT COUNT(*) AS n FROM workers WHERE workspace_id = $workspace_id AND name LIKE $name_prefix;
|
|
38
|
-
|
|
39
39
|
-- PREP: envelope_get_worker_by_name
|
|
40
40
|
SELECT id, name FROM workers WHERE workspace_id = $workspace_id AND name = $name;
|
|
41
41
|
|
|
@@ -46,10 +46,8 @@ WHERE workspace_id = $workspace_id
|
|
|
46
46
|
ORDER BY created_at DESC;
|
|
47
47
|
|
|
48
48
|
-- PREP: envelope_list_workspace_prompts
|
|
49
|
-
--
|
|
50
|
-
--
|
|
51
|
-
-- parentless; spawned/forked worker:// sub-runs (parent_worker_id set) are excluded — their
|
|
52
|
-
-- seed prompts are not user input.
|
|
49
|
+
-- {§methods-workspace-prompts}: nonempty model-root loop seeds, newest-first;
|
|
50
|
+
-- spawned and forked children are not workspace-level user prompt history.
|
|
53
51
|
SELECT l.prompt
|
|
54
52
|
FROM loops l
|
|
55
53
|
JOIN workers r ON r.id = l.worker_id
|
|
@@ -62,21 +60,19 @@ LIMIT $limit;
|
|
|
62
60
|
|
|
63
61
|
-- PREP: envelope_insert_client_loop
|
|
64
62
|
-- sequence is auto-computed: 1 + max(existing sequence in this worker) so
|
|
65
|
-
-- multiple client connections attaching to the same
|
|
63
|
+
-- multiple client connections attaching to the same worker get distinct loops.
|
|
66
64
|
INSERT INTO loops (worker_id, sequence, status, prompt)
|
|
67
65
|
VALUES ($worker_id, COALESCE((SELECT MAX(sequence) FROM loops WHERE worker_id = $worker_id), 0) + 1, 102, '')
|
|
68
|
-
RETURNING id;
|
|
66
|
+
RETURNING id, sequence;
|
|
69
67
|
|
|
70
68
|
-- PREP: envelope_close_client_loop
|
|
71
|
-
UPDATE loops
|
|
69
|
+
UPDATE loops
|
|
70
|
+
SET status = $status,
|
|
71
|
+
terminal_result = $result,
|
|
72
|
+
terminal_message = $message
|
|
73
|
+
WHERE id = $loop_id AND status = 102;
|
|
72
74
|
|
|
73
75
|
-- PREP: envelope_list_workspaces
|
|
74
76
|
SELECT id, name, project_root, created_at, cost_usd
|
|
75
77
|
FROM workspaces
|
|
76
78
|
ORDER BY created_at DESC;
|
|
77
|
-
|
|
78
|
-
-- PREP: envelope_get_model_worker
|
|
79
|
-
-- #371 — the workspace's canonical model CONVERSATION run: the earliest model-origin ROOT run
|
|
80
|
-
-- (parent_worker_id NULL excludes forks and spawned workers, which inherit origin='model').
|
|
81
|
-
-- ensureModelWorker finds this first; only a workspace with none mints one.
|
|
82
|
-
SELECT id FROM workers WHERE workspace_id = $workspace_id AND origin = 'model' AND parent_worker_id IS NULL ORDER BY id LIMIT 1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// {§exec-poll} — the exponential backoff schedule for a parked exec stream with
|
|
2
2
|
// no explicit `<,P>` cadence. Wake N fires at base·2^min(N, turns-1) seconds — doubling for `turns`
|
|
3
3
|
// steps, then holding at the cap forever (never reverts to blind). Pure so the curve is testable
|
|
4
4
|
// without racing a real timer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec-poll-backoff.js","sourceRoot":"","sources":["../../src/server/exec-poll-backoff.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"exec-poll-backoff.js","sourceRoot":"","sources":["../../src/server/exec-poll-backoff.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,oGAAoG;AACpG,iGAAiG;AACjG,+BAA+B;AAC/B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,KAAa,EAAU,EAAE,CACtF,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC"}
|
|
@@ -7,9 +7,46 @@
|
|
|
7
7
|
-- replaying its provider turn could duplicate effects whose commit boundary is unknown.
|
|
8
8
|
UPDATE loops
|
|
9
9
|
SET status = 500,
|
|
10
|
-
terminal_message = 'daemon restarted while this loop was active'
|
|
10
|
+
terminal_message = 'The daemon restarted while this loop was active; its process-local owner no longer exists.',
|
|
11
|
+
terminal_result = json_object(
|
|
12
|
+
'status', 500,
|
|
13
|
+
'problem', json_object(
|
|
14
|
+
'type', 'https://problems.plurnk.dev/lifecycle/recovery/owner-vanished',
|
|
15
|
+
'title', 'Owner vanished',
|
|
16
|
+
'status', 500,
|
|
17
|
+
'detail', 'The daemon restarted while this loop was active; its process-local owner no longer exists.',
|
|
18
|
+
'instance', 'loop:///' || id
|
|
19
|
+
)
|
|
20
|
+
)
|
|
11
21
|
WHERE status = 102;
|
|
12
22
|
|
|
23
|
+
-- PREP: recovery_fail_ownerless_proposals
|
|
24
|
+
-- {§worker-lifecycle-restart-recovery} Every proposed row depended on a
|
|
25
|
+
-- process-local resolution waiter. At boot that owner is necessarily gone, so
|
|
26
|
+
-- terminalize the occurrence before {§proposal-list} can open to clients.
|
|
27
|
+
UPDATE log_entries
|
|
28
|
+
SET state = 'failed',
|
|
29
|
+
outcome = 'owner_vanished',
|
|
30
|
+
status_rx = 500,
|
|
31
|
+
rx = json_object(
|
|
32
|
+
'status', 500,
|
|
33
|
+
'problem', json_object(
|
|
34
|
+
'type', 'https://problems.plurnk.dev/lifecycle/recovery/owner-vanished',
|
|
35
|
+
'title', 'Owner vanished',
|
|
36
|
+
'status', 500,
|
|
37
|
+
'detail', 'The daemon restarted while this proposal was pending; its process-local owner no longer exists.',
|
|
38
|
+
'instance', printf(
|
|
39
|
+
'log:///%d/%d/%d/%s',
|
|
40
|
+
(SELECT sequence FROM loops WHERE id = log_entries.loop_id),
|
|
41
|
+
(SELECT sequence FROM turns WHERE id = log_entries.turn_id),
|
|
42
|
+
sequence,
|
|
43
|
+
op
|
|
44
|
+
)
|
|
45
|
+
)
|
|
46
|
+
),
|
|
47
|
+
deep_hash = NULL
|
|
48
|
+
WHERE state = 'proposed';
|
|
49
|
+
|
|
13
50
|
-- PREP: recovery_error_orphan_subscription_channels
|
|
14
51
|
-- Every open subscription belonged to a callable in the prior process. Mark its
|
|
15
52
|
-- active content terminal before closing the durable row, so an interruption
|
|
@@ -24,7 +61,16 @@ WHERE state = 'active'
|
|
|
24
61
|
-- PREP: recovery_fail_orphan_subscriptions
|
|
25
62
|
UPDATE subscriptions
|
|
26
63
|
SET closed_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now'),
|
|
27
|
-
close_status = 500
|
|
64
|
+
close_status = 500,
|
|
65
|
+
close_result = json_object(
|
|
66
|
+
'status', 500,
|
|
67
|
+
'problem', json_object(
|
|
68
|
+
'type', 'https://problems.plurnk.dev/lifecycle/recovery/owner-vanished',
|
|
69
|
+
'title', 'Owner vanished',
|
|
70
|
+
'status', 500,
|
|
71
|
+
'detail', 'The daemon restarted while this stream was active; its process-local owner no longer exists.'
|
|
72
|
+
)
|
|
73
|
+
)
|
|
28
74
|
WHERE closed_at IS NULL;
|
|
29
75
|
|
|
30
76
|
-- PREP: recovery_resume_unblocked_parks
|
|
@@ -53,11 +99,42 @@ WHERE status = 202
|
|
|
53
99
|
AND child_loop.status IN (100, 102, 202)
|
|
54
100
|
);
|
|
55
101
|
|
|
102
|
+
-- PREP: recovery_orphan_prompt_sources
|
|
103
|
+
-- {§prompt-loop-containment}: finish an absent or partially staged orphan
|
|
104
|
+
-- recovery before queued drains become visible at boot. A non-queued recovery
|
|
105
|
+
-- already crossed its delivery boundary and must never be replayed.
|
|
106
|
+
SELECT source.id AS loop_id, source.worker_id AS worker_id
|
|
107
|
+
FROM loops source
|
|
108
|
+
LEFT JOIN loops recovery ON recovery.orphan_source_loop_id = source.id
|
|
109
|
+
WHERE source.status IN (200, 413, 429, 499, 500, 504, 508)
|
|
110
|
+
AND (recovery.id IS NULL OR recovery.status = 100)
|
|
111
|
+
AND EXISTS (
|
|
112
|
+
SELECT 1
|
|
113
|
+
FROM entries e
|
|
114
|
+
JOIN entry_channels c ON c.entry_id = e.id AND c.name = 'body'
|
|
115
|
+
WHERE e.scheme = 'prompt'
|
|
116
|
+
AND e.owner_id = source.worker_id
|
|
117
|
+
AND e.pathname LIKE '/' || source.sequence || '/%'
|
|
118
|
+
AND NOT EXISTS (
|
|
119
|
+
SELECT 1 FROM log_entries le
|
|
120
|
+
WHERE le.loop_id = source.id AND le.origin = 'plurnk' AND le.op = 'prompt'
|
|
121
|
+
AND le.scheme = 'prompt' AND le.pathname = e.pathname
|
|
122
|
+
)
|
|
123
|
+
)
|
|
124
|
+
ORDER BY source.worker_id, source.sequence;
|
|
125
|
+
|
|
56
126
|
-- PREP: recovery_queued_workers
|
|
57
127
|
SELECT DISTINCT w.id AS worker_id, w.workspace_id
|
|
58
128
|
FROM workers w
|
|
59
129
|
JOIN loops l ON l.worker_id = w.id
|
|
60
130
|
WHERE l.status = 100
|
|
131
|
+
AND NOT EXISTS (
|
|
132
|
+
SELECT 1
|
|
133
|
+
FROM branch_batch_items bi
|
|
134
|
+
JOIN branch_batches bb ON bb.id = bi.batch_id
|
|
135
|
+
WHERE bi.loop_id = l.id
|
|
136
|
+
AND bb.state IN ('collecting', 'queued', 'running', 'recovery_required')
|
|
137
|
+
)
|
|
61
138
|
ORDER BY w.id;
|
|
62
139
|
|
|
63
140
|
-- PREP: recovery_parked_workers
|
|
@@ -9,6 +9,7 @@ export type LogEntryWire = {
|
|
|
9
9
|
sequence: number;
|
|
10
10
|
at: string;
|
|
11
11
|
origin: string;
|
|
12
|
+
source: string | null;
|
|
12
13
|
op: string;
|
|
13
14
|
suffix: string;
|
|
14
15
|
signal: unknown;
|
|
@@ -18,7 +19,7 @@ export type LogEntryWire = {
|
|
|
18
19
|
hostname: string | null;
|
|
19
20
|
port: number | null;
|
|
20
21
|
pathname: string | null;
|
|
21
|
-
|
|
22
|
+
query: string | null;
|
|
22
23
|
fragment: string | null;
|
|
23
24
|
lineMarker: unknown;
|
|
24
25
|
tx: unknown;
|
|
@@ -27,6 +28,7 @@ export type LogEntryWire = {
|
|
|
27
28
|
mimetype_rx: string;
|
|
28
29
|
status_rx: number;
|
|
29
30
|
tokens: number;
|
|
31
|
+
attrs: unknown;
|
|
30
32
|
};
|
|
31
33
|
export default class LogEntry {
|
|
32
34
|
#private;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logEntry.d.ts","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAMxC,MAAM,MAAM,YAAY,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,
|
|
1
|
+
{"version":3,"file":"logEntry.d.ts","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAMxC,MAAM,MAAM,YAAY,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,QAAQ;;IASzB,OAAa,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkCpE;CACJ"}
|
package/dist/server/logEntry.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Hydrate a log_entries row for the wire. Re-parses JSON-encoded columns
|
|
2
|
-
// (signal,
|
|
2
|
+
// (signal, lineMarker, tx, rx, attrs) so the client receives
|
|
3
3
|
// structured values, not opaque strings.
|
|
4
4
|
export default class LogEntry {
|
|
5
5
|
static #parseJsonOrNull(v) {
|
|
@@ -25,6 +25,7 @@ export default class LogEntry {
|
|
|
25
25
|
sequence: row.sequence,
|
|
26
26
|
at: row.at,
|
|
27
27
|
origin: row.origin,
|
|
28
|
+
source: row.source,
|
|
28
29
|
op: row.op,
|
|
29
30
|
suffix: row.suffix,
|
|
30
31
|
signal: LogEntry.#parseJsonOrNull(row.signal),
|
|
@@ -34,7 +35,7 @@ export default class LogEntry {
|
|
|
34
35
|
hostname: row.hostname,
|
|
35
36
|
port: row.port,
|
|
36
37
|
pathname: row.pathname,
|
|
37
|
-
|
|
38
|
+
query: row.query,
|
|
38
39
|
fragment: row.fragment,
|
|
39
40
|
lineMarker: LogEntry.#parseJsonOrNull(row.lineMarker),
|
|
40
41
|
tx: LogEntry.#parseJsonOrNull(row.tx),
|
|
@@ -43,6 +44,7 @@ export default class LogEntry {
|
|
|
43
44
|
mimetype_rx: row.mimetype_rx,
|
|
44
45
|
status_rx: row.status_rx,
|
|
45
46
|
tokens: row.tokens,
|
|
47
|
+
attrs: LogEntry.#parseJsonOrNull(row.attrs),
|
|
46
48
|
};
|
|
47
49
|
}
|
|
48
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logEntry.js","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"logEntry.js","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,6DAA6D;AAC7D,yCAAyC;AAwCzC,MAAM,CAAC,OAAO,OAAO,QAAQ;IACzB,MAAM,CAAC,gBAAgB,CAAC,CAAU;QAC9B,uFAAuF;QACvF,kFAAkF;QAClF,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAC3D,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAM,EAAE,EAAU;QACzC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,GAAG,CAA0B,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1E,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;QAC1E,OAAO;YACH,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,SAAS,EAAE,GAAG,CAAC,SAAmB;YAClC,OAAO,EAAE,GAAG,CAAC,OAAiB;YAC9B,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,OAAO,EAAE,GAAG,CAAC,OAAiB;YAC9B,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,MAAM,EAAE,GAAG,CAAC,MAAuB;YACnC,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7C,MAAM,EAAE,GAAG,CAAC,MAAuB;YACnC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,IAAI,EAAE,GAAG,CAAC,IAAqB;YAC/B,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,KAAK,EAAE,GAAG,CAAC,KAAsB;YACjC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,UAAU,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC;YACrD,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,WAAW,EAAE,GAAG,CAAC,WAAqB;YACtC,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,WAAW,EAAE,GAAG,CAAC,WAAqB;YACtC,SAAS,EAAE,GAAG,CAAC,SAAmB;YAClC,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;SAC9C,CAAC;IACN,CAAC;CACJ"}
|
package/dist/server/logEntry.sql
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
-- PREP: log_entry_by_id
|
|
4
4
|
-- loop_seq / turn_seq are the loop+turn ordinals (the logical coordinate clients
|
|
5
|
-
-- render, e.g. 01/02/03) — distinct from the loop_id/turn_id DB keys (
|
|
5
|
+
-- render, e.g. 01/02/03) — distinct from the loop_id/turn_id DB keys ({§methods-log-coordinate}).
|
|
6
6
|
SELECT le.*, l.sequence AS loop_seq, t.sequence AS turn_seq
|
|
7
7
|
FROM log_entries le
|
|
8
8
|
JOIN loops l ON l.id = le.loop_id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-model.d.ts","sourceRoot":"","sources":["../../src/server/loop-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"loop-model.d.ts","sourceRoot":"","sources":["../../src/server/loop-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAW9D,eAAO,MAAM,gBAAgB,UAClB,MAAM,GAAG,SAAS,SAClB,MAAM,GAAG,SAAS,YACf,SAAS,aAAa,EAAE,KACnC,aAAa,GAAG,IA0ClB,CAAC"}
|
|
@@ -1,24 +1,37 @@
|
|
|
1
|
-
|
|
1
|
+
import Results, { OperationFailureError } from "../core/results.js";
|
|
2
|
+
// {§methods-loop-run-model}: resolve a runLoop call's optional (alias, model) to the
|
|
2
3
|
// ProviderAlias to instantiate, or null for "use the boot default". PURE (no env read, no
|
|
3
4
|
// construction) so the precedence + parse contract is hermetically testable; the Daemon wraps it
|
|
4
5
|
// with ProviderInstantiate + the #provider fallback.
|
|
5
6
|
//
|
|
6
|
-
// Precedence: `model` (client-resolved `<provider>/<model
|
|
7
|
-
//
|
|
8
|
-
//
|
|
7
|
+
// Precedence: `model` (client-resolved `<provider>/<model>`) wins over a named `alias`.
|
|
8
|
+
// A malformed model spec or an undeclared alias throws legibly — the daemon must never silently
|
|
9
|
+
// run the wrong model.
|
|
9
10
|
export const resolveLoopAlias = (alias, model, declared) => {
|
|
10
11
|
if (typeof model === "string" && model.length > 0) {
|
|
11
12
|
const slash = model.indexOf("/");
|
|
12
|
-
if (slash <= 0)
|
|
13
|
-
throw new
|
|
14
|
-
|
|
13
|
+
if (slash <= 0 || slash === model.length - 1) {
|
|
14
|
+
throw new OperationFailureError(Results.failure("daemon:provider", "model-spec-invalid", 400, `Model '${model}' is not a provider/model specification.`, {}, {
|
|
15
|
+
model,
|
|
16
|
+
stage: "provider-selection",
|
|
17
|
+
recovery: "Use a provider/model specification.",
|
|
18
|
+
retryable: false,
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
21
|
+
// A client-resolved spec is alias-independent: the provider's own env carries the
|
|
15
22
|
// base URL, so the synthetic alias name is cosmetic (reuse the given alias if present).
|
|
16
23
|
return { alias: alias ?? model, provider: model.slice(0, slash), model: model.slice(slash + 1) };
|
|
17
24
|
}
|
|
18
25
|
if (typeof alias === "string" && alias.length > 0) {
|
|
19
26
|
const resolved = declared.find((a) => a.alias === alias.toLowerCase());
|
|
20
|
-
if (resolved === undefined)
|
|
21
|
-
throw new
|
|
27
|
+
if (resolved === undefined) {
|
|
28
|
+
throw new OperationFailureError(Results.failure("daemon:provider", "alias-not-found", 404, `Provider alias '${alias}' is not declared.`, {}, {
|
|
29
|
+
alias,
|
|
30
|
+
stage: "provider-selection",
|
|
31
|
+
recovery: "Select a declared provider alias.",
|
|
32
|
+
retryable: false,
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
22
35
|
return resolved;
|
|
23
36
|
}
|
|
24
37
|
return null; // neither → the daemon's boot default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-model.js","sourceRoot":"","sources":["../../src/server/loop-model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loop-model.js","sourceRoot":"","sources":["../../src/server/loop-model.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,EAAE,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEpE,qFAAqF;AACrF,0FAA0F;AAC1F,iGAAiG;AACjG,qDAAqD;AACrD,EAAE;AACF,wFAAwF;AACxF,gGAAgG;AAChG,uBAAuB;AACvB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,KAAyB,EACzB,KAAyB,EACzB,QAAkC,EACd,EAAE;IACtB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAC3C,iBAAiB,EACjB,oBAAoB,EACpB,GAAG,EACH,UAAU,KAAK,0CAA0C,EACzD,EAAE,EACF;gBACI,KAAK;gBACL,KAAK,EAAE,oBAAoB;gBAC3B,QAAQ,EAAE,qCAAqC;gBAC/C,SAAS,EAAE,KAAK;aACnB,CACJ,CAAC,CAAC;QACP,CAAC;QACD,kFAAkF;QAClF,wFAAwF;QACxF,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;IACrG,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAC3C,iBAAiB,EACjB,iBAAiB,EACjB,GAAG,EACH,mBAAmB,KAAK,oBAAoB,EAC5C,EAAE,EACF;gBACI,KAAK;gBACL,KAAK,EAAE,oBAAoB;gBAC3B,QAAQ,EAAE,mCAAmC;gBAC7C,SAAS,EAAE,KAAK;aACnB,CACJ,CAAC,CAAC;QACP,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,CAAC,CAAE,sCAAsC;AACxD,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loopDocs.d.ts","sourceRoot":"","sources":["../../src/server/loopDocs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loopDocs.d.ts","sourceRoot":"","sources":["../../src/server/loopDocs.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAKxC,MAAM,CAAC,OAAO,OAAO,QAAQ;IACzB,OAAa,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAenF;CACJ"}
|
package/dist/server/loopDocs.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { UNKNOWN_POSITION } from "@plurnk/plurnk-contracts";
|
|
1
2
|
import WorkspaceSettings from "../core/workspace-settings.js";
|
|
2
3
|
import DispatchAsPlurnk from "./dispatch-as-plurnk.js";
|
|
3
4
|
export default class LoopDocs {
|
|
@@ -5,14 +6,14 @@ export default class LoopDocs {
|
|
|
5
6
|
const { mdDocs } = await WorkspaceSettings.read(db, workspaceId);
|
|
6
7
|
const docStmts = (await WorkspaceSettings.resolveDocs(mdDocs)).map((doc) => ({
|
|
7
8
|
op: "EDIT", suffix: "", signal: null,
|
|
8
|
-
target: { kind: "url", raw: `worker://plurnk/${doc.entryName}`, scheme: "worker", username: null, password: null, hostname: "plurnk", port: null, pathname: `/${doc.entryName}`,
|
|
9
|
-
lineMarker: { marks: [1, -1] }, body: doc.content, position:
|
|
9
|
+
target: { kind: "url", raw: `worker://plurnk/${doc.entryName}`, scheme: "worker", username: null, password: null, hostname: "plurnk", port: null, pathname: `/${doc.entryName}`, query: null, fragment: null },
|
|
10
|
+
lineMarker: { marks: [1, -1] }, body: doc.content, position: UNKNOWN_POSITION,
|
|
10
11
|
}));
|
|
11
12
|
for (const { name, content } of await engine.docEntries(workspaceId)) {
|
|
12
13
|
docStmts.push({
|
|
13
14
|
op: "EDIT", suffix: "", signal: null,
|
|
14
|
-
target: { kind: "url", raw: `worker://plurnk/docs/${name}.md`, scheme: "worker", username: null, password: null, hostname: "plurnk", port: null, pathname: `/docs/${name}.md`,
|
|
15
|
-
lineMarker: { marks: [1, -1] }, body: content, position:
|
|
15
|
+
target: { kind: "url", raw: `worker://plurnk/docs/${name}.md`, scheme: "worker", username: null, password: null, hostname: "plurnk", port: null, pathname: `/docs/${name}.md`, query: null, fragment: null },
|
|
16
|
+
lineMarker: { marks: [1, -1] }, body: content, position: UNKNOWN_POSITION,
|
|
16
17
|
});
|
|
17
18
|
}
|
|
18
19
|
if (docStmts.length > 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loopDocs.js","sourceRoot":"","sources":["../../src/server/loopDocs.ts"],"names":[],"mappings":"AAUA,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAC9D,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,QAAQ;IACzB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,EAAM,EAAE,WAAmB;QAChE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAoB,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC1F,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI;YACpC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,mBAAmB,GAAG,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"loopDocs.js","sourceRoot":"","sources":["../../src/server/loopDocs.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAA4C,MAAM,0BAA0B,CAAC;AACtG,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAC9D,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,QAAQ;IACzB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,EAAM,EAAE,WAAmB;QAChE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAoB,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC1F,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI;YACpC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,mBAAmB,GAAG,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC9M,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,gBAAgB;SAChF,CAAC,CAAC,CAAC;QACJ,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,MAAM,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACnE,QAAQ,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI;gBACpC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,wBAAwB,IAAI,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,IAAI,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC5M,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB;aAC5E,CAAC,CAAC;QACP,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,QAA6B,CAAC,CAAC;IACrH,CAAC;CACJ"}
|
|
@@ -1,22 +1,27 @@
|
|
|
1
|
-
--
|
|
1
|
+
-- CoreSeam readEntry queries. SPEC {§methods-entry-read}.
|
|
2
2
|
|
|
3
3
|
-- PREP: entry_read_lookup
|
|
4
4
|
SELECT id, workspace_id, owner_id, scheme, pathname
|
|
5
5
|
FROM entries
|
|
6
|
-
WHERE workspace_id = $workspace_id
|
|
7
|
-
|
|
6
|
+
WHERE workspace_id = $workspace_id
|
|
7
|
+
AND owner_id = $owner_id
|
|
8
|
+
AND scheme = $scheme
|
|
9
|
+
AND pathname = $pathname;
|
|
8
10
|
|
|
9
11
|
-- PREP: entry_read_channels
|
|
10
|
-
SELECT name, content, length(content) AS contentLength, mimetype, tokens, state
|
|
12
|
+
SELECT name, content, 0 AS contentOffset, length(content) AS contentLength, mimetype, tokens, state
|
|
11
13
|
FROM entry_channels
|
|
12
14
|
WHERE entry_id = $entry_id;
|
|
13
15
|
|
|
14
|
-
-- entry
|
|
15
|
-
--
|
|
16
|
-
-- counts), and contentLength is the full length so the client's next offset
|
|
17
|
-
-- survives growth between a stream/event and this read. $offset=0 → whole channel;
|
|
18
|
-
-- $offset past the end → '' (caught up). SQLite substr is 1-indexed → $offset + 1.
|
|
16
|
+
-- {§entry-read-result}: return the selected channel suffix in Unicode code points
|
|
17
|
+
-- plus its complete current length. SQLite substr is 1-indexed, hence offset + 1.
|
|
19
18
|
-- PREP: entry_read_channel_slice
|
|
20
|
-
SELECT name,
|
|
19
|
+
SELECT name,
|
|
20
|
+
substr(content, $offset + 1) AS content,
|
|
21
|
+
min($offset, length(content)) AS contentOffset,
|
|
22
|
+
length(content) AS contentLength,
|
|
23
|
+
mimetype,
|
|
24
|
+
tokens,
|
|
25
|
+
state
|
|
21
26
|
FROM entry_channels
|
|
22
27
|
WHERE entry_id = $entry_id AND name = $channel;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
--
|
|
1
|
+
-- CoreSeam readLog query. SPEC {§methods-log-read}.
|
|
2
2
|
-- Static query with IS-NULL guards on optional filters. The loops/turns joins
|
|
3
3
|
-- resolve the DISPLAY coordinate (loop_seq/turn_seq/op-sequence) so a client can
|
|
4
|
-
-- target one entry by its `L/T/S` coordinate
|
|
4
|
+
-- target one entry by its `L/T/S` coordinate instead of
|
|
5
5
|
-- fetching a worker and matching client-side. INNER JOINs are safe: log_entries
|
|
6
6
|
-- carries worker_id/loop_id/turn_id NOT NULL, so no row is dropped; the coordinate
|
|
7
7
|
-- guards are inert when their param is NULL (identical to the id-only filters).
|
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
-- PREP: proposal_list_pending
|
|
2
|
-
-- §proposal-list —
|
|
3
|
-
--
|
|
4
|
-
--
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
le.op, le.
|
|
8
|
-
l.flags AS loop_flags
|
|
2
|
+
-- {§proposal-list} — durable candidates in a workspace. ProposalLifecycle intersects
|
|
3
|
+
-- them with its live resolution owners before projecting a stopped world; neither
|
|
4
|
+
-- Daemon nor an interface module reconstructs authority from this persistence shape.
|
|
5
|
+
SELECT le.id AS logEntryId, r.workspace_id AS workspaceId,
|
|
6
|
+
le.worker_id AS workerId, le.loop_id AS loopId, le.turn_id AS turnId,
|
|
7
|
+
le.op, le.signal, le.scheme, le.pathname, le.rx, le.attrs, l.flags AS loop_flags
|
|
9
8
|
FROM log_entries le
|
|
10
9
|
JOIN workers r ON r.id = le.worker_id
|
|
11
10
|
JOIN loops l ON l.id = le.loop_id
|
|
12
11
|
WHERE r.workspace_id = $workspace_id AND le.state = 'proposed'
|
|
13
12
|
ORDER BY le.id;
|
|
13
|
+
|
|
14
|
+
-- PREP: proposal_get_pending
|
|
15
|
+
-- Same durable input as proposal_list_pending, selected by proposal identity for
|
|
16
|
+
-- the live path. Both paths enter ProposalLifecycle's one projection function.
|
|
17
|
+
SELECT le.id AS logEntryId, r.workspace_id AS workspaceId,
|
|
18
|
+
le.worker_id AS workerId, le.loop_id AS loopId, le.turn_id AS turnId,
|
|
19
|
+
le.op, le.signal, le.scheme, le.pathname, le.rx, le.attrs, l.flags AS loop_flags
|
|
20
|
+
FROM log_entries le
|
|
21
|
+
JOIN workers r ON r.id = le.worker_id
|
|
22
|
+
JOIN loops l ON l.id = le.loop_id
|
|
23
|
+
WHERE le.id = $log_entry_id AND le.state = 'proposed';
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";AAyBA,MAAM,CAAC,OAAO,OAAO,OAAO;;IA4PxB,OAAa,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA+EjC;CACJ"}
|