@plurnk/plurnk-service 3.1.0 → 3.3.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 +24 -19
- package/INSTALL.md +20 -1
- package/SPEC.md +448 -121
- package/dist/build-info.json +1 -1
- package/dist/completions/_plurnk-service +1 -1
- package/dist/completions/plurnk-service.bash +1 -1
- package/dist/completions/plurnk-service.fish +1 -0
- package/dist/content/path-mimetype.d.ts.map +1 -1
- package/dist/content/path-mimetype.js +2 -8
- package/dist/content/path-mimetype.js.map +1 -1
- package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
- package/dist/core/AdmittedTurnExecutor.js +22 -10
- package/dist/core/AdmittedTurnExecutor.js.map +1 -1
- package/dist/core/BudgetReadout.d.ts +1 -3
- package/dist/core/BudgetReadout.d.ts.map +1 -1
- package/dist/core/BudgetReadout.js +43 -46
- package/dist/core/BudgetReadout.js.map +1 -1
- package/dist/{schemes/_derivation-use.d.ts → core/ContentUse.d.ts} +3 -3
- package/dist/core/ContentUse.d.ts.map +1 -0
- package/dist/{schemes/_derivation-use.js → core/ContentUse.js} +8 -7
- package/dist/core/ContentUse.js.map +1 -0
- package/dist/core/CoreSchemeServices.d.ts.map +1 -1
- package/dist/core/CoreSchemeServices.js +1 -0
- package/dist/core/CoreSchemeServices.js.map +1 -1
- package/dist/core/DataStatementRunner.d.ts.map +1 -1
- package/dist/core/DataStatementRunner.js +8 -20
- package/dist/core/DataStatementRunner.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +9 -1
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +151 -76
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/EditMutations.js +1 -1
- package/dist/core/EditMutations.js.map +1 -1
- package/dist/core/Engine.d.ts +1 -1
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +3 -3
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/FileAddress.d.ts +12 -0
- package/dist/core/FileAddress.d.ts.map +1 -0
- package/dist/core/FileAddress.js +73 -0
- package/dist/core/FileAddress.js.map +1 -0
- package/dist/core/FilePublication.d.ts +15 -0
- package/dist/core/FilePublication.d.ts.map +1 -0
- package/dist/core/FilePublication.js +143 -0
- package/dist/core/FilePublication.js.map +1 -0
- package/dist/core/FileSnapshot.d.ts +26 -0
- package/dist/core/FileSnapshot.d.ts.map +1 -0
- package/dist/core/FileSnapshot.js +179 -0
- package/dist/core/FileSnapshot.js.map +1 -0
- package/dist/core/KillHandler.d.ts.map +1 -1
- package/dist/core/KillHandler.js +2 -1
- package/dist/core/KillHandler.js.map +1 -1
- package/dist/core/LoopLifecycle.sql +3 -2
- package/dist/core/MembershipMaterialization.d.ts.map +1 -1
- package/dist/core/MembershipMaterialization.js +87 -143
- package/dist/core/MembershipMaterialization.js.map +1 -1
- package/dist/core/MutationEffects.d.ts +2 -1
- package/dist/core/MutationEffects.d.ts.map +1 -1
- package/dist/core/MutationEffects.js +14 -1
- package/dist/core/MutationEffects.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +16 -13
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/PacketBuilder.sql +22 -0
- package/dist/core/PathGlob.d.ts +6 -0
- package/dist/core/PathGlob.d.ts.map +1 -0
- package/dist/core/PathGlob.js +24 -0
- package/dist/core/PathGlob.js.map +1 -0
- package/dist/core/ProposalLifecycle.d.ts +3 -1
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +46 -33
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ProposalLifecycle.sql +4 -0
- package/dist/core/ResourceBindings.d.ts.map +1 -1
- package/dist/core/ResourceBindings.js +4 -3
- package/dist/core/ResourceBindings.js.map +1 -1
- package/dist/core/ResourceSelector.d.ts +1 -2
- package/dist/core/ResourceSelector.d.ts.map +1 -1
- package/dist/core/ResourceSelector.js +30 -9
- package/dist/core/ResourceSelector.js.map +1 -1
- package/dist/core/ResourceTransfers.d.ts +1 -1
- package/dist/core/ResourceTransfers.d.ts.map +1 -1
- package/dist/core/ResourceTransfers.js +26 -11
- package/dist/core/ResourceTransfers.js.map +1 -1
- package/dist/core/TurnDispositionHandler.d.ts +1 -1
- package/dist/core/TurnDispositionHandler.d.ts.map +1 -1
- package/dist/core/TurnDispositionHandler.js +5 -3
- package/dist/core/TurnDispositionHandler.js.map +1 -1
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +6 -4
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/WorkerControlHandler.d.ts.map +1 -1
- package/dist/core/WorkerControlHandler.js +38 -2
- package/dist/core/WorkerControlHandler.js.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.d.ts +2 -0
- package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.js +7 -0
- package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
- package/dist/core/fork.sql +2 -2
- 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 +9 -11
- package/dist/core/git-membership.js.map +1 -1
- package/dist/core/glob_match.js +3 -3
- package/dist/core/glob_match.js.map +1 -1
- package/dist/core/mutation-types.d.ts +4 -0
- package/dist/core/mutation-types.d.ts.map +1 -1
- package/dist/core/namespace.d.ts +4 -1
- package/dist/core/namespace.d.ts.map +1 -1
- package/dist/core/namespace.js +14 -3
- package/dist/core/namespace.js.map +1 -1
- package/dist/core/packet-wire.d.ts +1 -1
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +17 -11
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plurnk-uri.d.ts +4 -3
- package/dist/core/plurnk-uri.d.ts.map +1 -1
- package/dist/core/plurnk-uri.js +24 -12
- package/dist/core/plurnk-uri.js.map +1 -1
- package/dist/core/scheme-types.d.ts +2 -0
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/sqlite-synchronous.d.ts +2 -0
- package/dist/core/sqlite-synchronous.d.ts.map +1 -0
- package/dist/core/sqlite-synchronous.js +4 -0
- package/dist/core/sqlite-synchronous.js.map +1 -0
- package/dist/evidence/EvidenceReader.d.ts.map +1 -1
- package/dist/evidence/EvidenceReader.js +8 -1
- package/dist/evidence/EvidenceReader.js.map +1 -1
- package/dist/evidence/digest.sql +6 -1
- package/dist/man/plurnk-service.1 +35 -24
- package/dist/schemes/Env.d.ts +1 -1
- package/dist/schemes/Env.d.ts.map +1 -1
- package/dist/schemes/Env.js +2 -2
- package/dist/schemes/Env.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/ExecutionInput.d.ts +2 -1
- package/dist/schemes/ExecutionInput.d.ts.map +1 -1
- package/dist/schemes/ExecutionInput.js +44 -6
- package/dist/schemes/ExecutionInput.js.map +1 -1
- package/dist/schemes/File.d.ts +1 -0
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +246 -269
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +68 -8
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +24 -1
- package/dist/schemes/Worker.js +1 -1
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts +2 -0
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +8 -5
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +15 -15
- package/dist/schemes/_entry-find.d.ts +1 -0
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +15 -10
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-manifest.d.ts +2 -2
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +7 -5
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +9 -7
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_path-scope.d.ts.map +1 -1
- package/dist/schemes/_path-scope.js +12 -4
- package/dist/schemes/_path-scope.js.map +1 -1
- package/dist/schemes/_search-index.js +3 -3
- package/dist/schemes/_search-index.js.map +1 -1
- package/dist/schemes/exec-env.d.ts.map +1 -1
- package/dist/schemes/exec-env.js +7 -22
- package/dist/schemes/exec-env.js.map +1 -1
- package/dist/server/Daemon.d.ts +7 -1
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +90 -69
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DrainSupervisor.d.ts +3 -3
- package/dist/server/DrainSupervisor.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.js +46 -5
- package/dist/server/DrainSupervisor.js.map +1 -1
- package/dist/server/EnvFunctionality.d.ts.map +1 -1
- package/dist/server/EnvFunctionality.js +19 -11
- package/dist/server/EnvFunctionality.js.map +1 -1
- package/dist/server/Functionality.d.ts.map +1 -1
- package/dist/server/Functionality.js +89 -45
- package/dist/server/Functionality.js.map +1 -1
- package/dist/server/FunctionalityManager.d.ts +2 -5
- package/dist/server/FunctionalityManager.d.ts.map +1 -1
- package/dist/server/FunctionalityManager.js +10 -6
- package/dist/server/FunctionalityManager.js.map +1 -1
- package/dist/server/MembersFunctionality.d.ts +7 -8
- package/dist/server/MembersFunctionality.d.ts.map +1 -1
- package/dist/server/MembersFunctionality.js +94 -62
- package/dist/server/MembersFunctionality.js.map +1 -1
- package/dist/server/MessageAbandonment.d.ts +7 -0
- package/dist/server/MessageAbandonment.d.ts.map +1 -0
- package/dist/server/MessageAbandonment.js +57 -0
- package/dist/server/MessageAbandonment.js.map +1 -0
- package/dist/server/Retention.d.ts.map +1 -1
- package/dist/server/Retention.js +5 -5
- package/dist/server/Retention.js.map +1 -1
- package/dist/server/Retention.sql +49 -23
- package/dist/server/Rollback.d.ts +29 -0
- package/dist/server/Rollback.d.ts.map +1 -0
- package/dist/server/Rollback.js +111 -0
- package/dist/server/Rollback.js.map +1 -0
- package/dist/server/drain.sql +9 -0
- package/dist/server/lifecycle-recovery.sql +4 -1
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +4 -0
- package/dist/service.js.map +1 -1
- package/docs/copy-move.md +3 -0
- package/docs/env.md +12 -6
- package/docs/members.md +30 -10
- package/migrations/023_file_revisions.sql +54 -0
- package/migrations/024_proposal_decisions.sql +34 -0
- package/migrations/025_response_retention.sql +30 -0
- package/migrations/026_message_obligations.sql +32 -0
- package/migrations/027_members_identity.sql +20 -0
- package/migrations/028_mutation_patch.sql +20 -0
- package/package.json +35 -34
- package/dist/schemes/_derivation-use.d.ts.map +0 -1
- package/dist/schemes/_derivation-use.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var _a;
|
|
2
2
|
import ResourceBindings from "./ResourceBindings.js";
|
|
3
|
-
import { entryCoordinateOf, missDetail, missExtensions, renderTarget } from "./plurnk-uri.js";
|
|
3
|
+
import { entryCoordinateOf, missDetail, missExtensions, renderAuthoredTarget, renderTarget } from "./plurnk-uri.js";
|
|
4
4
|
import { unregisteredSchemeRecovery } from "./unregistered-scheme.js";
|
|
5
5
|
import { PathSyntax } from "@plurnk/plurnk-contracts";
|
|
6
6
|
import { ReadProjector } from "../content/index.js";
|
|
@@ -43,21 +43,17 @@ class DataStatementRunner {
|
|
|
43
43
|
}
|
|
44
44
|
return {};
|
|
45
45
|
}
|
|
46
|
-
static #renderedTarget(target) {
|
|
47
|
-
return renderTarget(target.kind === "url" ? target : { scheme: null, pathname: target.raw });
|
|
48
|
-
}
|
|
49
46
|
// {§membership-read-refusal} — a data scheme that can tell a plain miss from a refused one
|
|
50
47
|
// (file: exists on disk, not a member) speaks first.
|
|
51
|
-
async #missRefusal(handler,
|
|
48
|
+
async #missRefusal(handler, address, ctx) {
|
|
52
49
|
const describe = handler.missRefusal;
|
|
53
|
-
if (typeof describe !== "function")
|
|
50
|
+
if (typeof describe !== "function" || address === null)
|
|
54
51
|
return null;
|
|
55
|
-
|
|
56
|
-
return describe.call(handler, pathname, ctx, { content: null, mimetype: null, channel: null });
|
|
52
|
+
return describe.call(handler, address.pathname, ctx, { content: null, mimetype: null, channel: null });
|
|
57
53
|
}
|
|
58
54
|
#entryNotFound(schemeName, target, op) {
|
|
59
|
-
const rendered =
|
|
60
|
-
return Results.failure(`scheme:${schemeName}`, "entry-not-found", 404, missDetail(schemeName, rendered
|
|
55
|
+
const rendered = renderAuthoredTarget(target);
|
|
56
|
+
return Results.failure(`scheme:${schemeName}`, "entry-not-found", 404, missDetail(schemeName, rendered), _a.#emptyFields(op), missExtensions(schemeName, rendered));
|
|
61
57
|
}
|
|
62
58
|
async run(schemeName, statement, ctx) {
|
|
63
59
|
if (schemeName === null) {
|
|
@@ -176,12 +172,7 @@ class DataStatementRunner {
|
|
|
176
172
|
if (selectionNeutralTarget === null) {
|
|
177
173
|
throw new InvalidOperationResultError(`Core scheme '${schemeName}' resolved a targetless READ representation.`);
|
|
178
174
|
}
|
|
179
|
-
const target =
|
|
180
|
-
? selectionNeutralTarget
|
|
181
|
-
: { scheme: null, pathname: selectionNeutralTarget.raw });
|
|
182
|
-
if (target === null) {
|
|
183
|
-
throw new TypeError(`Core scheme '${schemeName}' resolved an unrenderable READ target.`);
|
|
184
|
-
}
|
|
175
|
+
const target = renderAuthoredTarget(selectionNeutralTarget);
|
|
185
176
|
return Results.assertReadResult(await ReadProjector.project({
|
|
186
177
|
statement,
|
|
187
178
|
manifest,
|
|
@@ -213,9 +204,6 @@ class DataStatementRunner {
|
|
|
213
204
|
return prepared.result;
|
|
214
205
|
const resolved = prepared.address;
|
|
215
206
|
if (statement.target !== null && resolved === null) {
|
|
216
|
-
const refusal = await this.#missRefusal(handler, statement.target, ctx);
|
|
217
|
-
if (refusal !== null)
|
|
218
|
-
return refusal;
|
|
219
207
|
return this.#entryNotFound(schemeName, statement.target, "READ");
|
|
220
208
|
}
|
|
221
209
|
const storageScheme = resolved?.scheme ?? manifest.storedScheme ?? addressedScheme ?? schemeName;
|
|
@@ -231,7 +219,7 @@ class DataStatementRunner {
|
|
|
231
219
|
: handler.byteSource?.(resolved, schemeCtx)));
|
|
232
220
|
if (projected.status !== 404 || statement.target === null)
|
|
233
221
|
return projected;
|
|
234
|
-
return await this.#missRefusal(handler,
|
|
222
|
+
return await this.#missRefusal(handler, resolved, ctx) ?? projected;
|
|
235
223
|
}
|
|
236
224
|
// FIND on a data scheme: an exact target is one entry's own search; a glob, a collection, or
|
|
237
225
|
// no target is the scheme's method, its prepared find, or the workspace's entries.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataStatementRunner.js","sourceRoot":"","sources":["../../src/core/DataStatementRunner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataStatementRunner.js","sourceRoot":"","sources":["../../src/core/DataStatementRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,9 +33,16 @@ export type DispatchContext = {
|
|
|
33
33
|
readonly index: number;
|
|
34
34
|
readonly count: number;
|
|
35
35
|
};
|
|
36
|
+
remainingCommands?: number;
|
|
37
|
+
failOnOperationError?: boolean;
|
|
36
38
|
fit?: ContextFit;
|
|
37
39
|
};
|
|
38
40
|
export type DispatchResult = SchemeResult;
|
|
41
|
+
interface DispatchExecution {
|
|
42
|
+
result: DispatchResult;
|
|
43
|
+
commandsExecuted: number;
|
|
44
|
+
commandsOmitted: number;
|
|
45
|
+
}
|
|
39
46
|
export interface ResolvedClientEntryAddress {
|
|
40
47
|
readonly scheme: string;
|
|
41
48
|
readonly authority: string;
|
|
@@ -66,7 +73,7 @@ export default class Dispatcher {
|
|
|
66
73
|
entryAddresses: EntryAddressBinding;
|
|
67
74
|
});
|
|
68
75
|
evictWorkspaceCache(workspaceId: number): void;
|
|
69
|
-
dispatch(context: DispatchContext): Promise<
|
|
76
|
+
dispatch(context: DispatchContext): Promise<DispatchExecution>;
|
|
70
77
|
look(context: {
|
|
71
78
|
statement: PlurnkStatement;
|
|
72
79
|
workspaceId: number;
|
|
@@ -132,4 +139,5 @@ export default class Dispatcher {
|
|
|
132
139
|
}, waits: readonly DispositionStatement[], completionAllowed: boolean): Promise<number>;
|
|
133
140
|
hasLiveWork(loopId: number): Promise<boolean>;
|
|
134
141
|
}
|
|
142
|
+
export {};
|
|
135
143
|
//# sourceMappingURL=Dispatcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dispatcher.d.ts","sourceRoot":"","sources":["../../src/core/Dispatcher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAA6E,UAAU,EAAY,eAAe,EAAE,aAAa,EAAgC,MAAM,0BAA0B,CAAC;AACzQ,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,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
|
@@ -3,10 +3,11 @@ import { parsePath } from "@plurnk/plurnk-parser";
|
|
|
3
3
|
import { ConfigurationError, Knob } from "@plurnk/plurnk-meta";
|
|
4
4
|
import { TurnDisposition, UNKNOWN_POSITION } from "@plurnk/plurnk-contracts";
|
|
5
5
|
import Turn from "./Turn.js";
|
|
6
|
-
import { foldAuthorityIntoPath, renderAddress, renderTarget, schemeNameOf } from "./plurnk-uri.js";
|
|
6
|
+
import { entryAddress, foldAuthorityIntoPath, renderAddress, renderAuthoredTarget, renderTarget, schemeNameOf } from "./plurnk-uri.js";
|
|
7
7
|
import WorkerName from "./WorkerName.js";
|
|
8
8
|
import { PathSyntax } from "@plurnk/plurnk-contracts";
|
|
9
9
|
import Namespace from "./namespace.js";
|
|
10
|
+
import FileAddress from "./FileAddress.js";
|
|
10
11
|
import CapabilityResolver from "./CapabilityResolver.js";
|
|
11
12
|
import SchemeCtxImpl from "./caps/SchemeCtxImpl.js";
|
|
12
13
|
import Results from "./results.js";
|
|
@@ -22,7 +23,7 @@ import BodyPreview from "../content/body-preview.js";
|
|
|
22
23
|
import ReadResolve from "../content/read-resolve.js";
|
|
23
24
|
import LogVisibility from "./LogVisibility.js";
|
|
24
25
|
import PacketWire from "./packet-wire.js";
|
|
25
|
-
import { resultPrefix, resultSize, unfitResult } from "./ContextFit.js";
|
|
26
|
+
import { isContextReceipt, reserved, resultPrefix, resultSize, unfitResult } from "./ContextFit.js";
|
|
26
27
|
import { TextCoordinates } from "@plurnk/plurnk-mimetypes";
|
|
27
28
|
import EntryAddressBinding from "./EntryAddressBinding.js";
|
|
28
29
|
import WorkerControlHandler from "./WorkerControlHandler.js";
|
|
@@ -91,7 +92,6 @@ class Dispatcher {
|
|
|
91
92
|
this.#resourceSelector = new ResourceSelector({
|
|
92
93
|
schemes,
|
|
93
94
|
admitRead: (statement, ctx) => this.#checkCapabilities(statement, ctx),
|
|
94
|
-
canonicalFilePath: (pathname, workspaceId) => this.#canonicalFilePath(pathname, workspaceId),
|
|
95
95
|
prepareDataRepresentation: (args) => this.#prepareDataRepresentation({
|
|
96
96
|
...args,
|
|
97
97
|
handler: args.handler,
|
|
@@ -247,13 +247,10 @@ class Dispatcher {
|
|
|
247
247
|
if (key !== null)
|
|
248
248
|
target.pathname = key;
|
|
249
249
|
}
|
|
250
|
-
async #canonicalFilePath(pathname, workspaceId) {
|
|
251
|
-
return Namespace.canonicalizeSpelling(pathname, await this.#workspaceRoot(workspaceId));
|
|
252
|
-
}
|
|
253
250
|
async #editTargetIdentity(statement, workspaceId, _workerId) {
|
|
254
251
|
const target = this.#extractTarget(statement.target, workspaceId);
|
|
255
252
|
await this.#canonColumns(target, workspaceId);
|
|
256
|
-
return renderTarget(target);
|
|
253
|
+
return renderTarget(target, await this.#workspaceRoot(workspaceId));
|
|
257
254
|
}
|
|
258
255
|
// {§kill-scope-entry} — a scoped KILL on an entry-bearing scheme is one EDIT with an empty
|
|
259
256
|
// body over the same marker: prepared, gated, and merged as an EDIT while its log row
|
|
@@ -295,9 +292,9 @@ class Dispatcher {
|
|
|
295
292
|
async dispatch(context) {
|
|
296
293
|
await this.#operationEvent(context, "started");
|
|
297
294
|
await this.#noticeFilePaths(context);
|
|
298
|
-
const
|
|
299
|
-
await this.#operationEvent(context, "settled", result);
|
|
300
|
-
return
|
|
295
|
+
const execution = await this.#dispatch(context);
|
|
296
|
+
await this.#operationEvent(context, "settled", execution.result);
|
|
297
|
+
return execution;
|
|
301
298
|
}
|
|
302
299
|
// {§file-path-normalization} Authored operands, once, before internal fan-out.
|
|
303
300
|
async #noticeFilePaths({ statement, origin, workspaceId, workerId, loopId }) {
|
|
@@ -306,22 +303,29 @@ class Dispatcher {
|
|
|
306
303
|
const targets = statement.op === "COPY" || statement.op === "MOVE"
|
|
307
304
|
? [statement.source.target, statement.destination.target]
|
|
308
305
|
: [statement.target];
|
|
309
|
-
const
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
306
|
+
const normalized = targets.flatMap((target) => {
|
|
307
|
+
if (target === null || schemeNameOf(target) !== "file")
|
|
308
|
+
return [];
|
|
309
|
+
const pathname = FileAddress.pathname(target);
|
|
310
|
+
return typeof pathname === "string" && (pathname.startsWith("/") || Namespace.isHomeRelative(pathname))
|
|
311
|
+
? [{ target, pathname }] : [];
|
|
312
|
+
});
|
|
313
|
+
if (normalized.length === 0)
|
|
313
314
|
return;
|
|
314
315
|
const root = await this.#workspaceRoot(workspaceId);
|
|
315
316
|
if (root === null || root === "/")
|
|
316
317
|
return;
|
|
317
|
-
for (const pathname of
|
|
318
|
+
for (const { target, pathname } of normalized) {
|
|
318
319
|
const key = Namespace.canonicalizeSpelling(pathname, root);
|
|
319
320
|
if (key === null)
|
|
320
321
|
continue;
|
|
322
|
+
const address = renderTarget({ scheme: null, pathname: key }, root, target);
|
|
323
|
+
if (address?.startsWith("file://"))
|
|
324
|
+
continue;
|
|
321
325
|
this.#notices.push(workspaceId, workerId, loopId, {
|
|
322
326
|
source: "scheme:file", kind: "path_normalized", level: "warn",
|
|
323
327
|
directive: "YOU SHOULD address the resolved path.",
|
|
324
|
-
message: `Path resolved to '${
|
|
328
|
+
message: `Path resolved to '${address || "."}'.`,
|
|
325
329
|
});
|
|
326
330
|
}
|
|
327
331
|
}
|
|
@@ -336,11 +340,9 @@ class Dispatcher {
|
|
|
336
340
|
...(result === undefined ? {} : { result }),
|
|
337
341
|
});
|
|
338
342
|
}
|
|
339
|
-
async #dispatch(context) {
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
}
|
|
343
|
-
let result = await ResourceBindings.using(this.#schemes, this.#buildSchemeCtx(context), (ctx) => this.#dispatchOne(context, ctx));
|
|
343
|
+
async #dispatch(context, targetsResolved = false) {
|
|
344
|
+
const execution = await ResourceBindings.using(this.#schemes, this.#buildSchemeCtx(context), (ctx) => this.#dispatchOne(context, ctx, targetsResolved));
|
|
345
|
+
let { result } = execution;
|
|
344
346
|
const edit = context.statement.op === "EDIT" ? context.statement : this.#scopedEntryEdits.get(context.statement);
|
|
345
347
|
if (edit !== undefined) {
|
|
346
348
|
// {§edit-batch-merges} — a proposal's apply result replaces the projected one; the
|
|
@@ -361,7 +363,7 @@ class Dispatcher {
|
|
|
361
363
|
await ResourceBindings.using(this.#schemes, this.#buildSchemeCtx(noteContext), (ctx) => this.#dispatchOne(noteContext, ctx));
|
|
362
364
|
result = Results.assert({ ...result, rowsWritten: (result.rowsWritten ?? 1) + 1 });
|
|
363
365
|
}
|
|
364
|
-
return result;
|
|
366
|
+
return { ...execution, result };
|
|
365
367
|
}
|
|
366
368
|
// {§matcher-refusal} — a matcher the parser could not read refuses its one operation with the parser's
|
|
367
369
|
// diagnostic and working form: the operation's own row, soft on the rail, never a contract strike.
|
|
@@ -380,57 +382,109 @@ class Dispatcher {
|
|
|
380
382
|
return statement.body.trim() === "" ? null : statement.body;
|
|
381
383
|
}
|
|
382
384
|
static #globTarget(target) {
|
|
383
|
-
|
|
385
|
+
if (target === null)
|
|
386
|
+
return false;
|
|
387
|
+
if (target.kind === "local")
|
|
388
|
+
return PathSyntax.hasGlob(target.raw);
|
|
389
|
+
// Authority-only worker addresses name actors, not their resource trees.
|
|
390
|
+
if (target.scheme === "worker" && (target.pathname === "" || target.pathname === "/"))
|
|
391
|
+
return false;
|
|
392
|
+
return PathSyntax.hasGlob(target.pathname) || PathSyntax.hasGlob(target.hostname ?? "");
|
|
384
393
|
}
|
|
385
|
-
// {§
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
async #fanOutRead(context, statement) {
|
|
391
|
-
const survey = {
|
|
392
|
-
op: "FIND", aside: statement.aside, target: statement.target, metadata: statement.metadata,
|
|
393
|
-
matcher: statement.matcher, lineMarker: null, body: null, position: statement.position,
|
|
394
|
-
};
|
|
395
|
-
const found = await ResourceBindings.using(this.#schemes, this.#buildSchemeCtx(context), (ctx) => this.#dataRun.run(schemeNameOf(statement.target), survey, ctx));
|
|
394
|
+
// {§bulk-resource-targeting} Selection and exact execution share the ordinary owners.
|
|
395
|
+
async #findTargets(survey, ctx) {
|
|
396
|
+
const found = await this.#dataRun.run(schemeNameOf(survey.target), survey, ctx);
|
|
397
|
+
if (found.status >= 400)
|
|
398
|
+
return { result: found };
|
|
396
399
|
const paths = found.status < 300
|
|
397
400
|
? (found.results ?? []).flatMap((item) => Array.isArray(item) && !("items" in item[0]) ? [item[0].path] : [])
|
|
398
401
|
: [];
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
: { status: 204, matched: 0, matcher: statement.matcher.raw, detail: `No line under ${statement.target.raw} matched the pattern.` });
|
|
403
|
-
const logEntryId = await this.#logWriter.writeLog({
|
|
404
|
-
statement, result, workspaceId: context.workspaceId, workerId: context.workerId, loopId: context.loopId,
|
|
405
|
-
turnId: context.turnId, sequence: context.sequence, origin: context.origin, curationPlan: null, modelCallId: null,
|
|
406
|
-
});
|
|
407
|
-
context.onDispatch?.(logEntryId);
|
|
408
|
-
await this.#notifySettled(context, logEntryId);
|
|
409
|
-
return result;
|
|
402
|
+
const matched = typeof found.matchingPathCount === "number" ? found.matchingPathCount : paths.length;
|
|
403
|
+
if (survey.lineMarker !== null && matched !== paths.length) {
|
|
404
|
+
throw new InvalidOperationResultError("Unbounded FIND did not return its complete resource selection.");
|
|
410
405
|
}
|
|
411
|
-
const
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
const target = parsePath(path);
|
|
406
|
+
const targets = paths.map((path) => {
|
|
407
|
+
const selected = survey.target?.fragment == null ? path : `${path.split("#")[0]}#${survey.target.fragment}`;
|
|
408
|
+
const target = parsePath(selected);
|
|
415
409
|
if (target === null)
|
|
416
|
-
throw new InvalidOperationResultError(`FIND named an unparseable path: ${
|
|
417
|
-
|
|
418
|
-
|
|
410
|
+
throw new InvalidOperationResultError(`FIND named an unparseable path: ${selected}`);
|
|
411
|
+
return target;
|
|
412
|
+
});
|
|
413
|
+
return { targets, matched };
|
|
414
|
+
}
|
|
415
|
+
async #selectTargets(statement, ctx) {
|
|
416
|
+
if (statement.op === "COPY" || statement.op === "MOVE") {
|
|
417
|
+
if (![statement.source, statement.destination].some(({ target }) => _a.#globTarget(target)))
|
|
418
|
+
return null;
|
|
419
|
+
let resolved = statement;
|
|
420
|
+
for (const operand of ["source", "destination"]) {
|
|
421
|
+
const selection = statement[operand];
|
|
422
|
+
if (!_a.#globTarget(selection.target))
|
|
423
|
+
continue;
|
|
424
|
+
const found = await this.#findTargets({
|
|
425
|
+
...selection, op: "FIND", matcher: null, lineMarker: { marks: [1, -1] },
|
|
426
|
+
aside: statement.aside, position: statement.position, body: null,
|
|
427
|
+
}, ctx);
|
|
428
|
+
if ("result" in found)
|
|
429
|
+
return found;
|
|
430
|
+
if (found.targets.length !== 1)
|
|
431
|
+
return { result: _a.#failure("target-cardinality", 400, `${statement.op} ${operand} matched ${found.matched} resources; expected one.`, {}, { operand, matchingPathCount: found.matched, recovery: "Name one source and one destination per pair.", retryable: false }) };
|
|
432
|
+
resolved = { ...resolved, [operand]: { ...selection, target: found.targets[0] } };
|
|
433
|
+
}
|
|
434
|
+
return { statements: [resolved] };
|
|
419
435
|
}
|
|
420
|
-
if (
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
436
|
+
if (!(statement.op === "READ" || statement.op === "EDIT" || statement.op === "KILL"))
|
|
437
|
+
return null;
|
|
438
|
+
if (!_a.#globTarget(statement.target) || (statement.op === "KILL" && schemeNameOf(statement.target) === "log"))
|
|
439
|
+
return null;
|
|
440
|
+
const found = await this.#findTargets({
|
|
441
|
+
op: "FIND", aside: statement.aside, target: statement.target, metadata: statement.metadata,
|
|
442
|
+
matcher: statement.op === "READ" ? statement.matcher : null,
|
|
443
|
+
lineMarker: statement.op === "READ" ? null : { marks: [1, -1] }, body: null, position: statement.position,
|
|
444
|
+
}, ctx);
|
|
445
|
+
if ("result" in found)
|
|
446
|
+
return found;
|
|
447
|
+
if (found.targets.length === 0)
|
|
448
|
+
return { result: Results.assert(statement.op === "READ" && statement.matcher !== null
|
|
449
|
+
? { status: 204, matched: 0, matcher: statement.matcher.raw, detail: `No line under ${statement.target.raw} matched the pattern.` }
|
|
450
|
+
: { status: 204, detail: `No path matched ${statement.target.raw}.` }) };
|
|
451
|
+
if (statement.op === "READ" && found.matched > found.targets.length) {
|
|
452
|
+
this.#notices.push(ctx.workspaceId, ctx.workerId, ctx.loopId, {
|
|
453
|
+
source: "engine:dispatcher", kind: "read_fanout_bounded", level: "warn",
|
|
425
454
|
directive: "YOU SHOULD narrow the glob, or FIND first.",
|
|
426
|
-
message: `READ ${statement.target.raw} matched ${
|
|
455
|
+
message: `READ ${statement.target.raw} matched ${found.matched} paths; the first ${found.targets.length} were selected.`,
|
|
427
456
|
});
|
|
428
457
|
}
|
|
429
|
-
return
|
|
458
|
+
return { statements: found.targets.map((target) => ({ ...statement, target })), fanout: { target: statement.target.raw, matched: found.matched } };
|
|
430
459
|
}
|
|
431
|
-
async #
|
|
460
|
+
async #dispatchSelection(context, selection) {
|
|
461
|
+
const admitted = selection.statements.slice(0, context.remainingCommands);
|
|
462
|
+
const results = [];
|
|
463
|
+
let rowsWritten = 0;
|
|
464
|
+
for (const [index, statement] of admitted.entries()) {
|
|
465
|
+
const { result } = await this.#dispatch({
|
|
466
|
+
...context, statement, sequence: context.sequence + rowsWritten,
|
|
467
|
+
...(selection.fanout === undefined ? {} : { fanout: { ...selection.fanout, index, count: admitted.length } }),
|
|
468
|
+
...(context.fit === undefined ? {} : { fit: reserved(context.fit, admitted.length - index - 1) }),
|
|
469
|
+
}, true);
|
|
470
|
+
results.push(result);
|
|
471
|
+
rowsWritten += result.rowsWritten ?? 1;
|
|
472
|
+
if (context.failOnOperationError && result.status >= 400 && !isContextReceipt(result))
|
|
473
|
+
break;
|
|
474
|
+
}
|
|
475
|
+
if (results.length === 0)
|
|
476
|
+
throw new Error("Dispatch requires an admitted operation.");
|
|
477
|
+
return { result: { ...(results.find(({ status }) => status >= 400) ?? results.at(-1)), rowsWritten },
|
|
478
|
+
commandsExecuted: results.length, commandsOmitted: selection.statements.length - admitted.length };
|
|
479
|
+
}
|
|
480
|
+
// {§bulk-resource-targeting} Dispatch accounting is core-owned, never a scheme's extension data.
|
|
481
|
+
static #singleExecution(result) {
|
|
482
|
+
return { result, commandsExecuted: 1, commandsOmitted: 0 };
|
|
483
|
+
}
|
|
484
|
+
async #dispatchOne(context, schemeCtx, targetsResolved = false) {
|
|
432
485
|
const { statement, workspaceId, workerId, loopId, turnId, sequence, origin, onDispatch, } = context;
|
|
433
486
|
let result;
|
|
487
|
+
let resolved = null;
|
|
434
488
|
let curationPlan = null;
|
|
435
489
|
const denial = this.#checkWritable(statement, origin, workspaceId)
|
|
436
490
|
?? await this.#checkCapabilities(statement, schemeCtx)
|
|
@@ -445,7 +499,14 @@ class Dispatcher {
|
|
|
445
499
|
// skips it. Logging failures (#writeLog throws) are NOT caught —
|
|
446
500
|
// those are system failures.
|
|
447
501
|
try {
|
|
448
|
-
|
|
502
|
+
const selection = targetsResolved ? null : await this.#selectTargets(statement, schemeCtx);
|
|
503
|
+
if (selection !== null && !("result" in selection)) {
|
|
504
|
+
resolved = selection;
|
|
505
|
+
}
|
|
506
|
+
else if (selection !== null) {
|
|
507
|
+
result = selection.result;
|
|
508
|
+
}
|
|
509
|
+
else if (statement.op === "EDIT") {
|
|
449
510
|
result = await this.#resourceMutations.edit(statement, schemeCtx, context.editSequence);
|
|
450
511
|
}
|
|
451
512
|
else if (statement.op === "SEND" && statement.target === null) {
|
|
@@ -516,6 +577,12 @@ class Dispatcher {
|
|
|
516
577
|
}
|
|
517
578
|
}
|
|
518
579
|
}
|
|
580
|
+
// Child dispatch includes persistence and proposal settlement; their failures are
|
|
581
|
+
// internal, not exceptions from a scheme handler.
|
|
582
|
+
if (resolved !== null)
|
|
583
|
+
return this.#dispatchSelection(context, resolved);
|
|
584
|
+
if (result === undefined)
|
|
585
|
+
throw new Error("Operation dispatch produced neither targets nor a result.");
|
|
519
586
|
result = await this.#fitResult(context, statement, result);
|
|
520
587
|
// {§configuration-repair-path}: decide admission before persisting a proposed row.
|
|
521
588
|
let autoAccept = false;
|
|
@@ -538,7 +605,7 @@ class Dispatcher {
|
|
|
538
605
|
}
|
|
539
606
|
}
|
|
540
607
|
}
|
|
541
|
-
// {§
|
|
608
|
+
// {§bulk-resource-targeting} — a row on behalf of a glob names the statement it came from.
|
|
542
609
|
if (context.fanout !== undefined) {
|
|
543
610
|
const attrs = typeof result.attrs === "object" && result.attrs !== null ? result.attrs : {};
|
|
544
611
|
result = { ...result, attrs: { ...attrs, fanout: context.fanout } };
|
|
@@ -569,17 +636,18 @@ class Dispatcher {
|
|
|
569
636
|
// result the caller sees, so runTurn never branches on a pending state.
|
|
570
637
|
if (_a.#isProposal(statement, result)) {
|
|
571
638
|
if (autoAccept) {
|
|
572
|
-
|
|
639
|
+
await this.#proposals.recordDecision(logEntryId, { decision: "accept" });
|
|
640
|
+
const initialSettlement = await this.#proposals.workerApply(statement, result, { decision: "accept" }, { workspaceId, workerId, loopId, turnId, logEntryId, resources: schemeCtx.resources });
|
|
573
641
|
const effective = await this.#resourceMutations.settleProposal({
|
|
574
642
|
statement,
|
|
575
643
|
result,
|
|
576
644
|
settlement: initialSettlement,
|
|
577
645
|
ctx: schemeCtx,
|
|
578
|
-
ids: { workspaceId, workerId, loopId, turnId },
|
|
646
|
+
ids: { workspaceId, workerId, loopId, turnId, logEntryId },
|
|
579
647
|
});
|
|
580
648
|
const post = await this.#proposals.applyResolution(logEntryId, effective);
|
|
581
649
|
await this.#notifySettled(context, logEntryId);
|
|
582
|
-
return post;
|
|
650
|
+
return _a.#singleExecution(post);
|
|
583
651
|
}
|
|
584
652
|
// Register the resolution waiter SYNCHRONOUSLY before any await
|
|
585
653
|
// yields. A same-tick resolveProposal() (e.g. from a test that
|
|
@@ -609,20 +677,20 @@ class Dispatcher {
|
|
|
609
677
|
// file, spawns the process, etc.). Its operation result is
|
|
610
678
|
// preserved: an apply failure keeps its original status and
|
|
611
679
|
// Problem Details instead of masquerading as a client rejection.
|
|
612
|
-
const initialSettlement = await this.#proposals.workerApply(statement, result, resolution, { workspaceId, workerId, loopId, turnId, resources: schemeCtx.resources });
|
|
680
|
+
const initialSettlement = await this.#proposals.workerApply(statement, result, resolution, { workspaceId, workerId, loopId, turnId, logEntryId, resources: schemeCtx.resources });
|
|
613
681
|
const effective = await this.#resourceMutations.settleProposal({
|
|
614
682
|
statement,
|
|
615
683
|
result,
|
|
616
684
|
settlement: initialSettlement,
|
|
617
685
|
ctx: schemeCtx,
|
|
618
|
-
ids: { workspaceId, workerId, loopId, turnId },
|
|
686
|
+
ids: { workspaceId, workerId, loopId, turnId, logEntryId },
|
|
619
687
|
});
|
|
620
688
|
const post = await this.#proposals.applyResolution(logEntryId, effective);
|
|
621
689
|
await this.#notifySettled(context, logEntryId);
|
|
622
|
-
return post;
|
|
690
|
+
return _a.#singleExecution(post);
|
|
623
691
|
}
|
|
624
692
|
await this.#notifySettled(context, logEntryId);
|
|
625
|
-
return result;
|
|
693
|
+
return _a.#singleExecution(result);
|
|
626
694
|
}
|
|
627
695
|
// {§context-fit} — a result the model asked for arrives whole when it fits the remaining budget;
|
|
628
696
|
// otherwise the row is its size and address — a READ of lines above the longest prefix of them that
|
|
@@ -724,11 +792,9 @@ class Dispatcher {
|
|
|
724
792
|
return null;
|
|
725
793
|
if (resolved.address === null)
|
|
726
794
|
return null;
|
|
727
|
-
const rendered =
|
|
728
|
-
?
|
|
729
|
-
:
|
|
730
|
-
if (rendered === null)
|
|
731
|
-
throw new TypeError("Resolved entry target did not render.");
|
|
795
|
+
const rendered = resolved.address.scheme === "file"
|
|
796
|
+
? entryAddress("file", "", resolved.address.pathname, await this.#workspaceRoot(workspaceId))
|
|
797
|
+
: renderAuthoredTarget({ ...target, fragment: null });
|
|
732
798
|
return {
|
|
733
799
|
scheme: resolved.address.scheme,
|
|
734
800
|
authority: resolved.address.authority,
|
|
@@ -1234,6 +1300,8 @@ class Dispatcher {
|
|
|
1234
1300
|
pending.push("streams");
|
|
1235
1301
|
if (held.workers === 1)
|
|
1236
1302
|
pending.push("workers");
|
|
1303
|
+
if (held.messages === 1)
|
|
1304
|
+
pending.push("messages");
|
|
1237
1305
|
const boundaries = await this.#nextPacketBoundaries(workerId, turnId);
|
|
1238
1306
|
const receipts = [...new Set(boundaries.operations
|
|
1239
1307
|
.filter(({ op }) => op !== "KILL")
|
|
@@ -1272,7 +1340,7 @@ class Dispatcher {
|
|
|
1272
1340
|
// {§wait-obligation-matrix}: retrievals land next turn; only held work permits parking.
|
|
1273
1341
|
async hasLiveWork(loopId) {
|
|
1274
1342
|
const held = await this.#db.loop_live_obligations.get({ loop_id: loopId });
|
|
1275
|
-
return held !== undefined && (held.streams === 1 || held.workers === 1);
|
|
1343
|
+
return held !== undefined && (held.streams === 1 || held.workers === 1 || held.messages === 1);
|
|
1276
1344
|
}
|
|
1277
1345
|
async #runLogCuration(statement, ctx, admittedMaxId) {
|
|
1278
1346
|
const addressedScheme = schemeNameOf(statement.target);
|
|
@@ -1317,7 +1385,14 @@ class Dispatcher {
|
|
|
1317
1385
|
// `local` (bare path) carries no URL parts — store the raw text as the pathname for the log record, scheme=null.
|
|
1318
1386
|
if (path.kind === "local")
|
|
1319
1387
|
return { scheme: null, username: null, password: null, hostname: null, port: null, pathname: PathSyntax.decodeParens(path.raw), query: null, fragment: path.fragment ?? null }; // {§path-parentheses} {§local-path-fragment}
|
|
1320
|
-
|
|
1388
|
+
if (path.scheme === "file") {
|
|
1389
|
+
const pathname = FileAddress.pathname(path);
|
|
1390
|
+
// An invalid URL has no resolved identity; retain the refused input alongside its failure.
|
|
1391
|
+
if (typeof pathname !== "string")
|
|
1392
|
+
return { ...path };
|
|
1393
|
+
return { scheme: null, username: null, password: null, hostname: null, port: null, pathname, query: null, fragment: path.fragment };
|
|
1394
|
+
}
|
|
1395
|
+
const scheme = path.scheme;
|
|
1321
1396
|
// The registered scheme owns authority disposition. Namespace authority
|
|
1322
1397
|
// is path syntax; resource and owner authorities remain explicit in the
|
|
1323
1398
|
// durable operation evidence.
|