@plurnk/plurnk-service 1.3.3 → 1.3.4
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 +16 -3
- package/INSTALL.md +7 -3
- package/SPEC.md +35 -19
- package/dist/build-info.json +1 -1
- package/dist/content/edit-receipt.d.ts +35 -0
- package/dist/content/edit-receipt.d.ts.map +1 -0
- package/dist/content/edit-receipt.js +158 -0
- package/dist/content/edit-receipt.js.map +1 -0
- package/dist/content/index.d.ts +2 -0
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +1 -0
- package/dist/content/index.js.map +1 -1
- package/dist/content/line-marker.d.ts +3 -1
- package/dist/content/line-marker.d.ts.map +1 -1
- package/dist/content/line-marker.js +2 -0
- package/dist/content/line-marker.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/Db.d.ts +2 -13
- package/dist/core/Db.d.ts.map +1 -1
- package/dist/core/Db.js +0 -5
- package/dist/core/Db.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +2 -1
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +151 -26
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +26 -27
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +25 -0
- package/dist/core/LoopLifecycle.d.ts.map +1 -1
- package/dist/core/LoopLifecycle.js.map +1 -1
- package/dist/core/Owner.d.ts.map +1 -1
- package/dist/core/Owner.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/ProposalLifecycle.d.ts +1 -0
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +8 -4
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ProviderInstantiate.d.ts.map +1 -1
- package/dist/core/ProviderInstantiate.js +10 -22
- package/dist/core/ProviderInstantiate.js.map +1 -1
- package/dist/core/TelemetryChannel.d.ts.map +1 -1
- package/dist/core/TelemetryChannel.js.map +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.map +1 -1
- package/dist/core/caps/DbChannelCaps.js.map +1 -1
- package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
- package/dist/core/caps/DbEntryCaps.js +8 -4
- package/dist/core/caps/DbEntryCaps.js.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
- package/dist/core/caps/DbTagCaps.d.ts.map +1 -1
- package/dist/core/caps/DbTagCaps.js.map +1 -1
- package/dist/core/fork.d.ts.map +1 -1
- package/dist/core/fork.js.map +1 -1
- package/dist/core/git-iso.d.ts +3 -0
- package/dist/core/git-iso.d.ts.map +1 -1
- package/dist/core/git-iso.js +35 -4
- package/dist/core/git-iso.js.map +1 -1
- package/dist/core/git-membership.d.ts.map +1 -1
- 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 +3 -6
- package/dist/core/git-state.js.map +1 -1
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +37 -11
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/turn-scheduler.d.ts +3 -0
- package/dist/core/turn-scheduler.d.ts.map +1 -0
- package/dist/core/turn-scheduler.js +20 -0
- package/dist/core/turn-scheduler.js.map +1 -0
- package/dist/core/worker-cap.d.ts.map +1 -1
- package/dist/core/worker-cap.js.map +1 -1
- package/dist/core/workspace-settings.d.ts.map +1 -1
- package/dist/core/workspace-settings.js.map +1 -1
- package/dist/core/world-state.d.ts.map +1 -1
- package/dist/core/world-state.js.map +1 -1
- package/dist/digest/Digest.d.ts.map +1 -1
- package/dist/digest/Digest.js +4 -6
- package/dist/digest/Digest.js.map +1 -1
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +5 -1
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/File.d.ts +5 -0
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +51 -10
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +9 -1
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Prompt.d.ts +1 -1
- package/dist/schemes/Prompt.d.ts.map +1 -1
- package/dist/schemes/Prompt.js +2 -2
- package/dist/schemes/Prompt.js.map +1 -1
- package/dist/schemes/Skill.d.ts +1 -0
- package/dist/schemes/Skill.d.ts.map +1 -1
- package/dist/schemes/Skill.js +4 -1
- package/dist/schemes/Skill.js.map +1 -1
- package/dist/schemes/Worker.d.ts +3 -0
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +11 -2
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-find.d.ts +8 -8
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +76 -23
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-find.sql +20 -0
- package/dist/schemes/_entry-graph.d.ts.map +1 -1
- package/dist/schemes/_entry-graph.js.map +1 -1
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.d.ts +3 -2
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +41 -13
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-semantic.d.ts +2 -1
- package/dist/schemes/_entry-semantic.d.ts.map +1 -1
- package/dist/schemes/_entry-semantic.js +15 -4
- package/dist/schemes/_entry-semantic.js.map +1 -1
- package/dist/schemes/_entry-semantic.sql +3 -0
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/clientTurn.d.ts.map +1 -1
- package/dist/server/clientTurn.js.map +1 -1
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js.map +1 -1
- package/package.json +20 -18
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SliceResult, JsonSliceResult, LineEditResult as EditResult } from "@plurnk/plurnk-schemes";
|
|
1
|
+
import type { SliceResult, JsonSliceResult, LineEditResult as EditResult, BatchEdit } from "@plurnk/plurnk-schemes";
|
|
2
2
|
import type { LineMarker } from "@plurnk/plurnk-grammar";
|
|
3
3
|
export type { SliceResult, JsonSliceResult, EditResult };
|
|
4
4
|
export default class LineMarkerOps {
|
|
@@ -7,6 +7,8 @@ export default class LineMarkerOps {
|
|
|
7
7
|
static applyJsonItemEdit(content: string, marker: LineMarker, body: string): EditResult;
|
|
8
8
|
static sliceLinesRaw(content: string, marker: LineMarker): SliceResult;
|
|
9
9
|
static applyLineMarkerEdit(content: string, marker: LineMarker, body: string): EditResult;
|
|
10
|
+
static applyLineMarkerEditBatch(content: string, edits: readonly BatchEdit[]): EditResult;
|
|
11
|
+
static applyJsonItemEditBatch(content: string, edits: readonly BatchEdit[]): EditResult;
|
|
10
12
|
static firstLast(marker: LineMarker): {
|
|
11
13
|
first: number;
|
|
12
14
|
last: number | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line-marker.d.ts","sourceRoot":"","sources":["../../src/content/line-marker.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"line-marker.d.ts","sourceRoot":"","sources":["../../src/content/line-marker.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,IAAI,UAAU,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACpH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AAEzD,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,WAAW,CAA0C;IAC7G,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,eAAe,CAA8C;IACzH,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAuD;IAC9I,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,WAAW,CAA6C;IACnH,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAyD;IAClJ,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,UAAU,CAAuD;IAChJ,MAAM,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,UAAU,CAAqD;IAK5I,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAE3E;CACJ"}
|
|
@@ -11,6 +11,8 @@ export default class LineMarkerOps {
|
|
|
11
11
|
static applyJsonItemEdit(content, marker, body) { return Slicer.jsonItemEdit(content, marker, body); } // structural JSON item edit; malformed JSON → 400 — §json-edit-structural-json-edit §json-edit-json-parse-fail-400
|
|
12
12
|
static sliceLinesRaw(content, marker) { return Slicer.linesRaw(content, marker); }
|
|
13
13
|
static applyLineMarkerEdit(content, marker, body) { return Slicer.lineMarkerEdit(content, marker, body); }
|
|
14
|
+
static applyLineMarkerEditBatch(content, edits) { return Slicer.lineMarkerEditBatch(content, edits); }
|
|
15
|
+
static applyJsonItemEditBatch(content, edits) { return Slicer.jsonItemEditBatch(content, edits); }
|
|
14
16
|
// grammar 0.49+: the <L> parser carries raw numbers in `marks`; role-assignment is the
|
|
15
17
|
// consumer's. We read the first mark as start and the second as end (<N,M> range), null for
|
|
16
18
|
// a lone <N>. Used by the service's own range/threshold consumers (paginate, ~query top-K).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line-marker.js","sourceRoot":"","sources":["../../src/content/line-marker.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,iFAAiF;AACjF,EAAE;AACF,6EAA6E;AAC7E,wDAAwD;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAMhD,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,MAAM,CAAC,UAAU,CAAC,OAAe,EAAE,MAAkB,IAAiB,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7G,MAAM,CAAC,cAAc,CAAC,OAAe,EAAE,MAAkB,IAAqB,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACzH,MAAM,CAAC,iBAAiB,CAAC,OAAe,EAAE,MAAkB,EAAE,IAAY,IAAgB,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,mHAAmH;IAClQ,MAAM,CAAC,aAAa,CAAC,OAAe,EAAE,MAAkB,IAAiB,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACnH,MAAM,CAAC,mBAAmB,CAAC,OAAe,EAAE,MAAkB,EAAE,IAAY,IAAgB,OAAO,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"line-marker.js","sourceRoot":"","sources":["../../src/content/line-marker.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,iFAAiF;AACjF,EAAE;AACF,6EAA6E;AAC7E,wDAAwD;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAMhD,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,MAAM,CAAC,UAAU,CAAC,OAAe,EAAE,MAAkB,IAAiB,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7G,MAAM,CAAC,cAAc,CAAC,OAAe,EAAE,MAAkB,IAAqB,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACzH,MAAM,CAAC,iBAAiB,CAAC,OAAe,EAAE,MAAkB,EAAE,IAAY,IAAgB,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,mHAAmH;IAClQ,MAAM,CAAC,aAAa,CAAC,OAAe,EAAE,MAAkB,IAAiB,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACnH,MAAM,CAAC,mBAAmB,CAAC,OAAe,EAAE,MAAkB,EAAE,IAAY,IAAgB,OAAO,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAClJ,MAAM,CAAC,wBAAwB,CAAC,OAAe,EAAE,KAA2B,IAAgB,OAAO,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChJ,MAAM,CAAC,sBAAsB,CAAC,OAAe,EAAE,KAA2B,IAAgB,OAAO,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5I,uFAAuF;IACvF,4FAA4F;IAC5F,4FAA4F;IAC5F,MAAM,CAAC,SAAS,CAAC,MAAkB;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9F,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelWrite.d.ts","sourceRoot":"","sources":["../../src/core/ChannelWrite.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"ChannelWrite.d.ts","sourceRoot":"","sources":["../../src/core/ChannelWrite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelWrite.js","sourceRoot":"","sources":["../../src/core/ChannelWrite.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sFAAsF;AACtF,EAAE;AACF,mFAAmF;AACnF,4FAA4F;AAC5F,8EAA8E;AAC9E,6EAA6E;AAC7E,gCAAgC;AAIhC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAoGhD,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,YAAY,CAAC,EAAM,
|
|
1
|
+
{"version":3,"file":"ChannelWrite.js","sourceRoot":"","sources":["../../src/core/ChannelWrite.ts"],"names":[],"mappings":"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"}
|
package/dist/core/Db.d.ts
CHANGED
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
changes: number;
|
|
4
|
-
lastInsertRowid: number;
|
|
5
|
-
}>;
|
|
6
|
-
get<T = Record<string, unknown>>(params?: object): Promise<T | undefined>;
|
|
7
|
-
all<T = Record<string, unknown>>(params?: object): Promise<T[]>;
|
|
8
|
-
}
|
|
9
|
-
export type ExecMethod = (params?: object) => Promise<unknown>;
|
|
10
|
-
export type Db = {
|
|
11
|
-
close(): Promise<void>;
|
|
12
|
-
ready(): Promise<unknown>;
|
|
13
|
-
} & Record<string, PrepMethod | ExecMethod>;
|
|
1
|
+
import type SqlRite from "@possumtech/sqlrite";
|
|
2
|
+
export type Db = SqlRite;
|
|
14
3
|
//# sourceMappingURL=Db.d.ts.map
|
package/dist/core/Db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/core/Db.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/core/Db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,MAAM,MAAM,EAAE,GAAG,OAAO,CAAC"}
|
package/dist/core/Db.js
CHANGED
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
// Permissive structural type for SqlRite-managed database handles. SqlRite
|
|
2
|
-
// generates statement-named accessors at runtime (`db.<prep_name>.run/.get/.all`
|
|
3
|
-
// per `-- PREP:` blocks in .sql files). `npm run build:types` from
|
|
4
|
-
// @possumtech/sqlrite produces precise codegen; this alias is the manual
|
|
5
|
-
// fallback typing until that's wired into the build.
|
|
6
1
|
export {};
|
|
7
2
|
//# sourceMappingURL=Db.js.map
|
package/dist/core/Db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Db.js","sourceRoot":"","sources":["../../src/core/Db.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Db.js","sourceRoot":"","sources":["../../src/core/Db.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PlurnkStatement } from "@plurnk/plurnk-grammar";
|
|
1
|
+
import type { PlurnkStatement, EditStatement } from "@plurnk/plurnk-grammar";
|
|
2
2
|
import type { Mimetypes } from "@plurnk/plurnk-mimetypes";
|
|
3
3
|
import type { Db } from "./Db.ts";
|
|
4
4
|
import type SchemeRegistry from "./SchemeRegistry.ts";
|
|
@@ -45,6 +45,7 @@ export default class Dispatcher {
|
|
|
45
45
|
joinTargets?: Set<number>;
|
|
46
46
|
liveSubscriptions: LiveSubscriptions;
|
|
47
47
|
});
|
|
48
|
+
prepareEditBatches(statements: readonly EditStatement[], context: Omit<DispatchContext, "statement" | "sequence">): Promise<void>;
|
|
48
49
|
dispatch(context: DispatchContext): Promise<DispatchResult>;
|
|
49
50
|
look(context: {
|
|
50
51
|
statement: PlurnkStatement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dispatcher.d.ts","sourceRoot":"","sources":["../../src/core/Dispatcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAmD,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"Dispatcher.d.ts","sourceRoot":"","sources":["../../src/core/Dispatcher.ts"],"names":[],"mappings":"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"}
|
package/dist/core/Dispatcher.js
CHANGED
|
@@ -51,6 +51,7 @@ class Dispatcher {
|
|
|
51
51
|
#joinTargets;
|
|
52
52
|
#liveSubscriptions;
|
|
53
53
|
#lifecycle;
|
|
54
|
+
#preparedEdits = new WeakMap();
|
|
54
55
|
constructor({ db, schemes, mimetypes, tokenize, telemetry, proposals, executors, loopSignal, streamEventNotify, wakeWorkerNotify, injectWorker, cancelWorker, cancelDescendants, searchGate, parkDeadlines, joinTargets, liveSubscriptions }) {
|
|
55
56
|
this.#db = db;
|
|
56
57
|
this.#schemes = schemes;
|
|
@@ -135,7 +136,86 @@ class Dispatcher {
|
|
|
135
136
|
if (key !== null)
|
|
136
137
|
target.pathname = key;
|
|
137
138
|
}
|
|
139
|
+
async prepareEditBatches(statements, context) {
|
|
140
|
+
const { workspaceId, workerId, loopId, turnId, origin } = context;
|
|
141
|
+
const schemeCtx = this.#buildSchemeCtx({ workspaceId, workerId, loopId, turnId, origin });
|
|
142
|
+
const groups = new Map();
|
|
143
|
+
for (const statement of statements) {
|
|
144
|
+
const target = this.#extractTarget(statement.target);
|
|
145
|
+
await this.#canonColumns(target, workspaceId);
|
|
146
|
+
const key = JSON.stringify([
|
|
147
|
+
schemeNameOf(statement.target),
|
|
148
|
+
target.scheme,
|
|
149
|
+
target.hostname,
|
|
150
|
+
target.pathname,
|
|
151
|
+
target.fragment,
|
|
152
|
+
]);
|
|
153
|
+
const group = groups.get(key);
|
|
154
|
+
if (group === undefined)
|
|
155
|
+
groups.set(key, [statement]);
|
|
156
|
+
else
|
|
157
|
+
group.push(statement);
|
|
158
|
+
}
|
|
159
|
+
for (const group of groups.values()) {
|
|
160
|
+
const first = group[0];
|
|
161
|
+
const schemeName = schemeNameOf(first.target);
|
|
162
|
+
let initial;
|
|
163
|
+
let denial = group.map((statement) => this.#checkWritable(statement, origin)).find((result) => result !== null) ?? null;
|
|
164
|
+
if (denial === null) {
|
|
165
|
+
for (const statement of group) {
|
|
166
|
+
denial = await this.#checkFlagsGate(statement, loopId);
|
|
167
|
+
if (denial !== null)
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
if (denial !== null) {
|
|
172
|
+
initial = denial;
|
|
173
|
+
}
|
|
174
|
+
else if (schemeName === null) {
|
|
175
|
+
initial = { status: 400 };
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
const handler = this.#schemes.get(schemeName);
|
|
179
|
+
const method = handler?.editBatch;
|
|
180
|
+
const manifest = this.#schemes.manifestFor(schemeName);
|
|
181
|
+
if (typeof method !== "function" || manifest === undefined) {
|
|
182
|
+
initial = { status: 501 };
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
try {
|
|
186
|
+
const addressedScheme = first.target?.kind === "url" ? first.target.scheme : schemeName;
|
|
187
|
+
initial = await method.call(handler, group, new SchemeCtxImpl(schemeCtx, addressedScheme ?? schemeName, manifest, this.#liveSubscriptions));
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
initial = { status: 500, error: err instanceof Error ? err.message : String(err) };
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
let resolveSettled;
|
|
195
|
+
const settled = new Promise((resolve) => { resolveSettled = resolve; });
|
|
196
|
+
const prepared = {
|
|
197
|
+
first: true,
|
|
198
|
+
index: 0,
|
|
199
|
+
initial,
|
|
200
|
+
settled,
|
|
201
|
+
settle: resolveSettled,
|
|
202
|
+
};
|
|
203
|
+
this.#preparedEdits.set(first, prepared);
|
|
204
|
+
for (const [index, statement] of group.slice(1).entries()) {
|
|
205
|
+
this.#preparedEdits.set(statement, { ...prepared, first: false, index: index + 1 });
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
138
209
|
async dispatch(context) {
|
|
210
|
+
const result = await this.#dispatchOne(context);
|
|
211
|
+
if (context.statement.op === "EDIT") {
|
|
212
|
+
const prepared = this.#preparedEdits.get(context.statement);
|
|
213
|
+
if (prepared?.first === true)
|
|
214
|
+
prepared.settle(result);
|
|
215
|
+
}
|
|
216
|
+
return result;
|
|
217
|
+
}
|
|
218
|
+
async #dispatchOne(context) {
|
|
139
219
|
const { statement, workspaceId, workerId, loopId, turnId, sequence, origin, onDispatch, turnParseErrors } = context;
|
|
140
220
|
const schemeCtx = this.#buildSchemeCtx({ workspaceId, workerId, loopId, turnId, origin });
|
|
141
221
|
let result;
|
|
@@ -158,7 +238,37 @@ class Dispatcher {
|
|
|
158
238
|
// skips it. Logging failures (#writeLog throws) are NOT caught —
|
|
159
239
|
// those are system failures.
|
|
160
240
|
try {
|
|
161
|
-
if (statement.op === "
|
|
241
|
+
if (statement.op === "EDIT") {
|
|
242
|
+
const prepared = this.#preparedEdits.get(statement);
|
|
243
|
+
if (prepared === undefined) {
|
|
244
|
+
result = { status: 500, error: "EDIT reached dispatch without a prepared resource batch" };
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
const settled = prepared.first ? prepared.initial : await prepared.settled;
|
|
248
|
+
const aggregate = settled.editReceipt ?? prepared.initial.editReceipt;
|
|
249
|
+
if (aggregate !== null && typeof aggregate === "object") {
|
|
250
|
+
const receipt = aggregate;
|
|
251
|
+
const effect = receipt.effects[prepared.index];
|
|
252
|
+
if (effect === undefined)
|
|
253
|
+
throw new Error(`EDIT receipt has no effect at index ${prepared.index}`);
|
|
254
|
+
const { editReceipt: _editReceipt, ...withoutAggregate } = settled;
|
|
255
|
+
result = {
|
|
256
|
+
...withoutAggregate,
|
|
257
|
+
receipt: {
|
|
258
|
+
revision: receipt.revision,
|
|
259
|
+
unit: receipt.unit,
|
|
260
|
+
before: receipt.before,
|
|
261
|
+
after: receipt.after,
|
|
262
|
+
effect,
|
|
263
|
+
},
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
result = settled;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
else if (statement.op === "SEND" && statement.target === null) {
|
|
162
272
|
result = await this.#handleSendBroadcast(statement, { workspaceId, workerId, loopId, turnId, turnParseErrors });
|
|
163
273
|
}
|
|
164
274
|
else if (statement.op === "FORK" || statement.op === "WORK") {
|
|
@@ -659,15 +769,15 @@ class Dispatcher {
|
|
|
659
769
|
const schemeName = schemeNameOf(t);
|
|
660
770
|
return p.endsWith("/") && schemeName !== null && this.#schemes.manifestFor(schemeName)?.folderScopes === true;
|
|
661
771
|
}
|
|
662
|
-
// Clone the READ onto one concrete match — the FIND already matched, so the
|
|
663
|
-
//
|
|
664
|
-
//
|
|
772
|
+
// Clone the READ onto one concrete match — the FIND already matched, so strip the body
|
|
773
|
+
// (no re-match) and set <L> to its readable-row span. A null span (body-less folder/glob
|
|
774
|
+
// fan-out) reads the whole entry. #286
|
|
665
775
|
static #retargetRead(statement, pathname, span) {
|
|
666
776
|
const t = statement.target;
|
|
667
777
|
const target = t !== null && t.kind === "url"
|
|
668
778
|
? { ...t, pathname, raw: `${t.scheme}://${pathname}` }
|
|
669
779
|
: { ...t, raw: pathname };
|
|
670
|
-
const lineMarker = span !== null ? { marks: [span.
|
|
780
|
+
const lineMarker = span !== null ? { marks: [span.rowStart, span.rowEnd] } : null;
|
|
671
781
|
return { ...statement, target: target, lineMarker, body: null };
|
|
672
782
|
}
|
|
673
783
|
#standardEntryManifest(schemeName, statement) {
|
|
@@ -698,7 +808,7 @@ class Dispatcher {
|
|
|
698
808
|
const displayPath = hostPrefix !== null && pathname.startsWith(`${hostPrefix}/`)
|
|
699
809
|
? pathname.slice(hostPrefix.length)
|
|
700
810
|
: pathname;
|
|
701
|
-
const lineMarker = span === null ? null : { marks: [span.
|
|
811
|
+
const lineMarker = span === null ? null : { marks: [span.rowStart, span.rowEnd] };
|
|
702
812
|
return {
|
|
703
813
|
...statement,
|
|
704
814
|
target: storage
|
|
@@ -741,10 +851,10 @@ class Dispatcher {
|
|
|
741
851
|
onDispatch?.(id);
|
|
742
852
|
return { ...result, rowsWritten: 1 };
|
|
743
853
|
}
|
|
744
|
-
// One READ row per MATCH —
|
|
745
|
-
// folder/glob)
|
|
746
|
-
//
|
|
747
|
-
// distinct entry's content once, then line-slice per match. #286
|
|
854
|
+
// One READ row per MATCH — deliver its source lines (or the whole entry for a body-less
|
|
855
|
+
// folder/glob) while the logged statement carries the corresponding readable-row scope.
|
|
856
|
+
// The delivery uses a raw line-slice rather than reinterpreting provenance as the scheme's
|
|
857
|
+
// structural <L>. Read each distinct entry's content once, then line-slice per match. #286
|
|
748
858
|
// §matcher-selection-signal — the SELECTION SUMMARY row: the internal FIND that located
|
|
749
859
|
// the matches is WRITTEN (op=FIND, its full result — per-hit matchSpan + matchPath, the
|
|
750
860
|
// canonical dialect coordinate) before the per-match deliveries, exactly as if the model
|
|
@@ -916,16 +1026,34 @@ class Dispatcher {
|
|
|
916
1026
|
const liveChild = await this.#db.engine_worker_has_live_child.get({ worker_id: workerId });
|
|
917
1027
|
if (liveChild !== undefined)
|
|
918
1028
|
pending.push("surviving workers");
|
|
919
|
-
const
|
|
920
|
-
if (retrievals
|
|
1029
|
+
const observations = await this.#pendingObservations(workerId, turnId);
|
|
1030
|
+
if (observations.retrievals)
|
|
921
1031
|
pending.push("this turn's retrieval results (they land in the NEXT packet's Log)");
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
if (
|
|
1032
|
+
if (observations.streamTerminations) {
|
|
1033
|
+
pending.push("completed stream results that land in the NEXT packet's Log");
|
|
1034
|
+
}
|
|
1035
|
+
if (observations.childTerminations)
|
|
926
1036
|
pending.push("worker results that arrived during this turn (they land NEXT turn)");
|
|
927
1037
|
return pending;
|
|
928
1038
|
}
|
|
1039
|
+
// Results cross an observation boundary only when they have appeared in a
|
|
1040
|
+
// packet. Completion alone is not delivery. Keep the three next-packet
|
|
1041
|
+
// producers in one classifier so SEND[200]'s discard gate and SEND[202]'s
|
|
1042
|
+
// empty-join decision cannot disagree about what remains unseen.
|
|
1043
|
+
async #pendingObservations(workerId, turnId) {
|
|
1044
|
+
const [retrievals, streamTermination, childTermination] = await Promise.all([
|
|
1045
|
+
this.#db.engine_turn_retrievals.all({ turn_id: turnId }),
|
|
1046
|
+
this.#db.engine_worker_has_undelivered_stream_term
|
|
1047
|
+
.get({ worker_id: workerId }),
|
|
1048
|
+
this.#db.engine_worker_has_undelivered_child_term
|
|
1049
|
+
.get({ worker_id: workerId, turn_id: turnId }),
|
|
1050
|
+
]);
|
|
1051
|
+
return {
|
|
1052
|
+
retrievals: retrievals.length > 0,
|
|
1053
|
+
streamTerminations: streamTermination !== undefined,
|
|
1054
|
+
childTerminations: childTermination !== undefined,
|
|
1055
|
+
};
|
|
1056
|
+
}
|
|
929
1057
|
// J — a live obligation to WAIT on: a spawned child or an open stream (NOT retrievals, which land
|
|
930
1058
|
// next turn regardless). The wait-side twin of #pendingSet's stream+child legs (§wait-obligation-matrix).
|
|
931
1059
|
async #hasLiveWork(workerId) {
|
|
@@ -981,17 +1109,14 @@ class Dispatcher {
|
|
|
981
1109
|
this.#parkDeadlines.set(loopId, seconds);
|
|
982
1110
|
return { status: 202, attrs: { waiting: seconds } };
|
|
983
1111
|
}
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
//
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
// would hang (the wake edges already fired into an unparked run); R semantics: continue,
|
|
991
|
-
// the deltas land next turn, the model weighs them and concludes.
|
|
992
|
-
const undelivered = await this.#db.engine_worker_has_undelivered_child_term.get({ worker_id: workerId, turn_id: turnId });
|
|
993
|
-
if (undelivered !== undefined)
|
|
1112
|
+
// Retrievals, fast stream conclusions, and child conclusions are
|
|
1113
|
+
// all complete-but-unobserved. Their wake edge may already have
|
|
1114
|
+
// fired, so do not park; continue directly to the packet that
|
|
1115
|
+
// materializes them.
|
|
1116
|
+
const observations = await this.#pendingObservations(workerId, turnId);
|
|
1117
|
+
if (observations.retrievals || observations.streamTerminations || observations.childTerminations) {
|
|
994
1118
|
return { status: 102 };
|
|
1119
|
+
}
|
|
995
1120
|
// The joined set is already drained. Awaiting an empty task group completes
|
|
996
1121
|
// immediately; it never parks and needs no corrective model turn.
|
|
997
1122
|
const finished = await this.#lifecycle.finish(loopId, 200, raw === "" ? null : raw);
|