@plurnk/plurnk-service 1.4.0 → 1.6.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 (302) hide show
  1. package/.env.defaults +37 -31
  2. package/INSTALL.md +16 -11
  3. package/README.md +1 -0
  4. package/SPEC.md +631 -397
  5. package/dist/Paths.d.ts.map +1 -1
  6. package/dist/Paths.js +2 -3
  7. package/dist/Paths.js.map +1 -1
  8. package/dist/build-info.json +1 -1
  9. package/dist/content/edit-collision.d.ts +5 -0
  10. package/dist/content/edit-collision.d.ts.map +1 -0
  11. package/dist/content/edit-collision.js +14 -0
  12. package/dist/content/edit-collision.js.map +1 -0
  13. package/dist/content/edit-receipt.d.ts +3 -2
  14. package/dist/content/edit-receipt.d.ts.map +1 -1
  15. package/dist/content/edit-receipt.js +58 -13
  16. package/dist/content/edit-receipt.js.map +1 -1
  17. package/dist/content/index.d.ts +5 -1
  18. package/dist/content/index.d.ts.map +1 -1
  19. package/dist/content/index.js +4 -1
  20. package/dist/content/index.js.map +1 -1
  21. package/dist/content/line-anchors.d.ts +41 -0
  22. package/dist/content/line-anchors.d.ts.map +1 -0
  23. package/dist/content/line-anchors.js +191 -0
  24. package/dist/content/line-anchors.js.map +1 -0
  25. package/dist/content/line-marker.d.ts +7 -3
  26. package/dist/content/line-marker.d.ts.map +1 -1
  27. package/dist/content/line-marker.js +2 -1
  28. package/dist/content/line-marker.js.map +1 -1
  29. package/dist/content/matcher.d.ts +1 -1
  30. package/dist/content/matcher.d.ts.map +1 -1
  31. package/dist/content/matcher.js +2 -2
  32. package/dist/content/matcher.js.map +1 -1
  33. package/dist/content/read-projector.d.ts +20 -0
  34. package/dist/content/read-projector.d.ts.map +1 -0
  35. package/dist/content/read-projector.js +122 -0
  36. package/dist/content/read-projector.js.map +1 -0
  37. package/dist/content/read-resolve.d.ts +2 -7
  38. package/dist/content/read-resolve.d.ts.map +1 -1
  39. package/dist/content/read-resolve.js +32 -107
  40. package/dist/content/read-resolve.js.map +1 -1
  41. package/dist/core/BranchReceipt.d.ts +0 -1
  42. package/dist/core/BranchReceipt.d.ts.map +1 -1
  43. package/dist/core/BranchReceipt.js +0 -3
  44. package/dist/core/BranchReceipt.js.map +1 -1
  45. package/dist/core/BudgetReadout.d.ts.map +1 -1
  46. package/dist/core/BudgetReadout.js +9 -2
  47. package/dist/core/BudgetReadout.js.map +1 -1
  48. package/dist/core/ChannelWrite.d.ts +3 -0
  49. package/dist/core/ChannelWrite.d.ts.map +1 -1
  50. package/dist/core/ChannelWrite.js +3 -3
  51. package/dist/core/ChannelWrite.js.map +1 -1
  52. package/dist/core/ChannelWrite.sql +4 -3
  53. package/dist/core/CoreSchemeServices.d.ts +10 -2
  54. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  55. package/dist/core/CoreSchemeServices.js.map +1 -1
  56. package/dist/core/Dispatcher.d.ts +14 -8
  57. package/dist/core/Dispatcher.d.ts.map +1 -1
  58. package/dist/core/Dispatcher.js +656 -312
  59. package/dist/core/Dispatcher.js.map +1 -1
  60. package/dist/core/DurableStatement.d.ts.map +1 -1
  61. package/dist/core/DurableStatement.js +2 -0
  62. package/dist/core/DurableStatement.js.map +1 -1
  63. package/dist/core/Engine.d.ts +24 -18
  64. package/dist/core/Engine.d.ts.map +1 -1
  65. package/dist/core/Engine.js +620 -392
  66. package/dist/core/Engine.js.map +1 -1
  67. package/dist/core/Engine.sql +188 -119
  68. package/dist/core/ExecutableTools.d.ts +10 -0
  69. package/dist/core/ExecutableTools.d.ts.map +1 -0
  70. package/dist/core/ExecutableTools.js +41 -0
  71. package/dist/core/ExecutableTools.js.map +1 -0
  72. package/dist/core/ExecutorRegistry.d.ts +3 -3
  73. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  74. package/dist/core/ExecutorRegistry.js +2 -2
  75. package/dist/core/ExecutorRegistry.js.map +1 -1
  76. package/dist/core/LogBody.d.ts +4 -1
  77. package/dist/core/LogBody.d.ts.map +1 -1
  78. package/dist/core/LogBody.js +46 -2
  79. package/dist/core/LogBody.js.map +1 -1
  80. package/dist/core/LogEntryProjection.d.ts +14 -0
  81. package/dist/core/LogEntryProjection.d.ts.map +1 -0
  82. package/dist/core/LogEntryProjection.js +38 -0
  83. package/dist/core/LogEntryProjection.js.map +1 -0
  84. package/dist/core/LoopLifecycle.d.ts +1 -2
  85. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  86. package/dist/core/LoopLifecycle.js +1 -4
  87. package/dist/core/LoopLifecycle.js.map +1 -1
  88. package/dist/core/LoopLifecycle.sql +1 -4
  89. package/dist/core/ModelCall.d.ts +27 -0
  90. package/dist/core/ModelCall.d.ts.map +1 -0
  91. package/dist/core/ModelCall.js +125 -0
  92. package/dist/core/ModelCall.js.map +1 -0
  93. package/dist/core/PacketBuilder.d.ts +13 -12
  94. package/dist/core/PacketBuilder.d.ts.map +1 -1
  95. package/dist/core/PacketBuilder.js +146 -118
  96. package/dist/core/PacketBuilder.js.map +1 -1
  97. package/dist/core/ProblemLog.d.ts.map +1 -1
  98. package/dist/core/ProblemLog.js +1 -0
  99. package/dist/core/ProblemLog.js.map +1 -1
  100. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  101. package/dist/core/ProposalLifecycle.js +3 -4
  102. package/dist/core/ProposalLifecycle.js.map +1 -1
  103. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  104. package/dist/core/ProviderInstantiate.js +23 -6
  105. package/dist/core/ProviderInstantiate.js.map +1 -1
  106. package/dist/core/SchemeRegistry.js +7 -7
  107. package/dist/core/SchemeRegistry.js.map +1 -1
  108. package/dist/core/StrikeRail.d.ts +5 -2
  109. package/dist/core/StrikeRail.d.ts.map +1 -1
  110. package/dist/core/StrikeRail.js +10 -7
  111. package/dist/core/StrikeRail.js.map +1 -1
  112. package/dist/core/TerminalResult.d.ts +16 -0
  113. package/dist/core/TerminalResult.d.ts.map +1 -0
  114. package/dist/core/TerminalResult.js +49 -0
  115. package/dist/core/TerminalResult.js.map +1 -0
  116. package/dist/core/caps/CapsResolve.d.ts +5 -1
  117. package/dist/core/caps/CapsResolve.d.ts.map +1 -1
  118. package/dist/core/caps/CapsResolve.js +9 -5
  119. package/dist/core/caps/CapsResolve.js.map +1 -1
  120. package/dist/core/caps/DbChannelCaps.d.ts +1 -1
  121. package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
  122. package/dist/core/caps/DbChannelCaps.js +6 -4
  123. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  124. package/dist/core/caps/DbEntryCaps.d.ts +2 -1
  125. package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
  126. package/dist/core/caps/DbEntryCaps.js +21 -8
  127. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  128. package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
  129. package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
  130. package/dist/core/caps/DbNotifyCaps.js +6 -4
  131. package/dist/core/caps/DbNotifyCaps.js.map +1 -1
  132. package/dist/core/caps/DbProjectionCaps.d.ts +1 -0
  133. package/dist/core/caps/DbProjectionCaps.d.ts.map +1 -1
  134. package/dist/core/caps/DbProjectionCaps.js +29 -0
  135. package/dist/core/caps/DbProjectionCaps.js.map +1 -1
  136. package/dist/core/caps/DbSubscriptionCaps.d.ts +4 -6
  137. package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
  138. package/dist/core/caps/DbSubscriptionCaps.js +27 -13
  139. package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
  140. package/dist/core/caps/SchemeCtxImpl.d.ts +11 -3
  141. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  142. package/dist/core/caps/SchemeCtxImpl.js +10 -8
  143. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  144. package/dist/core/fork.d.ts.map +1 -1
  145. package/dist/core/fork.js +23 -7
  146. package/dist/core/fork.js.map +1 -1
  147. package/dist/core/fork.sql +35 -14
  148. package/dist/core/git-iso.d.ts +3 -2
  149. package/dist/core/git-iso.d.ts.map +1 -1
  150. package/dist/core/git-iso.js +27 -12
  151. package/dist/core/git-iso.js.map +1 -1
  152. package/dist/core/git-membership.d.ts +1 -0
  153. package/dist/core/git-membership.d.ts.map +1 -1
  154. package/dist/core/git-membership.js +87 -26
  155. package/dist/core/git-membership.js.map +1 -1
  156. package/dist/core/git-state.d.ts +8 -1
  157. package/dist/core/git-state.d.ts.map +1 -1
  158. package/dist/core/git-state.js +36 -17
  159. package/dist/core/git-state.js.map +1 -1
  160. package/dist/core/namespace.d.ts +1 -0
  161. package/dist/core/namespace.d.ts.map +1 -1
  162. package/dist/core/namespace.js +20 -0
  163. package/dist/core/namespace.js.map +1 -1
  164. package/dist/core/optimistic-settlement.d.ts +2 -0
  165. package/dist/core/optimistic-settlement.d.ts.map +1 -0
  166. package/dist/core/optimistic-settlement.js +14 -0
  167. package/dist/core/optimistic-settlement.js.map +1 -0
  168. package/dist/core/packet-wire.d.ts +5 -2
  169. package/dist/core/packet-wire.d.ts.map +1 -1
  170. package/dist/core/packet-wire.js +318 -114
  171. package/dist/core/packet-wire.js.map +1 -1
  172. package/dist/core/provider-accounting.d.ts +24 -0
  173. package/dist/core/provider-accounting.d.ts.map +1 -0
  174. package/dist/core/provider-accounting.js +76 -0
  175. package/dist/core/provider-accounting.js.map +1 -0
  176. package/dist/core/results.d.ts +4 -2
  177. package/dist/core/results.d.ts.map +1 -1
  178. package/dist/core/results.js +6 -0
  179. package/dist/core/results.js.map +1 -1
  180. package/dist/core/scheme-types.d.ts +0 -12
  181. package/dist/core/scheme-types.d.ts.map +1 -1
  182. package/dist/core/scheme-types.js.map +1 -1
  183. package/dist/core/search-gate.d.ts +2 -2
  184. package/dist/core/search-gate.d.ts.map +1 -1
  185. package/dist/core/search-gate.js +8 -8
  186. package/dist/core/search-gate.js.map +1 -1
  187. package/dist/core/token-ruler.js +1 -1
  188. package/dist/core/token-ruler.js.map +1 -1
  189. package/dist/core/turn-scheduler.js +1 -1
  190. package/dist/core/turn-scheduler.js.map +1 -1
  191. package/dist/core/worker-ops.sql +4 -4
  192. package/dist/core/workspace-settings.js +1 -1
  193. package/dist/core/workspace-settings.js.map +1 -1
  194. package/dist/digest/Digest.d.ts.map +1 -1
  195. package/dist/digest/Digest.js +349 -76
  196. package/dist/digest/Digest.js.map +1 -1
  197. package/dist/digest/digest.sql +42 -16
  198. package/dist/schemes/Exec.d.ts +4 -4
  199. package/dist/schemes/Exec.d.ts.map +1 -1
  200. package/dist/schemes/Exec.js +167 -134
  201. package/dist/schemes/Exec.js.map +1 -1
  202. package/dist/schemes/ExecOutputScheme.d.ts +4 -5
  203. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  204. package/dist/schemes/ExecOutputScheme.js +12 -20
  205. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  206. package/dist/schemes/File.d.ts +5 -6
  207. package/dist/schemes/File.d.ts.map +1 -1
  208. package/dist/schemes/File.js +35 -41
  209. package/dist/schemes/File.js.map +1 -1
  210. package/dist/schemes/Log.d.ts +16 -5
  211. package/dist/schemes/Log.d.ts.map +1 -1
  212. package/dist/schemes/Log.js +229 -262
  213. package/dist/schemes/Log.js.map +1 -1
  214. package/dist/schemes/Log.sql +50 -27
  215. package/dist/schemes/Prompt.d.ts +3 -4
  216. package/dist/schemes/Prompt.d.ts.map +1 -1
  217. package/dist/schemes/Prompt.js +5 -5
  218. package/dist/schemes/Prompt.js.map +1 -1
  219. package/dist/schemes/Skill.d.ts +4 -5
  220. package/dist/schemes/Skill.d.ts.map +1 -1
  221. package/dist/schemes/Skill.js +3 -3
  222. package/dist/schemes/Skill.js.map +1 -1
  223. package/dist/schemes/Worker.d.ts +7 -7
  224. package/dist/schemes/Worker.d.ts.map +1 -1
  225. package/dist/schemes/Worker.js +99 -84
  226. package/dist/schemes/Worker.js.map +1 -1
  227. package/dist/schemes/_entry-crud.d.ts +2 -2
  228. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  229. package/dist/schemes/_entry-crud.js +29 -10
  230. package/dist/schemes/_entry-crud.js.map +1 -1
  231. package/dist/schemes/_entry-crud.sql +11 -17
  232. package/dist/schemes/_entry-find.d.ts +41 -14
  233. package/dist/schemes/_entry-find.d.ts.map +1 -1
  234. package/dist/schemes/_entry-find.js +159 -166
  235. package/dist/schemes/_entry-find.js.map +1 -1
  236. package/dist/schemes/_entry-find.sql +2 -21
  237. package/dist/schemes/_entry-graph.sql +1 -1
  238. package/dist/schemes/_entry-manifest.d.ts +5 -17
  239. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  240. package/dist/schemes/_entry-manifest.js +28 -24
  241. package/dist/schemes/_entry-manifest.js.map +1 -1
  242. package/dist/schemes/_entry-ops.d.ts +13 -8
  243. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  244. package/dist/schemes/_entry-ops.js +98 -119
  245. package/dist/schemes/_entry-ops.js.map +1 -1
  246. package/dist/schemes/_entry-ops.sql +31 -6
  247. package/dist/schemes/_entry-semantic.d.ts +5 -7
  248. package/dist/schemes/_entry-semantic.d.ts.map +1 -1
  249. package/dist/schemes/_entry-semantic.js +10 -31
  250. package/dist/schemes/_entry-semantic.js.map +1 -1
  251. package/dist/schemes/_entry-semantic.sql +2 -2
  252. package/dist/schemes/_entry-send.js +4 -4
  253. package/dist/schemes/_entry-send.js.map +1 -1
  254. package/dist/schemes/_search-index.d.ts.map +1 -1
  255. package/dist/schemes/_search-index.js +16 -6
  256. package/dist/schemes/_search-index.js.map +1 -1
  257. package/dist/schemes/exec-abort.js +2 -2
  258. package/dist/schemes/exec-abort.js.map +1 -1
  259. package/dist/server/BranchBatches.d.ts +1 -0
  260. package/dist/server/BranchBatches.d.ts.map +1 -1
  261. package/dist/server/BranchBatches.js +1 -0
  262. package/dist/server/BranchBatches.js.map +1 -1
  263. package/dist/server/Daemon.d.ts +6 -8
  264. package/dist/server/Daemon.d.ts.map +1 -1
  265. package/dist/server/Daemon.js +238 -68
  266. package/dist/server/Daemon.js.map +1 -1
  267. package/dist/server/DaemonModule.d.ts +3 -3
  268. package/dist/server/DaemonModule.d.ts.map +1 -1
  269. package/dist/server/branch-batch.sql +3 -1
  270. package/dist/server/client-input.d.ts +2 -1
  271. package/dist/server/client-input.d.ts.map +1 -1
  272. package/dist/server/client-input.js +7 -1
  273. package/dist/server/client-input.js.map +1 -1
  274. package/dist/server/drain.sql +8 -7
  275. package/dist/server/envelope.d.ts +0 -2
  276. package/dist/server/envelope.d.ts.map +1 -1
  277. package/dist/server/envelope.js +0 -1
  278. package/dist/server/envelope.js.map +1 -1
  279. package/dist/server/envelope.sql +3 -4
  280. package/dist/server/lifecycle-recovery.sql +44 -1
  281. package/dist/server/logEntry.d.ts +2 -1
  282. package/dist/server/logEntry.d.ts.map +1 -1
  283. package/dist/server/logEntry.js +15 -2
  284. package/dist/server/logEntry.js.map +1 -1
  285. package/dist/server/logEntry.sql +5 -1
  286. package/dist/service.d.ts.map +1 -1
  287. package/dist/service.js +13 -1
  288. package/dist/service.js.map +1 -1
  289. package/migrations/001_schema.sql +730 -221
  290. package/package.json +53 -46
  291. package/dist/core/BudgetOverflow.d.ts +0 -23
  292. package/dist/core/BudgetOverflow.d.ts.map +0 -1
  293. package/dist/core/BudgetOverflow.js +0 -61
  294. package/dist/core/BudgetOverflow.js.map +0 -1
  295. package/dist/core/caps/DbTagCaps.d.ts +0 -10
  296. package/dist/core/caps/DbTagCaps.d.ts.map +0 -1
  297. package/dist/core/caps/DbTagCaps.js +0 -44
  298. package/dist/core/caps/DbTagCaps.js.map +0 -1
  299. package/dist/matrix/live-specimen.d.ts +0 -9
  300. package/dist/matrix/live-specimen.d.ts.map +0 -1
  301. package/dist/matrix/live-specimen.js +0 -37
  302. package/dist/matrix/live-specimen.js.map +0 -1
@@ -1,18 +1,17 @@
1
1
  // FIND helper for entry-bearing schemes (SPEC {§find}; plurnk.md FIND row).
2
- // FIND resolves to the scheme's CATALOG ROWS — the very rows the manifest catalogs —
3
- // filtered to the statement's matches. A matcher (glob/regex/jsonpath/xpath/~semantic/
4
- // @graph) decides WHICH entries appear. Each selected entry appears once; its
5
- // optional `matches` metadata records every addressable source/readable range.
6
- // The content itself remains a READ.
2
+ // FIND resolves one of two questions from the target shape. A broad target
3
+ // returns catalog resources; an exact matcher target returns flat addressable
4
+ // match locations. The content itself remains a READ.
7
5
  //
8
6
  // FIND slot semantics (contracts SPEC §4/§7):
9
7
  // target — required scope (path or glob); selects which entries are candidates
10
8
  // body — matcher (glob/regex/jsonpath/xpath/~semantic/@graph). A content matcher
11
9
  // runs against the entry's default-channel CONTENT (Matcher.matchAgainstContent
12
10
  // → the mimetypes plugin) and INCLUDES/EXCLUDES the entry — e.g.
13
- // `FIND(log:///**/error):/timeout/i` keeps logs whose content matches.
14
- // signal — tag filter: candidate entry must have ALL listed tags
15
- // <L> — results pagination: select results N..M from the matched list
11
+ // log FIND over `log:///**/error` with `/timeout/i` keeps matching rows.
12
+ // signal — classifies the durable FIND log item; never filters resources
13
+ // <L> — result pagination: resource or match-location positions N..M
14
+ import { DEFAULT_RETRIEVAL_LIMIT, renderJsonResult } from "@plurnk/plurnk-contracts";
16
15
  import { LineMarkerOps } from "../content/index.js";
17
16
  import Matcher from "../content/matcher.js";
18
17
  import { entryPathnameOf } from "../core/plurnk-uri.js";
@@ -24,10 +23,111 @@ import EntrySemantic from "./_entry-semantic.js";
24
23
  import Results from "../core/results.js";
25
24
  import { resolveSearchCandidates } from "./_search-candidate.js";
26
25
  import { pathFolderSummaries, pathScope, pathScopeMatches } from "./_path-scope.js";
27
- // FIND result ordinals are also packet line coordinates. Keep each top-level
28
- // item compact, adding only the boundary newline that makes row N addressable
29
- // as line N while retaining one valid JSON array. {§find-result-catalog-rows}
30
- export const renderFindContent = (results) => `[${results.map((result) => JSON.stringify(result)).join(",\n")}]`;
26
+ export const findItemTokens = (item) => "items" in item[0]
27
+ ? item[0].tokens
28
+ : item.reduce((sum, channel) => sum + channel.tokens, 0);
29
+ export const emptyFindFields = () => ({
30
+ content: null,
31
+ mimetype: null,
32
+ results: [],
33
+ itemsTokenTotal: 0,
34
+ returnedItemsTokenTotal: 0,
35
+ matchingPathCount: 0,
36
+ matchLocationCount: 0,
37
+ });
38
+ const uniqueMatchLocations = (locations) => {
39
+ const seen = new Set();
40
+ const unique = [];
41
+ for (const location of locations) {
42
+ const key = JSON.stringify(location);
43
+ if (seen.has(key))
44
+ continue;
45
+ seen.add(key);
46
+ unique.push(location);
47
+ }
48
+ return unique;
49
+ };
50
+ // {§find-result-projection} — selection remains grouped internally because
51
+ // schemes and curation operate on resources. This one public projection owns
52
+ // target-shape mode, pagination, counts, and rendering for every FIND source.
53
+ export const projectFindResult = (statement, scope, resources, scopes = []) => {
54
+ const resourcePaths = new Set();
55
+ for (const { item } of resources) {
56
+ const path = item[0].path;
57
+ if (resourcePaths.has(path)) {
58
+ throw new Error(`FIND selection contains duplicate resource ${JSON.stringify(path)}`);
59
+ }
60
+ resourcePaths.add(path);
61
+ }
62
+ const matchingPathCount = resources.length;
63
+ const matchLocationCount = resources.reduce((sum, { match }) => sum + uniqueMatchLocations(match.matches).length, 0);
64
+ const itemsTokenTotal = resources.reduce((sum, { item }) => sum + findItemTokens(item), 0)
65
+ + scopes.reduce((sum, item) => sum + item.tokens, 0);
66
+ const fields = {
67
+ content: null,
68
+ mimetype: null,
69
+ results: [],
70
+ itemsTokenTotal,
71
+ returnedItemsTokenTotal: 0,
72
+ matchingPathCount,
73
+ matchLocationCount,
74
+ };
75
+ const locationMode = statement.body !== null && scope.kind === "exact";
76
+ let completeItems;
77
+ if (locationMode) {
78
+ completeItems = uniqueMatchLocations(resources.flatMap(({ match }) => match.matches));
79
+ }
80
+ else {
81
+ const resourceItems = [
82
+ ...resources.map(({ item, match }) => statement.body === null
83
+ ? item
84
+ : [
85
+ { ...item[0], matchLocationCount: uniqueMatchLocations(match.matches).length },
86
+ ...item.slice(1),
87
+ ]),
88
+ ...scopes.map((item) => [item]),
89
+ ];
90
+ if (scopes.length > 0) {
91
+ resourceItems.sort((a, b) => a[0].path.localeCompare(b[0].path));
92
+ }
93
+ completeItems = resourceItems;
94
+ }
95
+ const marker = statement.body?.dialect === "semantic"
96
+ ? EntrySemantic.resultSelection(statement.lineMarker).page
97
+ : statement.lineMarker ?? { marks: [1, DEFAULT_RETRIEVAL_LIMIT] };
98
+ const unit = locationMode ? "matchLocation" : "resource";
99
+ const page = LineMarkerOps.page(completeItems, marker, {
100
+ unit,
101
+ allowEmpty: statement.body !== null || statement.lineMarker === null,
102
+ });
103
+ if (page.status !== 200) {
104
+ if (page.problem === undefined)
105
+ throw new Error("FIND pagination failed without Problem Details");
106
+ return Results.assert({ status: page.status, problem: page.problem, ...fields, range: page.range });
107
+ }
108
+ if (statement.body !== null && matchingPathCount === 0) {
109
+ return {
110
+ status: 204,
111
+ ...fields,
112
+ ...(page.range === undefined ? {} : { range: page.range }),
113
+ };
114
+ }
115
+ const results = page.items ?? [];
116
+ const returnedItemsTokenTotal = locationMode
117
+ ? itemsTokenTotal
118
+ : results.reduce((sum, item) => sum + findItemTokens(item), 0);
119
+ return {
120
+ status: 200,
121
+ content: renderJsonResult(results), // {§find-result-projection} {§json-result-rendering}
122
+ mimetype: "application/json",
123
+ results,
124
+ itemsTokenTotal,
125
+ returnedItemsTokenTotal,
126
+ matchingPathCount,
127
+ matchLocationCount,
128
+ ...(page.range === undefined ? {} : { range: page.range }),
129
+ };
130
+ };
31
131
  export default class EntryFind {
32
132
  static #scopePathnameOf(statement) {
33
133
  const path = statement.target;
@@ -48,14 +148,14 @@ export default class EntryFind {
48
148
  }
49
149
  return out;
50
150
  }
51
- // Resolve a FIND to its matched workspace PATHNAMES — entry-level, unique, in result
151
+ // Resolve a FIND to its matched workspace resources — entry-level, unique, in result
52
152
  // order (rank for ~semantic, candidate order otherwise). Candidate selection (scope +
53
- // tags) runs in SQL (find_workspace_entry_candidates); a content matcher then runs against
153
+ // scope) runs in SQL (find_workspace_entry_candidates); a content matcher then runs against
54
154
  // each candidate's default-channel CONTENT (Matcher.matchAgainstContent → the mimetypes
55
155
  // plugin) and INCLUDES/EXCLUDES the entry - 200 keeps it, 204/203 drop it, and a
56
- // 4xx matcher failure ends the whole operation. Path-scoping stays in the (target). Returns the
57
- // matched pathnames plus `locations` — each content hit's source line(s), keyed by pathname.
58
- static async #matchPathnames(statement, ctx, manifest, explicitOwnerId) {
156
+ // 4xx matcher failure ends the whole operation. Path-scoping stays in the (target). Match
157
+ // locations remain grouped by resource internally until the target-shaped public projection.
158
+ static async #matchPathnames(statement, ctx, manifest, address) {
59
159
  if (statement.target === null) {
60
160
  return {
61
161
  status: 400,
@@ -70,7 +170,7 @@ export default class EntryFind {
70
170
  // Scope by the manifest's persisted entries.scheme (storedScheme; absent →
71
171
  // name). File persists under the reserved 'file' scheme ({§entry-identity-no-null}).
72
172
  const scheme = EntryCrud.identityScheme(manifest);
73
- const scopePathname = EntryFind.#scopePathnameOf(statement);
173
+ const scopePathname = address.pathname ?? EntryFind.#scopePathnameOf(statement);
74
174
  const scope = scopePathname === null
75
175
  ? null
76
176
  : pathScope(scopePathname, manifest.folderScopes === true);
@@ -79,7 +179,7 @@ export default class EntryFind {
79
179
  if (scope?.kind === "exact" && scope.pathname.length > 0) {
80
180
  const exact = await ctx.db.crud_find_workspace_entry.get({
81
181
  workspace_id: ctx.workspaceId,
82
- owner_id: explicitOwnerId ?? await Owner.commonsId(ctx.db, ctx.workspaceId),
182
+ owner_id: address.ownerId ?? await Owner.commonsId(ctx.db, ctx.workspaceId),
83
183
  scheme, pathname: scope.pathname,
84
184
  });
85
185
  if (exact === undefined) {
@@ -95,17 +195,14 @@ export default class EntryFind {
95
195
  // path matcher owns the shell-glob truth below: unlike SQLite GLOB, `*`
96
196
  // cannot cross `/`, while `**` can. A declared folder scope remains a
97
197
  // recursive prefix independent of glob syntax. {§find-scope-prefix-filter}
98
- const tags = Array.isArray(statement.signal) ? statement.signal : []; // tag filter, AND semantics — {§find-tag-filter-and-semantics}
99
- const tagsParam = tags.length > 0 ? JSON.stringify(tags) : "[]";
100
198
  const { db, workspaceId } = ctx;
101
199
  const semantic = statement.body?.dialect === "semantic";
102
200
  let candidates = await db[semantic ? "find_workspace_entry_candidate_ids" : "find_workspace_entry_candidates"].all({
103
201
  workspace_id: workspaceId,
104
- owner_id: explicitOwnerId ?? await Owner.commonsId(db, workspaceId),
202
+ owner_id: address.ownerId ?? await Owner.commonsId(db, workspaceId),
105
203
  scheme,
106
204
  ...(semantic ? {} : { channel: manifest.defaultChannel }),
107
205
  scope_prefix: scope?.candidatePrefix ?? null,
108
- tags: tagsParam,
109
206
  });
110
207
  const candidatePathnames = statement.body === null && scope?.kind === "glob" && scope.shallowPrefix !== null
111
208
  ? candidates.map((candidate) => candidate.pathname)
@@ -179,23 +276,10 @@ export default class EntryFind {
179
276
  },
180
277
  };
181
278
  }
182
- let selected = ranked.results;
183
- if (selection.page !== null) {
184
- const page = LineMarkerOps.page(selected, selection.page);
185
- if (page.status !== 200) {
186
- return {
187
- status: page.status,
188
- matches: [],
189
- problem: page.problem,
190
- range: page.range,
191
- };
192
- }
193
- selected = page.items ?? [];
194
- }
195
- matches = await EntryFind.#addTextRegions(selected.map((x) => ({
279
+ matches = await EntryFind.#addTextRegions(ranked.results.map((x) => ({
196
280
  key: x.key,
197
281
  span: { lineStart: x.lineStart, lineEnd: x.lineEnd },
198
- })), ctx, manifest, explicitOwnerId);
282
+ })), ctx, manifest, address.ownerId);
199
283
  }
200
284
  else if (statement.body === null) {
201
285
  matches = candidates.map((c) => ({ pathname: c.pathname, matches: [] }));
@@ -203,7 +287,7 @@ export default class EntryFind {
203
287
  else if (statement.body.dialect === "graph") {
204
288
  // {§relation-indexed-dialects} Body is `@<sym` / `@>sym` / `@sym`. EntryGraph resolves
205
289
  // the relation across (workspace, scheme), each as a (file, span); intersect with the
206
- // in-scope candidates (target glob + tags) for the final set.
290
+ // in-scope candidates from the target glob for the final set.
207
291
  const scopedCandidates = resolveSearchCandidates(candidates.map(({ pathname, deep_hash }) => ({ key: pathname, deepHash: deep_hash })));
208
292
  if (scopedCandidates.state === "incomplete")
209
293
  return {
@@ -250,7 +334,7 @@ export default class EntryFind {
250
334
  matches = await EntryFind.#addTextRegions(graph.matches.map((m) => ({
251
335
  key: m.key,
252
336
  span: { lineStart: m.lineStart, lineEnd: m.lineEnd },
253
- })), ctx, manifest, explicitOwnerId);
337
+ })), ctx, manifest, address.ownerId);
254
338
  }
255
339
  else {
256
340
  const { mimetypes } = ctx;
@@ -271,40 +355,6 @@ export default class EntryFind {
271
355
  };
272
356
  matches = r.matches.map((match) => ({ pathname: match.key, matches: match.matches }));
273
357
  }
274
- if (statement.lineMarker !== null && statement.body?.dialect !== "semantic" && candidatePathnames === undefined) {
275
- const page = LineMarkerOps.page(matches, statement.lineMarker);
276
- if (page.status !== 200) {
277
- if (statement.body !== null && matches.length === 0) {
278
- const failure = Results.failure(`scheme:${manifest.name}`, "selection-range-unavailable", 416, `The ${statement.body.dialect} matcher selected 0 resources; <${statement.lineMarker.marks.join(",")}> cannot select from an empty result set.`, {
279
- matches: [],
280
- range: page.range,
281
- }, {
282
- stage: "selection",
283
- dialect: statement.body.dialect,
284
- matchedResources: 0,
285
- range: page.range,
286
- recovery: "Correct or remove the matcher before choosing a range.",
287
- retryable: false,
288
- });
289
- if (failure.problem === undefined) {
290
- throw new Error("FIND selection range failure has no Problem Details");
291
- }
292
- return {
293
- status: failure.status,
294
- matches: [],
295
- problem: failure.problem,
296
- range: page.range,
297
- };
298
- }
299
- return {
300
- status: page.status,
301
- matches: [],
302
- problem: page.problem,
303
- range: page.range,
304
- };
305
- }
306
- matches = page.items ?? [];
307
- }
308
358
  return { status: 200, matches, ...(scope === null ? {} : { scope }), ...(candidatePathnames === undefined ? {} : { candidatePathnames }) };
309
359
  }
310
360
  static async #addTextRegions(matches, ctx, manifest, explicitOwnerId) {
@@ -329,13 +379,12 @@ export default class EntryFind {
329
379
  const resolved = Matcher.addTextRegions(matches, candidates);
330
380
  return resolved.map(({ key, matches: ranges }) => ({ pathname: key, matches: ranges }));
331
381
  }
332
- // FIND result = the scheme's catalog rows, filtered to the matched entries and kept in
333
- // match order. A catalog row is exactly what the manifest catalogs (path + per-channel
334
- // {mimetype, tokens, lines}, tags, stream lifecycle) — FIND is the filtered, navigable slice of
335
- // that catalog, rendered as a JSON array (application/json). {§find-result-catalog-rows}
336
- static async findWorkspaceEntries(statement, ctx, manifest, explicitOwnerId) {
337
- const match = await EntryFind.#matchPathnames(statement, ctx, manifest, explicitOwnerId);
338
- const empty = { content: null, mimetype: null, results: [], itemsTokenTotal: 0, pathnames: [], matches: [] };
382
+ // FIND result = the scheme's default-first channel groups, filtered to the matched
383
+ // entries and kept in match order. FIND is the filtered, navigable slice of that
384
+ // catalog, rendered as a JSON array (application/json). {§find-result-projection}
385
+ static async findWorkspaceEntries(statement, ctx, manifest, address = {}) {
386
+ const match = await EntryFind.#matchPathnames(statement, ctx, manifest, address);
387
+ const empty = emptyFindFields();
339
388
  if (match.status !== 200) {
340
389
  if (match.problem !== undefined) {
341
390
  return Results.assert({
@@ -347,39 +396,27 @@ export default class EntryFind {
347
396
  if (match.error === undefined) {
348
397
  throw new Error(`EntryFind selection failed with status ${match.status} without Problem Details or a diagnostic.`);
349
398
  }
350
- return Results.failure(`scheme:${manifest.name}`, match.status === 404 ? "entry-not-found" : match.status === 416 ? "range-not-satisfiable" : "find-failed", match.status, match.error, empty, {
351
- ...(match.range === undefined ? {} : { range: match.range }),
352
- ...match.extensions,
353
- });
354
- }
355
- // Internal matchers successfully return an empty candidate set. Public
356
- // FIND owns its operation status: a matcher miss is 204, while a
357
- // body-less empty catalog remains a successful survey. {§matcher-result-resource-selection}
358
- if (statement.body !== null && match.matches.length === 0) {
359
- return { status: 204, ...empty };
399
+ return Results.failure(`scheme:${manifest.name}`, match.status === 404 ? "entry-not-found" : match.status === 416 ? "range-not-satisfiable" : "find-failed", match.status, match.error, empty, match.extensions);
360
400
  }
361
401
  const scheme = EntryCrud.identityScheme(manifest);
362
- // The catalog row is keyed by its addressable path; align each selected
363
- // resource to its row through the same EntryManifest.toPath the catalog
402
+ // The catalog group's default channel carries its bare addressable path;
403
+ // align each selected resource through the same EntryManifest.toPath the catalog
364
404
  // uses. Resource order is preserved (rank for ~semantic).
365
405
  // {§entry-owner} — the alignment draws from the SAME owner the candidates matched, so a
366
406
  // match never pairs with a coordinate-twin sibling's catalog metadata.
367
- const byPath = new Map((await EntryManifest.catalogRowsFor(ctx, scheme, explicitOwnerId ?? await Owner.commonsId(ctx.db, ctx.workspaceId))).map((r) => [r.path, r]));
368
- let results = [];
369
- const matches = [];
370
- let itemsTokenTotal = 0;
407
+ const byPath = new Map((await EntryManifest.catalogRowsFor(ctx, scheme, address.ownerId ?? await Owner.commonsId(ctx.db, ctx.workspaceId))).map((r) => [r[0].path, r]));
408
+ const resources = [];
371
409
  for (const m of match.matches) {
372
410
  const row = byPath.get(EntryManifest.toPath(scheme, m.pathname));
373
411
  if (row === undefined)
374
412
  continue;
375
- results.push(m.matches.length > 0 ? { ...row, matches: m.matches } : row);
376
- matches.push(m);
377
- itemsTokenTotal += Object.values(row.channels).reduce((sum, channel) => sum + channel.tokens, 0);
413
+ resources.push({ item: row, match: m });
378
414
  }
379
415
  // A terminal single-star catalog is a one-level map. Keep real entries
380
416
  // at that level and collapse deeper descendants into exact, actionable
381
417
  // `dir/**` scopes. The summaries are navigation metadata, not hidden
382
- // matches: READ(*) still fans out only over the direct real entries.
418
+ // resource matches.
419
+ const scopes = [];
383
420
  if (statement.body === null && match.scope !== undefined && match.candidatePathnames !== undefined) {
384
421
  for (const folder of pathFolderSummaries(match.scope, match.candidatePathnames)) {
385
422
  let tokens = 0;
@@ -389,77 +426,33 @@ export default class EntryFind {
389
426
  if (row === undefined)
390
427
  continue;
391
428
  items++;
392
- tokens += Object.values(row.channels).reduce((sum, channel) => sum + channel.tokens, 0);
429
+ tokens += row.reduce((sum, channel) => sum + channel.tokens, 0);
393
430
  }
394
431
  if (items > 0) {
395
- results.push({ path: EntryManifest.toPath(scheme, folder.selector), items, tokens });
396
- itemsTokenTotal += tokens;
432
+ scopes.push({ path: EntryManifest.toPath(scheme, folder.selector), items, tokens });
397
433
  }
398
434
  }
399
- results.sort((a, b) => a.path.localeCompare(b.path));
400
- // `<L>` pages the catalog the model actually sees, folder summaries
401
- // included. Only retained real-entry rows remain fan-out matches.
402
- if (statement.lineMarker !== null) {
403
- const page = LineMarkerOps.page(results, statement.lineMarker);
404
- if (page.status !== 200) {
405
- if (page.problem === undefined) {
406
- throw new Error("FIND pagination failed without Problem Details");
407
- }
408
- return Results.assert({
409
- status: page.status,
410
- problem: page.problem,
411
- content: null,
412
- mimetype: null,
413
- results: [],
414
- itemsTokenTotal: 0,
415
- pathnames: [],
416
- matches: [],
417
- });
418
- }
419
- results = page.items ?? [];
420
- const retained = new Set(results.filter((item) => item.items === undefined).map((item) => item.path));
421
- for (let i = matches.length - 1; i >= 0; i--) {
422
- if (!retained.has(EntryManifest.toPath(scheme, matches[i].pathname)))
423
- matches.splice(i, 1);
424
- }
425
- itemsTokenTotal = results.reduce((sum, item) => sum + (item.items === undefined
426
- ? Object.values(item.channels).reduce((channelSum, channel) => channelSum + channel.tokens, 0)
427
- : item.tokens ?? 0), 0);
428
- }
429
435
  }
430
- // {§find-count-not-contents}: over the independent render limit, retain
431
- // count and aggregate weight but never the enumerated rows. Zero disables.
432
- const budget = Number.parseInt(process.env.PLURNK_SERVICE_FIND_MAX_MATCHES ?? "0", 10);
433
- if (budget > 0 && results.length > budget) {
434
- const noun = results.some((item) => item.items !== undefined) ? "catalog items" : "entries";
435
- const steer = `${results.length} ${noun} match, exceeding the render budget (${budget}) — not enumerated.`;
436
- // Count-forward means COUNT ONLY. Retaining the enumerated arrays behind a
437
- // terse rendered steer defeated the contract twice: callers could still fan
438
- // every hidden match into work, and the full objects stayed resident. The
439
- // Omitted count + aggregate weight are the complete bounded result.
440
- return {
441
- status: 200,
442
- content: steer,
443
- mimetype: "text/markdown",
444
- results: [],
445
- itemsTokenTotal,
446
- pathnames: [],
447
- matches: [],
448
- omittedItems: results.length,
449
- maximumItems: budget,
450
- };
436
+ if (match.scope === undefined)
437
+ throw new Error("FIND selection succeeded without a path scope");
438
+ const projected = projectFindResult(statement, match.scope, resources, scopes);
439
+ if (address.pathname === undefined)
440
+ return projected;
441
+ // Exact FIND consumes the same selected canonical producer as exact
442
+ // READ. Query projection remains core-owned, while the durable default-
443
+ // channel outcome survives cold and warm acquisition identically.
444
+ const stored = await EntryCrud.readEntry(address.pathname, ctx, scheme, address.ownerId);
445
+ if (stored.status !== 200 || stored.entry === null) {
446
+ throw new Error(`EntryFind projected exact entry ${address.pathname} but could not read its canonical representation.`);
451
447
  }
452
- // Compact within rows; the single top-level boundary newline makes
453
- // result ordinal N the universally numbered packet line N.
454
- return {
455
- status: 200,
456
- content: renderFindContent(results),
457
- mimetype: "application/json",
458
- results,
459
- itemsTokenTotal,
460
- pathnames: matches.map(({ pathname }) => pathname),
461
- matches,
462
- };
448
+ const producerResult = stored.entry.channels[manifest.defaultChannel]?.producerResult;
449
+ return producerResult === undefined
450
+ ? projected
451
+ : Results.assert({
452
+ ...producerResult,
453
+ ...projected,
454
+ status: producerResult.status,
455
+ });
463
456
  }
464
457
  }
465
458
  //# sourceMappingURL=_entry-find.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_entry-find.js","sourceRoot":"","sources":["../../src/schemes/_entry-find.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_entry-find.js","sourceRoot":"","sources":["../../src/schemes/_entry-find.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  -- FIND / multi-entry OPEN / FOLD candidate selection for entry-bearing
2
2
  -- schemes (SPEC {§find}; plurnk.md FIND row).
3
3
  --
4
- -- Scope (target) + tag filters ONLY. The body matcher does NOT belong here:
4
+ -- Scope (target) only. The body matcher does NOT belong here:
5
5
  -- per plurnk.md "Pattern Filtering" it runs against entry CONTENT, which
6
6
  -- needs the mimetypes plugin (xpath/jsonpath/regex/glob over structured
7
7
  -- content) — so the body match runs in JS (Matcher.matchAgainstContent) over
@@ -13,7 +13,6 @@
13
13
  -- $scope_prefix: the literal pathname prefix before any glob syntax, or NULL
14
14
  -- for no prefix. TypeScript applies the authoritative shell-glob match; this
15
15
  -- query supplies only a safe candidate superset.
16
- -- $tags: JSON string of tag list (e.g., '["a","b"]'); '[]' or NULL for no tag filter
17
16
  SELECT e.id AS entry_id, e.pathname, e.deep_hash, ec.content, ec.mimetype
18
17
  FROM entries e
19
18
  JOIN entry_channels ec ON ec.entry_id = e.id AND ec.name = $channel
@@ -21,19 +20,10 @@ WHERE e.workspace_id = $workspace_id
21
20
  AND e.owner_id = $owner_id
22
21
  AND e.scheme = $scheme
23
22
  AND ($scope_prefix IS NULL OR substr(e.pathname, 1, length($scope_prefix)) = $scope_prefix)
24
- AND (
25
- json_array_length(COALESCE($tags, '[]')) = 0
26
- OR e.id IN (
27
- SELECT entry_id FROM entry_tags
28
- WHERE tag IN (SELECT value FROM json_each(COALESCE($tags, '[]')))
29
- GROUP BY entry_id
30
- HAVING COUNT(DISTINCT tag) = json_array_length(COALESCE($tags, '[]'))
31
- )
32
- )
33
23
  ORDER BY e.pathname;
34
24
 
35
25
  -- PREP: find_workspace_entry_candidate_ids
36
- -- Relation matchers need the same target/tag candidate set without loading every
26
+ -- Relation matchers need the same target candidate set without loading every
37
27
  -- candidate body across the SQL boundary. The ranker joins these identities to
38
28
  -- derivations and performs exhaustive ranking within the selected set.
39
29
  SELECT e.id AS entry_id, e.pathname, e.deep_hash
@@ -42,15 +32,6 @@ WHERE e.workspace_id = $workspace_id
42
32
  AND e.owner_id = $owner_id
43
33
  AND e.scheme = $scheme
44
34
  AND ($scope_prefix IS NULL OR substr(e.pathname, 1, length($scope_prefix)) = $scope_prefix)
45
- AND (
46
- json_array_length(COALESCE($tags, '[]')) = 0
47
- OR e.id IN (
48
- SELECT entry_id FROM entry_tags
49
- WHERE tag IN (SELECT value FROM json_each(COALESCE($tags, '[]')))
50
- GROUP BY entry_id
51
- HAVING COUNT(DISTINCT tag) = json_array_length(COALESCE($tags, '[]'))
52
- )
53
- )
54
35
  ORDER BY e.pathname;
55
36
 
56
37
  -- PREP: find_workspace_derivation_candidates
@@ -44,7 +44,7 @@ RETURNING id, state;
44
44
 
45
45
  -- PREP: derivation_complete
46
46
  UPDATE derivations
47
- SET state = 'complete', disposition = $disposition, reason = $reason
47
+ SET state = 'complete', disposition = $disposition, reason = $reason, parse_issues = $parse_issues
48
48
  WHERE id = $derivation_id;
49
49
 
50
50
  -- PREP: graph_referrers_candidates
@@ -1,21 +1,9 @@
1
1
  import type { PlurnkSchemeContext } from "../core/scheme-types.ts";
2
- export type StreamLifecycle = {
3
- state: "active";
4
- seconds: number;
5
- } | {
6
- state: "closed" | "killed" | "failed";
7
- status: number;
8
- };
9
- export type CatalogEntry = {
10
- path: string;
11
- stream?: StreamLifecycle;
12
- tags?: string[];
13
- channels: Record<string, {
14
- mimetype: string;
15
- tokens: number;
16
- lines: number;
17
- }>;
18
- };
2
+ import type { EntryCatalogChannel, EntryCatalogDefaultChannel, EntryStreamLifecycle } from "@plurnk/plurnk-schemes";
3
+ export type StreamLifecycle = EntryStreamLifecycle;
4
+ export type CatalogChannel = EntryCatalogChannel;
5
+ export type CatalogDefaultChannel = EntryCatalogDefaultChannel;
6
+ export type CatalogEntry = [CatalogDefaultChannel, ...CatalogChannel[]];
19
7
  export default class EntryManifest {
20
8
  static toPath(scheme: string, pathname: string): string;
21
9
  static catalogRowsFor(ctx: PlurnkSchemeContext, schemeFilter?: string, ownerId?: number): Promise<CatalogEntry[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"_entry-manifest.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAmBnE,MAAM,MAAM,eAAe,GACrB;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjF,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGtD;IAED,OAAa,cAAc,CAAC,GAAG,EAAE,mBAAmB,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA4DtH;CACJ"}
1
+ {"version":3,"file":"_entry-manifest.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,KAAK,EACR,mBAAmB,EACnB,0BAA0B,EAC1B,oBAAoB,EACvB,MAAM,wBAAwB,CAAC;AAmBhC,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AACnD,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC;AACjD,MAAM,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG,CAAC,qBAAqB,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;AASxE,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGtD;IAED,OAAa,cAAc,CAAC,GAAG,EAAE,mBAAmB,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAmEtH;CACJ"}