@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.
Files changed (226) hide show
  1. package/.env.defaults +24 -19
  2. package/INSTALL.md +20 -1
  3. package/SPEC.md +448 -121
  4. package/dist/build-info.json +1 -1
  5. package/dist/completions/_plurnk-service +1 -1
  6. package/dist/completions/plurnk-service.bash +1 -1
  7. package/dist/completions/plurnk-service.fish +1 -0
  8. package/dist/content/path-mimetype.d.ts.map +1 -1
  9. package/dist/content/path-mimetype.js +2 -8
  10. package/dist/content/path-mimetype.js.map +1 -1
  11. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
  12. package/dist/core/AdmittedTurnExecutor.js +22 -10
  13. package/dist/core/AdmittedTurnExecutor.js.map +1 -1
  14. package/dist/core/BudgetReadout.d.ts +1 -3
  15. package/dist/core/BudgetReadout.d.ts.map +1 -1
  16. package/dist/core/BudgetReadout.js +43 -46
  17. package/dist/core/BudgetReadout.js.map +1 -1
  18. package/dist/{schemes/_derivation-use.d.ts → core/ContentUse.d.ts} +3 -3
  19. package/dist/core/ContentUse.d.ts.map +1 -0
  20. package/dist/{schemes/_derivation-use.js → core/ContentUse.js} +8 -7
  21. package/dist/core/ContentUse.js.map +1 -0
  22. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  23. package/dist/core/CoreSchemeServices.js +1 -0
  24. package/dist/core/CoreSchemeServices.js.map +1 -1
  25. package/dist/core/DataStatementRunner.d.ts.map +1 -1
  26. package/dist/core/DataStatementRunner.js +8 -20
  27. package/dist/core/DataStatementRunner.js.map +1 -1
  28. package/dist/core/Dispatcher.d.ts +9 -1
  29. package/dist/core/Dispatcher.d.ts.map +1 -1
  30. package/dist/core/Dispatcher.js +151 -76
  31. package/dist/core/Dispatcher.js.map +1 -1
  32. package/dist/core/EditMutations.js +1 -1
  33. package/dist/core/EditMutations.js.map +1 -1
  34. package/dist/core/Engine.d.ts +1 -1
  35. package/dist/core/Engine.d.ts.map +1 -1
  36. package/dist/core/Engine.js +3 -3
  37. package/dist/core/Engine.js.map +1 -1
  38. package/dist/core/FileAddress.d.ts +12 -0
  39. package/dist/core/FileAddress.d.ts.map +1 -0
  40. package/dist/core/FileAddress.js +73 -0
  41. package/dist/core/FileAddress.js.map +1 -0
  42. package/dist/core/FilePublication.d.ts +15 -0
  43. package/dist/core/FilePublication.d.ts.map +1 -0
  44. package/dist/core/FilePublication.js +143 -0
  45. package/dist/core/FilePublication.js.map +1 -0
  46. package/dist/core/FileSnapshot.d.ts +26 -0
  47. package/dist/core/FileSnapshot.d.ts.map +1 -0
  48. package/dist/core/FileSnapshot.js +179 -0
  49. package/dist/core/FileSnapshot.js.map +1 -0
  50. package/dist/core/KillHandler.d.ts.map +1 -1
  51. package/dist/core/KillHandler.js +2 -1
  52. package/dist/core/KillHandler.js.map +1 -1
  53. package/dist/core/LoopLifecycle.sql +3 -2
  54. package/dist/core/MembershipMaterialization.d.ts.map +1 -1
  55. package/dist/core/MembershipMaterialization.js +87 -143
  56. package/dist/core/MembershipMaterialization.js.map +1 -1
  57. package/dist/core/MutationEffects.d.ts +2 -1
  58. package/dist/core/MutationEffects.d.ts.map +1 -1
  59. package/dist/core/MutationEffects.js +14 -1
  60. package/dist/core/MutationEffects.js.map +1 -1
  61. package/dist/core/PacketBuilder.d.ts.map +1 -1
  62. package/dist/core/PacketBuilder.js +16 -13
  63. package/dist/core/PacketBuilder.js.map +1 -1
  64. package/dist/core/PacketBuilder.sql +22 -0
  65. package/dist/core/PathGlob.d.ts +6 -0
  66. package/dist/core/PathGlob.d.ts.map +1 -0
  67. package/dist/core/PathGlob.js +24 -0
  68. package/dist/core/PathGlob.js.map +1 -0
  69. package/dist/core/ProposalLifecycle.d.ts +3 -1
  70. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  71. package/dist/core/ProposalLifecycle.js +46 -33
  72. package/dist/core/ProposalLifecycle.js.map +1 -1
  73. package/dist/core/ProposalLifecycle.sql +4 -0
  74. package/dist/core/ResourceBindings.d.ts.map +1 -1
  75. package/dist/core/ResourceBindings.js +4 -3
  76. package/dist/core/ResourceBindings.js.map +1 -1
  77. package/dist/core/ResourceSelector.d.ts +1 -2
  78. package/dist/core/ResourceSelector.d.ts.map +1 -1
  79. package/dist/core/ResourceSelector.js +30 -9
  80. package/dist/core/ResourceSelector.js.map +1 -1
  81. package/dist/core/ResourceTransfers.d.ts +1 -1
  82. package/dist/core/ResourceTransfers.d.ts.map +1 -1
  83. package/dist/core/ResourceTransfers.js +26 -11
  84. package/dist/core/ResourceTransfers.js.map +1 -1
  85. package/dist/core/TurnDispositionHandler.d.ts +1 -1
  86. package/dist/core/TurnDispositionHandler.d.ts.map +1 -1
  87. package/dist/core/TurnDispositionHandler.js +5 -3
  88. package/dist/core/TurnDispositionHandler.js.map +1 -1
  89. package/dist/core/TurnRunner.d.ts.map +1 -1
  90. package/dist/core/TurnRunner.js +6 -4
  91. package/dist/core/TurnRunner.js.map +1 -1
  92. package/dist/core/WorkerControlHandler.d.ts.map +1 -1
  93. package/dist/core/WorkerControlHandler.js +38 -2
  94. package/dist/core/WorkerControlHandler.js.map +1 -1
  95. package/dist/core/caps/SchemeCtxImpl.d.ts +2 -0
  96. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  97. package/dist/core/caps/SchemeCtxImpl.js +7 -0
  98. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  99. package/dist/core/fork.sql +2 -2
  100. package/dist/core/git-membership.d.ts +1 -0
  101. package/dist/core/git-membership.d.ts.map +1 -1
  102. package/dist/core/git-membership.js +9 -11
  103. package/dist/core/git-membership.js.map +1 -1
  104. package/dist/core/glob_match.js +3 -3
  105. package/dist/core/glob_match.js.map +1 -1
  106. package/dist/core/mutation-types.d.ts +4 -0
  107. package/dist/core/mutation-types.d.ts.map +1 -1
  108. package/dist/core/namespace.d.ts +4 -1
  109. package/dist/core/namespace.d.ts.map +1 -1
  110. package/dist/core/namespace.js +14 -3
  111. package/dist/core/namespace.js.map +1 -1
  112. package/dist/core/packet-wire.d.ts +1 -1
  113. package/dist/core/packet-wire.d.ts.map +1 -1
  114. package/dist/core/packet-wire.js +17 -11
  115. package/dist/core/packet-wire.js.map +1 -1
  116. package/dist/core/plurnk-uri.d.ts +4 -3
  117. package/dist/core/plurnk-uri.d.ts.map +1 -1
  118. package/dist/core/plurnk-uri.js +24 -12
  119. package/dist/core/plurnk-uri.js.map +1 -1
  120. package/dist/core/scheme-types.d.ts +2 -0
  121. package/dist/core/scheme-types.d.ts.map +1 -1
  122. package/dist/core/sqlite-synchronous.d.ts +2 -0
  123. package/dist/core/sqlite-synchronous.d.ts.map +1 -0
  124. package/dist/core/sqlite-synchronous.js +4 -0
  125. package/dist/core/sqlite-synchronous.js.map +1 -0
  126. package/dist/evidence/EvidenceReader.d.ts.map +1 -1
  127. package/dist/evidence/EvidenceReader.js +8 -1
  128. package/dist/evidence/EvidenceReader.js.map +1 -1
  129. package/dist/evidence/digest.sql +6 -1
  130. package/dist/man/plurnk-service.1 +35 -24
  131. package/dist/schemes/Env.d.ts +1 -1
  132. package/dist/schemes/Env.d.ts.map +1 -1
  133. package/dist/schemes/Env.js +2 -2
  134. package/dist/schemes/Env.js.map +1 -1
  135. package/dist/schemes/Exec.d.ts.map +1 -1
  136. package/dist/schemes/Exec.js +5 -1
  137. package/dist/schemes/Exec.js.map +1 -1
  138. package/dist/schemes/ExecutionInput.d.ts +2 -1
  139. package/dist/schemes/ExecutionInput.d.ts.map +1 -1
  140. package/dist/schemes/ExecutionInput.js +44 -6
  141. package/dist/schemes/ExecutionInput.js.map +1 -1
  142. package/dist/schemes/File.d.ts +1 -0
  143. package/dist/schemes/File.d.ts.map +1 -1
  144. package/dist/schemes/File.js +246 -269
  145. package/dist/schemes/File.js.map +1 -1
  146. package/dist/schemes/Log.d.ts.map +1 -1
  147. package/dist/schemes/Log.js +68 -8
  148. package/dist/schemes/Log.js.map +1 -1
  149. package/dist/schemes/Log.sql +24 -1
  150. package/dist/schemes/Worker.js +1 -1
  151. package/dist/schemes/Worker.js.map +1 -1
  152. package/dist/schemes/_entry-crud.d.ts +2 -0
  153. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  154. package/dist/schemes/_entry-crud.js +8 -5
  155. package/dist/schemes/_entry-crud.js.map +1 -1
  156. package/dist/schemes/_entry-crud.sql +15 -15
  157. package/dist/schemes/_entry-find.d.ts +1 -0
  158. package/dist/schemes/_entry-find.d.ts.map +1 -1
  159. package/dist/schemes/_entry-find.js +15 -10
  160. package/dist/schemes/_entry-find.js.map +1 -1
  161. package/dist/schemes/_entry-manifest.d.ts +2 -2
  162. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  163. package/dist/schemes/_entry-manifest.js +7 -5
  164. package/dist/schemes/_entry-manifest.js.map +1 -1
  165. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  166. package/dist/schemes/_entry-ops.js +9 -7
  167. package/dist/schemes/_entry-ops.js.map +1 -1
  168. package/dist/schemes/_path-scope.d.ts.map +1 -1
  169. package/dist/schemes/_path-scope.js +12 -4
  170. package/dist/schemes/_path-scope.js.map +1 -1
  171. package/dist/schemes/_search-index.js +3 -3
  172. package/dist/schemes/_search-index.js.map +1 -1
  173. package/dist/schemes/exec-env.d.ts.map +1 -1
  174. package/dist/schemes/exec-env.js +7 -22
  175. package/dist/schemes/exec-env.js.map +1 -1
  176. package/dist/server/Daemon.d.ts +7 -1
  177. package/dist/server/Daemon.d.ts.map +1 -1
  178. package/dist/server/Daemon.js +90 -69
  179. package/dist/server/Daemon.js.map +1 -1
  180. package/dist/server/DrainSupervisor.d.ts +3 -3
  181. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  182. package/dist/server/DrainSupervisor.js +46 -5
  183. package/dist/server/DrainSupervisor.js.map +1 -1
  184. package/dist/server/EnvFunctionality.d.ts.map +1 -1
  185. package/dist/server/EnvFunctionality.js +19 -11
  186. package/dist/server/EnvFunctionality.js.map +1 -1
  187. package/dist/server/Functionality.d.ts.map +1 -1
  188. package/dist/server/Functionality.js +89 -45
  189. package/dist/server/Functionality.js.map +1 -1
  190. package/dist/server/FunctionalityManager.d.ts +2 -5
  191. package/dist/server/FunctionalityManager.d.ts.map +1 -1
  192. package/dist/server/FunctionalityManager.js +10 -6
  193. package/dist/server/FunctionalityManager.js.map +1 -1
  194. package/dist/server/MembersFunctionality.d.ts +7 -8
  195. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  196. package/dist/server/MembersFunctionality.js +94 -62
  197. package/dist/server/MembersFunctionality.js.map +1 -1
  198. package/dist/server/MessageAbandonment.d.ts +7 -0
  199. package/dist/server/MessageAbandonment.d.ts.map +1 -0
  200. package/dist/server/MessageAbandonment.js +57 -0
  201. package/dist/server/MessageAbandonment.js.map +1 -0
  202. package/dist/server/Retention.d.ts.map +1 -1
  203. package/dist/server/Retention.js +5 -5
  204. package/dist/server/Retention.js.map +1 -1
  205. package/dist/server/Retention.sql +49 -23
  206. package/dist/server/Rollback.d.ts +29 -0
  207. package/dist/server/Rollback.d.ts.map +1 -0
  208. package/dist/server/Rollback.js +111 -0
  209. package/dist/server/Rollback.js.map +1 -0
  210. package/dist/server/drain.sql +9 -0
  211. package/dist/server/lifecycle-recovery.sql +4 -1
  212. package/dist/service.d.ts.map +1 -1
  213. package/dist/service.js +4 -0
  214. package/dist/service.js.map +1 -1
  215. package/docs/copy-move.md +3 -0
  216. package/docs/env.md +12 -6
  217. package/docs/members.md +30 -10
  218. package/migrations/023_file_revisions.sql +54 -0
  219. package/migrations/024_proposal_decisions.sql +34 -0
  220. package/migrations/025_response_retention.sql +30 -0
  221. package/migrations/026_message_obligations.sql +32 -0
  222. package/migrations/027_members_identity.sql +20 -0
  223. package/migrations/028_mutation_patch.sql +20 -0
  224. package/package.json +35 -34
  225. package/dist/schemes/_derivation-use.d.ts.map +0 -1
  226. 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, target, ctx) {
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
- const pathname = target.kind === "url" ? target.pathname : target.raw;
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 = _a.#renderedTarget(target);
60
- return Results.failure(`scheme:${schemeName}`, "entry-not-found", 404, missDetail(schemeName, rendered ?? "the requested address"), _a.#emptyFields(op), rendered === null ? { target: rendered } : missExtensions(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 = renderTarget(selectionNeutralTarget.kind === "url"
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, statement.target, ctx) ?? projected;
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<DispatchResult>;
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":"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"}
1
+ {"version":3,"file":"Dispatcher.d.ts","sourceRoot":"","sources":["../../src/core/Dispatcher.ts"],"names":[],"mappings":"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"}
@@ -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 result = await this.#dispatch(context);
299
- await this.#operationEvent(context, "settled", result);
300
- return result;
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 absolute = targets.flatMap((target) => target === null || schemeNameOf(target) !== "file" ? []
310
- : [PathSyntax.decodeParens(target.kind === "url" ? target.pathname : target.raw)])
311
- .filter((pathname) => pathname.startsWith("/"));
312
- if (absolute.length === 0)
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 absolute) {
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 '${key || "."}'.`,
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
- if (context.statement.op === "READ" && _a.#globTarget(context.statement.target)) {
341
- return this.#fanOutRead(context, context.statement);
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
- return target !== null && PathSyntax.hasGlob(target.kind === "url" ? target.pathname : target.raw);
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
- // {§read-fan-out} — a READ over a glob reads every matching path: the paths come from the
386
- // ordinary FIND over the same target (unlogged; a matcher FIND when there is one, the catalog
387
- // otherwise; its resource page bounds the fan-out), and each is read as an ordinary exact READ
388
- // with the authored scope and matcher and its own receipt row, so every rendered line keeps its
389
- // path, ordinal and anchor. No path: one 204 receipt on the authored glob.
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
- if (paths.length === 0) {
400
- const result = found.status >= 400 ? found : Results.assert(statement.matcher === null
401
- ? { status: 204, detail: `No path matched ${statement.target.raw}.` }
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 matchingPathCount = typeof found.matchingPathCount === "number" ? found.matchingPathCount : paths.length;
412
- const results = [];
413
- for (const [index, path] of paths.entries()) {
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: ${path}`);
417
- const fanout = { target: statement.target.raw, matched: matchingPathCount, index, count: paths.length };
418
- results.push(await this.#dispatch({ ...context, statement: { ...statement, target }, sequence: context.sequence + index, fanout }));
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 (matchingPathCount > paths.length) {
421
- this.#notices.push(context.workspaceId, context.workerId, context.loopId, {
422
- source: "engine:dispatcher",
423
- kind: "read_fanout_bounded",
424
- level: "warn",
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 ${matchingPathCount} paths; the first ${paths.length} were read.`,
455
+ message: `READ ${statement.target.raw} matched ${found.matched} paths; the first ${found.targets.length} were selected.`,
427
456
  });
428
457
  }
429
- return Results.assert({ ...(results.find(({ status }) => status >= 400) ?? results[results.length - 1]), rowsWritten: results.length });
458
+ return { statements: found.targets.map((target) => ({ ...statement, target })), fanout: { target: statement.target.raw, matched: found.matched } };
430
459
  }
431
- async #dispatchOne(context, schemeCtx) {
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
- if (statement.op === "EDIT") {
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
- // {§read-fan-out} — a row read on behalf of a glob names the statement it came from.
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
- const initialSettlement = await this.#proposals.workerApply(statement, result, { decision: "accept" }, { workspaceId, workerId, loopId, turnId, resources: schemeCtx.resources });
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 = target.kind === "url"
728
- ? renderTarget({ ...target, fragment: null })
729
- : renderTarget({ scheme: null, pathname: target.raw, fragment: null });
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
- const scheme = path.scheme === "file" ? null : path.scheme;
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.