@plurnk/plurnk-service 1.5.0 → 1.6.1

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 (248) hide show
  1. package/.env.defaults +22 -27
  2. package/INSTALL.md +22 -17
  3. package/README.md +1 -1
  4. package/SPEC.md +505 -362
  5. package/dist/build-info.json +1 -1
  6. package/dist/content/edit-collision.d.ts +5 -0
  7. package/dist/content/edit-collision.d.ts.map +1 -0
  8. package/dist/content/edit-collision.js +14 -0
  9. package/dist/content/edit-collision.js.map +1 -0
  10. package/dist/content/edit-receipt.d.ts +3 -2
  11. package/dist/content/edit-receipt.d.ts.map +1 -1
  12. package/dist/content/edit-receipt.js +58 -13
  13. package/dist/content/edit-receipt.js.map +1 -1
  14. package/dist/content/index.d.ts +4 -1
  15. package/dist/content/index.d.ts.map +1 -1
  16. package/dist/content/index.js +3 -1
  17. package/dist/content/index.js.map +1 -1
  18. package/dist/content/line-anchors.d.ts +41 -0
  19. package/dist/content/line-anchors.d.ts.map +1 -0
  20. package/dist/content/line-anchors.js +191 -0
  21. package/dist/content/line-anchors.js.map +1 -0
  22. package/dist/content/read-projector.d.ts +7 -1
  23. package/dist/content/read-projector.d.ts.map +1 -1
  24. package/dist/content/read-projector.js +46 -10
  25. package/dist/content/read-projector.js.map +1 -1
  26. package/dist/content/read-resolve.js +3 -3
  27. package/dist/content/read-resolve.js.map +1 -1
  28. package/dist/core/BudgetReadout.d.ts.map +1 -1
  29. package/dist/core/BudgetReadout.js +9 -2
  30. package/dist/core/BudgetReadout.js.map +1 -1
  31. package/dist/core/ChannelWrite.js +1 -1
  32. package/dist/core/ChannelWrite.js.map +1 -1
  33. package/dist/core/ChannelWrite.sql +3 -3
  34. package/dist/core/CoreSchemeServices.d.ts +1 -1
  35. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  36. package/dist/core/CoreSchemeServices.js +1 -1
  37. package/dist/core/CoreSchemeServices.js.map +1 -1
  38. package/dist/core/Dispatcher.d.ts +15 -5
  39. package/dist/core/Dispatcher.d.ts.map +1 -1
  40. package/dist/core/Dispatcher.js +220 -978
  41. package/dist/core/Dispatcher.js.map +1 -1
  42. package/dist/core/DurableStatement.d.ts.map +1 -1
  43. package/dist/core/DurableStatement.js +2 -0
  44. package/dist/core/DurableStatement.js.map +1 -1
  45. package/dist/core/Engine.d.ts +18 -43
  46. package/dist/core/Engine.d.ts.map +1 -1
  47. package/dist/core/Engine.js +90 -1554
  48. package/dist/core/Engine.js.map +1 -1
  49. package/dist/core/Engine.sql +192 -112
  50. package/dist/core/ExecutableTools.d.ts +10 -0
  51. package/dist/core/ExecutableTools.d.ts.map +1 -0
  52. package/dist/core/ExecutableTools.js +41 -0
  53. package/dist/core/ExecutableTools.js.map +1 -0
  54. package/dist/core/ExecutorRegistry.d.ts +3 -3
  55. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  56. package/dist/core/ExecutorRegistry.js +2 -2
  57. package/dist/core/ExecutorRegistry.js.map +1 -1
  58. package/dist/core/LogBody.d.ts +3 -0
  59. package/dist/core/LogBody.d.ts.map +1 -1
  60. package/dist/core/LogBody.js +21 -5
  61. package/dist/core/LogBody.js.map +1 -1
  62. package/dist/core/LogEntryProjection.d.ts +14 -0
  63. package/dist/core/LogEntryProjection.d.ts.map +1 -0
  64. package/dist/core/LogEntryProjection.js +38 -0
  65. package/dist/core/LogEntryProjection.js.map +1 -0
  66. package/dist/core/ModelCall.d.ts +27 -0
  67. package/dist/core/ModelCall.d.ts.map +1 -0
  68. package/dist/core/ModelCall.js +127 -0
  69. package/dist/core/ModelCall.js.map +1 -0
  70. package/dist/core/PacketBuilder.d.ts +14 -25
  71. package/dist/core/PacketBuilder.d.ts.map +1 -1
  72. package/dist/core/PacketBuilder.js +170 -244
  73. package/dist/core/PacketBuilder.js.map +1 -1
  74. package/dist/core/ProblemLog.d.ts +1 -1
  75. package/dist/core/ProblemLog.d.ts.map +1 -1
  76. package/dist/core/ProblemLog.js +15 -3
  77. package/dist/core/ProblemLog.js.map +1 -1
  78. package/dist/core/ProposalLifecycle.d.ts +2 -2
  79. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  80. package/dist/core/ProposalLifecycle.js +17 -9
  81. package/dist/core/ProposalLifecycle.js.map +1 -1
  82. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  83. package/dist/core/ProviderInstantiate.js +25 -8
  84. package/dist/core/ProviderInstantiate.js.map +1 -1
  85. package/dist/core/ResourceMutations.d.ts +73 -0
  86. package/dist/core/ResourceMutations.d.ts.map +1 -0
  87. package/dist/core/ResourceMutations.js +1142 -0
  88. package/dist/core/ResourceMutations.js.map +1 -0
  89. package/dist/core/SchemeRegistry.js +10 -10
  90. package/dist/core/SchemeRegistry.js.map +1 -1
  91. package/dist/core/StoredPacket.d.ts +2 -2
  92. package/dist/core/StoredPacket.js +7 -7
  93. package/dist/core/StrikeRail.d.ts +0 -1
  94. package/dist/core/StrikeRail.d.ts.map +1 -1
  95. package/dist/core/StrikeRail.js +6 -4
  96. package/dist/core/StrikeRail.js.map +1 -1
  97. package/dist/core/TurnRunner.d.ts +72 -0
  98. package/dist/core/TurnRunner.d.ts.map +1 -0
  99. package/dist/core/TurnRunner.js +1730 -0
  100. package/dist/core/TurnRunner.js.map +1 -0
  101. package/dist/core/caps/CapsResolve.js +1 -1
  102. package/dist/core/caps/CapsResolve.js.map +1 -1
  103. package/dist/core/caps/DbChannelCaps.js +4 -4
  104. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  105. package/dist/core/caps/DbEntryCaps.d.ts +2 -1
  106. package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
  107. package/dist/core/caps/DbEntryCaps.js +8 -5
  108. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  109. package/dist/core/caps/DbProjectionCaps.d.ts +1 -0
  110. package/dist/core/caps/DbProjectionCaps.d.ts.map +1 -1
  111. package/dist/core/caps/DbProjectionCaps.js +29 -0
  112. package/dist/core/caps/DbProjectionCaps.js.map +1 -1
  113. package/dist/core/caps/SchemeCtxImpl.d.ts +5 -2
  114. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  115. package/dist/core/caps/SchemeCtxImpl.js +6 -4
  116. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  117. package/dist/core/content-hash.js +2 -2
  118. package/dist/core/content-hash.js.map +1 -1
  119. package/dist/core/content-weight.d.ts +2 -0
  120. package/dist/core/content-weight.d.ts.map +1 -0
  121. package/dist/core/content-weight.js +4 -0
  122. package/dist/core/content-weight.js.map +1 -0
  123. package/dist/core/content_weight.d.ts +4 -0
  124. package/dist/core/content_weight.d.ts.map +1 -0
  125. package/dist/core/content_weight.js +6 -0
  126. package/dist/core/content_weight.js.map +1 -0
  127. package/dist/core/fork.d.ts.map +1 -1
  128. package/dist/core/fork.js +23 -7
  129. package/dist/core/fork.js.map +1 -1
  130. package/dist/core/fork.sql +38 -17
  131. package/dist/core/git-membership.d.ts.map +1 -1
  132. package/dist/core/git-membership.js +1 -2
  133. package/dist/core/git-membership.js.map +1 -1
  134. package/dist/core/git-state.js +1 -1
  135. package/dist/core/git-state.js.map +1 -1
  136. package/dist/core/packet-wire.d.ts +6 -3
  137. package/dist/core/packet-wire.d.ts.map +1 -1
  138. package/dist/core/packet-wire.js +257 -99
  139. package/dist/core/packet-wire.js.map +1 -1
  140. package/dist/core/provider-accounting.d.ts +24 -0
  141. package/dist/core/provider-accounting.d.ts.map +1 -0
  142. package/dist/core/provider-accounting.js +76 -0
  143. package/dist/core/provider-accounting.js.map +1 -0
  144. package/dist/core/scheme-types.d.ts +1 -1
  145. package/dist/core/scheme-types.d.ts.map +1 -1
  146. package/dist/core/search-gate.d.ts +2 -2
  147. package/dist/core/search-gate.d.ts.map +1 -1
  148. package/dist/core/search-gate.js +8 -8
  149. package/dist/core/search-gate.js.map +1 -1
  150. package/dist/core/turn-scheduler.js +1 -1
  151. package/dist/core/turn-scheduler.js.map +1 -1
  152. package/dist/digest/Digest.d.ts.map +1 -1
  153. package/dist/digest/Digest.js +221 -110
  154. package/dist/digest/Digest.js.map +1 -1
  155. package/dist/digest/digest.sql +40 -18
  156. package/dist/schemes/Exec.d.ts.map +1 -1
  157. package/dist/schemes/Exec.js +136 -110
  158. package/dist/schemes/Exec.js.map +1 -1
  159. package/dist/schemes/ExecOutputScheme.js +1 -1
  160. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  161. package/dist/schemes/File.d.ts +5 -4
  162. package/dist/schemes/File.d.ts.map +1 -1
  163. package/dist/schemes/File.js +25 -23
  164. package/dist/schemes/File.js.map +1 -1
  165. package/dist/schemes/Log.d.ts +11 -0
  166. package/dist/schemes/Log.d.ts.map +1 -1
  167. package/dist/schemes/Log.js +172 -107
  168. package/dist/schemes/Log.js.map +1 -1
  169. package/dist/schemes/Log.sql +48 -32
  170. package/dist/schemes/Prompt.d.ts +3 -3
  171. package/dist/schemes/Prompt.d.ts.map +1 -1
  172. package/dist/schemes/Prompt.js +4 -1
  173. package/dist/schemes/Prompt.js.map +1 -1
  174. package/dist/schemes/Skill.d.ts +4 -4
  175. package/dist/schemes/Skill.d.ts.map +1 -1
  176. package/dist/schemes/Skill.js +3 -0
  177. package/dist/schemes/Skill.js.map +1 -1
  178. package/dist/schemes/Worker.d.ts +4 -4
  179. package/dist/schemes/Worker.d.ts.map +1 -1
  180. package/dist/schemes/Worker.js +11 -7
  181. package/dist/schemes/Worker.js.map +1 -1
  182. package/dist/schemes/_entry-crud.d.ts +0 -1
  183. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  184. package/dist/schemes/_entry-crud.js +19 -13
  185. package/dist/schemes/_entry-crud.js.map +1 -1
  186. package/dist/schemes/_entry-crud.sql +4 -16
  187. package/dist/schemes/_entry-find.d.ts +17 -16
  188. package/dist/schemes/_entry-find.d.ts.map +1 -1
  189. package/dist/schemes/_entry-find.js +58 -52
  190. package/dist/schemes/_entry-find.js.map +1 -1
  191. package/dist/schemes/_entry-find.sql +2 -21
  192. package/dist/schemes/_entry-graph.sql +1 -1
  193. package/dist/schemes/_entry-manifest.d.ts +5 -17
  194. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  195. package/dist/schemes/_entry-manifest.js +32 -28
  196. package/dist/schemes/_entry-manifest.js.map +1 -1
  197. package/dist/schemes/_entry-ops.d.ts +5 -4
  198. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  199. package/dist/schemes/_entry-ops.js +89 -49
  200. package/dist/schemes/_entry-ops.js.map +1 -1
  201. package/dist/schemes/_entry-ops.sql +30 -4
  202. package/dist/schemes/_entry-send.js +4 -4
  203. package/dist/schemes/_entry-send.js.map +1 -1
  204. package/dist/schemes/_search-index.d.ts.map +1 -1
  205. package/dist/schemes/_search-index.js +10 -2
  206. package/dist/schemes/_search-index.js.map +1 -1
  207. package/dist/schemes/exec-abort.js +2 -2
  208. package/dist/schemes/exec-abort.js.map +1 -1
  209. package/dist/server/Daemon.d.ts +7 -42
  210. package/dist/server/Daemon.d.ts.map +1 -1
  211. package/dist/server/Daemon.js +139 -900
  212. package/dist/server/Daemon.js.map +1 -1
  213. package/dist/server/DrainSupervisor.d.ts +117 -0
  214. package/dist/server/DrainSupervisor.d.ts.map +1 -0
  215. package/dist/server/DrainSupervisor.js +802 -0
  216. package/dist/server/DrainSupervisor.js.map +1 -0
  217. package/dist/server/drain.sql +2 -2
  218. package/dist/server/envelope.d.ts +0 -2
  219. package/dist/server/envelope.d.ts.map +1 -1
  220. package/dist/server/envelope.js.map +1 -1
  221. package/dist/server/envelope.sql +2 -2
  222. package/dist/server/lifecycle-recovery.sql +28 -15
  223. package/dist/server/logEntry.d.ts +2 -1
  224. package/dist/server/logEntry.d.ts.map +1 -1
  225. package/dist/server/logEntry.js +14 -2
  226. package/dist/server/logEntry.js.map +1 -1
  227. package/dist/server/logEntry.sql +5 -1
  228. package/dist/server/seam-entry-read.sql +2 -2
  229. package/dist/service.js +1 -1
  230. package/dist/service.js.map +1 -1
  231. package/migrations/001_schema.sql +622 -216
  232. package/package.json +39 -34
  233. package/dist/core/BudgetOverflow.d.ts +0 -20
  234. package/dist/core/BudgetOverflow.d.ts.map +0 -1
  235. package/dist/core/BudgetOverflow.js +0 -49
  236. package/dist/core/BudgetOverflow.js.map +0 -1
  237. package/dist/core/caps/DbTagCaps.d.ts +0 -10
  238. package/dist/core/caps/DbTagCaps.d.ts.map +0 -1
  239. package/dist/core/caps/DbTagCaps.js +0 -46
  240. package/dist/core/caps/DbTagCaps.js.map +0 -1
  241. package/dist/core/ruler_count.d.ts +0 -4
  242. package/dist/core/ruler_count.d.ts.map +0 -1
  243. package/dist/core/ruler_count.js +0 -7
  244. package/dist/core/ruler_count.js.map +0 -1
  245. package/dist/core/token-ruler.d.ts +0 -2
  246. package/dist/core/token-ruler.d.ts.map +0 -1
  247. package/dist/core/token-ruler.js +0 -5
  248. package/dist/core/token-ruler.js.map +0 -1
@@ -1,16 +1,17 @@
1
- import { PathSyntax, } from "@plurnk/plurnk-contracts";
1
+ import { InvalidTagSignalError, PathSyntax, TagSignal, } from "@plurnk/plurnk-contracts";
2
2
  import Matcher from "../content/matcher.js";
3
3
  import { emptyFindFields, projectFindResult } from "./_entry-find.js";
4
4
  import { CoreSchemeAdapterBase } from "../core/CoreSchemeServices.js";
5
5
  import Results from "../core/results.js";
6
6
  import LogBody from "../core/LogBody.js";
7
+ import LogEntryProjection from "../core/LogEntryProjection.js";
7
8
  import EntrySemantic from "./_entry-semantic.js";
8
9
  import EntryGraph from "./_entry-graph.js";
9
10
  import { resolveSearchCandidates } from "./_search-candidate.js";
10
11
  import { pathFolderSummaries, pathScope, pathScopeMatches } from "./_path-scope.js";
11
12
  // log:///<loop_seq>/<turn_seq>/<sequence>[/<op>] — the trailing /op segment
12
- // is wire-rendering self-documentation derived from the row's `op` field;
13
- // parsing accepts it (or omits it) and identifies the row by coordinate. The op
13
+ // is canonical model-facing identity derived from the row's projected `op`;
14
+ // parsing accepts it (or omits it), but a supplied suffix must agree. The op
14
15
  // suffix is case-INSENSITIVE: model ops render UPPERCASE (READ/EDIT/FIND) while
15
16
  // engine-minted selectors such as `error` are lowercase. An actionless model
16
17
  // emission has no suffix at all.
@@ -41,14 +42,21 @@ const parseCoordinate = (pathname) => {
41
42
  loopSeq: Number(match[1]),
42
43
  turnSeq: Number(match[2]),
43
44
  sequence: Number(match[3]),
45
+ op: match[4] ?? null,
44
46
  };
45
47
  };
46
- const canonicalCoordinate = (coordinate) => coordinate.replace(/\/[A-Za-z]+$/, "");
47
48
  // A rendered log path appends `/OP` to the canonical loop/turn/item coordinate
48
- // as self-documentation. Selection honors both views: ordinary path globs map
49
+ // as identity. Selection honors both views: ordinary path globs map
49
50
  // the three-level resource tree, while an explicit OP segment can still filter
50
51
  // rows (`log:///**/READ`).
51
- const coordinateScopeMatches = (scope, coordinate) => pathScopeMatches(scope, coordinate) || pathScopeMatches(scope, canonicalCoordinate(coordinate));
52
+ const coordinateScopeMatches = (scope, coordinate) => pathScopeMatches(scope, coordinate) || pathScopeMatches(scope, LogEntryProjection.base(coordinate));
53
+ const projectedCoordinateRows = (rows) => rows.map((row) => ({
54
+ ...row,
55
+ coordinate: LogEntryProjection.coordinate(row.coordinate, row),
56
+ }));
57
+ const coordinateCandidatePrefix = (prefix) => prefix === null
58
+ ? null
59
+ : LogEntryProjection.base(prefix);
52
60
  export default class Log extends CoreSchemeAdapterBase {
53
61
  static manifest = {
54
62
  name: "log",
@@ -61,7 +69,7 @@ export default class Log extends CoreSchemeAdapterBase {
61
69
  volatile: false,
62
70
  modelVisible: true,
63
71
  folderScopes: true,
64
- example: "<<READ(log:///1/2/3)::READ",
72
+ example: "## READ0 (log:///1/2/3)",
65
73
  };
66
74
  async resolveCoreRepresentation(target, ctx) {
67
75
  const core = this.coreContext(ctx);
@@ -87,6 +95,9 @@ export default class Log extends CoreSchemeAdapterBase {
87
95
  const row = await db.log_read_by_coordinate.get({ worker_id: workerId, loop_seq: coord.loopSeq, turn_seq: coord.turnSeq, sequence: coord.sequence });
88
96
  if (row === undefined)
89
97
  return failure("entry-not-found", 404, `No log entry exists at log:///${pathname}.`);
98
+ if (!LogEntryProjection.accepts(coord.op, row)) {
99
+ return failure("entry-not-found", 404, `No log entry exists at log:///${pathname}.`);
100
+ }
90
101
  const { content: underlyingContent, mimetype: underlyingMimetype } = LogBody.resolve({
91
102
  op: row.op,
92
103
  attrs: row.attrs,
@@ -95,10 +106,6 @@ export default class Log extends CoreSchemeAdapterBase {
95
106
  mimetypeTx: row.mimetype_tx,
96
107
  mimetypeRx: row.mimetype_rx,
97
108
  });
98
- const tags = JSON.parse(row.tags);
99
- if (!Array.isArray(tags) || !tags.every((tag) => typeof tag === "string")) {
100
- throw new TypeError(`Log row ${pathname} contains invalid tag storage.`);
101
- }
102
109
  return {
103
110
  representation: {
104
111
  channels: {
@@ -108,18 +115,17 @@ export default class Log extends CoreSchemeAdapterBase {
108
115
  state: "static",
109
116
  },
110
117
  },
111
- tags,
112
118
  },
113
119
  };
114
120
  }
115
121
  // {§log-uniform-query} — FIND over the worker's log rows, on the SAME source-agnostic primitive
116
122
  // every entry scheme runs (Matcher.matchCandidates, {§find-source-agnostic}): candidates are the
117
123
  // coordinate-scoped rows resolved by LogBody exactly as READ shows them, so every content
118
- // dialect works on log BY CONSTRUCTION and FIND(log)->READ(coordinate) composes like any scheme.
124
+ // dialect works on log BY CONSTRUCTION and log FIND -> coordinate READ composes like any scheme.
119
125
  async find(statement, ctx) {
120
126
  return this.#find(statement, this.coreContext(ctx));
121
127
  }
122
- async #find(statement, core, allowTargetless = false) {
128
+ async #find(statement, core, allowTargetless = false, filterTags = []) {
123
129
  const { db, workerId, mimetypes } = core;
124
130
  const empty = (status, detail, extensions = {}) => {
125
131
  const fields = emptyFindFields();
@@ -152,22 +158,14 @@ export default class Log extends CoreSchemeAdapterBase {
152
158
  const coordinate = parseCoordinate(scope.pathname);
153
159
  if (coordinate === null)
154
160
  throw new Error(`Exact log scope has a malformed coordinate ${JSON.stringify(scope.pathname)}`);
155
- const exact = await db.log_id_by_coordinate.get({
156
- worker_id: workerId,
157
- loop_seq: coordinate.loopSeq,
158
- turn_seq: coordinate.turnSeq,
159
- sequence: coordinate.sequence,
160
- });
161
- if (exact === undefined) {
161
+ if (await this.#resolveExactId(coordinate, core) === null) {
162
162
  return empty(404, `No log entry exists at ${statement.target?.raw ?? `log:///${scope.pathname}`}.`, { target: statement.target?.raw ?? `log:///${scope.pathname}` });
163
163
  }
164
164
  }
165
- // {§log-region-tagging} — a tag signal AND-filters the candidates ({§find-tag-filter-and-semantics}):
166
- // a row survives only if it carries EVERY listed tag. No signal → the plain coordinate scope.
167
- const tags = Array.isArray(statement.signal) ? statement.signal : [];
168
- const candidateRows = tags.length > 0
169
- ? await db.log_find_candidates_tagged.all({ worker_id: workerId, scope_prefix: scope.candidatePrefix, tags: JSON.stringify(tags) })
170
- : await db.log_find_candidates.all({ worker_id: workerId, scope_prefix: scope.candidatePrefix });
165
+ const storedCandidateRows = filterTags.length > 0
166
+ ? await db.log_curation_find_candidates_tagged.all({ worker_id: workerId, scope_prefix: coordinateCandidatePrefix(scope.candidatePrefix), tags: JSON.stringify(filterTags) })
167
+ : await db.log_find_candidates.all({ worker_id: workerId, scope_prefix: coordinateCandidatePrefix(scope.candidatePrefix) });
168
+ const candidateRows = projectedCoordinateRows(storedCandidateRows);
171
169
  let rows;
172
170
  try {
173
171
  rows = candidateRows.filter((row) => coordinateScopeMatches(scope, row.coordinate));
@@ -179,7 +177,7 @@ export default class Log extends CoreSchemeAdapterBase {
179
177
  retryable: false,
180
178
  });
181
179
  }
182
- const candidateByCanonicalCoord = new Map(candidateRows.map((row) => [canonicalCoordinate(row.coordinate), row]));
180
+ const candidateByCanonicalCoord = new Map(candidateRows.map((row) => [LogEntryProjection.base(row.coordinate), row]));
183
181
  const byCoord = new Map(rows.map((r) => [r.coordinate, r]));
184
182
  const projected = rows.map((r) => ({
185
183
  key: r.coordinate,
@@ -238,7 +236,7 @@ export default class Log extends CoreSchemeAdapterBase {
238
236
  recovery: "Wait for search indexing to complete before repeating the search.",
239
237
  retryable: false,
240
238
  });
241
- const universeRows = await db.log_find_candidates.all({ worker_id: workerId, scope_prefix: null });
239
+ const universeRows = projectedCoordinateRows(await db.log_find_candidates.all({ worker_id: workerId, scope_prefix: null }));
242
240
  const universe = resolveSearchCandidates(universeRows.map(({ coordinate, deep_hash }) => ({ key: coordinate, deepHash: deep_hash })));
243
241
  if (universe.state === "incomplete")
244
242
  return empty(503, `The persistent search index covers ${universe.indexed} of ${universe.total} log results in the relationship universe.`, {
@@ -288,7 +286,7 @@ export default class Log extends CoreSchemeAdapterBase {
288
286
  matches = r.matches.map(({ key, matches: ranges }) => ({ pathname: key, matches: ranges }));
289
287
  }
290
288
  const folderSummaries = statement.body === null
291
- ? pathFolderSummaries(scope, candidateRows.map((row) => canonicalCoordinate(row.coordinate)))
289
+ ? pathFolderSummaries(scope, candidateRows.map((row) => LogEntryProjection.base(row.coordinate)))
292
290
  : [];
293
291
  const resources = [];
294
292
  for (const m of matches) {
@@ -304,10 +302,19 @@ export default class Log extends CoreSchemeAdapterBase {
304
302
  mimetypeTx: row.mimetype_tx,
305
303
  mimetypeRx: row.mimetype_rx,
306
304
  });
307
- const item = {
305
+ const channel = {
308
306
  path,
309
- channels: { [path]: { mimetype: proj.mimetype, tokens: row.tokens, lines: proj.content.length === 0 ? 0 : proj.content.split("\n").length } },
307
+ mimetype: proj.mimetype,
308
+ weight: row.weight,
309
+ lines: proj.content.length === 0 ? 0 : proj.content.split("\n").length,
310
310
  };
311
+ const storedTags = JSON.parse(row.tags);
312
+ if (!Array.isArray(storedTags) || !storedTags.every((tag) => typeof tag === "string" && tag.length > 0)) {
313
+ throw new TypeError(`Log row ${m.pathname} contains invalid tag storage.`);
314
+ }
315
+ if (storedTags.length > 0)
316
+ channel.tags = storedTags;
317
+ const item = [channel];
311
318
  resources.push({ item, match: m });
312
319
  }
313
320
  const scopes = [];
@@ -316,34 +323,58 @@ export default class Log extends CoreSchemeAdapterBase {
316
323
  const item = {
317
324
  path: `log:///${folder.selector}`,
318
325
  items: members.length,
319
- tokens: members.reduce((sum, row) => sum + row.tokens, 0),
326
+ weight: members.reduce((sum, row) => sum + row.weight, 0),
320
327
  };
321
328
  scopes.push(item);
322
329
  }
323
330
  return projectFindResult(statement, scope, resources, scopes);
324
331
  }
325
332
  async open(statement, ctx) {
326
- return this.#setExpanded(statement, this.coreContext(ctx), 1);
333
+ const core = this.coreContext(ctx);
334
+ const outcome = await this.#planCuration(statement, core, 1);
335
+ if (outcome.plan !== null)
336
+ await this.#applyDirect(outcome.plan, core);
337
+ return outcome.result;
327
338
  }
328
339
  // FOLD toggles the expanded bit only — an active subscription stays alive. {§subscriptions-fold-keeps-subscription}
329
340
  async fold(statement, ctx) {
330
- return this.#setExpanded(statement, this.coreContext(ctx), 0);
341
+ const core = this.coreContext(ctx);
342
+ const outcome = await this.#planCuration(statement, core, 0);
343
+ if (outcome.plan !== null)
344
+ await this.#applyDirect(outcome.plan, core);
345
+ return outcome.result;
346
+ }
347
+ // Core dispatch retains the exact landed effect beside the suppressed
348
+ // OPEN/FOLD event. Direct scheme callers receive the ordinary result above.
349
+ async curate(statement, ctx) {
350
+ return this.#planCuration(statement, this.coreContext(ctx), statement.op === "OPEN" ? 1 : 0);
331
351
  }
332
352
  // Resolve a log:/// target — a concrete coordinate or path-glob — to the matched row ids.
333
353
  // OPEN/FOLD/KILL share this one path selection; log curation has no positional pagination.
354
+ async #resolveExactId(coordinate, ctx) {
355
+ const row = await ctx.db.log_id_by_coordinate.get({
356
+ worker_id: ctx.workerId,
357
+ loop_seq: coordinate.loopSeq,
358
+ turn_seq: coordinate.turnSeq,
359
+ sequence: coordinate.sequence,
360
+ });
361
+ return row !== undefined && LogEntryProjection.accepts(coordinate.op, row) ? row.id : null;
362
+ }
334
363
  async #resolveIds(pathname, ctx) {
335
364
  const { db, workerId } = ctx;
336
365
  const coord = parseCoordinate(pathname);
337
366
  if (coord !== null) {
338
- const row = await db.log_id_by_coordinate.get({ worker_id: workerId, loop_seq: coord.loopSeq, turn_seq: coord.turnSeq, sequence: coord.sequence });
339
- return row === undefined ? { status: 404, ids: [] } : { status: 200, ids: [row.id] };
367
+ const id = await this.#resolveExactId(coord, ctx);
368
+ return id === null
369
+ ? { status: 404, ids: [] }
370
+ : { status: 200, ids: [id] };
340
371
  }
341
372
  // {§log-coordinate-hierarchy} — one resolution for every consumer (curation here, find below).
342
373
  const glob = coordinateGlob(pathname);
343
374
  if (glob === null)
344
375
  return { status: 400, ids: [], error: `The log target '${pathname}' is malformed.` };
345
376
  const scope = pathScope(glob, false);
346
- const candidates = await db.log_match_coordinates.all({ worker_id: workerId, scope_prefix: scope.candidatePrefix });
377
+ const candidates = projectedCoordinateRows(await db.log_match_coordinates.all({ worker_id: workerId, scope_prefix: coordinateCandidatePrefix(scope.candidatePrefix) }));
347
378
  let matched;
348
379
  try {
349
380
  matched = candidates.filter((row) => coordinateScopeMatches(scope, row.coordinate));
@@ -357,8 +388,8 @@ export default class Log extends CoreSchemeAdapterBase {
357
388
  return { status: 204, ids: [] };
358
389
  return { status: 200, ids: matched.map((row) => row.id) };
359
390
  }
360
- // {§log-region-tagging} — resolve OPEN[tag] to ids: candidates are the target's glob scope (the
361
- // whole worker log when targetless — a bare OPEN[tag] recalls the entire tagged working-set),
391
+ // {§log-item-tags} — resolve tagged OPEN/FOLD to ids: candidates are the target's glob scope (the
392
+ // whole worker log when targetless),
362
393
  // AND-filtered to rows carrying EVERY listed tag. Zero matches is a no-op success (204), mirroring
363
394
  // #resolveIds — recalling a name that tags nothing steers nothing.
364
395
  async #resolveByTags(statement, tags, ctx) {
@@ -367,12 +398,16 @@ export default class Log extends CoreSchemeAdapterBase {
367
398
  const glob = coordinateGlob(pathname);
368
399
  if (glob === null)
369
400
  return { status: 400, ids: [], error: `The log target '${pathname}' is malformed.` };
401
+ const coordinate = parseCoordinate(pathname);
402
+ if (coordinate !== null && await this.#resolveExactId(coordinate, ctx) === null) {
403
+ return { status: 404, ids: [] };
404
+ }
370
405
  const scope = pathScope(glob, false);
371
- const candidates = await db.log_match_coordinates_tagged.all({
406
+ const candidates = projectedCoordinateRows(await db.log_match_coordinates_tagged.all({
372
407
  worker_id: workerId,
373
- scope_prefix: scope.candidatePrefix,
408
+ scope_prefix: coordinateCandidatePrefix(scope.candidatePrefix),
374
409
  tags: JSON.stringify(tags),
375
- });
410
+ }));
376
411
  let matched;
377
412
  try {
378
413
  matched = candidates.filter((row) => coordinateScopeMatches(scope, row.coordinate));
@@ -385,18 +420,20 @@ export default class Log extends CoreSchemeAdapterBase {
385
420
  return { status: 200, ids: matched.map((row) => row.id) };
386
421
  }
387
422
  // A matcher-bearing curation op reuses FIND's complete source-agnostic selector with
388
- // explicit all-results pagination. OPEN's tags filter candidates; FOLD's tags are withheld until
389
- // after selection because they apply to the rows being folded.
423
+ // explicit all-results pagination. Curation tags are an independent selector;
424
+ // an authored FIND signal classifies its result row and never enters candidate selection.
390
425
  async #resolveByMatcher(statement, filterTags, ctx) {
391
426
  const selected = await this.#find({
392
427
  ...statement,
393
428
  op: "FIND",
394
- signal: filterTags ? statement.signal : null,
429
+ signal: null,
395
430
  lineMarker: { marks: [1, -1] },
396
- }, ctx, filterTags && Array.isArray(statement.signal) && statement.signal.length > 0 && statement.target === null);
431
+ }, ctx, true, filterTags);
397
432
  if (selected.status !== 200)
398
433
  return { status: selected.status, ids: [], problem: selected.problem };
399
- let selectedPaths = selected.results.flatMap((item) => typeof item.path === "string" ? [item.path] : []);
434
+ let selectedPaths = selected.results.flatMap((item) => Array.isArray(item) && typeof item[0]?.path === "string"
435
+ ? [item[0].path]
436
+ : []);
400
437
  if (selectedPaths.length === 0) {
401
438
  if (statement.target === null) {
402
439
  throw new Error("A successful broad log matcher selection returned no resource paths");
@@ -416,84 +453,112 @@ export default class Log extends CoreSchemeAdapterBase {
416
453
  const coordinate = parseCoordinate(pathname.replace(/^log:\/\/\//, "").replace(/^\//, ""));
417
454
  if (coordinate === null)
418
455
  throw new Error(`Log matcher selected malformed coordinate '${pathname}'`);
419
- const row = await ctx.db.log_id_by_coordinate.get({
420
- worker_id: ctx.workerId,
421
- loop_seq: coordinate.loopSeq,
422
- turn_seq: coordinate.turnSeq,
423
- sequence: coordinate.sequence,
424
- });
425
- if (row === undefined)
456
+ const id = await this.#resolveExactId(coordinate, ctx);
457
+ if (id === null)
426
458
  return { status: 404, ids: [] };
427
- ids.push(row.id);
459
+ ids.push(id);
428
460
  }
429
461
  return ids.length === 0 ? { status: 204, ids: [] } : { status: 200, ids };
430
462
  }
431
- async #applyExpanded(ids, expanded, tags, ctx) {
432
- for (const id of ids)
433
- await ctx.db.log_set_expanded_by_id.run({ id, expanded });
434
- if (expanded === 0) {
435
- for (const id of ids)
436
- for (const tag of tags)
437
- await ctx.db.log_write_tag.run({ log_entry_id: id, tag });
463
+ async #applyDirect(plan, ctx) {
464
+ for (const id of plan.targetLogEntryIds) {
465
+ await ctx.db.log_set_expanded_by_id.run({ id, expanded: plan.expanded });
466
+ for (const tag of plan.remove)
467
+ await ctx.db.log_remove_tag.run({ log_entry_id: id, tag });
468
+ for (const tag of plan.add)
469
+ await ctx.db.log_write_tag.run({ log_entry_id: id, tag });
438
470
  }
439
- return { status: 200, matched: ids.length };
440
471
  }
441
- async #setExpanded(statement, ctx, expanded) {
442
- const signal = Array.isArray(statement.signal) ? statement.signal : [];
472
+ async #planCuration(statement, ctx, expanded) {
473
+ let tags;
474
+ try {
475
+ tags = TagSignal.curation(statement.signal);
476
+ }
477
+ catch (cause) {
478
+ if (!(cause instanceof InvalidTagSignalError))
479
+ throw cause;
480
+ return {
481
+ result: Results.failure("scheme:log", "tag-signal-invalid", 400, cause.message, {}, { retryable: false }),
482
+ plan: null,
483
+ };
484
+ }
485
+ const planned = (ids) => ({
486
+ result: { status: 200, matched: ids.length },
487
+ plan: {
488
+ targetLogEntryIds: ids,
489
+ expanded,
490
+ add: tags.add,
491
+ remove: tags.remove,
492
+ },
493
+ });
443
494
  if (statement.body !== null) {
444
- const matched = await this.#resolveByMatcher(statement, expanded === 1, ctx);
495
+ const matched = await this.#resolveByMatcher(statement, tags.filter, ctx);
445
496
  if (matched.status === 204)
446
- return { status: 204, matched: 0 };
497
+ return { result: { status: 204, matched: 0 }, plan: null };
447
498
  if (matched.status !== 200) {
448
499
  if (matched.problem !== undefined) {
449
- return Results.assert({ status: matched.status, problem: matched.problem });
500
+ return {
501
+ result: Results.assert({ status: matched.status, problem: matched.problem }),
502
+ plan: null,
503
+ };
450
504
  }
451
- return Results.failure("scheme:log", matched.status === 404 ? "entry-not-found" : "curation-failed", matched.status, "No log entry matches the requested selection.");
505
+ return {
506
+ result: Results.failure("scheme:log", matched.status === 404 ? "entry-not-found" : "curation-failed", matched.status, "No log entry matches the requested selection."),
507
+ plan: null,
508
+ };
452
509
  }
453
- return this.#applyExpanded(matched.ids, expanded, signal, ctx);
510
+ return planned(matched.ids);
454
511
  }
455
- // {§log-region-tagging} — OPEN[tag] is the READ side: recall rows by tag, target optional (a bare
456
- // OPEN[tag] recalls the whole tagged working-set). FOLD never resolves by tag — it is the WRITE
457
- // side (it stamps the tag below), always scoped to the target region it folds.
458
- if (expanded === 1 && signal.length > 0) {
459
- const rt = await this.#resolveByTags(statement, signal, ctx);
460
- if (rt.status === 204)
461
- return { status: 204, matched: 0 };
462
- if (rt.status !== 200) {
463
- return Results.failure("scheme:log", "open-failed", rt.status, rt.error ?? "No log entry matches the requested selection.", {}, {
464
- target: statement.target?.raw ?? null,
465
- ...(rt.status === 400
466
- ? {
467
- recovery: "Use a log coordinate, prefix, or glob.",
468
- retryable: false,
469
- }
470
- : {}),
471
- });
512
+ // {§log-item-tags} — unsigned terms are the symmetric ALL-tags selector;
513
+ // signed terms are changes applied only after the exact set is resolved.
514
+ if (tags.filter.length > 0) {
515
+ const selected = await this.#resolveByTags(statement, [...tags.filter], ctx);
516
+ if (selected.status === 204)
517
+ return { result: { status: 204, matched: 0 }, plan: null };
518
+ if (selected.status !== 200) {
519
+ return {
520
+ result: Results.failure("scheme:log", "curation-failed", selected.status, selected.error ?? "No log entry matches the requested selection.", {}, {
521
+ target: statement.target?.raw ?? null,
522
+ ...(selected.status === 400
523
+ ? {
524
+ recovery: "Use a log coordinate, prefix, or glob.",
525
+ retryable: false,
526
+ }
527
+ : {}),
528
+ }),
529
+ plan: null,
530
+ };
472
531
  }
473
- return this.#applyExpanded(rt.ids, 1, signal, ctx);
532
+ return planned(selected.ids);
474
533
  }
475
534
  if (statement.target === null) {
476
- return Results.failure("scheme:log", "target-required", 400, `${expanded === 1 ? "OPEN" : "FOLD"} requires a log target.`, {}, {
477
- recovery: "Provide a log coordinate, prefix, or glob.",
478
- retryable: false,
479
- });
535
+ return {
536
+ result: Results.failure("scheme:log", "target-required", 400, `${expanded === 1 ? "OPEN" : "FOLD"} requires a path, body pattern, or unsigned tag; signed tags do not select log items.`, {}, {
537
+ recovery: "Provide a log coordinate, prefix, glob, body pattern, or unsigned tag.",
538
+ retryable: false,
539
+ }),
540
+ plan: null,
541
+ };
480
542
  }
481
543
  const pathname = (statement.target.kind === "url" ? statement.target.pathname : statement.target.raw).replace(/^\//, "");
482
- const r = await this.#resolveIds(pathname, ctx);
483
- if (r.status === 204)
484
- return { status: 204, matched: 0 };
485
- if (r.status !== 200) {
486
- return Results.failure("scheme:log", r.status === 404 ? "entry-not-found" : "curation-failed", r.status, r.error ?? `No log entry matches '${pathname}'.`, {}, {
487
- target: pathname,
488
- ...(r.status === 400
489
- ? {
490
- recovery: "Use a log coordinate, prefix, or glob.",
491
- retryable: false,
492
- }
493
- : {}),
494
- });
544
+ const selected = await this.#resolveIds(pathname, ctx);
545
+ if (selected.status === 204)
546
+ return { result: { status: 204, matched: 0 }, plan: null };
547
+ if (selected.status !== 200) {
548
+ return {
549
+ result: Results.failure("scheme:log", selected.status === 404 ? "entry-not-found" : "curation-failed", selected.status, selected.error ?? `No log entry matches '${pathname}'.`, {}, {
550
+ target: pathname,
551
+ ...(selected.status === 400
552
+ ? {
553
+ recovery: "Use a log coordinate, prefix, or glob.",
554
+ retryable: false,
555
+ }
556
+ : {}),
557
+ }),
558
+ plan: null,
559
+ };
495
560
  }
496
- return this.#applyExpanded(r.ids, expanded, signal, ctx);
561
+ return planned(selected.ids);
497
562
  }
498
563
  // KILL shares OPEN/FOLD's address resolution, deletes instead of flipping visibility,
499
564
  // and carries no positional scope. {§model-entry-log-curation} {§log-curation-set-selection}
@@ -1 +1 @@
1
- {"version":3,"file":"Log.js","sourceRoot":"","sources":["../../src/schemes/Log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Log.js","sourceRoot":"","sources":["../../src/schemes/Log.ts"],"names":[],"mappings":"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"}