@plurnk/plurnk-service 1.4.0 → 1.6.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 +37 -31
- package/INSTALL.md +16 -11
- package/README.md +1 -0
- package/SPEC.md +631 -397
- package/dist/Paths.d.ts.map +1 -1
- package/dist/Paths.js +2 -3
- package/dist/Paths.js.map +1 -1
- package/dist/build-info.json +1 -1
- package/dist/content/edit-collision.d.ts +5 -0
- package/dist/content/edit-collision.d.ts.map +1 -0
- package/dist/content/edit-collision.js +14 -0
- package/dist/content/edit-collision.js.map +1 -0
- package/dist/content/edit-receipt.d.ts +3 -2
- package/dist/content/edit-receipt.d.ts.map +1 -1
- package/dist/content/edit-receipt.js +58 -13
- package/dist/content/edit-receipt.js.map +1 -1
- package/dist/content/index.d.ts +5 -1
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +4 -1
- package/dist/content/index.js.map +1 -1
- package/dist/content/line-anchors.d.ts +41 -0
- package/dist/content/line-anchors.d.ts.map +1 -0
- package/dist/content/line-anchors.js +191 -0
- package/dist/content/line-anchors.js.map +1 -0
- package/dist/content/line-marker.d.ts +7 -3
- package/dist/content/line-marker.d.ts.map +1 -1
- package/dist/content/line-marker.js +2 -1
- package/dist/content/line-marker.js.map +1 -1
- package/dist/content/matcher.d.ts +1 -1
- package/dist/content/matcher.d.ts.map +1 -1
- package/dist/content/matcher.js +2 -2
- package/dist/content/matcher.js.map +1 -1
- package/dist/content/read-projector.d.ts +20 -0
- package/dist/content/read-projector.d.ts.map +1 -0
- package/dist/content/read-projector.js +122 -0
- package/dist/content/read-projector.js.map +1 -0
- package/dist/content/read-resolve.d.ts +2 -7
- package/dist/content/read-resolve.d.ts.map +1 -1
- package/dist/content/read-resolve.js +32 -107
- package/dist/content/read-resolve.js.map +1 -1
- package/dist/core/BranchReceipt.d.ts +0 -1
- package/dist/core/BranchReceipt.d.ts.map +1 -1
- package/dist/core/BranchReceipt.js +0 -3
- package/dist/core/BranchReceipt.js.map +1 -1
- package/dist/core/BudgetReadout.d.ts.map +1 -1
- package/dist/core/BudgetReadout.js +9 -2
- package/dist/core/BudgetReadout.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +3 -0
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +3 -3
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +4 -3
- package/dist/core/CoreSchemeServices.d.ts +10 -2
- package/dist/core/CoreSchemeServices.d.ts.map +1 -1
- package/dist/core/CoreSchemeServices.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +14 -8
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +656 -312
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/DurableStatement.d.ts.map +1 -1
- package/dist/core/DurableStatement.js +2 -0
- package/dist/core/DurableStatement.js.map +1 -1
- package/dist/core/Engine.d.ts +24 -18
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +620 -392
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +188 -119
- package/dist/core/ExecutableTools.d.ts +10 -0
- package/dist/core/ExecutableTools.d.ts.map +1 -0
- package/dist/core/ExecutableTools.js +41 -0
- package/dist/core/ExecutableTools.js.map +1 -0
- package/dist/core/ExecutorRegistry.d.ts +3 -3
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +2 -2
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/LogBody.d.ts +4 -1
- package/dist/core/LogBody.d.ts.map +1 -1
- package/dist/core/LogBody.js +46 -2
- package/dist/core/LogBody.js.map +1 -1
- package/dist/core/LogEntryProjection.d.ts +14 -0
- package/dist/core/LogEntryProjection.d.ts.map +1 -0
- package/dist/core/LogEntryProjection.js +38 -0
- package/dist/core/LogEntryProjection.js.map +1 -0
- package/dist/core/LoopLifecycle.d.ts +1 -2
- package/dist/core/LoopLifecycle.d.ts.map +1 -1
- package/dist/core/LoopLifecycle.js +1 -4
- package/dist/core/LoopLifecycle.js.map +1 -1
- package/dist/core/LoopLifecycle.sql +1 -4
- package/dist/core/ModelCall.d.ts +27 -0
- package/dist/core/ModelCall.d.ts.map +1 -0
- package/dist/core/ModelCall.js +125 -0
- package/dist/core/ModelCall.js.map +1 -0
- package/dist/core/PacketBuilder.d.ts +13 -12
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +146 -118
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/ProblemLog.d.ts.map +1 -1
- package/dist/core/ProblemLog.js +1 -0
- package/dist/core/ProblemLog.js.map +1 -1
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +3 -4
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ProviderInstantiate.d.ts.map +1 -1
- package/dist/core/ProviderInstantiate.js +23 -6
- package/dist/core/ProviderInstantiate.js.map +1 -1
- package/dist/core/SchemeRegistry.js +7 -7
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/StrikeRail.d.ts +5 -2
- package/dist/core/StrikeRail.d.ts.map +1 -1
- package/dist/core/StrikeRail.js +10 -7
- package/dist/core/StrikeRail.js.map +1 -1
- package/dist/core/TerminalResult.d.ts +16 -0
- package/dist/core/TerminalResult.d.ts.map +1 -0
- package/dist/core/TerminalResult.js +49 -0
- package/dist/core/TerminalResult.js.map +1 -0
- package/dist/core/caps/CapsResolve.d.ts +5 -1
- package/dist/core/caps/CapsResolve.d.ts.map +1 -1
- package/dist/core/caps/CapsResolve.js +9 -5
- package/dist/core/caps/CapsResolve.js.map +1 -1
- package/dist/core/caps/DbChannelCaps.d.ts +1 -1
- package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
- package/dist/core/caps/DbChannelCaps.js +6 -4
- package/dist/core/caps/DbChannelCaps.js.map +1 -1
- package/dist/core/caps/DbEntryCaps.d.ts +2 -1
- package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
- package/dist/core/caps/DbEntryCaps.js +21 -8
- package/dist/core/caps/DbEntryCaps.js.map +1 -1
- package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
- package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
- package/dist/core/caps/DbNotifyCaps.js +6 -4
- package/dist/core/caps/DbNotifyCaps.js.map +1 -1
- package/dist/core/caps/DbProjectionCaps.d.ts +1 -0
- package/dist/core/caps/DbProjectionCaps.d.ts.map +1 -1
- package/dist/core/caps/DbProjectionCaps.js +29 -0
- package/dist/core/caps/DbProjectionCaps.js.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.d.ts +4 -6
- package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.js +27 -13
- package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.d.ts +11 -3
- package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.js +10 -8
- package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
- package/dist/core/fork.d.ts.map +1 -1
- package/dist/core/fork.js +23 -7
- package/dist/core/fork.js.map +1 -1
- package/dist/core/fork.sql +35 -14
- package/dist/core/git-iso.d.ts +3 -2
- package/dist/core/git-iso.d.ts.map +1 -1
- package/dist/core/git-iso.js +27 -12
- package/dist/core/git-iso.js.map +1 -1
- package/dist/core/git-membership.d.ts +1 -0
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +87 -26
- package/dist/core/git-membership.js.map +1 -1
- package/dist/core/git-state.d.ts +8 -1
- package/dist/core/git-state.d.ts.map +1 -1
- package/dist/core/git-state.js +36 -17
- package/dist/core/git-state.js.map +1 -1
- package/dist/core/namespace.d.ts +1 -0
- package/dist/core/namespace.d.ts.map +1 -1
- package/dist/core/namespace.js +20 -0
- package/dist/core/namespace.js.map +1 -1
- package/dist/core/optimistic-settlement.d.ts +2 -0
- package/dist/core/optimistic-settlement.d.ts.map +1 -0
- package/dist/core/optimistic-settlement.js +14 -0
- package/dist/core/optimistic-settlement.js.map +1 -0
- package/dist/core/packet-wire.d.ts +5 -2
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +318 -114
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/provider-accounting.d.ts +24 -0
- package/dist/core/provider-accounting.d.ts.map +1 -0
- package/dist/core/provider-accounting.js +76 -0
- package/dist/core/provider-accounting.js.map +1 -0
- package/dist/core/results.d.ts +4 -2
- package/dist/core/results.d.ts.map +1 -1
- package/dist/core/results.js +6 -0
- package/dist/core/results.js.map +1 -1
- package/dist/core/scheme-types.d.ts +0 -12
- 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 +2 -2
- package/dist/core/search-gate.d.ts.map +1 -1
- package/dist/core/search-gate.js +8 -8
- package/dist/core/search-gate.js.map +1 -1
- package/dist/core/token-ruler.js +1 -1
- package/dist/core/token-ruler.js.map +1 -1
- package/dist/core/turn-scheduler.js +1 -1
- package/dist/core/turn-scheduler.js.map +1 -1
- package/dist/core/worker-ops.sql +4 -4
- package/dist/core/workspace-settings.js +1 -1
- package/dist/core/workspace-settings.js.map +1 -1
- package/dist/digest/Digest.d.ts.map +1 -1
- package/dist/digest/Digest.js +349 -76
- package/dist/digest/Digest.js.map +1 -1
- package/dist/digest/digest.sql +42 -16
- package/dist/schemes/Exec.d.ts +4 -4
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +167 -134
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts +4 -5
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +12 -20
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/File.d.ts +5 -6
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +35 -41
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts +16 -5
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +229 -262
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +50 -27
- package/dist/schemes/Prompt.d.ts +3 -4
- package/dist/schemes/Prompt.d.ts.map +1 -1
- package/dist/schemes/Prompt.js +5 -5
- package/dist/schemes/Prompt.js.map +1 -1
- package/dist/schemes/Skill.d.ts +4 -5
- package/dist/schemes/Skill.d.ts.map +1 -1
- package/dist/schemes/Skill.js +3 -3
- package/dist/schemes/Skill.js.map +1 -1
- package/dist/schemes/Worker.d.ts +7 -7
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +99 -84
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts +2 -2
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +29 -10
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +11 -17
- package/dist/schemes/_entry-find.d.ts +41 -14
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +159 -166
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-find.sql +2 -21
- package/dist/schemes/_entry-graph.sql +1 -1
- package/dist/schemes/_entry-manifest.d.ts +5 -17
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +28 -24
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.d.ts +13 -8
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +98 -119
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-ops.sql +31 -6
- package/dist/schemes/_entry-semantic.d.ts +5 -7
- package/dist/schemes/_entry-semantic.d.ts.map +1 -1
- package/dist/schemes/_entry-semantic.js +10 -31
- package/dist/schemes/_entry-semantic.js.map +1 -1
- package/dist/schemes/_entry-semantic.sql +2 -2
- package/dist/schemes/_entry-send.js +4 -4
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/schemes/_search-index.d.ts.map +1 -1
- package/dist/schemes/_search-index.js +16 -6
- package/dist/schemes/_search-index.js.map +1 -1
- package/dist/schemes/exec-abort.js +2 -2
- package/dist/schemes/exec-abort.js.map +1 -1
- package/dist/server/BranchBatches.d.ts +1 -0
- package/dist/server/BranchBatches.d.ts.map +1 -1
- package/dist/server/BranchBatches.js +1 -0
- package/dist/server/BranchBatches.js.map +1 -1
- package/dist/server/Daemon.d.ts +6 -8
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +238 -68
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DaemonModule.d.ts +3 -3
- package/dist/server/DaemonModule.d.ts.map +1 -1
- package/dist/server/branch-batch.sql +3 -1
- package/dist/server/client-input.d.ts +2 -1
- package/dist/server/client-input.d.ts.map +1 -1
- package/dist/server/client-input.js +7 -1
- package/dist/server/client-input.js.map +1 -1
- package/dist/server/drain.sql +8 -7
- package/dist/server/envelope.d.ts +0 -2
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +0 -1
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +3 -4
- package/dist/server/lifecycle-recovery.sql +44 -1
- package/dist/server/logEntry.d.ts +2 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +15 -2
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/logEntry.sql +5 -1
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +13 -1
- package/dist/service.js.map +1 -1
- package/migrations/001_schema.sql +730 -221
- package/package.json +53 -46
- package/dist/core/BudgetOverflow.d.ts +0 -23
- package/dist/core/BudgetOverflow.d.ts.map +0 -1
- package/dist/core/BudgetOverflow.js +0 -61
- package/dist/core/BudgetOverflow.js.map +0 -1
- package/dist/core/caps/DbTagCaps.d.ts +0 -10
- package/dist/core/caps/DbTagCaps.d.ts.map +0 -1
- package/dist/core/caps/DbTagCaps.js +0 -44
- package/dist/core/caps/DbTagCaps.js.map +0 -1
- package/dist/matrix/live-specimen.d.ts +0 -9
- package/dist/matrix/live-specimen.d.ts.map +0 -1
- package/dist/matrix/live-specimen.js +0 -37
- package/dist/matrix/live-specimen.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbChannelCaps.js","sourceRoot":"","sources":["../../../src/core/caps/DbChannelCaps.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,qBAAqB;AACrB,iFAAiF;AACjF,4EAA4E;AAC5E,wFAAwF;AACxF,4DAA4D;AAE5D,OAAO,EAAE,OAAO,EAA0D,MAAM,wBAAwB,CAAC;AAEzG,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,aAAa;IACrB,IAAI,CAAsB;IAC1B,OAAO,CAAS;
|
|
1
|
+
{"version":3,"file":"DbChannelCaps.js","sourceRoot":"","sources":["../../../src/core/caps/DbChannelCaps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { EntryCaps, EntryData, EntryOperationCaps, EntryOwner, EntryStorageReadResult, EntryStorageWriteResult, SchemeManifest, SchemeResult } from "@plurnk/plurnk-schemes";
|
|
2
2
|
import type { PlurnkSchemeContext } from "../scheme-types.ts";
|
|
3
|
+
import type { LineAnchorPrecondition } from "../../content/index.ts";
|
|
3
4
|
export default class DbEntryCaps implements EntryCaps {
|
|
4
5
|
#private;
|
|
5
6
|
readonly operations: EntryOperationCaps;
|
|
6
|
-
constructor(ctx: PlurnkSchemeContext, scheme: string, manifest: SchemeManifest);
|
|
7
|
+
constructor(ctx: PlurnkSchemeContext, scheme: string, manifest: SchemeManifest, defaultOwnerId?: number, editPrecondition?: LineAnchorPrecondition | null);
|
|
7
8
|
read(pathname: string, owner?: EntryOwner): Promise<EntryStorageReadResult>;
|
|
8
9
|
write(pathname: string, entry: EntryData, owner?: EntryOwner): Promise<EntryStorageWriteResult>;
|
|
9
10
|
delete(pathname: string, owner?: EntryOwner, channel?: string): Promise<SchemeResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbEntryCaps.d.ts","sourceRoot":"","sources":["../../../src/core/caps/DbEntryCaps.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"DbEntryCaps.d.ts","sourceRoot":"","sources":["../../../src/core/caps/DbEntryCaps.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,SAAS,EACT,SAAS,EAGT,kBAAkB,EAClB,UAAU,EAEV,sBAAsB,EACtB,uBAAuB,EAIvB,cAAc,EACd,YAAY,EAEf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAK9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,MAAM,CAAC,OAAO,OAAO,WAAY,YAAW,SAAS;;IAMjD,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IAExC,YACI,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,cAAc,EACxB,cAAc,CAAC,EAAE,MAAM,EACvB,gBAAgB,GAAE,sBAAsB,GAAG,IAAW,EAiBzD;IAyCK,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAEhF;IAEK,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAKpG;IAEK,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAI1F;CACJ"}
|
|
@@ -9,8 +9,10 @@ export default class DbEntryCaps {
|
|
|
9
9
|
#ctx;
|
|
10
10
|
#scheme;
|
|
11
11
|
#manifest;
|
|
12
|
+
#defaultOwnerId;
|
|
13
|
+
#editPrecondition;
|
|
12
14
|
operations;
|
|
13
|
-
constructor(ctx, scheme, manifest) {
|
|
15
|
+
constructor(ctx, scheme, manifest, defaultOwnerId, editPrecondition = null) {
|
|
14
16
|
this.#ctx = ctx;
|
|
15
17
|
this.#scheme = scheme;
|
|
16
18
|
// One handler may own multiple addressed protocols (http/https, ws/wss).
|
|
@@ -18,6 +20,8 @@ export default class DbEntryCaps {
|
|
|
18
20
|
// direct CRUD already uses #scheme; standard operations derive identity
|
|
19
21
|
// from manifest.name, so give them the same addressed face.
|
|
20
22
|
this.#manifest = manifest.name === scheme ? manifest : { ...manifest, name: scheme };
|
|
23
|
+
this.#defaultOwnerId = defaultOwnerId;
|
|
24
|
+
this.#editPrecondition = editPrecondition;
|
|
21
25
|
this.operations = {
|
|
22
26
|
editBatch: (statements, owner) => this.#editBatch(statements, owner),
|
|
23
27
|
read: (statement, owner) => this.#read(statement, owner),
|
|
@@ -26,7 +30,11 @@ export default class DbEntryCaps {
|
|
|
26
30
|
};
|
|
27
31
|
}
|
|
28
32
|
#ownerId(owner) {
|
|
29
|
-
|
|
33
|
+
if (owner === "worker")
|
|
34
|
+
return this.#ctx.workerId;
|
|
35
|
+
if (owner === "commons")
|
|
36
|
+
return undefined;
|
|
37
|
+
return this.#defaultOwnerId;
|
|
30
38
|
}
|
|
31
39
|
#result(operation, result) {
|
|
32
40
|
if (Results.isErrorStatus(result.status) && result.problem === undefined) {
|
|
@@ -35,13 +43,17 @@ export default class DbEntryCaps {
|
|
|
35
43
|
return Results.assert(result);
|
|
36
44
|
}
|
|
37
45
|
async #editBatch(statements, owner) {
|
|
38
|
-
return this.#result("edit", await EntryOps.editWorkspaceEntryBatch(statements, this.#ctx, this.#manifest, this.#ownerId(owner)));
|
|
46
|
+
return this.#result("edit", await EntryOps.editWorkspaceEntryBatch(statements, this.#ctx, this.#manifest, this.#ownerId(owner), this.#editPrecondition));
|
|
39
47
|
}
|
|
40
48
|
async #read(statement, owner) {
|
|
41
|
-
return this.#result("read", await EntryOps.readWorkspaceEntry(statement, this.#ctx, this.#manifest,
|
|
49
|
+
return this.#result("read", await EntryOps.readWorkspaceEntry(statement, this.#ctx, this.#manifest, {
|
|
50
|
+
ownerId: this.#ownerId(owner),
|
|
51
|
+
}));
|
|
42
52
|
}
|
|
43
53
|
async #find(statement, owner) {
|
|
44
|
-
return this.#result("find", await EntryFind.findWorkspaceEntries(statement, this.#ctx, this.#manifest,
|
|
54
|
+
return this.#result("find", await EntryFind.findWorkspaceEntries(statement, this.#ctx, this.#manifest, {
|
|
55
|
+
ownerId: this.#ownerId(owner),
|
|
56
|
+
}));
|
|
45
57
|
}
|
|
46
58
|
async #send(statement, owner) {
|
|
47
59
|
return this.#result("send", await EntrySend.sendToWorkspaceEntry(statement, this.#ctx, this.#scheme, this.#ownerId(owner)));
|
|
@@ -50,9 +62,10 @@ export default class DbEntryCaps {
|
|
|
50
62
|
return EntryCrud.readEntry(pathname, this.#ctx, this.#scheme, this.#ownerId(owner));
|
|
51
63
|
}
|
|
52
64
|
async write(pathname, entry, owner) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
65
|
+
return EntryCrud.writeEntry(pathname, {
|
|
66
|
+
channels: entry.channels,
|
|
67
|
+
...(entry.attributes === undefined ? {} : { attributes: entry.attributes }),
|
|
68
|
+
}, this.#ctx, this.#scheme, this.#ownerId(owner));
|
|
56
69
|
}
|
|
57
70
|
async delete(pathname, owner, channel) {
|
|
58
71
|
return channel === undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbEntryCaps.js","sourceRoot":"","sources":["../../../src/core/caps/DbEntryCaps.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,0EAA0E;AAmB1E,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,SAAS,MAAM,8BAA8B,CAAC;AACrD,OAAO,SAAS,MAAM,8BAA8B,CAAC;AACrD,OAAO,QAAQ,MAAM,6BAA6B,CAAC;AACnD,OAAO,SAAS,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"DbEntryCaps.js","sourceRoot":"","sources":["../../../src/core/caps/DbEntryCaps.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { NotifyCaps, ChannelState } from "@plurnk/plurnk-schemes";
|
|
|
2
2
|
import type { PlurnkSchemeContext } from "../scheme-types.ts";
|
|
3
3
|
export default class DbNotifyCaps implements NotifyCaps {
|
|
4
4
|
#private;
|
|
5
|
-
constructor(ctx: PlurnkSchemeContext, scheme: string);
|
|
5
|
+
constructor(ctx: PlurnkSchemeContext, scheme: string, ownerId?: number);
|
|
6
6
|
streamEvent(pathname: string, channel: string, state: ChannelState, contentLength: number): void;
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=DbNotifyCaps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbNotifyCaps.d.ts","sourceRoot":"","sources":["../../../src/core/caps/DbNotifyCaps.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAK9D,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,UAAU;;
|
|
1
|
+
{"version":3,"file":"DbNotifyCaps.d.ts","sourceRoot":"","sources":["../../../src/core/caps/DbNotifyCaps.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAK9D,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,UAAU;;IAKnD,YAAY,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAIrE;IAED,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAM/F;CAQJ"}
|
|
@@ -13,9 +13,11 @@ import { renderAddress } from "../plurnk-uri.js";
|
|
|
13
13
|
export default class DbNotifyCaps {
|
|
14
14
|
#ctx;
|
|
15
15
|
#scheme;
|
|
16
|
-
|
|
16
|
+
#ownerId;
|
|
17
|
+
constructor(ctx, scheme, ownerId) {
|
|
17
18
|
this.#ctx = ctx;
|
|
18
19
|
this.#scheme = scheme;
|
|
20
|
+
this.#ownerId = ownerId;
|
|
19
21
|
}
|
|
20
22
|
streamEvent(pathname, channel, state, contentLength) {
|
|
21
23
|
const notify = this.#ctx.streamEventNotify;
|
|
@@ -26,11 +28,11 @@ export default class DbNotifyCaps {
|
|
|
26
28
|
});
|
|
27
29
|
}
|
|
28
30
|
async #emit(notify, pathname, channel, state, contentLength) {
|
|
29
|
-
const
|
|
30
|
-
if (
|
|
31
|
+
const entry = await CapsResolve.entry(this.#ctx, this.#scheme, pathname, this.#ownerId);
|
|
32
|
+
if (entry === null)
|
|
31
33
|
return;
|
|
32
34
|
const target = renderAddress(this.#scheme, pathname);
|
|
33
|
-
notify(this.#ctx.workspaceId, { entryId, target, channel, state, contentLength });
|
|
35
|
+
notify(this.#ctx.workspaceId, { entryId: entry.entryId, workerId: entry.workerId, target, channel, state, contentLength });
|
|
34
36
|
}
|
|
35
37
|
}
|
|
36
38
|
//# sourceMappingURL=DbNotifyCaps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbNotifyCaps.js","sourceRoot":"","sources":["../../../src/core/caps/DbNotifyCaps.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,0FAA0F;AAC1F,6EAA6E;AAC7E,uDAAuD;AACvD,EAAE;AACF,iFAAiF;AACjF,6EAA6E;AAC7E,4EAA4E;AAC5E,mDAAmD;AACnD,mDAAmD;AAKnD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,YAAY;IACpB,IAAI,CAAsB;IAC1B,OAAO,CAAS;
|
|
1
|
+
{"version":3,"file":"DbNotifyCaps.js","sourceRoot":"","sources":["../../../src/core/caps/DbNotifyCaps.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,0FAA0F;AAC1F,6EAA6E;AAC7E,uDAAuD;AACvD,EAAE;AACF,iFAAiF;AACjF,6EAA6E;AAC7E,4EAA4E;AAC5E,mDAAmD;AACnD,mDAAmD;AAKnD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,YAAY;IACpB,IAAI,CAAsB;IAC1B,OAAO,CAAS;IAChB,QAAQ,CAAqB;IAEtC,YAAY,GAAwB,EAAE,MAAc,EAAE,OAAgB;QAClE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,WAAW,CAAC,QAAgB,EAAE,OAAe,EAAE,KAAmB,EAAE,aAAqB;QACrF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACtF,OAAO,CAAC,KAAK,CAAC,2CAA2C,IAAI,CAAC,OAAO,IAAI,QAAQ,IAAI,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAyB,EAAE,QAAgB,EAAE,OAAe,EAAE,KAAmB,EAAE,aAAqB;QAChH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxF,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IAC/H,CAAC;CACJ"}
|
|
@@ -7,5 +7,6 @@ export default class DbProjectionCaps implements ProjectionCaps {
|
|
|
7
7
|
readableBytes(chunks: AsyncIterable<Uint8Array>, mimetype: string): Promise<ProjectedText | null>;
|
|
8
8
|
identity(mimetype: string): Promise<string>;
|
|
9
9
|
isBinary(mimetype: string): Promise<boolean>;
|
|
10
|
+
parseIssues(content: string, mimetype: string): Promise<number | undefined>;
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=DbProjectionCaps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbProjectionCaps.d.ts","sourceRoot":"","sources":["../../../src/core/caps/DbProjectionCaps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"DbProjectionCaps.d.ts","sourceRoot":"","sources":["../../../src/core/caps/DbProjectionCaps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAM9D,MAAM,CAAC,OAAO,OAAO,gBAAiB,YAAW,cAAc;;IAG3D,YAAY,GAAG,EAAE,mBAAmB,EAEnC;IAEK,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAK/E;IAEK,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAKtG;IAEK,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIhD;IAEK,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAIjD;IAEK,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2BhF;CACJ"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import ErrorDetail from "../ErrorDetail.js";
|
|
1
2
|
// Consumer-owned MIME projection for DB-free sibling schemes. The scheme owns
|
|
2
3
|
// acquisition; core owns the configured reader family and therefore the exact
|
|
3
4
|
// text the model, FIND, embeddings, and weights consume.
|
|
@@ -32,5 +33,33 @@ export default class DbProjectionCaps {
|
|
|
32
33
|
throw new Error("projection.isBinary: mimetype registry is required");
|
|
33
34
|
return (await mimetypes.classify(mimetype)).binary;
|
|
34
35
|
}
|
|
36
|
+
async parseIssues(content, mimetype) {
|
|
37
|
+
try {
|
|
38
|
+
const mimetypes = this.#ctx.mimetypes;
|
|
39
|
+
if (mimetypes === undefined) {
|
|
40
|
+
throw new Error("configured mimetype registry is required");
|
|
41
|
+
}
|
|
42
|
+
const result = await mimetypes.process({ content, hint: mimetype }, { channels: [], parseIssues: true });
|
|
43
|
+
for (const notice of result.notices ?? [])
|
|
44
|
+
this.#ctx.pushNotice?.(notice);
|
|
45
|
+
return result.parseIssues;
|
|
46
|
+
}
|
|
47
|
+
catch (cause) {
|
|
48
|
+
const detail = ErrorDetail.preview(cause);
|
|
49
|
+
const notice = {
|
|
50
|
+
source: "engine:mimetype",
|
|
51
|
+
kind: "parse_issues_unavailable",
|
|
52
|
+
level: "warn",
|
|
53
|
+
message: `Parser recovery evidence unavailable for ${mimetype}: ${detail}`,
|
|
54
|
+
};
|
|
55
|
+
if (this.#ctx.pushNotice === undefined) {
|
|
56
|
+
console.error(notice.message, cause);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this.#ctx.pushNotice(notice);
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
35
64
|
}
|
|
36
65
|
//# sourceMappingURL=DbProjectionCaps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbProjectionCaps.js","sourceRoot":"","sources":["../../../src/core/caps/DbProjectionCaps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DbProjectionCaps.js","sourceRoot":"","sources":["../../../src/core/caps/DbProjectionCaps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import type { SubscriptionCaps, SubscriptionHandle, StreamSubscription, SchemeResult } from "@plurnk/plurnk-schemes";
|
|
1
|
+
import type { SubscriptionCaps, SubscriptionHandle, StreamSubscription, TerminalChannelState, SchemeResult } from "@plurnk/plurnk-schemes";
|
|
2
2
|
import type { PlurnkSchemeContext } from "../scheme-types.ts";
|
|
3
3
|
import type LiveSubscriptions from "../LiveSubscriptions.ts";
|
|
4
4
|
export default class DbSubscriptionCaps implements SubscriptionCaps {
|
|
5
5
|
#private;
|
|
6
|
-
constructor(ctx: PlurnkSchemeContext, scheme: string, liveSubscriptions: LiveSubscriptions);
|
|
7
|
-
open(pathname: string, handle: SubscriptionHandle
|
|
8
|
-
publishedChannel?: string;
|
|
9
|
-
}): Promise<StreamSubscription>;
|
|
6
|
+
constructor(ctx: PlurnkSchemeContext, scheme: string, liveSubscriptions: LiveSubscriptions, publishedChannel: string | null, ownerId?: number);
|
|
7
|
+
open(pathname: string, handle: SubscriptionHandle): Promise<StreamSubscription>;
|
|
10
8
|
notifyChunk(channel: string, chunk: string, mimetype?: string): Promise<void>;
|
|
11
|
-
close(result: SchemeResult, summary?: string): Promise<void>;
|
|
9
|
+
close(result: SchemeResult, summary?: string, channelStates?: Readonly<Record<string, TerminalChannelState>>): Promise<void>;
|
|
12
10
|
}
|
|
13
11
|
//# sourceMappingURL=DbSubscriptionCaps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbSubscriptionCaps.d.ts","sourceRoot":"","sources":["../../../src/core/caps/DbSubscriptionCaps.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACR,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAElB,YAAY,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAG7D,MAAM,CAAC,OAAO,OAAO,kBAAmB,YAAW,gBAAgB;;
|
|
1
|
+
{"version":3,"file":"DbSubscriptionCaps.d.ts","sourceRoot":"","sources":["../../../src/core/caps/DbSubscriptionCaps.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACR,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAElB,oBAAoB,EACpB,YAAY,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAG7D,MAAM,CAAC,OAAO,OAAO,kBAAmB,YAAW,gBAAgB;;IAQ/D,YACI,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAC/B,OAAO,CAAC,EAAE,MAAM,EAOnB;IAEK,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgFpF;IAEK,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIlF;IAEK,KAAK,CACP,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,GAC/D,OAAO,CAAC,IAAI,CAAC,CAIf;CACJ"}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
// worker+teardown-composed StreamSubscription; a worker abort also
|
|
5
5
|
// force-cancels the sibling's handle.
|
|
6
6
|
// notifyChunk(channel, chunk) → FUSED append-to-channel + stream/event.
|
|
7
|
-
// close(result, summary?) → composites every channel's
|
|
8
|
-
// registry close, and
|
|
9
|
-
//
|
|
7
|
+
// close(result, summary?, channelStates?) → composites every channel's
|
|
8
|
+
// terminal state, registry close, and rich worker wake (the only place with
|
|
9
|
+
// the close context; NotifyCaps therefore has no wakeWorker operation).
|
|
10
10
|
// The returned object owns the exact retained lifecycle. Namespace methods are
|
|
11
11
|
// operation-scoped compatibility forwarders to that same object.
|
|
12
12
|
import { Results } from "@plurnk/plurnk-schemes";
|
|
@@ -17,20 +17,25 @@ export default class DbSubscriptionCaps {
|
|
|
17
17
|
#ctx;
|
|
18
18
|
#scheme;
|
|
19
19
|
#liveSubscriptions;
|
|
20
|
+
#publishedChannel;
|
|
21
|
+
#ownerId;
|
|
20
22
|
#current = null;
|
|
21
|
-
constructor(ctx, scheme, liveSubscriptions) {
|
|
23
|
+
constructor(ctx, scheme, liveSubscriptions, publishedChannel, ownerId) {
|
|
22
24
|
this.#ctx = ctx;
|
|
23
25
|
this.#scheme = scheme;
|
|
24
26
|
this.#liveSubscriptions = liveSubscriptions;
|
|
27
|
+
this.#publishedChannel = publishedChannel;
|
|
28
|
+
this.#ownerId = ownerId;
|
|
25
29
|
}
|
|
26
|
-
async open(pathname, handle
|
|
27
|
-
const
|
|
28
|
-
if (
|
|
30
|
+
async open(pathname, handle) {
|
|
31
|
+
const entry = await CapsResolve.entry(this.#ctx, this.#scheme, pathname, this.#ownerId);
|
|
32
|
+
if (entry === null)
|
|
29
33
|
throw new Error(`subscriptions.open: no entry at ${pathname}`);
|
|
34
|
+
const { entryId, workerId: entryOwnerId } = entry;
|
|
30
35
|
const { db, workerId, workspaceId, signal: parent, streamEventNotify, wakeWorkerNotify, } = this.#ctx;
|
|
31
36
|
const scheme = this.#scheme;
|
|
32
37
|
const liveSubscriptions = this.#liveSubscriptions;
|
|
33
|
-
const publishedChannel =
|
|
38
|
+
const publishedChannel = this.#publishedChannel;
|
|
34
39
|
const subscriptionId = await ChannelWrite.openSubscription(db, {
|
|
35
40
|
workerId, entryId, scheme, handle: pathname, publishedChannel,
|
|
36
41
|
});
|
|
@@ -43,11 +48,20 @@ export default class DbSubscriptionCaps {
|
|
|
43
48
|
mimetype,
|
|
44
49
|
});
|
|
45
50
|
};
|
|
46
|
-
const close = async (result, summary) => {
|
|
51
|
+
const close = async (result, summary, channelStates) => {
|
|
47
52
|
Results.assert(result);
|
|
48
|
-
const
|
|
53
|
+
const defaultState = result.status >= 400 ? "errored" : "closed";
|
|
49
54
|
const channels = await db.crud_read_channels.all({ entry_id: entryId });
|
|
55
|
+
const channelNames = new Set(channels.map(({ name }) => name));
|
|
56
|
+
for (const [name, state] of Object.entries(channelStates ?? {})) {
|
|
57
|
+
if (!channelNames.has(name))
|
|
58
|
+
throw new Error(`subscriptions.close: unknown channel state override ${name}`);
|
|
59
|
+
if (state !== "closed" && state !== "errored") {
|
|
60
|
+
throw new Error(`subscriptions.close: invalid state ${JSON.stringify(state)} for channel ${name}`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
50
63
|
for (const { name } of channels) {
|
|
64
|
+
const state = channelStates?.[name] ?? defaultState;
|
|
51
65
|
await ChannelWrite.setChannelState(db, {
|
|
52
66
|
entryId, channel: name, state,
|
|
53
67
|
...(publishedChannel === null || publishedChannel === name ? { notify: streamEventNotify } : {}),
|
|
@@ -57,7 +71,7 @@ export default class DbSubscriptionCaps {
|
|
|
57
71
|
liveSubscriptions.unregister(subscriptionId);
|
|
58
72
|
unlink();
|
|
59
73
|
wakeWorkerNotify?.({
|
|
60
|
-
workspaceId, workerId, entryId,
|
|
74
|
+
workspaceId, workerId, entryOwnerId, entryId,
|
|
61
75
|
target: renderAddress(scheme, pathname),
|
|
62
76
|
subscriptionId, result, scheme, summary: summary ?? "",
|
|
63
77
|
});
|
|
@@ -91,11 +105,11 @@ export default class DbSubscriptionCaps {
|
|
|
91
105
|
throw new Error("subscriptions.notifyChunk: no open subscription");
|
|
92
106
|
await current.notifyChunk(channel, chunk, mimetype);
|
|
93
107
|
}
|
|
94
|
-
async close(result, summary) {
|
|
108
|
+
async close(result, summary, channelStates) {
|
|
95
109
|
const current = this.#current;
|
|
96
110
|
if (current === null)
|
|
97
111
|
throw new Error("subscriptions.close: no open subscription");
|
|
98
|
-
await current.close(result, summary);
|
|
112
|
+
await current.close(result, summary, channelStates);
|
|
99
113
|
}
|
|
100
114
|
}
|
|
101
115
|
//# sourceMappingURL=DbSubscriptionCaps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbSubscriptionCaps.js","sourceRoot":"","sources":["../../../src/core/caps/DbSubscriptionCaps.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,4CAA4C;AAC5C,yEAAyE;AACzE,uEAAuE;AACvE,0CAA0C;AAC1C,0EAA0E;AAC1E,
|
|
1
|
+
{"version":3,"file":"DbSubscriptionCaps.js","sourceRoot":"","sources":["../../../src/core/caps/DbSubscriptionCaps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import type { SchemeCtx, EntryCaps, ChannelCaps,
|
|
1
|
+
import type { SchemeCtx, EntryCaps, ChannelCaps, NotifyCaps, ProjectionCaps, SubscriptionCaps, SchemeManifest, WriterTier } from "@plurnk/plurnk-schemes";
|
|
2
2
|
import type { PlurnkSchemeContext } from "../scheme-types.ts";
|
|
3
3
|
import type LiveSubscriptions from "../LiveSubscriptions.ts";
|
|
4
|
+
import type { LineAnchorPrecondition } from "../../content/index.ts";
|
|
5
|
+
interface SchemeCtxOptions {
|
|
6
|
+
readonly ownerId?: number;
|
|
7
|
+
readonly publishedChannel?: string | null;
|
|
8
|
+
readonly editPrecondition?: LineAnchorPrecondition | null;
|
|
9
|
+
}
|
|
4
10
|
export default class SchemeCtxImpl implements SchemeCtx {
|
|
11
|
+
#private;
|
|
5
12
|
readonly workspaceId: number;
|
|
6
13
|
readonly workerId: number;
|
|
7
14
|
readonly loopId: number;
|
|
@@ -10,10 +17,11 @@ export default class SchemeCtxImpl implements SchemeCtx {
|
|
|
10
17
|
readonly signal: AbortSignal | undefined;
|
|
11
18
|
readonly entries: EntryCaps;
|
|
12
19
|
readonly channels: ChannelCaps;
|
|
13
|
-
readonly tags: TagCaps;
|
|
14
20
|
readonly notify: NotifyCaps;
|
|
15
21
|
readonly projection: ProjectionCaps;
|
|
16
22
|
readonly subscriptions: SubscriptionCaps;
|
|
17
|
-
constructor(ctx: PlurnkSchemeContext, scheme: string, manifest: SchemeManifest, liveSubscriptions: LiveSubscriptions);
|
|
23
|
+
constructor(ctx: PlurnkSchemeContext, scheme: string, manifest: SchemeManifest, liveSubscriptions: LiveSubscriptions, options?: SchemeCtxOptions);
|
|
24
|
+
static editPreconditionOf(ctx: SchemeCtx | PlurnkSchemeContext): LineAnchorPrecondition | null;
|
|
18
25
|
}
|
|
26
|
+
export {};
|
|
19
27
|
//# sourceMappingURL=SchemeCtxImpl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemeCtxImpl.d.ts","sourceRoot":"","sources":["../../../src/core/caps/SchemeCtxImpl.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"SchemeCtxImpl.d.ts","sourceRoot":"","sources":["../../../src/core/caps/SchemeCtxImpl.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAC9G,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAM9D,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,UAAU,gBAAgB;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAC7D;AAED,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,SAAS;;IAEnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;IACzC,YACI,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,cAAc,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,GAAE,gBAAqB,EAoBjC;IAED,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,SAAS,GAAG,mBAAmB,GAAG,sBAAsB,GAAG,IAAI,CAE7F;CACJ"}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
// daemon collaborators stay constructor-injected into core-owned adapters.
|
|
3
3
|
import DbEntryCaps from "./DbEntryCaps.js";
|
|
4
4
|
import DbChannelCaps from "./DbChannelCaps.js";
|
|
5
|
-
import DbTagCaps from "./DbTagCaps.js";
|
|
6
5
|
import DbNotifyCaps from "./DbNotifyCaps.js";
|
|
7
6
|
import DbSubscriptionCaps from "./DbSubscriptionCaps.js";
|
|
8
7
|
import DbProjectionCaps from "./DbProjectionCaps.js";
|
|
9
8
|
export default class SchemeCtxImpl {
|
|
9
|
+
#editPrecondition;
|
|
10
10
|
workspaceId;
|
|
11
11
|
workerId;
|
|
12
12
|
loopId;
|
|
@@ -15,23 +15,25 @@ export default class SchemeCtxImpl {
|
|
|
15
15
|
signal;
|
|
16
16
|
entries;
|
|
17
17
|
channels;
|
|
18
|
-
tags;
|
|
19
18
|
notify;
|
|
20
19
|
projection;
|
|
21
20
|
subscriptions;
|
|
22
|
-
constructor(ctx, scheme, manifest, liveSubscriptions) {
|
|
21
|
+
constructor(ctx, scheme, manifest, liveSubscriptions, options = {}) {
|
|
23
22
|
this.workspaceId = ctx.workspaceId;
|
|
24
23
|
this.workerId = ctx.workerId;
|
|
25
24
|
this.loopId = ctx.loopId;
|
|
26
25
|
this.turnId = ctx.turnId;
|
|
27
26
|
this.writer = ctx.writer;
|
|
28
27
|
this.signal = ctx.signal;
|
|
29
|
-
this
|
|
30
|
-
this.
|
|
31
|
-
this.
|
|
32
|
-
this.notify = new DbNotifyCaps(ctx, scheme);
|
|
28
|
+
this.#editPrecondition = options.editPrecondition ?? null;
|
|
29
|
+
this.entries = new DbEntryCaps(ctx, scheme, manifest, options.ownerId, this.#editPrecondition);
|
|
30
|
+
this.channels = new DbChannelCaps(ctx, scheme, options.ownerId);
|
|
31
|
+
this.notify = new DbNotifyCaps(ctx, scheme, options.ownerId);
|
|
33
32
|
this.projection = new DbProjectionCaps(ctx);
|
|
34
|
-
this.subscriptions = new DbSubscriptionCaps(ctx, scheme, liveSubscriptions);
|
|
33
|
+
this.subscriptions = new DbSubscriptionCaps(ctx, scheme, liveSubscriptions, options.publishedChannel ?? null, options.ownerId);
|
|
34
|
+
}
|
|
35
|
+
static editPreconditionOf(ctx) {
|
|
36
|
+
return ctx instanceof SchemeCtxImpl ? ctx.#editPrecondition : null;
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
39
|
//# sourceMappingURL=SchemeCtxImpl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemeCtxImpl.js","sourceRoot":"","sources":["../../../src/core/caps/SchemeCtxImpl.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,2EAA2E;AAM3E,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"SchemeCtxImpl.js","sourceRoot":"","sources":["../../../src/core/caps/SchemeCtxImpl.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,2EAA2E;AAM3E,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAUrD,MAAM,CAAC,OAAO,OAAO,aAAa;IACrB,iBAAiB,CAAgC;IACjD,WAAW,CAAS;IACpB,QAAQ,CAAS;IACjB,MAAM,CAAS;IACf,MAAM,CAAS;IACf,MAAM,CAAa;IACnB,MAAM,CAA0B;IAChC,OAAO,CAAY;IACnB,QAAQ,CAAc;IACtB,MAAM,CAAa;IACnB,UAAU,CAAiB;IAC3B,aAAa,CAAmB;IACzC,YACI,GAAwB,EACxB,MAAc,EACd,QAAwB,EACxB,iBAAoC,EACpC,OAAO,GAAqB,EAAE;QAE9B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/F,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,kBAAkB,CACvC,GAAG,EACH,MAAM,EACN,iBAAiB,EACjB,OAAO,CAAC,gBAAgB,IAAI,IAAI,EAChC,OAAO,CAAC,OAAO,CAClB,CAAC;IACN,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,GAAoC;QAC1D,OAAO,GAAG,YAAY,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,CAAC;CACJ"}
|
package/dist/core/fork.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../src/core/fork.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAGlC,MAAM,CAAC,OAAO,OAAO,IAAI;;IAIrB,OAAa,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../src/core/fork.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAGlC,MAAM,CAAC,OAAO,OAAO,IAAI;;IAIrB,OAAa,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqIhF;CACJ"}
|
package/dist/core/fork.js
CHANGED
|
@@ -72,12 +72,12 @@ export default class Fork {
|
|
|
72
72
|
const turns = await db.fork_get_turns.all({ worker_id: parentWorkerId });
|
|
73
73
|
const turnMap = new Map();
|
|
74
74
|
for (const { id, loop_id, ...rest } of turns) {
|
|
75
|
-
// {§machine-processes-fork-cost} —
|
|
76
|
-
//
|
|
77
|
-
//
|
|
78
|
-
//
|
|
75
|
+
// {§machine-processes-fork-cost} — copied turns retain conversational
|
|
76
|
+
// history, while model calls, admission rows, and physical requests
|
|
77
|
+
// remain owned by the source worker. Branch accounting therefore
|
|
78
|
+
// begins with only calls it actually issues.
|
|
79
79
|
const nt = await db.fork_insert_turn.get({
|
|
80
|
-
...rest,
|
|
80
|
+
...rest,
|
|
81
81
|
loop_id: loopMap.get(loop_id),
|
|
82
82
|
});
|
|
83
83
|
if (nt === undefined)
|
|
@@ -87,14 +87,31 @@ export default class Fork {
|
|
|
87
87
|
// entries → new entries: worker/loop/turn ids remapped; fold-state and
|
|
88
88
|
// attribution and content all preserved.
|
|
89
89
|
const entries = await db.fork_get_log_entries.all({ worker_id: parentWorkerId });
|
|
90
|
+
const logMap = new Map();
|
|
90
91
|
for (const e of entries) {
|
|
91
92
|
const { id: oldLogId, ...row } = e;
|
|
92
93
|
const ne = await db.fork_insert_log_entry.get({ ...row, worker_id: branchWorkerId, loop_id: loopMap.get(e.loop_id), turn_id: turnMap.get(e.turn_id) });
|
|
93
94
|
if (ne === undefined)
|
|
94
95
|
throw new Error("fork: log entry copy returned no row");
|
|
95
|
-
|
|
96
|
+
logMap.set(oldLogId, ne.id);
|
|
97
|
+
// {§log-item-tags} — carry the row's classifications onto the copy (no-op when untagged).
|
|
96
98
|
await db.fork_copy_log_tags.run({ old_log_id: oldLogId, new_log_id: ne.id });
|
|
97
99
|
}
|
|
100
|
+
const curationEffects = await db.fork_get_log_curation_effects.all({ worker_id: parentWorkerId });
|
|
101
|
+
for (const effect of curationEffects) {
|
|
102
|
+
const operationLogEntryId = logMap.get(effect.operation_log_entry_id);
|
|
103
|
+
const targetLogEntryId = logMap.get(effect.target_log_entry_id);
|
|
104
|
+
if (operationLogEntryId === undefined || targetLogEntryId === undefined) {
|
|
105
|
+
throw new Error("fork: curation effect references a log row outside copied history");
|
|
106
|
+
}
|
|
107
|
+
await db.fork_insert_log_curation_effect.run({
|
|
108
|
+
operation_log_entry_id: operationLogEntryId,
|
|
109
|
+
target_log_entry_id: targetLogEntryId,
|
|
110
|
+
expanded_before: effect.expanded_before,
|
|
111
|
+
tags_added: effect.tags_added,
|
|
112
|
+
tags_removed: effect.tags_removed,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
98
115
|
// {§worker-scheme} — inherit the parent's private scratch: same pathnames, the BRANCH as owner
|
|
99
116
|
// ({§entry-owner} — ownership is the column, never the pathname), so the branch's private
|
|
100
117
|
// workspace is independent and diverges on its own edits.
|
|
@@ -104,7 +121,6 @@ export default class Fork {
|
|
|
104
121
|
if (ne === undefined)
|
|
105
122
|
throw new Error("fork: private entry copy returned no row");
|
|
106
123
|
await db.fork_copy_entry_channels.run({ old_entry_id: s.id, new_entry_id: ne.id });
|
|
107
|
-
await db.fork_copy_entry_tags.run({ old_entry_id: s.id, new_entry_id: ne.id });
|
|
108
124
|
}
|
|
109
125
|
return branchWorkerId;
|
|
110
126
|
}
|
package/dist/core/fork.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../../src/core/fork.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../../src/core/fork.ts"],"names":[],"mappings":"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"}
|