@plurnk/plurnk-service 3.3.0 → 4.0.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.
Files changed (298) hide show
  1. package/.env.defaults +1 -1
  2. package/INSTALL.md +6 -0
  3. package/README.md +2 -2
  4. package/SPEC.md +380 -159
  5. package/dist/build-info.json +1 -1
  6. package/dist/completions/_plurnk-service +1 -1
  7. package/dist/completions/plurnk-service.bash +1 -1
  8. package/dist/completions/plurnk-service.fish +2 -0
  9. package/dist/content/read-projector.js +1 -1
  10. package/dist/content/read-projector.js.map +1 -1
  11. package/dist/core/AdministrativeLoop.d.ts +1 -1
  12. package/dist/core/AdministrativeLoop.d.ts.map +1 -1
  13. package/dist/core/AdministrativeLoop.js +4 -1
  14. package/dist/core/AdministrativeLoop.js.map +1 -1
  15. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
  16. package/dist/core/AdmittedTurnExecutor.js +8 -0
  17. package/dist/core/AdmittedTurnExecutor.js.map +1 -1
  18. package/dist/core/BareBatchRunner.js +2 -1
  19. package/dist/core/BareBatchRunner.js.map +1 -1
  20. package/dist/core/ChannelWrite.d.ts +10 -0
  21. package/dist/core/ChannelWrite.d.ts.map +1 -1
  22. package/dist/core/ChannelWrite.js +10 -0
  23. package/dist/core/ChannelWrite.js.map +1 -1
  24. package/dist/core/ChannelWrite.sql +14 -2
  25. package/dist/core/ClientInteractions.d.ts.map +1 -1
  26. package/dist/core/ClientInteractions.js +2 -1
  27. package/dist/core/ClientInteractions.js.map +1 -1
  28. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  29. package/dist/core/CoreSchemeServices.js +5 -0
  30. package/dist/core/CoreSchemeServices.js.map +1 -1
  31. package/dist/core/DataStatementRunner.js +4 -6
  32. package/dist/core/DataStatementRunner.js.map +1 -1
  33. package/dist/core/Dispatcher.d.ts +3 -7
  34. package/dist/core/Dispatcher.d.ts.map +1 -1
  35. package/dist/core/Dispatcher.js +46 -68
  36. package/dist/core/Dispatcher.js.map +1 -1
  37. package/dist/core/Dispatcher.sql +2 -2
  38. package/dist/core/EditMutations.js +1 -0
  39. package/dist/core/EditMutations.js.map +1 -1
  40. package/dist/core/Engine.d.ts +8 -14
  41. package/dist/core/Engine.d.ts.map +1 -1
  42. package/dist/core/Engine.js +22 -24
  43. package/dist/core/Engine.js.map +1 -1
  44. package/dist/core/Engine.sql +6 -6
  45. package/dist/core/ExecutorRegistry.d.ts +0 -5
  46. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  47. package/dist/core/ExecutorRegistry.js +10 -18
  48. package/dist/core/ExecutorRegistry.js.map +1 -1
  49. package/dist/core/FileAddress.js +1 -1
  50. package/dist/core/FileAddress.js.map +1 -1
  51. package/dist/core/FilePublication.js +10 -74
  52. package/dist/core/FilePublication.js.map +1 -1
  53. package/dist/core/FileSnapshot.js +36 -100
  54. package/dist/core/FileSnapshot.js.map +1 -1
  55. package/dist/core/HostPaths.d.ts +1 -0
  56. package/dist/core/HostPaths.d.ts.map +1 -1
  57. package/dist/core/HostPaths.js +11 -1
  58. package/dist/core/HostPaths.js.map +1 -1
  59. package/dist/core/KillHandler.js +3 -1
  60. package/dist/core/KillHandler.js.map +1 -1
  61. package/dist/core/LiveSubscription.js +1 -1
  62. package/dist/core/LiveSubscription.js.map +1 -1
  63. package/dist/core/LogBody.js +1 -1
  64. package/dist/core/LogBody.js.map +1 -1
  65. package/dist/core/LogWriter.js +1 -1
  66. package/dist/core/LogWriter.js.map +1 -1
  67. package/dist/core/LoopDriver.d.ts +3 -3
  68. package/dist/core/LoopDriver.d.ts.map +1 -1
  69. package/dist/core/LoopDriver.js +15 -13
  70. package/dist/core/LoopDriver.js.map +1 -1
  71. package/dist/core/LoopLifecycle.d.ts +5 -0
  72. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  73. package/dist/core/LoopLifecycle.js +14 -1
  74. package/dist/core/LoopLifecycle.js.map +1 -1
  75. package/dist/core/LoopLifecycle.sql +8 -0
  76. package/dist/core/MembershipMaterialization.js +2 -2
  77. package/dist/core/MembershipMaterialization.js.map +1 -1
  78. package/dist/core/MessageResources.d.ts +3 -0
  79. package/dist/core/MessageResources.d.ts.map +1 -1
  80. package/dist/core/MessageResources.js +15 -1
  81. package/dist/core/MessageResources.js.map +1 -1
  82. package/dist/core/OperatorConfig.d.ts +1 -2
  83. package/dist/core/OperatorConfig.d.ts.map +1 -1
  84. package/dist/core/OperatorConfig.js +26 -92
  85. package/dist/core/OperatorConfig.js.map +1 -1
  86. package/dist/core/PacketBuilder.js +6 -6
  87. package/dist/core/PacketBuilder.js.map +1 -1
  88. package/dist/core/PacketBuilder.sql +7 -8
  89. package/dist/core/ProblemLog.d.ts +1 -0
  90. package/dist/core/ProblemLog.d.ts.map +1 -1
  91. package/dist/core/ProblemLog.js +2 -2
  92. package/dist/core/ProblemLog.js.map +1 -1
  93. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  94. package/dist/core/ProposalLifecycle.js +13 -8
  95. package/dist/core/ProposalLifecycle.js.map +1 -1
  96. package/dist/core/ProposalPolicies.d.ts +4 -1
  97. package/dist/core/ProposalPolicies.d.ts.map +1 -1
  98. package/dist/core/ProposalPolicies.js +5 -2
  99. package/dist/core/ProposalPolicies.js.map +1 -1
  100. package/dist/core/ResourceMutations.js +2 -0
  101. package/dist/core/ResourceMutations.js.map +1 -1
  102. package/dist/core/ResourceSelector.js +1 -1
  103. package/dist/core/ResourceSelector.js.map +1 -1
  104. package/dist/core/SchemeRegistry.js +1 -1
  105. package/dist/core/SchemeRegistry.js.map +1 -1
  106. package/dist/core/ServiceHelp.js +1 -1
  107. package/dist/core/ServiceHelp.js.map +1 -1
  108. package/dist/core/ServiceTeardown.js +9 -12
  109. package/dist/core/ServiceTeardown.js.map +1 -1
  110. package/dist/core/StrikeRail.d.ts +2 -1
  111. package/dist/core/StrikeRail.d.ts.map +1 -1
  112. package/dist/core/StrikeRail.js +11 -6
  113. package/dist/core/StrikeRail.js.map +1 -1
  114. package/dist/core/TerminalResult.js +1 -1
  115. package/dist/core/TerminalResult.js.map +1 -1
  116. package/dist/core/TurnDispositionHandler.js +3 -2
  117. package/dist/core/TurnDispositionHandler.js.map +1 -1
  118. package/dist/core/TurnMaterialization.js +6 -4
  119. package/dist/core/TurnMaterialization.js.map +1 -1
  120. package/dist/core/TurnMaterialization.sql +1 -1
  121. package/dist/core/TurnOps.js +1 -0
  122. package/dist/core/TurnOps.js.map +1 -1
  123. package/dist/core/TurnRunner.d.ts +4 -2
  124. package/dist/core/TurnRunner.d.ts.map +1 -1
  125. package/dist/core/TurnRunner.js +63 -51
  126. package/dist/core/TurnRunner.js.map +1 -1
  127. package/dist/core/WorkerControlHandler.d.ts +2 -0
  128. package/dist/core/WorkerControlHandler.d.ts.map +1 -1
  129. package/dist/core/WorkerControlHandler.js +48 -16
  130. package/dist/core/WorkerControlHandler.js.map +1 -1
  131. package/dist/core/WorkerName.d.ts +0 -4
  132. package/dist/core/WorkerName.d.ts.map +1 -1
  133. package/dist/core/WorkerName.js +5 -30
  134. package/dist/core/WorkerName.js.map +1 -1
  135. package/dist/core/WorkerName.sql +4 -20
  136. package/dist/core/WorkerOwners.d.ts +1 -0
  137. package/dist/core/WorkerOwners.d.ts.map +1 -1
  138. package/dist/core/WorkerOwners.js +6 -0
  139. package/dist/core/WorkerOwners.js.map +1 -1
  140. package/dist/core/WorkerOwners.sql +7 -0
  141. package/dist/core/WorkspaceGate.d.ts +3 -1
  142. package/dist/core/WorkspaceGate.d.ts.map +1 -1
  143. package/dist/core/WorkspaceGate.js +59 -10
  144. package/dist/core/WorkspaceGate.js.map +1 -1
  145. package/dist/core/caps/SchemeCtxImpl.d.ts +2 -0
  146. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  147. package/dist/core/caps/SchemeCtxImpl.js +12 -0
  148. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  149. package/dist/core/env-catalog.js +1 -1
  150. package/dist/core/env-catalog.js.map +1 -1
  151. package/dist/core/fork.js +1 -1
  152. package/dist/core/fork.js.map +1 -1
  153. package/dist/core/fork.sql +5 -4
  154. package/dist/core/mutation-types.js +4 -1
  155. package/dist/core/mutation-types.js.map +1 -1
  156. package/dist/core/namespace.js +1 -1
  157. package/dist/core/namespace.js.map +1 -1
  158. package/dist/core/packet-wire.d.ts +1 -1
  159. package/dist/core/packet-wire.d.ts.map +1 -1
  160. package/dist/core/packet-wire.js +19 -14
  161. package/dist/core/packet-wire.js.map +1 -1
  162. package/dist/core/scheme-types.d.ts +4 -0
  163. package/dist/core/scheme-types.d.ts.map +1 -1
  164. package/dist/core/turn-signals.d.ts +4 -0
  165. package/dist/core/turn-signals.d.ts.map +1 -1
  166. package/dist/core/turn-signals.js +1 -0
  167. package/dist/core/turn-signals.js.map +1 -1
  168. package/dist/core/workspace-settings.js +1 -1
  169. package/dist/core/workspace-settings.js.map +1 -1
  170. package/dist/evidence/EvidenceReader.js +5 -5
  171. package/dist/evidence/EvidenceReader.js.map +1 -1
  172. package/dist/man/plurnk-service.1 +24 -3
  173. package/dist/schemes/Env.d.ts +7 -3
  174. package/dist/schemes/Env.d.ts.map +1 -1
  175. package/dist/schemes/Env.js +12 -6
  176. package/dist/schemes/Env.js.map +1 -1
  177. package/dist/schemes/Exec.d.ts.map +1 -1
  178. package/dist/schemes/Exec.js +33 -25
  179. package/dist/schemes/Exec.js.map +1 -1
  180. package/dist/schemes/ExecOutputScheme.js +3 -3
  181. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  182. package/dist/schemes/ExecutionInput.js +1 -1
  183. package/dist/schemes/ExecutionInput.js.map +1 -1
  184. package/dist/schemes/File.js +15 -18
  185. package/dist/schemes/File.js.map +1 -1
  186. package/dist/schemes/Log.d.ts.map +1 -1
  187. package/dist/schemes/Log.js +19 -4
  188. package/dist/schemes/Log.js.map +1 -1
  189. package/dist/schemes/ResourceTreeScheme.js +2 -5
  190. package/dist/schemes/ResourceTreeScheme.js.map +1 -1
  191. package/dist/schemes/TurnSource.js +1 -1
  192. package/dist/schemes/TurnSource.js.map +1 -1
  193. package/dist/schemes/Worker.d.ts.map +1 -1
  194. package/dist/schemes/Worker.js +10 -3
  195. package/dist/schemes/Worker.js.map +1 -1
  196. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  197. package/dist/schemes/_entry-crud.js +2 -4
  198. package/dist/schemes/_entry-crud.js.map +1 -1
  199. package/dist/schemes/_entry-crud.sql +5 -3
  200. package/dist/schemes/_entry-find.js +3 -3
  201. package/dist/schemes/_entry-find.js.map +1 -1
  202. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  203. package/dist/schemes/_entry-manifest.js +3 -3
  204. package/dist/schemes/_entry-manifest.js.map +1 -1
  205. package/dist/schemes/_entry-manifest.sql +2 -0
  206. package/dist/schemes/_entry-ops.js +1 -1
  207. package/dist/schemes/_entry-ops.js.map +1 -1
  208. package/dist/schemes/_entry-send.js +1 -1
  209. package/dist/schemes/_entry-send.js.map +1 -1
  210. package/dist/server/ClientReads.d.ts +1 -0
  211. package/dist/server/ClientReads.d.ts.map +1 -1
  212. package/dist/server/ClientReads.js +7 -2
  213. package/dist/server/ClientReads.js.map +1 -1
  214. package/dist/server/Credentials.d.ts +48 -0
  215. package/dist/server/Credentials.d.ts.map +1 -0
  216. package/dist/server/Credentials.js +203 -0
  217. package/dist/server/Credentials.js.map +1 -0
  218. package/dist/server/Daemon.d.ts +40 -41
  219. package/dist/server/Daemon.d.ts.map +1 -1
  220. package/dist/server/Daemon.js +272 -206
  221. package/dist/server/Daemon.js.map +1 -1
  222. package/dist/server/DrainSupervisor.d.ts +5 -2
  223. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  224. package/dist/server/DrainSupervisor.js +27 -31
  225. package/dist/server/DrainSupervisor.js.map +1 -1
  226. package/dist/server/EnvFunctionality.d.ts.map +1 -1
  227. package/dist/server/EnvFunctionality.js +2 -1
  228. package/dist/server/EnvFunctionality.js.map +1 -1
  229. package/dist/server/Functionality.d.ts +4 -2
  230. package/dist/server/Functionality.d.ts.map +1 -1
  231. package/dist/server/Functionality.js +110 -51
  232. package/dist/server/Functionality.js.map +1 -1
  233. package/dist/server/FunctionalityManager.js +1 -1
  234. package/dist/server/FunctionalityManager.js.map +1 -1
  235. package/dist/server/HttpListener.d.ts +1 -1
  236. package/dist/server/HttpListener.d.ts.map +1 -1
  237. package/dist/server/HttpListener.js.map +1 -1
  238. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  239. package/dist/server/MembersFunctionality.js +4 -2
  240. package/dist/server/MembersFunctionality.js.map +1 -1
  241. package/dist/server/ModuleHost.d.ts +2 -1
  242. package/dist/server/ModuleHost.d.ts.map +1 -1
  243. package/dist/server/PlurnkSkill.js +4 -7
  244. package/dist/server/PlurnkSkill.js.map +1 -1
  245. package/dist/server/Rollback.js +1 -1
  246. package/dist/server/Rollback.js.map +1 -1
  247. package/dist/server/WorkerModelResolver.js +1 -0
  248. package/dist/server/WorkerModelResolver.js.map +1 -1
  249. package/dist/server/WorkerReferences.d.ts +14 -0
  250. package/dist/server/WorkerReferences.d.ts.map +1 -0
  251. package/dist/server/WorkerReferences.js +24 -0
  252. package/dist/server/WorkerReferences.js.map +1 -0
  253. package/dist/server/WorkerReferences.sql +31 -0
  254. package/dist/server/WorkspaceCapabilities.d.ts +2 -0
  255. package/dist/server/WorkspaceCapabilities.d.ts.map +1 -1
  256. package/dist/server/WorkspaceCapabilities.js +35 -18
  257. package/dist/server/WorkspaceCapabilities.js.map +1 -1
  258. package/dist/server/WorkspacePlugins.js +1 -0
  259. package/dist/server/WorkspacePlugins.js.map +1 -1
  260. package/dist/server/WorkspaceResidency.d.ts +3 -1
  261. package/dist/server/WorkspaceResidency.d.ts.map +1 -1
  262. package/dist/server/WorkspaceResidency.js +12 -5
  263. package/dist/server/WorkspaceResidency.js.map +1 -1
  264. package/dist/server/client-input.d.ts +2 -0
  265. package/dist/server/client-input.d.ts.map +1 -1
  266. package/dist/server/client-input.js +28 -0
  267. package/dist/server/client-input.js.map +1 -1
  268. package/dist/server/drain.sql +37 -40
  269. package/dist/server/envelope.d.ts +5 -9
  270. package/dist/server/envelope.d.ts.map +1 -1
  271. package/dist/server/envelope.js +21 -84
  272. package/dist/server/envelope.js.map +1 -1
  273. package/dist/server/envelope.sql +17 -17
  274. package/dist/server/lifecycle-recovery.sql +5 -15
  275. package/dist/server/logEntry.d.ts.map +1 -1
  276. package/dist/server/logEntry.js +6 -0
  277. package/dist/server/logEntry.js.map +1 -1
  278. package/dist/server/logEntry.sql +94 -6
  279. package/dist/server/module-discovery.d.ts +1 -1
  280. package/dist/server/module-discovery.d.ts.map +1 -1
  281. package/dist/server/module-discovery.js +1 -0
  282. package/dist/server/module-discovery.js.map +1 -1
  283. package/dist/server/seam-loop.sql +15 -7
  284. package/dist/server/seam-proposal-list.sql +10 -4
  285. package/dist/service.d.ts.map +1 -1
  286. package/dist/service.js +7 -1
  287. package/dist/service.js.map +1 -1
  288. package/docs/members.md +6 -4
  289. package/migrations/002_workers.sql +2 -2
  290. package/migrations/006_log.sql +1 -1
  291. package/migrations/018_worker_owners.sql +1 -1
  292. package/migrations/029_default_worker.sql +9 -0
  293. package/migrations/030_client_workers.sql +105 -0
  294. package/migrations/031_message_openers.sql +83 -0
  295. package/migrations/032_worker_references.sql +29 -0
  296. package/package.json +23 -22
  297. package/plurnk.nginx.conf +71 -0
  298. 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 === "worldless" || context.scope !== 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 (_a.#sameDefinitions(await this.#publishable(adapter, identity, current.state), current.enabled))
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 this.#invoke(family, verb, params, identity, caller, options);
280
+ return await pending;
276
281
  }
277
282
  catch (cause) {
278
283
  if (!(cause instanceof ConfigurationError))
279
284
  throw cause;
280
- throw _a.#configurationFailure(family, cause);
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 = _a.#workerOf(adapter, identity);
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
- return this.#withWorkspaceGate(identity.workspaceId, adapter.namespaceOwner, caller === "operation" ? "wait" : "try", () => this.#serialize(this.#key(identity.workspaceId, family), () => this.#mutate(adapter, verb, input, identity, caller, options)));
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 _a.#parseState(adapter, await this.#host.readWorkspaceModuleState(workspaceId, adapter.namespaceOwner), `workspace ${workspaceId}`, "workspace");
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 _a.#parseState(adapter, await this.#host.readWorkerModuleState(workerId, adapter.namespaceOwner), `worker ${workerId}`, "worker");
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 = _a.#localOrigin(identity);
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), _a.#binding(definition))
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 = _a.#localOrigin(identity);
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 = _a.#selected(adapter, input);
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 = _a.#selected(adapter, input);
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
- await this.#host.replaceWorkerModuleState(workerId, adapter.namespaceOwner, _a.#persisted(nextState));
656
+ signal.throwIfAborted();
657
+ await this.#host.replaceWorkerModuleState(workerId, adapter.namespaceOwner, Functionality.#persisted(nextState));
632
658
  }
633
659
  catch (cause) {
634
- return _a.#abort(prepared, cause);
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 = _a.#enabled(effective);
644
- const prepared = await adapter.prepare({
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
- _a.#checkOutcomes(adapter, enabled, prepared);
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 _a.#abort(prepared, cause);
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 _a.#enabled(await this.#effective(adapter, { ...identity, scope: "workspace" }, state));
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(_a.#binding(definition)));
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 report = (alias, phase) => {
706
- current.set(adapter.family, { family: adapter.family, alias, phase, since: new Date().toISOString() });
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(null, "preparing");
752
+ report([], "preparing");
710
753
  try {
711
754
  return await this.#publishPrepared(adapter, identity, nextState, options, report);
712
755
  }
713
756
  finally {
714
- current.delete(adapter.family);
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 adapter.prepare({
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: (alias) => {
737
- if (!enabled.has(alias))
738
- throw new Error(`${adapter.family} reported preparation of unknown alias '${alias}'.`);
739
- report(alias, "preparing");
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
- _a.#checkOutcomes(adapter, enabled, prepared);
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 _a.#abort(prepared, cause);
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: _a.#persisted(nextState),
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 _a.#abort(prepared, cause);
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