@plurnk/plurnk-service 3.3.0 → 4.1.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 +4 -4
- package/INSTALL.md +6 -0
- package/README.md +2 -2
- package/SPEC.md +408 -179
- 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 +2 -0
- package/dist/content/read-projector.js +1 -1
- package/dist/content/read-projector.js.map +1 -1
- package/dist/core/AdministrativeLoop.d.ts +1 -1
- package/dist/core/AdministrativeLoop.d.ts.map +1 -1
- package/dist/core/AdministrativeLoop.js +4 -1
- package/dist/core/AdministrativeLoop.js.map +1 -1
- package/dist/core/AdmittedTurnExecutor.d.ts +3 -1
- package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
- package/dist/core/AdmittedTurnExecutor.js +12 -0
- package/dist/core/AdmittedTurnExecutor.js.map +1 -1
- package/dist/core/BareBatchRunner.js +2 -1
- package/dist/core/BareBatchRunner.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +10 -0
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +10 -0
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +14 -2
- package/dist/core/ClientInteractions.d.ts.map +1 -1
- package/dist/core/ClientInteractions.js +2 -1
- package/dist/core/ClientInteractions.js.map +1 -1
- package/dist/core/CoreSchemeServices.d.ts.map +1 -1
- package/dist/core/CoreSchemeServices.js +5 -0
- package/dist/core/CoreSchemeServices.js.map +1 -1
- package/dist/core/DataStatementRunner.js +4 -6
- package/dist/core/DataStatementRunner.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +4 -7
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +48 -68
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Dispatcher.sql +2 -2
- package/dist/core/EditMutations.js +1 -0
- package/dist/core/EditMutations.js.map +1 -1
- package/dist/core/Engine.d.ts +8 -14
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +22 -24
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +6 -6
- package/dist/core/ExecutorRegistry.d.ts +0 -5
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +10 -18
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/FileAddress.js +1 -1
- package/dist/core/FileAddress.js.map +1 -1
- package/dist/core/FilePublication.js +10 -74
- package/dist/core/FilePublication.js.map +1 -1
- package/dist/core/FileSnapshot.js +36 -100
- package/dist/core/FileSnapshot.js.map +1 -1
- package/dist/core/HostPaths.d.ts +1 -0
- package/dist/core/HostPaths.d.ts.map +1 -1
- package/dist/core/HostPaths.js +11 -1
- package/dist/core/HostPaths.js.map +1 -1
- package/dist/core/KillHandler.js +3 -1
- package/dist/core/KillHandler.js.map +1 -1
- package/dist/core/LiveSubscription.js +1 -1
- package/dist/core/LiveSubscription.js.map +1 -1
- package/dist/core/LogBody.js +1 -1
- package/dist/core/LogBody.js.map +1 -1
- package/dist/core/LogWriter.d.ts +4 -2
- package/dist/core/LogWriter.d.ts.map +1 -1
- package/dist/core/LogWriter.js +8 -4
- package/dist/core/LogWriter.js.map +1 -1
- package/dist/core/LoopDriver.d.ts +3 -3
- package/dist/core/LoopDriver.d.ts.map +1 -1
- package/dist/core/LoopDriver.js +15 -13
- package/dist/core/LoopDriver.js.map +1 -1
- package/dist/core/LoopLifecycle.d.ts +5 -0
- package/dist/core/LoopLifecycle.d.ts.map +1 -1
- package/dist/core/LoopLifecycle.js +14 -1
- package/dist/core/LoopLifecycle.js.map +1 -1
- package/dist/core/LoopLifecycle.sql +8 -0
- package/dist/core/MembershipMaterialization.js +2 -2
- package/dist/core/MembershipMaterialization.js.map +1 -1
- package/dist/core/MessageResources.d.ts +3 -0
- package/dist/core/MessageResources.d.ts.map +1 -1
- package/dist/core/MessageResources.js +15 -1
- package/dist/core/MessageResources.js.map +1 -1
- package/dist/core/OperationHistory.d.ts +18 -0
- package/dist/core/OperationHistory.d.ts.map +1 -0
- package/dist/core/OperationHistory.js +55 -0
- package/dist/core/OperationHistory.js.map +1 -0
- package/dist/core/OperatorConfig.d.ts +1 -2
- package/dist/core/OperatorConfig.d.ts.map +1 -1
- package/dist/core/OperatorConfig.js +26 -92
- package/dist/core/OperatorConfig.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +22 -56
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/PacketBuilder.sql +7 -8
- package/dist/core/ProblemLog.d.ts +1 -0
- package/dist/core/ProblemLog.d.ts.map +1 -1
- package/dist/core/ProblemLog.js +2 -2
- package/dist/core/ProblemLog.js.map +1 -1
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +13 -8
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ProposalPolicies.d.ts +4 -1
- package/dist/core/ProposalPolicies.d.ts.map +1 -1
- package/dist/core/ProposalPolicies.js +5 -2
- package/dist/core/ProposalPolicies.js.map +1 -1
- package/dist/core/ResourceMutations.js +2 -0
- package/dist/core/ResourceMutations.js.map +1 -1
- package/dist/core/ResourceSelector.js +1 -1
- package/dist/core/ResourceSelector.js.map +1 -1
- package/dist/core/SchemeRegistry.js +1 -1
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/ServiceHelp.js +1 -1
- package/dist/core/ServiceHelp.js.map +1 -1
- package/dist/core/ServiceTeardown.js +9 -12
- package/dist/core/ServiceTeardown.js.map +1 -1
- package/dist/core/StrikeRail.d.ts +2 -1
- package/dist/core/StrikeRail.d.ts.map +1 -1
- package/dist/core/StrikeRail.js +11 -6
- package/dist/core/StrikeRail.js.map +1 -1
- package/dist/core/TerminalResult.js +1 -1
- package/dist/core/TerminalResult.js.map +1 -1
- package/dist/core/TurnDispositionHandler.js +3 -2
- package/dist/core/TurnDispositionHandler.js.map +1 -1
- package/dist/core/TurnMaterialization.js +6 -4
- package/dist/core/TurnMaterialization.js.map +1 -1
- package/dist/core/TurnMaterialization.sql +1 -1
- package/dist/core/TurnOps.d.ts +0 -3
- package/dist/core/TurnOps.d.ts.map +1 -1
- package/dist/core/TurnOps.js +1 -27
- package/dist/core/TurnOps.js.map +1 -1
- package/dist/core/TurnRunner.d.ts +4 -2
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +61 -61
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/WorkerControlHandler.d.ts +2 -0
- package/dist/core/WorkerControlHandler.d.ts.map +1 -1
- package/dist/core/WorkerControlHandler.js +48 -16
- package/dist/core/WorkerControlHandler.js.map +1 -1
- package/dist/core/WorkerName.d.ts +0 -4
- package/dist/core/WorkerName.d.ts.map +1 -1
- package/dist/core/WorkerName.js +5 -30
- package/dist/core/WorkerName.js.map +1 -1
- package/dist/core/WorkerName.sql +4 -20
- package/dist/core/WorkerOwners.d.ts +1 -0
- package/dist/core/WorkerOwners.d.ts.map +1 -1
- package/dist/core/WorkerOwners.js +6 -0
- package/dist/core/WorkerOwners.js.map +1 -1
- package/dist/core/WorkerOwners.sql +7 -0
- package/dist/core/WorkspaceGate.d.ts +3 -1
- package/dist/core/WorkspaceGate.d.ts.map +1 -1
- package/dist/core/WorkspaceGate.js +59 -10
- package/dist/core/WorkspaceGate.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 +12 -0
- package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
- package/dist/core/env-catalog.js +1 -1
- package/dist/core/env-catalog.js.map +1 -1
- package/dist/core/fork.js +1 -1
- package/dist/core/fork.js.map +1 -1
- package/dist/core/fork.sql +5 -4
- package/dist/core/mutation-types.js +4 -1
- package/dist/core/mutation-types.js.map +1 -1
- package/dist/core/namespace.js +1 -1
- package/dist/core/namespace.js.map +1 -1
- package/dist/core/packet-wire.d.ts +7 -5
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +38 -20
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/scheme-types.d.ts +4 -0
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/turn-signals.d.ts +4 -0
- package/dist/core/turn-signals.d.ts.map +1 -1
- package/dist/core/turn-signals.js +1 -0
- package/dist/core/turn-signals.js.map +1 -1
- package/dist/core/workspace-settings.js +1 -1
- package/dist/core/workspace-settings.js.map +1 -1
- package/dist/evidence/EvidenceReader.js +5 -5
- package/dist/evidence/EvidenceReader.js.map +1 -1
- package/dist/man/plurnk-service.1 +27 -6
- package/dist/schemes/Env.d.ts +7 -3
- package/dist/schemes/Env.d.ts.map +1 -1
- package/dist/schemes/Env.js +12 -6
- package/dist/schemes/Env.js.map +1 -1
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +33 -25
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +3 -3
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/ExecutionInput.js +1 -1
- package/dist/schemes/ExecutionInput.js.map +1 -1
- package/dist/schemes/File.js +15 -18
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +21 -36
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +0 -9
- package/dist/schemes/ResourceTreeScheme.js +2 -5
- package/dist/schemes/ResourceTreeScheme.js.map +1 -1
- package/dist/schemes/TurnSource.js +1 -1
- package/dist/schemes/TurnSource.js.map +1 -1
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +10 -3
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +2 -4
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +5 -3
- package/dist/schemes/_entry-find.js +3 -3
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +3 -3
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-manifest.sql +2 -0
- package/dist/schemes/_entry-ops.js +1 -1
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-send.js +1 -1
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/server/ClientReads.d.ts +1 -0
- package/dist/server/ClientReads.d.ts.map +1 -1
- package/dist/server/ClientReads.js +7 -2
- package/dist/server/ClientReads.js.map +1 -1
- package/dist/server/Credentials.d.ts +48 -0
- package/dist/server/Credentials.d.ts.map +1 -0
- package/dist/server/Credentials.js +203 -0
- package/dist/server/Credentials.js.map +1 -0
- package/dist/server/Daemon.d.ts +40 -41
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +272 -206
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DrainSupervisor.d.ts +5 -2
- package/dist/server/DrainSupervisor.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.js +27 -31
- package/dist/server/DrainSupervisor.js.map +1 -1
- package/dist/server/EnvFunctionality.d.ts.map +1 -1
- package/dist/server/EnvFunctionality.js +2 -1
- package/dist/server/EnvFunctionality.js.map +1 -1
- package/dist/server/Functionality.d.ts +4 -2
- package/dist/server/Functionality.d.ts.map +1 -1
- package/dist/server/Functionality.js +110 -51
- package/dist/server/Functionality.js.map +1 -1
- package/dist/server/FunctionalityManager.js +1 -1
- package/dist/server/FunctionalityManager.js.map +1 -1
- package/dist/server/HttpListener.d.ts +1 -1
- package/dist/server/HttpListener.d.ts.map +1 -1
- package/dist/server/HttpListener.js.map +1 -1
- package/dist/server/MembersFunctionality.d.ts.map +1 -1
- package/dist/server/MembersFunctionality.js +4 -2
- package/dist/server/MembersFunctionality.js.map +1 -1
- package/dist/server/ModuleHost.d.ts +2 -1
- package/dist/server/ModuleHost.d.ts.map +1 -1
- package/dist/server/PlurnkSkill.js +4 -7
- package/dist/server/PlurnkSkill.js.map +1 -1
- package/dist/server/Rollback.js +1 -1
- package/dist/server/Rollback.js.map +1 -1
- package/dist/server/WorkerModelResolver.js +1 -0
- package/dist/server/WorkerModelResolver.js.map +1 -1
- package/dist/server/WorkerReferences.d.ts +14 -0
- package/dist/server/WorkerReferences.d.ts.map +1 -0
- package/dist/server/WorkerReferences.js +24 -0
- package/dist/server/WorkerReferences.js.map +1 -0
- package/dist/server/WorkerReferences.sql +31 -0
- package/dist/server/WorkspaceCapabilities.d.ts +2 -0
- package/dist/server/WorkspaceCapabilities.d.ts.map +1 -1
- package/dist/server/WorkspaceCapabilities.js +35 -18
- package/dist/server/WorkspaceCapabilities.js.map +1 -1
- package/dist/server/WorkspacePlugins.js +1 -0
- package/dist/server/WorkspacePlugins.js.map +1 -1
- package/dist/server/WorkspaceResidency.d.ts +3 -1
- package/dist/server/WorkspaceResidency.d.ts.map +1 -1
- package/dist/server/WorkspaceResidency.js +12 -5
- package/dist/server/WorkspaceResidency.js.map +1 -1
- package/dist/server/client-input.d.ts +2 -0
- package/dist/server/client-input.d.ts.map +1 -1
- package/dist/server/client-input.js +28 -0
- package/dist/server/client-input.js.map +1 -1
- package/dist/server/drain.sql +37 -40
- package/dist/server/envelope.d.ts +5 -9
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +21 -84
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +17 -17
- package/dist/server/lifecycle-recovery.sql +5 -15
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +6 -0
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/logEntry.sql +94 -6
- package/dist/server/module-discovery.d.ts +1 -1
- package/dist/server/module-discovery.d.ts.map +1 -1
- package/dist/server/module-discovery.js +1 -0
- package/dist/server/module-discovery.js.map +1 -1
- package/dist/server/seam-loop.sql +15 -7
- package/dist/server/seam-proposal-list.sql +10 -4
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +7 -1
- package/dist/service.js.map +1 -1
- package/docs/members.md +6 -4
- package/migrations/002_workers.sql +2 -2
- package/migrations/006_log.sql +1 -1
- package/migrations/018_worker_owners.sql +1 -1
- package/migrations/029_default_worker.sql +9 -0
- package/migrations/030_client_workers.sql +105 -0
- package/migrations/031_message_openers.sql +83 -0
- package/migrations/032_worker_references.sql +29 -0
- package/package.json +23 -22
- package/plurnk.nginx.conf +71 -0
- package/plurnk.service +2 -0
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
var _a;
|
|
2
1
|
// {§functionality-coordinator} — the one owner of the workspace Functionality
|
|
3
2
|
// lifecycle above the family adapters (Agent Skills, MCP, outbound A2A). It owns
|
|
4
3
|
// durable workspace state, lifecycle ordering, serialization, atomic
|
|
@@ -42,7 +41,7 @@ const discoverInput = ({ inputs, emptyListsAll }) => ({
|
|
|
42
41
|
});
|
|
43
42
|
const failure = (family, code, status, detail, extensions = {}) => new OperationFailureError(Results.failure("functionality", code, status, detail, {}, { family, ...extensions }));
|
|
44
43
|
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
45
|
-
class Functionality {
|
|
44
|
+
export default class Functionality {
|
|
46
45
|
#host;
|
|
47
46
|
#adapters = new Map();
|
|
48
47
|
#owners = new Set();
|
|
@@ -153,7 +152,7 @@ class Functionality {
|
|
|
153
152
|
? "FunctionalityDiscoverResult"
|
|
154
153
|
: "FunctionalityMutationResult"),
|
|
155
154
|
handler: async (params, context) => {
|
|
156
|
-
if (context.scope === "
|
|
155
|
+
if (context.scope === "daemon" || context.scope !== scope)
|
|
157
156
|
throw new Error(`${scope}.${family}.${verb} requires a ${scope}-scoped context.`);
|
|
158
157
|
const identity = context.scope === "worker"
|
|
159
158
|
? { workspaceId: context.workspaceId, workerId: context.workerId, scope }
|
|
@@ -176,14 +175,16 @@ class Functionality {
|
|
|
176
175
|
// `ifChanged` republishes only when the enabled definitions differ from the ones the resident
|
|
177
176
|
// publication prepared ({§functionality-hotload}).
|
|
178
177
|
async refresh(family, identity, options = {}) {
|
|
178
|
+
this.#host.signal.throwIfAborted();
|
|
179
179
|
const adapter = this.#adapter(family);
|
|
180
180
|
await this.#withWorkspaceGate(identity.workspaceId, adapter.namespaceOwner, options.gate ?? "wait", () => this.#serialize(this.#key(identity.workspaceId, family), async () => {
|
|
181
|
+
this.#host.signal.throwIfAborted();
|
|
181
182
|
const current = this.#families.get(this.#key(identity.workspaceId, family));
|
|
182
183
|
if (current === undefined)
|
|
183
184
|
return;
|
|
184
185
|
if (options.ifChanged === true && current.configurationFailure === null) {
|
|
185
186
|
try {
|
|
186
|
-
if (
|
|
187
|
+
if (Functionality.#sameDefinitions(await this.#publishable(adapter, identity, current.state), current.enabled))
|
|
187
188
|
return;
|
|
188
189
|
}
|
|
189
190
|
catch (cause) {
|
|
@@ -270,14 +271,21 @@ class Functionality {
|
|
|
270
271
|
return out;
|
|
271
272
|
}
|
|
272
273
|
// The one lifecycle entry for both projections ({§functionality-model-mutation}).
|
|
273
|
-
async invoke(family, verb, params, identity, caller, options = {}) {
|
|
274
|
+
async invoke(family, verb, params, identity, caller, options = {}, signal = this.#host.signal) {
|
|
275
|
+
const lifetime = signal === this.#host.signal ? signal : AbortSignal.any([this.#host.signal, signal]);
|
|
276
|
+
lifetime.throwIfAborted();
|
|
277
|
+
const pending = this.#invoke(family, verb, params, identity, caller, options, lifetime);
|
|
278
|
+
this.#admissions.set(pending, identity.workspaceId);
|
|
274
279
|
try {
|
|
275
|
-
return await
|
|
280
|
+
return await pending;
|
|
276
281
|
}
|
|
277
282
|
catch (cause) {
|
|
278
283
|
if (!(cause instanceof ConfigurationError))
|
|
279
284
|
throw cause;
|
|
280
|
-
throw
|
|
285
|
+
throw Functionality.#configurationFailure(family, cause);
|
|
286
|
+
}
|
|
287
|
+
finally {
|
|
288
|
+
this.#admissions.delete(pending);
|
|
281
289
|
}
|
|
282
290
|
}
|
|
283
291
|
static #configurationFailure(family, cause) {
|
|
@@ -288,7 +296,7 @@ class Functionality {
|
|
|
288
296
|
recovery: "Correct the named configuration input. Other capabilities remain available.",
|
|
289
297
|
}), { cause });
|
|
290
298
|
}
|
|
291
|
-
async #invoke(family, verb, params, identity, caller, options) {
|
|
299
|
+
async #invoke(family, verb, params, identity, caller, options, signal) {
|
|
292
300
|
const adapter = this.#adapter(family);
|
|
293
301
|
const schema = this.#schemas.get(family)[verb];
|
|
294
302
|
// Neither projection offers a verb the family does not serve ({§functionality-discover-advertisement}).
|
|
@@ -317,12 +325,19 @@ class Functionality {
|
|
|
317
325
|
// Worker's own lane and take no workspace exclusivity: a Worker shapes its environment while
|
|
318
326
|
// its siblings run.
|
|
319
327
|
if (scope === "worker") {
|
|
320
|
-
const workerId =
|
|
321
|
-
return this.#serialize(`${this.#key(identity.workspaceId, family)}:${workerId}`, () => this.#invokeForWorker(adapter, verb, input, identity, workerId, caller, options));
|
|
328
|
+
const workerId = Functionality.#workerOf(adapter, identity);
|
|
329
|
+
return this.#serialize(`${this.#key(identity.workspaceId, family)}:${workerId}`, () => this.#invokeForWorker(adapter, verb, input, identity, workerId, caller, options, signal));
|
|
322
330
|
}
|
|
323
331
|
if (verb === "list")
|
|
324
332
|
return { status: 200, body: await this.#list(adapter, identity) };
|
|
325
|
-
|
|
333
|
+
const mutate = () => this.#serialize(this.#key(identity.workspaceId, family), () => this.#mutate(adapter, verb, input, identity, caller, options, signal));
|
|
334
|
+
// A context family (one that declares the worker scope) is read where it is used, so its workspace
|
|
335
|
+
// defaults change nothing resident either: they serialize on the family's lane, as a Worker's own do,
|
|
336
|
+
// and an operation inside its own held turn never waits on itself.
|
|
337
|
+
if (scopesOf(adapter).includes("worker"))
|
|
338
|
+
return mutate();
|
|
339
|
+
const publish = () => this.#withWorkspaceGate(identity.workspaceId, adapter.namespaceOwner, caller === "operation" ? "wait" : "try", mutate, signal);
|
|
340
|
+
return caller === "operation" ? this.#host.atWorkspaceBoundary(identity.workspaceId, publish) : publish();
|
|
326
341
|
}
|
|
327
342
|
// A worker-scoped verb that names no Worker is a defect at the projection, never a client
|
|
328
343
|
// failure: both projections name the Worker ({§functionality-model-projection}).
|
|
@@ -351,8 +366,8 @@ class Functionality {
|
|
|
351
366
|
this.#queues.set(key, next);
|
|
352
367
|
return next;
|
|
353
368
|
}
|
|
354
|
-
async #withWorkspaceGate(workspaceId, owner, gate, run) {
|
|
355
|
-
const pending = this.#host.withWorkspaceGate(workspaceId, owner, gate, run);
|
|
369
|
+
async #withWorkspaceGate(workspaceId, owner, gate, run, signal = this.#host.signal) {
|
|
370
|
+
const pending = this.#host.withWorkspaceGate(workspaceId, owner, gate, run, signal);
|
|
356
371
|
this.#admissions.set(pending, workspaceId);
|
|
357
372
|
try {
|
|
358
373
|
return await pending;
|
|
@@ -364,6 +379,7 @@ class Functionality {
|
|
|
364
379
|
async #activate(adapter, context) {
|
|
365
380
|
const identity = { workspaceId: context.workspaceId };
|
|
366
381
|
await this.#serialize(this.#key(identity.workspaceId, adapter.family), async () => {
|
|
382
|
+
this.#host.signal.throwIfAborted();
|
|
367
383
|
const state = await this.#loadState(adapter, identity.workspaceId);
|
|
368
384
|
await this.#publish(adapter, identity, state, { failure: "publish-unavailable", configurationFailure: "contain", retain: context.retain });
|
|
369
385
|
});
|
|
@@ -379,10 +395,10 @@ class Functionality {
|
|
|
379
395
|
});
|
|
380
396
|
}
|
|
381
397
|
async #loadState(adapter, workspaceId) {
|
|
382
|
-
return
|
|
398
|
+
return Functionality.#parseState(adapter, await this.#host.readWorkspaceModuleState(workspaceId, adapter.namespaceOwner), `workspace ${workspaceId}`, "workspace");
|
|
383
399
|
}
|
|
384
400
|
async #loadWorkerState(adapter, workerId) {
|
|
385
|
-
return
|
|
401
|
+
return Functionality.#parseState(adapter, await this.#host.readWorkerModuleState(workerId, adapter.namespaceOwner), `worker ${workerId}`, "worker");
|
|
386
402
|
}
|
|
387
403
|
static #parseState(adapter, raw, where, scope) {
|
|
388
404
|
if (raw === null)
|
|
@@ -424,7 +440,7 @@ class Functionality {
|
|
|
424
440
|
}
|
|
425
441
|
async #effective(adapter, identity, state) {
|
|
426
442
|
const effective = new Map();
|
|
427
|
-
const local =
|
|
443
|
+
const local = Functionality.#localOrigin(identity);
|
|
428
444
|
const inheritsWorkspace = identity.scope === "worker" && scopesOf(adapter).includes("workspace");
|
|
429
445
|
const lower = inheritsWorkspace
|
|
430
446
|
? [...(await this.#effective(adapter, { workspaceId: identity.workspaceId, scope: "workspace" }, await this.#loadState(adapter, identity.workspaceId))).values()]
|
|
@@ -480,7 +496,7 @@ class Functionality {
|
|
|
480
496
|
return Validator.assertFunctionalityListResult({
|
|
481
497
|
family: adapter.family,
|
|
482
498
|
definitions: [...effective.values()].map((definition) => {
|
|
483
|
-
const outcome = isDeepStrictEqual(family?.enabled.get(definition.alias),
|
|
499
|
+
const outcome = isDeepStrictEqual(family?.enabled.get(definition.alias), Functionality.#binding(definition))
|
|
484
500
|
? outcomes?.get(definition.alias)
|
|
485
501
|
: undefined;
|
|
486
502
|
return this.#projection(definition, outcome ?? { state: "dormant" });
|
|
@@ -500,7 +516,7 @@ class Functionality {
|
|
|
500
516
|
// The verb semantics, one implementation for every family ({§functionality-scope}): the next
|
|
501
517
|
// state, the aliases it concerns, and how the mutation reports. Only publication differs by scope.
|
|
502
518
|
async #transition(adapter, verb, input, identity, caller, state, effective, options) {
|
|
503
|
-
const local =
|
|
519
|
+
const local = Functionality.#localOrigin(identity);
|
|
504
520
|
const here = local === "worker" ? "this worker" : "this workspace";
|
|
505
521
|
const definitions = { ...state.definitions };
|
|
506
522
|
const aliases = [];
|
|
@@ -540,7 +556,7 @@ class Functionality {
|
|
|
540
556
|
}
|
|
541
557
|
case "enable":
|
|
542
558
|
case "disable": {
|
|
543
|
-
const alias =
|
|
559
|
+
const alias = Functionality.#selected(adapter, input);
|
|
544
560
|
const current = effective.get(alias);
|
|
545
561
|
if (current === undefined)
|
|
546
562
|
throw failure(adapter.family, "alias-unknown", 404, `'${alias}' is not available to ${here}.`, { alias, retryable: false });
|
|
@@ -551,7 +567,7 @@ class Functionality {
|
|
|
551
567
|
break;
|
|
552
568
|
}
|
|
553
569
|
case "remove": {
|
|
554
|
-
const alias =
|
|
570
|
+
const alias = Functionality.#selected(adapter, input);
|
|
555
571
|
const current = effective.get(alias);
|
|
556
572
|
if (current === undefined)
|
|
557
573
|
throw failure(adapter.family, "alias-unknown", 404, `'${alias}' is not available to ${here}.`, { alias, retryable: false });
|
|
@@ -588,7 +604,8 @@ class Functionality {
|
|
|
588
604
|
});
|
|
589
605
|
return { status: body.status, body };
|
|
590
606
|
}
|
|
591
|
-
async #mutate(adapter, verb, input, identity, caller, options) {
|
|
607
|
+
async #mutate(adapter, verb, input, identity, caller, options, signal) {
|
|
608
|
+
signal.throwIfAborted();
|
|
592
609
|
const key = this.#key(identity.workspaceId, adapter.family);
|
|
593
610
|
const family = this.#families.get(key);
|
|
594
611
|
if (family === undefined)
|
|
@@ -605,6 +622,7 @@ class Functionality {
|
|
|
605
622
|
retain: () => this.#host.retainWorkspace(identity.workspaceId),
|
|
606
623
|
forceAlias: retry ? transition.aliases[0] : null,
|
|
607
624
|
admissions: transition.admissions,
|
|
625
|
+
signal,
|
|
608
626
|
});
|
|
609
627
|
const effectiveAfter = await this.#effective(adapter, identity, nextState);
|
|
610
628
|
return this.#mutationResult(adapter, verb, transition, effectiveAfter, publication.outcomes);
|
|
@@ -612,11 +630,18 @@ class Functionality {
|
|
|
612
630
|
// {§functionality-scope} — the Worker's own lane. State is read at each verb rather than held: the
|
|
613
631
|
// spawn reads the same row, and a Worker's row is written at its creation, so nothing in memory
|
|
614
632
|
// could be more current than the table.
|
|
615
|
-
async #invokeForWorker(adapter, verb, input, identity, workerId, caller, options) {
|
|
633
|
+
async #invokeForWorker(adapter, verb, input, identity, workerId, caller, options, signal) {
|
|
634
|
+
signal.throwIfAborted();
|
|
616
635
|
const state = await this.#loadWorkerState(adapter, workerId);
|
|
617
636
|
const effective = await this.#effective(adapter, identity, state);
|
|
618
637
|
if (verb === "list") {
|
|
619
|
-
const prepared = await this.#prepareForWorker(adapter, identity, effective, "publish-unavailable");
|
|
638
|
+
const prepared = await this.#prepareForWorker(adapter, identity, effective, "publish-unavailable", [], signal);
|
|
639
|
+
try {
|
|
640
|
+
signal.throwIfAborted();
|
|
641
|
+
}
|
|
642
|
+
catch (cause) {
|
|
643
|
+
return Functionality.#abort(prepared, cause);
|
|
644
|
+
}
|
|
620
645
|
await prepared.commit();
|
|
621
646
|
return { status: 200, body: Validator.assertFunctionalityListResult({
|
|
622
647
|
family: adapter.family,
|
|
@@ -626,12 +651,13 @@ class Functionality {
|
|
|
626
651
|
const transition = await this.#transition(adapter, verb, input, identity, caller, state, effective, options);
|
|
627
652
|
const nextState = { version: STATE_VERSION, definitions: transition.definitions };
|
|
628
653
|
const effectiveAfter = await this.#effective(adapter, identity, nextState);
|
|
629
|
-
const prepared = await this.#prepareForWorker(adapter, identity, effectiveAfter, caller === "action" || verb === "replace" ? "reject" : "publish-unavailable", transition.admissions);
|
|
654
|
+
const prepared = await this.#prepareForWorker(adapter, identity, effectiveAfter, caller === "action" || verb === "replace" ? "reject" : "publish-unavailable", transition.admissions, signal);
|
|
630
655
|
try {
|
|
631
|
-
|
|
656
|
+
signal.throwIfAborted();
|
|
657
|
+
await this.#host.replaceWorkerModuleState(workerId, adapter.namespaceOwner, Functionality.#persisted(nextState));
|
|
632
658
|
}
|
|
633
659
|
catch (cause) {
|
|
634
|
-
return
|
|
660
|
+
return Functionality.#abort(prepared, cause);
|
|
635
661
|
}
|
|
636
662
|
await prepared.commit();
|
|
637
663
|
return this.#mutationResult(adapter, verb, transition, effectiveAfter, prepared.outcomes);
|
|
@@ -639,21 +665,21 @@ class Functionality {
|
|
|
639
665
|
// A worker-scoped family's preparation yields outcomes only. It holds no residency — no runtimes,
|
|
640
666
|
// documents or snapshot ({§module-workspace-residency}) — because its definitions are read at the
|
|
641
667
|
// spawn that uses them rather than leased and cooled; the coordinator enforces that here.
|
|
642
|
-
async #prepareForWorker(adapter, identity, effective, failureMode, admissions = []) {
|
|
643
|
-
const enabled =
|
|
644
|
-
const prepared = await
|
|
668
|
+
async #prepareForWorker(adapter, identity, effective, failureMode, admissions = [], signal = this.#host.signal) {
|
|
669
|
+
const enabled = Functionality.#enabled(effective);
|
|
670
|
+
const prepared = await this.#prepare(adapter, {
|
|
645
671
|
workspaceId: identity.workspaceId, enabled, previous: null, failure: failureMode, admissions,
|
|
646
672
|
progress: () => undefined,
|
|
647
673
|
retain: () => this.#host.retainWorkspace(identity.workspaceId),
|
|
648
|
-
});
|
|
674
|
+
}, signal);
|
|
649
675
|
try {
|
|
650
|
-
|
|
676
|
+
Functionality.#checkOutcomes(adapter, enabled, prepared);
|
|
651
677
|
if ((prepared.runtimes?.length ?? 0) > 0 || prepared.documents.length > 0 || prepared.snapshot !== null) {
|
|
652
678
|
throw new Error(`${adapter.family} is worker-scoped and holds no residency, yet its preparation published runtimes, documents or a snapshot.`);
|
|
653
679
|
}
|
|
654
680
|
}
|
|
655
681
|
catch (cause) {
|
|
656
|
-
return
|
|
682
|
+
return Functionality.#abort(prepared, cause);
|
|
657
683
|
}
|
|
658
684
|
return prepared;
|
|
659
685
|
}
|
|
@@ -663,7 +689,7 @@ class Functionality {
|
|
|
663
689
|
async #publishable(adapter, identity, state) {
|
|
664
690
|
if (!scopesOf(adapter).includes("workspace"))
|
|
665
691
|
return new Map();
|
|
666
|
-
return
|
|
692
|
+
return Functionality.#enabled(await this.#effective(adapter, { ...identity, scope: "workspace" }, state));
|
|
667
693
|
}
|
|
668
694
|
static #sameDefinitions(left, right) {
|
|
669
695
|
if (left.size !== right.size)
|
|
@@ -681,7 +707,7 @@ class Functionality {
|
|
|
681
707
|
const enabled = new Map();
|
|
682
708
|
for (const definition of effective.values()) {
|
|
683
709
|
if (definition.enabled)
|
|
684
|
-
enabled.set(definition.alias, structuredClone(
|
|
710
|
+
enabled.set(definition.alias, structuredClone(Functionality.#binding(definition)));
|
|
685
711
|
}
|
|
686
712
|
return enabled;
|
|
687
713
|
}
|
|
@@ -699,19 +725,36 @@ class Functionality {
|
|
|
699
725
|
return [...(this.#preparations.get(workspaceId)?.values() ?? [])].map((activity) => ({ ...activity }));
|
|
700
726
|
}
|
|
701
727
|
async #publish(adapter, identity, nextState, options) {
|
|
728
|
+
(options.signal ?? this.#host.signal).throwIfAborted();
|
|
702
729
|
const { workspaceId } = identity;
|
|
703
730
|
const current = this.#preparations.get(workspaceId) ?? new Map();
|
|
704
731
|
this.#preparations.set(workspaceId, current);
|
|
705
|
-
const
|
|
706
|
-
|
|
732
|
+
const forget = () => {
|
|
733
|
+
for (const [key, activity] of current)
|
|
734
|
+
if (activity.family === adapter.family)
|
|
735
|
+
current.delete(key);
|
|
736
|
+
};
|
|
737
|
+
// {§functionality-preparation-visibility} — one activity for the family, or one per alias it reports
|
|
738
|
+
// preparing, each keeping the time its alias began.
|
|
739
|
+
const report = (aliases, phase) => {
|
|
740
|
+
const now = new Date().toISOString();
|
|
741
|
+
const began = new Map([...current.values()]
|
|
742
|
+
.filter((activity) => activity.family === adapter.family && activity.alias !== null)
|
|
743
|
+
.map((activity) => [activity.alias, activity.since]));
|
|
744
|
+
forget();
|
|
745
|
+
if (aliases.length === 0)
|
|
746
|
+
current.set(adapter.family, { family: adapter.family, alias: null, phase, since: now });
|
|
747
|
+
for (const alias of aliases) {
|
|
748
|
+
current.set(`${adapter.family}/${alias}`, { family: adapter.family, alias, phase, since: began.get(alias) ?? now });
|
|
749
|
+
}
|
|
707
750
|
this.#host.preparationChanged(workspaceId, this.preparationStatus(workspaceId));
|
|
708
751
|
};
|
|
709
|
-
report(
|
|
752
|
+
report([], "preparing");
|
|
710
753
|
try {
|
|
711
754
|
return await this.#publishPrepared(adapter, identity, nextState, options, report);
|
|
712
755
|
}
|
|
713
756
|
finally {
|
|
714
|
-
|
|
757
|
+
forget();
|
|
715
758
|
if (current.size === 0)
|
|
716
759
|
this.#preparations.delete(workspaceId);
|
|
717
760
|
this.#host.preparationChanged(workspaceId, this.preparationStatus(workspaceId));
|
|
@@ -719,6 +762,7 @@ class Functionality {
|
|
|
719
762
|
}
|
|
720
763
|
async #publishPrepared(adapter, identity, nextState, options, report) {
|
|
721
764
|
const key = this.#key(identity.workspaceId, adapter.family);
|
|
765
|
+
const signal = options.signal ?? this.#host.signal;
|
|
722
766
|
const previous = this.#families.get(key)?.prepared ?? null;
|
|
723
767
|
let enabled = new Map();
|
|
724
768
|
let prepared = null;
|
|
@@ -727,20 +771,23 @@ class Functionality {
|
|
|
727
771
|
try {
|
|
728
772
|
enabled = await this.#publishable(adapter, identity, nextState);
|
|
729
773
|
phase = "preparation";
|
|
730
|
-
prepared = await
|
|
774
|
+
prepared = await this.#prepare(adapter, {
|
|
731
775
|
workspaceId: identity.workspaceId,
|
|
732
776
|
enabled,
|
|
733
777
|
previous: previous?.snapshot ?? null,
|
|
734
778
|
failure: options.failure,
|
|
735
779
|
admissions: options.admissions ?? [],
|
|
736
|
-
progress: (
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
780
|
+
progress: (aliases) => {
|
|
781
|
+
signal.throwIfAborted();
|
|
782
|
+
for (const alias of aliases) {
|
|
783
|
+
if (!enabled.has(alias))
|
|
784
|
+
throw new Error(`${adapter.family} reported preparation of unknown alias '${alias}'.`);
|
|
785
|
+
}
|
|
786
|
+
report(aliases, "preparing");
|
|
740
787
|
},
|
|
741
788
|
retain: options.retain,
|
|
742
789
|
...(options.forceAlias ? { force: options.forceAlias } : {}),
|
|
743
|
-
});
|
|
790
|
+
}, signal);
|
|
744
791
|
}
|
|
745
792
|
catch (cause) {
|
|
746
793
|
if (!(cause instanceof ConfigurationError) || options.configurationFailure === "reject")
|
|
@@ -748,11 +795,12 @@ class Functionality {
|
|
|
748
795
|
configurationFailure = { phase, error: cause };
|
|
749
796
|
enabled = new Map();
|
|
750
797
|
}
|
|
751
|
-
report(null, "publishing");
|
|
752
798
|
let runtimes;
|
|
753
799
|
try {
|
|
800
|
+
signal.throwIfAborted();
|
|
801
|
+
report([], "publishing");
|
|
754
802
|
if (prepared !== null)
|
|
755
|
-
|
|
803
|
+
Functionality.#checkOutcomes(adapter, enabled, prepared);
|
|
756
804
|
for (const runtime of prepared?.runtimes ?? []) {
|
|
757
805
|
if (runtime.namespaceOwner !== adapter.namespaceOwner) {
|
|
758
806
|
throw new Error(`${adapter.family} prepared a runtime owned by '${runtime.namespaceOwner}' instead of '${adapter.namespaceOwner}'.`);
|
|
@@ -773,15 +821,16 @@ class Functionality {
|
|
|
773
821
|
runtimes = [manager, ...(prepared?.runtimes ?? [])];
|
|
774
822
|
}
|
|
775
823
|
catch (cause) {
|
|
776
|
-
return
|
|
824
|
+
return Functionality.#abort(prepared, cause);
|
|
777
825
|
}
|
|
778
826
|
const commit = async () => {
|
|
779
827
|
const before = this.#families.get(key);
|
|
780
828
|
try {
|
|
829
|
+
signal.throwIfAborted();
|
|
781
830
|
await this.#host.replaceWorkspaceCapabilities({
|
|
782
831
|
workspaceId: identity.workspaceId,
|
|
783
832
|
namespaceOwner: adapter.namespaceOwner,
|
|
784
|
-
state:
|
|
833
|
+
state: Functionality.#persisted(nextState),
|
|
785
834
|
runtimes,
|
|
786
835
|
}, {
|
|
787
836
|
gate: "none",
|
|
@@ -797,7 +846,7 @@ class Functionality {
|
|
|
797
846
|
});
|
|
798
847
|
}
|
|
799
848
|
catch (cause) {
|
|
800
|
-
return
|
|
849
|
+
return Functionality.#abort(prepared, cause);
|
|
801
850
|
}
|
|
802
851
|
if (prepared !== null)
|
|
803
852
|
await prepared.commit();
|
|
@@ -807,6 +856,18 @@ class Functionality {
|
|
|
807
856
|
await commit();
|
|
808
857
|
return { outcomes: prepared?.outcomes ?? new Map() };
|
|
809
858
|
}
|
|
859
|
+
// {§functionality-preparation-cancellation} Join the adapter; abort a returned candidate before publication.
|
|
860
|
+
async #prepare(adapter, preparation, signal = this.#host.signal) {
|
|
861
|
+
signal.throwIfAborted();
|
|
862
|
+
const prepared = await adapter.prepare({ ...preparation, signal });
|
|
863
|
+
try {
|
|
864
|
+
signal.throwIfAborted();
|
|
865
|
+
}
|
|
866
|
+
catch (cause) {
|
|
867
|
+
return Functionality.#abort(prepared, cause);
|
|
868
|
+
}
|
|
869
|
+
return prepared;
|
|
870
|
+
}
|
|
810
871
|
static async #abort(prepared, cause) {
|
|
811
872
|
try {
|
|
812
873
|
await prepared?.abort();
|
|
@@ -817,6 +878,4 @@ class Functionality {
|
|
|
817
878
|
throw cause;
|
|
818
879
|
}
|
|
819
880
|
}
|
|
820
|
-
_a = Functionality;
|
|
821
|
-
export default Functionality;
|
|
822
881
|
//# sourceMappingURL=Functionality.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Functionality.js","sourceRoot":"","sources":["../../src/server/Functionality.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Functionality.js","sourceRoot":"","sources":["../../src/server/Functionality.ts"],"names":[],"mappings":"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"}
|
|
@@ -154,7 +154,7 @@ export default class FunctionalityManager extends BaseExecutor {
|
|
|
154
154
|
let result;
|
|
155
155
|
let refusal = null;
|
|
156
156
|
try {
|
|
157
|
-
result = await this.#coordinator.invoke(this.runtime, verb, params, identity, "operation", { env: EnvFunctionality.modifier(args.metadata) });
|
|
157
|
+
result = await this.#coordinator.invoke(this.runtime, verb, params, identity, "operation", { env: EnvFunctionality.modifier(args.metadata) }, args.signal);
|
|
158
158
|
}
|
|
159
159
|
catch (cause) {
|
|
160
160
|
// {§functionality-model-projection} — a coordinator refusal (alias taken, scope, admission) is the
|