@plurnk/plurnk-service 1.7.0 → 1.9.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 (381) hide show
  1. package/.env.defaults +49 -42
  2. package/INSTALL.md +48 -11
  3. package/README.md +12 -2
  4. package/SPEC.md +1166 -475
  5. package/digest-sql/channel-dispositions/dispositions.sql +15 -0
  6. package/digest-sql/channel-state/state.sql +6 -0
  7. package/digest-sql/curation/curation.sql +5 -0
  8. package/digest-sql/derivations/derivations.sql +4 -0
  9. package/digest-sql/embeddings/embeddings.sql +4 -0
  10. package/digest-sql/entry-dispositions/dispositions.sql +15 -0
  11. package/digest-sql/entry-state/state.sql +6 -0
  12. package/digest-sql/token-counts/token-counts.sql +2 -0
  13. package/dist/Paths.d.ts +0 -4
  14. package/dist/Paths.d.ts.map +1 -1
  15. package/dist/Paths.js +1 -21
  16. package/dist/Paths.js.map +1 -1
  17. package/dist/build-info.json +1 -1
  18. package/dist/content/read-projector.d.ts.map +1 -1
  19. package/dist/content/read-projector.js +4 -3
  20. package/dist/content/read-projector.js.map +1 -1
  21. package/dist/core/BudgetReadout.d.ts.map +1 -1
  22. package/dist/core/BudgetReadout.js +12 -22
  23. package/dist/core/BudgetReadout.js.map +1 -1
  24. package/dist/core/ChannelWrite.d.ts +8 -3
  25. package/dist/core/ChannelWrite.d.ts.map +1 -1
  26. package/dist/core/ChannelWrite.js +40 -8
  27. package/dist/core/ChannelWrite.js.map +1 -1
  28. package/dist/core/ChannelWrite.sql +19 -5
  29. package/dist/core/CoreSchemeServices.d.ts +7 -3
  30. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  31. package/dist/core/CoreSchemeServices.js +8 -1
  32. package/dist/core/CoreSchemeServices.js.map +1 -1
  33. package/dist/core/Dispatcher.d.ts +15 -6
  34. package/dist/core/Dispatcher.d.ts.map +1 -1
  35. package/dist/core/Dispatcher.js +352 -306
  36. package/dist/core/Dispatcher.js.map +1 -1
  37. package/dist/core/Engine.d.ts +22 -10
  38. package/dist/core/Engine.d.ts.map +1 -1
  39. package/dist/core/Engine.js +86 -46
  40. package/dist/core/Engine.js.map +1 -1
  41. package/dist/core/Engine.sql +202 -177
  42. package/dist/core/EntryAddressBinding.d.ts +32 -0
  43. package/dist/core/EntryAddressBinding.d.ts.map +1 -0
  44. package/dist/core/EntryAddressBinding.js +93 -0
  45. package/dist/core/EntryAddressBinding.js.map +1 -0
  46. package/dist/core/ExecutorRegistry.d.ts +12 -6
  47. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  48. package/dist/core/ExecutorRegistry.js +34 -31
  49. package/dist/core/ExecutorRegistry.js.map +1 -1
  50. package/dist/core/HostPaths.d.ts +29 -0
  51. package/dist/core/HostPaths.d.ts.map +1 -0
  52. package/dist/core/HostPaths.js +74 -0
  53. package/dist/core/HostPaths.js.map +1 -0
  54. package/dist/core/LegacyHome.d.ts +10 -0
  55. package/dist/core/LegacyHome.d.ts.map +1 -0
  56. package/dist/core/LegacyHome.js +170 -0
  57. package/dist/core/LegacyHome.js.map +1 -0
  58. package/dist/core/LogBody.d.ts +1 -1
  59. package/dist/core/LogBody.d.ts.map +1 -1
  60. package/dist/core/LogBody.js +21 -3
  61. package/dist/core/LogBody.js.map +1 -1
  62. package/dist/core/LogEntryProjection.js +1 -1
  63. package/dist/core/LogEntryProjection.js.map +1 -1
  64. package/dist/core/LogVisibility.d.ts +28 -0
  65. package/dist/core/LogVisibility.d.ts.map +1 -0
  66. package/dist/core/LogVisibility.js +215 -0
  67. package/dist/core/LogVisibility.js.map +1 -0
  68. package/dist/core/LoopLifecycle.d.ts +1 -0
  69. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  70. package/dist/core/LoopLifecycle.js +8 -0
  71. package/dist/core/LoopLifecycle.js.map +1 -1
  72. package/dist/core/LoopLifecycle.sql +10 -0
  73. package/dist/core/OperatorConfig.d.ts +6 -0
  74. package/dist/core/OperatorConfig.d.ts.map +1 -0
  75. package/dist/core/OperatorConfig.js +95 -0
  76. package/dist/core/OperatorConfig.js.map +1 -0
  77. package/dist/core/OverflowTurn.d.ts +11 -0
  78. package/dist/core/OverflowTurn.d.ts.map +1 -0
  79. package/dist/core/OverflowTurn.js +81 -0
  80. package/dist/core/OverflowTurn.js.map +1 -0
  81. package/dist/core/Owner.js +3 -3
  82. package/dist/core/Owner.js.map +1 -1
  83. package/dist/core/PacketBuilder.d.ts +7 -15
  84. package/dist/core/PacketBuilder.d.ts.map +1 -1
  85. package/dist/core/PacketBuilder.js +64 -127
  86. package/dist/core/PacketBuilder.js.map +1 -1
  87. package/dist/core/ProblemLog.js +1 -1
  88. package/dist/core/ProblemLog.js.map +1 -1
  89. package/dist/core/ProposalLifecycle.d.ts +4 -1
  90. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  91. package/dist/core/ProposalLifecycle.js +86 -47
  92. package/dist/core/ProposalLifecycle.js.map +1 -1
  93. package/dist/core/ProviderInstantiate.d.ts +9 -5
  94. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  95. package/dist/core/ProviderInstantiate.js +99 -104
  96. package/dist/core/ProviderInstantiate.js.map +1 -1
  97. package/dist/core/ReasoningEvent.d.ts +13 -0
  98. package/dist/core/ReasoningEvent.d.ts.map +1 -0
  99. package/dist/core/ReasoningEvent.js +6 -0
  100. package/dist/core/ReasoningEvent.js.map +1 -0
  101. package/dist/core/ResourceMutations.d.ts +15 -19
  102. package/dist/core/ResourceMutations.d.ts.map +1 -1
  103. package/dist/core/ResourceMutations.js +118 -41
  104. package/dist/core/ResourceMutations.js.map +1 -1
  105. package/dist/core/SchemeRegistry.d.ts +12 -12
  106. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  107. package/dist/core/SchemeRegistry.js +58 -57
  108. package/dist/core/SchemeRegistry.js.map +1 -1
  109. package/dist/core/ToolResources.d.ts +19 -0
  110. package/dist/core/ToolResources.d.ts.map +1 -0
  111. package/dist/core/ToolResources.js +123 -0
  112. package/dist/core/ToolResources.js.map +1 -0
  113. package/dist/core/Turn.d.ts +27 -0
  114. package/dist/core/Turn.d.ts.map +1 -0
  115. package/dist/core/Turn.js +43 -0
  116. package/dist/core/Turn.js.map +1 -0
  117. package/dist/core/Turn.sql +72 -0
  118. package/dist/core/TurnOps.d.ts +7 -0
  119. package/dist/core/TurnOps.d.ts.map +1 -0
  120. package/dist/core/TurnOps.js +73 -0
  121. package/dist/core/TurnOps.js.map +1 -0
  122. package/dist/core/TurnRunner.d.ts +56 -5
  123. package/dist/core/TurnRunner.d.ts.map +1 -1
  124. package/dist/core/TurnRunner.js +1163 -929
  125. package/dist/core/TurnRunner.js.map +1 -1
  126. package/dist/core/WorkerName.d.ts +2 -1
  127. package/dist/core/WorkerName.d.ts.map +1 -1
  128. package/dist/core/WorkerName.js +2 -1
  129. package/dist/core/WorkerName.js.map +1 -1
  130. package/dist/core/WorkerName.sql +17 -2
  131. package/dist/core/WorkspaceGate.js +1 -1
  132. package/dist/core/WorkspaceGate.js.map +1 -1
  133. package/dist/core/caps/CapsResolve.d.ts +2 -2
  134. package/dist/core/caps/CapsResolve.d.ts.map +1 -1
  135. package/dist/core/caps/CapsResolve.js +5 -7
  136. package/dist/core/caps/CapsResolve.js.map +1 -1
  137. package/dist/core/caps/DbChannelCaps.d.ts +1 -1
  138. package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
  139. package/dist/core/caps/DbChannelCaps.js +13 -11
  140. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  141. package/dist/core/caps/DbEntryCaps.d.ts +5 -5
  142. package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
  143. package/dist/core/caps/DbEntryCaps.js +27 -30
  144. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  145. package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
  146. package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
  147. package/dist/core/caps/DbNotifyCaps.js +5 -3
  148. package/dist/core/caps/DbNotifyCaps.js.map +1 -1
  149. package/dist/core/caps/DbSubscriptionCaps.d.ts +3 -3
  150. package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
  151. package/dist/core/caps/DbSubscriptionCaps.js +16 -26
  152. package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
  153. package/dist/core/caps/SchemeCtxImpl.d.ts +6 -4
  154. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  155. package/dist/core/caps/SchemeCtxImpl.js +37 -5
  156. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  157. package/dist/core/env-defaults.d.ts.map +1 -1
  158. package/dist/core/env-defaults.js +7 -5
  159. package/dist/core/env-defaults.js.map +1 -1
  160. package/dist/core/file-creation-policy.d.ts +9 -0
  161. package/dist/core/file-creation-policy.d.ts.map +1 -0
  162. package/dist/core/file-creation-policy.js +25 -0
  163. package/dist/core/file-creation-policy.js.map +1 -0
  164. package/dist/core/fork.d.ts +4 -1
  165. package/dist/core/fork.d.ts.map +1 -1
  166. package/dist/core/fork.js +39 -16
  167. package/dist/core/fork.js.map +1 -1
  168. package/dist/core/fork.sql +83 -40
  169. package/dist/core/git-env.d.ts +0 -1
  170. package/dist/core/git-env.d.ts.map +1 -1
  171. package/dist/core/git-env.js +0 -3
  172. package/dist/core/git-env.js.map +1 -1
  173. package/dist/core/git-membership.d.ts +19 -1
  174. package/dist/core/git-membership.d.ts.map +1 -1
  175. package/dist/core/git-membership.js +233 -74
  176. package/dist/core/git-membership.js.map +1 -1
  177. package/dist/core/git-state.d.ts.map +1 -1
  178. package/dist/core/git-state.js +13 -14
  179. package/dist/core/git-state.js.map +1 -1
  180. package/dist/core/operation-target-groups.d.ts +3 -0
  181. package/dist/core/operation-target-groups.d.ts.map +1 -0
  182. package/dist/core/operation-target-groups.js +53 -0
  183. package/dist/core/operation-target-groups.js.map +1 -0
  184. package/dist/core/packet-inject.d.ts +0 -1
  185. package/dist/core/packet-inject.d.ts.map +1 -1
  186. package/dist/core/packet-inject.js +6 -13
  187. package/dist/core/packet-inject.js.map +1 -1
  188. package/dist/core/packet-wire.d.ts +4 -0
  189. package/dist/core/packet-wire.d.ts.map +1 -1
  190. package/dist/core/packet-wire.js +226 -53
  191. package/dist/core/packet-wire.js.map +1 -1
  192. package/dist/core/plurnk-uri.d.ts +14 -3
  193. package/dist/core/plurnk-uri.d.ts.map +1 -1
  194. package/dist/core/plurnk-uri.js +62 -24
  195. package/dist/core/plurnk-uri.js.map +1 -1
  196. package/dist/core/scheme-types.d.ts +1 -0
  197. package/dist/core/scheme-types.d.ts.map +1 -1
  198. package/dist/core/teaching.d.ts.map +1 -1
  199. package/dist/core/teaching.js +4 -5
  200. package/dist/core/teaching.js.map +1 -1
  201. package/dist/core/worker-ops.sql +10 -6
  202. package/dist/core/worker-settings.d.ts +10 -0
  203. package/dist/core/worker-settings.d.ts.map +1 -0
  204. package/dist/core/worker-settings.js +32 -0
  205. package/dist/core/worker-settings.js.map +1 -0
  206. package/dist/core/workspace-settings.d.ts +2 -11
  207. package/dist/core/workspace-settings.d.ts.map +1 -1
  208. package/dist/core/workspace-settings.js +7 -47
  209. package/dist/core/workspace-settings.js.map +1 -1
  210. package/dist/digest/Digest.d.ts.map +1 -1
  211. package/dist/digest/Digest.js +164 -92
  212. package/dist/digest/Digest.js.map +1 -1
  213. package/dist/digest/digest.sql +9 -3
  214. package/dist/observe/genai.d.ts +9 -0
  215. package/dist/observe/genai.d.ts.map +1 -0
  216. package/dist/observe/genai.js +31 -0
  217. package/dist/observe/genai.js.map +1 -0
  218. package/dist/observe/spans.d.ts +3 -3
  219. package/dist/observe/spans.d.ts.map +1 -1
  220. package/dist/observe/spans.js +20 -5
  221. package/dist/observe/spans.js.map +1 -1
  222. package/dist/schemes/EffectPolicy.d.ts +3 -0
  223. package/dist/schemes/EffectPolicy.d.ts.map +1 -1
  224. package/dist/schemes/EffectPolicy.js +38 -6
  225. package/dist/schemes/EffectPolicy.js.map +1 -1
  226. package/dist/schemes/Exec.d.ts +3 -2
  227. package/dist/schemes/Exec.d.ts.map +1 -1
  228. package/dist/schemes/Exec.js +109 -34
  229. package/dist/schemes/Exec.js.map +1 -1
  230. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  231. package/dist/schemes/ExecOutputScheme.js +5 -4
  232. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  233. package/dist/schemes/File.d.ts.map +1 -1
  234. package/dist/schemes/File.js +170 -80
  235. package/dist/schemes/File.js.map +1 -1
  236. package/dist/schemes/Log.d.ts +6 -2
  237. package/dist/schemes/Log.d.ts.map +1 -1
  238. package/dist/schemes/Log.js +73 -22
  239. package/dist/schemes/Log.js.map +1 -1
  240. package/dist/schemes/Log.sql +25 -7
  241. package/dist/schemes/Prompt.d.ts +2 -3
  242. package/dist/schemes/Prompt.d.ts.map +1 -1
  243. package/dist/schemes/Prompt.js +5 -9
  244. package/dist/schemes/Prompt.js.map +1 -1
  245. package/dist/schemes/QuestionTool.d.ts +10 -0
  246. package/dist/schemes/QuestionTool.d.ts.map +1 -0
  247. package/dist/schemes/QuestionTool.js +81 -0
  248. package/dist/schemes/QuestionTool.js.map +1 -0
  249. package/dist/schemes/Skill.d.ts.map +1 -1
  250. package/dist/schemes/Skill.js +6 -1
  251. package/dist/schemes/Skill.js.map +1 -1
  252. package/dist/schemes/Worker.d.ts.map +1 -1
  253. package/dist/schemes/Worker.js +97 -34
  254. package/dist/schemes/Worker.js.map +1 -1
  255. package/dist/schemes/_entry-crud.d.ts +5 -5
  256. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  257. package/dist/schemes/_entry-crud.js +22 -17
  258. package/dist/schemes/_entry-crud.js.map +1 -1
  259. package/dist/schemes/_entry-crud.sql +77 -24
  260. package/dist/schemes/_entry-find.d.ts +8 -5
  261. package/dist/schemes/_entry-find.d.ts.map +1 -1
  262. package/dist/schemes/_entry-find.js +121 -40
  263. package/dist/schemes/_entry-find.js.map +1 -1
  264. package/dist/schemes/_entry-find.sql +16 -11
  265. package/dist/schemes/_entry-graph.sql +2 -6
  266. package/dist/schemes/_entry-manifest.d.ts +2 -2
  267. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  268. package/dist/schemes/_entry-manifest.js +18 -6
  269. package/dist/schemes/_entry-manifest.js.map +1 -1
  270. package/dist/schemes/_entry-ops.d.ts +6 -5
  271. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  272. package/dist/schemes/_entry-ops.js +39 -46
  273. package/dist/schemes/_entry-ops.js.map +1 -1
  274. package/dist/schemes/_entry-ops.sql +9 -6
  275. package/dist/schemes/_entry-send.d.ts +2 -2
  276. package/dist/schemes/_entry-send.d.ts.map +1 -1
  277. package/dist/schemes/_entry-send.js +16 -14
  278. package/dist/schemes/_entry-send.js.map +1 -1
  279. package/dist/schemes/_search-index.d.ts.map +1 -1
  280. package/dist/schemes/_search-index.js +39 -25
  281. package/dist/schemes/_search-index.js.map +1 -1
  282. package/dist/server/Daemon.d.ts +98 -15
  283. package/dist/server/Daemon.d.ts.map +1 -1
  284. package/dist/server/Daemon.js +864 -348
  285. package/dist/server/Daemon.js.map +1 -1
  286. package/dist/server/DaemonModule.d.ts +84 -19
  287. package/dist/server/DaemonModule.d.ts.map +1 -1
  288. package/dist/server/DrainSupervisor.d.ts +15 -10
  289. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  290. package/dist/server/DrainSupervisor.js +70 -19
  291. package/dist/server/DrainSupervisor.js.map +1 -1
  292. package/dist/server/Functionality.d.ts +44 -0
  293. package/dist/server/Functionality.d.ts.map +1 -0
  294. package/dist/server/Functionality.js +422 -0
  295. package/dist/server/Functionality.js.map +1 -0
  296. package/dist/server/FunctionalityManager.d.ts +22 -0
  297. package/dist/server/FunctionalityManager.d.ts.map +1 -0
  298. package/dist/server/FunctionalityManager.js +121 -0
  299. package/dist/server/FunctionalityManager.js.map +1 -0
  300. package/dist/server/SkillsFunctionality.d.ts +61 -0
  301. package/dist/server/SkillsFunctionality.d.ts.map +1 -0
  302. package/dist/server/SkillsFunctionality.js +449 -0
  303. package/dist/server/SkillsFunctionality.js.map +1 -0
  304. package/dist/server/WorkerCapabilities.d.ts +21 -0
  305. package/dist/server/WorkerCapabilities.d.ts.map +1 -0
  306. package/dist/server/WorkerCapabilities.js +214 -0
  307. package/dist/server/WorkerCapabilities.js.map +1 -0
  308. package/dist/server/WorkerResidency.d.ts +40 -0
  309. package/dist/server/WorkerResidency.d.ts.map +1 -0
  310. package/dist/server/WorkerResidency.js +283 -0
  311. package/dist/server/WorkerResidency.js.map +1 -0
  312. package/dist/server/client-input.d.ts +6 -2
  313. package/dist/server/client-input.d.ts.map +1 -1
  314. package/dist/server/client-input.js +72 -32
  315. package/dist/server/client-input.js.map +1 -1
  316. package/dist/server/dispatch-as-plurnk.d.ts +2 -2
  317. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  318. package/dist/server/dispatch-as-plurnk.js +109 -23
  319. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  320. package/dist/server/drain.sql +33 -13
  321. package/dist/server/envelope.d.ts +7 -2
  322. package/dist/server/envelope.d.ts.map +1 -1
  323. package/dist/server/envelope.js +12 -6
  324. package/dist/server/envelope.js.map +1 -1
  325. package/dist/server/envelope.sql +36 -4
  326. package/dist/server/lifecycle-recovery.sql +24 -17
  327. package/dist/server/logEntry.d.ts +2 -1
  328. package/dist/server/logEntry.d.ts.map +1 -1
  329. package/dist/server/logEntry.js +3 -2
  330. package/dist/server/logEntry.js.map +1 -1
  331. package/dist/server/logEntry.sql +7 -0
  332. package/dist/server/loop-model.d.ts +2 -2
  333. package/dist/server/loop-model.d.ts.map +1 -1
  334. package/dist/server/loop-model.js +23 -33
  335. package/dist/server/loop-model.js.map +1 -1
  336. package/dist/server/loopDocs.d.ts +2 -1
  337. package/dist/server/loopDocs.d.ts.map +1 -1
  338. package/dist/server/loopDocs.js +88 -21
  339. package/dist/server/loopDocs.js.map +1 -1
  340. package/dist/server/loopDocs.sql +14 -8
  341. package/dist/server/model-catalog.d.ts +3 -0
  342. package/dist/server/model-catalog.d.ts.map +1 -0
  343. package/dist/server/model-catalog.js +83 -0
  344. package/dist/server/model-catalog.js.map +1 -0
  345. package/dist/server/model-route.d.ts +7 -0
  346. package/dist/server/model-route.d.ts.map +1 -0
  347. package/dist/server/model-route.js +47 -0
  348. package/dist/server/model-route.js.map +1 -0
  349. package/dist/server/module-discovery.d.ts +13 -0
  350. package/dist/server/module-discovery.d.ts.map +1 -0
  351. package/dist/server/module-discovery.js +103 -0
  352. package/dist/server/module-discovery.js.map +1 -0
  353. package/dist/server/seam-entry-read.sql +9 -7
  354. package/dist/server/seam-log-read.sql +1 -1
  355. package/dist/server/seam-loop.sql +10 -1
  356. package/dist/server/seam-proposal-list.sql +4 -2
  357. package/dist/server/worker-capabilities.sql +19 -0
  358. package/dist/service.d.ts.map +1 -1
  359. package/dist/service.js +193 -124
  360. package/dist/service.js.map +1 -1
  361. package/migrations/001_schema.sql +905 -196
  362. package/package.json +40 -38
  363. package/dist/core/ExecutableTools.d.ts +0 -11
  364. package/dist/core/ExecutableTools.d.ts.map +0 -1
  365. package/dist/core/ExecutableTools.js +0 -49
  366. package/dist/core/ExecutableTools.js.map +0 -1
  367. package/dist/core/JournalTurn.d.ts +0 -9
  368. package/dist/core/JournalTurn.d.ts.map +0 -1
  369. package/dist/core/JournalTurn.js +0 -14
  370. package/dist/core/JournalTurn.js.map +0 -1
  371. package/dist/core/JournalTurn.sql +0 -10
  372. package/dist/core/git-iso.d.ts +0 -13
  373. package/dist/core/git-iso.d.ts.map +0 -1
  374. package/dist/core/git-iso.js +0 -267
  375. package/dist/core/git-iso.js.map +0 -1
  376. package/dist/core/search-gate.d.ts +0 -17
  377. package/dist/core/search-gate.d.ts.map +0 -1
  378. package/dist/core/search-gate.js +0 -77
  379. package/dist/core/search-gate.js.map +0 -1
  380. package/dist/digest/Digest.sql +0 -1
  381. package/dist/server/workspace-capabilities.sql +0 -19
@@ -5,20 +5,21 @@
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
8
- -- the default-channel content this query returns. Static query handles every
8
+ -- the selected-channel content this query returns. Static query handles every
9
9
  -- filter combination via IS-NULL guards.
10
10
 
11
11
  -- PREP: find_workspace_entry_candidates
12
- -- $channel: default-channel name whose content the body matcher runs against
12
+ -- $channel: addressed channel whose content the body matcher runs against
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
- SELECT e.id AS entry_id, e.pathname, e.deep_hash, ec.content, ec.mimetype
16
+ SELECT e.id AS entry_id, e.authority, e.pathname, ec.deep_hash, ec.content, ec.mimetype
17
17
  FROM entries e
18
18
  JOIN entry_channels ec ON ec.entry_id = e.id AND ec.name = $channel
19
- WHERE e.workspace_id = $workspace_id
20
- AND e.owner_id = $owner_id
19
+ JOIN workers owner ON owner.id = e.owner_id
20
+ WHERE owner.workspace_id = $workspace_id AND e.owner_id = $owner_id
21
21
  AND e.scheme = $scheme
22
+ AND e.authority = $authority
22
23
  AND ($scope_prefix IS NULL OR substr(e.pathname, 1, length($scope_prefix)) = $scope_prefix)
23
24
  ORDER BY e.pathname;
24
25
 
@@ -26,11 +27,13 @@ ORDER BY e.pathname;
26
27
  -- Relation matchers need the same target candidate set without loading every
27
28
  -- candidate body across the SQL boundary. The ranker joins these identities to
28
29
  -- derivations and performs exhaustive ranking within the selected set.
29
- SELECT e.id AS entry_id, e.pathname, e.deep_hash
30
+ SELECT e.id AS entry_id, e.authority, e.pathname, ec.deep_hash
30
31
  FROM entries e
31
- WHERE e.workspace_id = $workspace_id
32
- AND e.owner_id = $owner_id
32
+ JOIN entry_channels ec ON ec.entry_id = e.id AND ec.name = $channel
33
+ JOIN workers owner ON owner.id = e.owner_id
34
+ WHERE owner.workspace_id = $workspace_id AND e.owner_id = $owner_id
33
35
  AND e.scheme = $scheme
36
+ AND e.authority = $authority
34
37
  AND ($scope_prefix IS NULL OR substr(e.pathname, 1, length($scope_prefix)) = $scope_prefix)
35
38
  ORDER BY e.pathname;
36
39
 
@@ -39,7 +42,9 @@ ORDER BY e.pathname;
39
42
  -- workspace, while the caller's target/tag candidate set still constrains
40
43
  -- which addresses may be returned. Only the universal address→artifact pair
41
44
  -- crosses this boundary.
42
- SELECT (e.scheme || ':' || e.id) AS key, e.deep_hash
45
+ SELECT (e.scheme || ':' || e.id || '#' || ec.name) AS key, ec.deep_hash
43
46
  FROM entries e
44
- WHERE e.workspace_id = $workspace_id
45
- ORDER BY e.id;
47
+ JOIN entry_channels ec ON ec.entry_id = e.id
48
+ JOIN workers owner ON owner.id = e.owner_id
49
+ WHERE owner.workspace_id = $workspace_id
50
+ ORDER BY e.id, ec.name;
@@ -44,7 +44,8 @@ RETURNING id, state;
44
44
 
45
45
  -- PREP: derivation_complete
46
46
  UPDATE derivations
47
- SET state = 'complete', disposition = $disposition, reason = $reason, parse_issues = $parse_issues
47
+ SET state = 'complete', disposition = $disposition, reason = $reason,
48
+ parse_issues = $parse_issues, summary = $summary
48
49
  WHERE id = $derivation_id;
49
50
 
50
51
  -- PREP: graph_referrers_candidates
@@ -96,8 +97,3 @@ WHERE d.name = $name;
96
97
  -- {§graph-relations}
97
98
  SELECT DISTINCT name FROM symbol_refs
98
99
  WHERE derivation_id = $derivation_id AND container IS $container;
99
-
100
- -- PREP: graph_set_deep_hash
101
- -- Stamp the body-content hash at the moment an entry's deep channels were
102
- -- (re)derived. The next manifest-add pass skips the entry while the hash holds.
103
- UPDATE entries SET deep_hash = $deep_hash WHERE id = $entry_id;
@@ -5,7 +5,7 @@ export type CatalogChannel = EntryCatalogChannel;
5
5
  export type CatalogDefaultChannel = EntryCatalogDefaultChannel;
6
6
  export type CatalogEntry = [CatalogDefaultChannel, ...CatalogChannel[]];
7
7
  export default class EntryManifest {
8
- static toPath(scheme: string, pathname: string): string;
9
- static catalogRowsFor(ctx: PlurnkSchemeContext, schemeFilter?: string, ownerId?: number): Promise<CatalogEntry[]>;
8
+ static toPath(scheme: string, authority: string, pathname: string): string;
9
+ static catalogRowsFor(ctx: PlurnkSchemeContext, schemeFilter?: string, ownerId?: number, authorityFilter?: string): Promise<CatalogEntry[]>;
10
10
  }
11
11
  //# sourceMappingURL=_entry-manifest.d.ts.map
@@ -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;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"}
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;AAqBhC,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;AAmBxE,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzE;IAED,OAAa,cAAc,CACvB,GAAG,EAAE,mBAAmB,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,YAAY,EAAE,CAAC,CAuEzB;CACJ"}
@@ -6,13 +6,22 @@
6
6
  import { PathSyntax } from "@plurnk/plurnk-contracts";
7
7
  import { renderAddress } from "../core/plurnk-uri.js";
8
8
  import Owner from "../core/Owner.js";
9
+ const CATALOG_SUMMARY_CODE_POINTS = 256;
10
+ const catalogSummary = (value) => {
11
+ if (value === null)
12
+ return undefined;
13
+ const points = [...value];
14
+ return points.length <= CATALOG_SUMMARY_CODE_POINTS
15
+ ? value
16
+ : `${points.slice(0, CATALOG_SUMMARY_CODE_POINTS - 1).join("")}…`;
17
+ };
9
18
  export default class EntryManifest {
10
- static toPath(scheme, pathname) {
19
+ static toPath(scheme, authority, pathname) {
11
20
  if (scheme === "file")
12
21
  return PathSyntax.escapeTarget(PathSyntax.encodeParens(pathname));
13
- return renderAddress(scheme, pathname);
22
+ return renderAddress({ scheme, authority, pathname });
14
23
  }
15
- static async catalogRowsFor(ctx, schemeFilter, ownerId) {
24
+ static async catalogRowsFor(ctx, schemeFilter, ownerId, authorityFilter) {
16
25
  const { db, workspaceId, mimetypes, weigh } = ctx;
17
26
  if (mimetypes === undefined)
18
27
  throw new Error("catalogRowsFor: ctx.mimetypes is required for the lines (extent) field");
@@ -23,10 +32,11 @@ export default class EntryManifest {
23
32
  workspace_id: workspaceId,
24
33
  owner_id: resolvedOwnerId,
25
34
  });
26
- const rows = schemeFilter === undefined ? all : all.filter((row) => row.scheme === schemeFilter);
35
+ const rows = all.filter((row) => (schemeFilter === undefined || row.scheme === schemeFilter)
36
+ && (authorityFilter === undefined || row.authority === authorityFilter));
27
37
  const byEntry = new Map();
28
38
  for (const row of rows) {
29
- const path = EntryManifest.toPath(row.scheme, row.pathname);
39
+ const path = EntryManifest.toPath(row.scheme, row.authority, row.pathname);
30
40
  let entry = byEntry.get(path);
31
41
  if (entry === undefined) {
32
42
  entry = {
@@ -61,12 +71,14 @@ export default class EntryManifest {
61
71
  const channelPath = row.channel === entry.defaultChannel
62
72
  ? entry.path
63
73
  : `${entry.path}#${PathSyntax.escapeTarget(row.channel)}`;
74
+ const summary = catalogSummary(row.summary);
64
75
  entry.channels.push({
65
76
  path: channelPath,
66
77
  mimetype: row.mimetype,
67
78
  weight: weigh(row.content),
68
79
  lines: totalLines,
69
- ...(row.channel === "body" && row.parse_issues !== null
80
+ ...(summary === undefined ? {} : { summary }),
81
+ ...(row.parse_issues !== null
70
82
  ? { parseIssues: row.parse_issues }
71
83
  : {}),
72
84
  });
@@ -1 +1 @@
1
- {"version":3,"file":"_entry-manifest.js","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_entry-manifest.js","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { RangeExtent, ReadStatement, TextRegion } from "@plurnk/plurnk-contracts";
1
+ import { type RangeExtent, type ReadStatement, type TextRegion } from "@plurnk/plurnk-contracts";
2
2
  import type { PlurnkSchemeContext, SchemeManifest } from "../core/scheme-types.ts";
3
3
  import type { EditBatchReceipt, LineAnchorPrecondition } from "../content/index.ts";
4
4
  import { type SchemeResultBase } from "../core/results.ts";
@@ -20,16 +20,17 @@ export type ReadResult = SchemeResultBase & {
20
20
  };
21
21
  export type OpenFoldResult = SchemeResultBase;
22
22
  interface ReadAddress {
23
- readonly ownerId?: number;
23
+ readonly ownerId: number;
24
+ readonly authority?: string;
24
25
  readonly pathname?: string;
25
26
  }
26
27
  export default class EntryOps {
27
28
  #private;
28
- static editWorkspaceEntryBatch(statements: readonly ResolvedEditStatement[], ctx: PlurnkSchemeContext, manifest: SchemeManifest, explicitOwnerId?: number, precondition?: LineAnchorPrecondition | null): Promise<EditResult>;
29
+ static editWorkspaceEntryBatch(statements: readonly ResolvedEditStatement[], ctx: PlurnkSchemeContext, manifest: SchemeManifest, ownerId: number, precondition?: LineAnchorPrecondition | null): Promise<EditResult>;
29
30
  static deleteWorkspaceEntry(statement: {
30
31
  target: ResolvedEditStatement["target"];
31
- }, ctx: PlurnkSchemeContext, manifest: SchemeManifest, explicitOwnerId?: number): Promise<SchemeResultBase>;
32
- static readWorkspaceEntry(statement: ReadStatement, ctx: PlurnkSchemeContext, manifest: SchemeManifest, address?: ReadAddress): Promise<ReadResult>;
32
+ }, ctx: PlurnkSchemeContext, manifest: SchemeManifest, ownerId: number): Promise<SchemeResultBase>;
33
+ static readWorkspaceEntry(statement: ReadStatement, ctx: PlurnkSchemeContext, manifest: SchemeManifest, address: ReadAddress | null): Promise<ReadResult>;
33
34
  }
34
35
  export {};
35
36
  //# sourceMappingURL=_entry-ops.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_entry-ops.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-ops.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAInF,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAsB,MAAM,wBAAwB,CAAC;AAYxF,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;CAAE,CAAC;AAKtI,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG;IACxC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAE9C,UAAU,WAAW;IACjB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,OAAO,QAAQ;;IA2DzB,OAAa,uBAAuB,CAChC,UAAU,EAAE,SAAS,qBAAqB,EAAE,EAC5C,GAAG,EAAE,mBAAmB,EACxB,QAAQ,EAAE,cAAc,EACxB,eAAe,CAAC,EAAE,MAAM,EACxB,YAAY,GAAE,sBAAsB,GAAG,IAAW,GACnD,OAAO,CAAC,UAAU,CAAC,CA0OrB;IAID,OAAa,oBAAoB,CAAC,SAAS,EAAE;QAAE,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAA;KAAE,EAAE,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8BjM;IAED,OAAa,kBAAkB,CAC3B,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,mBAAmB,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,WAAgB,GAC1B,OAAO,CAAC,UAAU,CAAC,CA0DrB;CACJ"}
1
+ {"version":3,"file":"_entry-ops.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-ops.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE7G,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAsB,MAAM,wBAAwB,CAAC;AAYxF,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;CAAE,CAAC;AAKtI,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG;IACxC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAE9C,UAAU,WAAW;IACjB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,OAAO,QAAQ;;IAqDzB,OAAa,uBAAuB,CAChC,UAAU,EAAE,SAAS,qBAAqB,EAAE,EAC5C,GAAG,EAAE,mBAAmB,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,MAAM,EACf,YAAY,GAAE,sBAAsB,GAAG,IAAW,GACnD,OAAO,CAAC,UAAU,CAAC,CA6OrB;IAID,OAAa,oBAAoB,CAAC,SAAS,EAAE;QAAE,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAA;KAAE,EAAE,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA6BxL;IAED,OAAa,kBAAkB,CAC3B,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,mBAAmB,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,WAAW,GAAG,IAAI,GAC5B,OAAO,CAAC,UAAU,CAAC,CA2DrB;CACJ"}
@@ -1,19 +1,17 @@
1
1
  import EntryCrud from "./_entry-crud.js";
2
- import { entryPathnameOf, renderTarget } from "../core/plurnk-uri.js";
3
- import Owner from "../core/Owner.js";
2
+ import { PathSyntax } from "@plurnk/plurnk-contracts";
3
+ import { entryCoordinateOf } from "../core/plurnk-uri.js";
4
4
  import EntryManifest from "./_entry-manifest.js";
5
5
  import { EditCollision, LineAnchors, LineMarkerOps, MimetypeBinary, PathMimetype, ReadProjector, editReceipt } from "../content/index.js";
6
6
  import Results from "../core/results.js";
7
7
  import { contentHash } from "../core/content-hash.js";
8
8
  import DbProjectionCaps from "../core/caps/DbProjectionCaps.js";
9
9
  export default class EntryOps {
10
- static #pathnameOf(statement) {
10
+ static #coordinateOf(statement, manifest) {
11
11
  const t = statement.target;
12
12
  if (t === null)
13
13
  throw new Error("unreachable");
14
- // Owner-carved schemes strip their authority before reaching the shared
15
- // entry layer; every remaining authority is part of entry identity.
16
- return entryPathnameOf(t);
14
+ return entryCoordinateOf(t, manifest.authority ?? "namespace");
17
15
  }
18
16
  static #fragmentOf(statement) {
19
17
  const t = statement.target;
@@ -36,11 +34,11 @@ export default class EntryOps {
36
34
  // the declared universe, so one miss teaches the topology instead of forcing a guessing walk
37
35
  // (failure specimen: a model probed #stdout/#stderr/#body against a results-channel search stream,
38
36
  // each miss a bare 400 that taught nothing).
39
- static #channelMiss(fragment, scheme, pathname, channels, defaultChannel) {
37
+ static #channelMiss(fragment, scheme, authority, pathname, channels, defaultChannel) {
40
38
  const availableChannels = [...new Set([defaultChannel, ...Object.keys(channels)])].filter((channel) => channel.length > 0);
41
39
  const requestedChannel = fragment ?? defaultChannel;
42
40
  return {
43
- detail: `Channel #${requestedChannel} does not exist at ${EntryManifest.toPath(scheme, pathname)}.`,
41
+ detail: `Channel #${requestedChannel} does not exist at ${EntryManifest.toPath(scheme, authority, pathname)}.`,
44
42
  extensions: {
45
43
  requestedChannel,
46
44
  availableChannels,
@@ -51,15 +49,7 @@ export default class EntryOps {
51
49
  },
52
50
  };
53
51
  }
54
- // {§entry-owner} — the entry's owner for this call: an owner-carved face (worker://, the
55
- // capability streams) resolves its authority itself (empty/~/name per its carving) and passes
56
- // the result explicitly; everything else is the workspace commons.
57
- static async #ownerOf(explicit, ctx) {
58
- if (explicit !== undefined)
59
- return explicit;
60
- return Owner.commonsId(ctx.db, ctx.workspaceId);
61
- }
62
- static async editWorkspaceEntryBatch(statements, ctx, manifest, explicitOwnerId, precondition = null) {
52
+ static async editWorkspaceEntryBatch(statements, ctx, manifest, ownerId, precondition = null) {
63
53
  LineAnchors.assertResolved(statements);
64
54
  const failure = (code, status, detail, fields, extensions = {}) => Results.failure(`scheme:${manifest.name}`, code, status, detail, fields, extensions);
65
55
  const statement = statements[0];
@@ -78,15 +68,16 @@ export default class EntryOps {
78
68
  const { db, workspaceId } = ctx;
79
69
  const { name: scheme, channels, defaultChannel } = manifest;
80
70
  const fragment = EntryOps.#fragmentOf(statement);
81
- const pathname = EntryOps.#pathnameOf(statement);
71
+ const { authority, pathname } = EntryOps.#coordinateOf(statement, manifest);
82
72
  const targetChannel = EntryOps.#resolveChannel(fragment, channels, defaultChannel);
83
73
  if (targetChannel === null) {
84
- const miss = EntryOps.#channelMiss(fragment, scheme, pathname, channels, defaultChannel);
74
+ const miss = EntryOps.#channelMiss(fragment, scheme, authority, pathname, channels, defaultChannel);
85
75
  return failure("channel-not-found", 400, miss.detail, { entryId: null, channel: null }, miss.extensions);
86
76
  }
87
77
  for (const candidate of statements.slice(1)) {
88
78
  if (candidate.target === null
89
- || EntryOps.#pathnameOf(candidate) !== pathname
79
+ || EntryOps.#coordinateOf(candidate, manifest).authority !== authority
80
+ || EntryOps.#coordinateOf(candidate, manifest).pathname !== pathname
90
81
  || EntryOps.#fragmentOf(candidate) !== fragment) {
91
82
  return failure("edit-batch-mismatch", 400, "The EDIT batch spans multiple resources or channels.", { entryId: null, channel: targetChannel }, {
92
83
  recovery: "Submit a separate EDIT batch for each resource and channel.",
@@ -94,11 +85,10 @@ export default class EntryOps {
94
85
  });
95
86
  }
96
87
  }
97
- const ownerId = await EntryOps.#ownerOf(explicitOwnerId, ctx);
98
- const existing = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: ownerId, scheme, pathname });
88
+ const existing = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: ownerId, scheme, authority, pathname });
99
89
  // Non-default channel write requires the entry to exist ({§channel-selection-fragment-on-nonexistent-404}).
100
90
  if (existing === undefined && fragment !== null) {
101
- return failure("entry-not-found", 404, `No entry exists at ${EntryManifest.toPath(scheme, pathname)}.`, { entryId: null, channel: targetChannel });
91
+ return failure("entry-not-found", 404, `No entry exists at ${EntryManifest.toPath(scheme, authority, pathname)}.`, { entryId: null, channel: targetChannel });
102
92
  }
103
93
  // Effective mimetype for this entry, per the shared contracts:
104
94
  // "Path suffix declares mimetype; absent suffix defers to scheme default."
@@ -111,6 +101,7 @@ export default class EntryOps {
111
101
  : await db.ops_read_channel.get({
112
102
  workspace_id: workspaceId,
113
103
  scheme,
104
+ authority,
114
105
  pathname,
115
106
  channel: targetChannel,
116
107
  owner_id: ownerId,
@@ -186,8 +177,9 @@ export default class EntryOps {
186
177
  status: 304,
187
178
  entryId: existingEntryId,
188
179
  channel: targetChannel,
180
+ detail: "the target already matches this content — move on or re-READ; never re-send the same body",
189
181
  ...(scopeNormalizations === undefined ? {} : { scopeNormalizations }),
190
- }; // {§edit-noop-304}
182
+ }; // {§edit-noop-304} — teaching rides the receipt, not the hot path (#342)
191
183
  }
192
184
  let entryId;
193
185
  let createdNow;
@@ -196,10 +188,11 @@ export default class EntryOps {
196
188
  workspace_id: workspaceId,
197
189
  owner_id: ownerId,
198
190
  scheme,
191
+ authority,
199
192
  pathname,
200
193
  });
201
194
  if (row === undefined) {
202
- return EditCollision.result(precondition?.identity ?? EntryManifest.toPath(scheme, pathname), { entryId: null, channel: targetChannel });
195
+ return EditCollision.result(precondition?.identity ?? EntryManifest.toPath(scheme, authority, pathname), { entryId: null, channel: targetChannel });
203
196
  }
204
197
  entryId = row.id;
205
198
  createdNow = true;
@@ -225,7 +218,7 @@ export default class EntryOps {
225
218
  expected_content: originalContent,
226
219
  });
227
220
  if (landed === undefined) {
228
- return EditCollision.result(precondition?.identity ?? EntryManifest.toPath(scheme, pathname), { entryId, channel: targetChannel });
221
+ return EditCollision.result(precondition?.identity ?? EntryManifest.toPath(scheme, authority, pathname), { entryId, channel: targetChannel });
229
222
  }
230
223
  // EDIT writes exactly the one resolved channel — {§per-entry-channels-edit-writes-only-body}.
231
224
  // Search derivation is not a write concern. SearchIndex attaches the
@@ -244,7 +237,7 @@ export default class EntryOps {
244
237
  }
245
238
  // Owner-aware entry delete — the KILL counterpart of editWorkspaceEntry. Resolves
246
239
  // the exact owner-held row, then deletes it (including channels by CASCADE). 404 when absent.
247
- static async deleteWorkspaceEntry(statement, ctx, manifest, explicitOwnerId) {
240
+ static async deleteWorkspaceEntry(statement, ctx, manifest, ownerId) {
248
241
  if (statement.target === null) {
249
242
  return Results.failure(`scheme:${manifest.name}`, "delete-target-required", 400, "KILL requires a target path.", {}, {
250
243
  recovery: "Provide the entry target.",
@@ -252,16 +245,15 @@ export default class EntryOps {
252
245
  });
253
246
  }
254
247
  const { db, workspaceId } = ctx;
255
- const pathname = EntryOps.#pathnameOf(statement);
256
- const ownerId = await EntryOps.#ownerOf(explicitOwnerId, ctx);
257
- const existing = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: ownerId, scheme: manifest.name, pathname });
248
+ const { authority, pathname } = EntryOps.#coordinateOf(statement, manifest);
249
+ const existing = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: ownerId, scheme: manifest.name, authority, pathname });
258
250
  if (existing === undefined) {
259
- return Results.failure(`scheme:${manifest.name}`, "entry-not-found", 404, `No entry exists at ${EntryManifest.toPath(manifest.name, pathname)}.`, {}, { target: EntryManifest.toPath(manifest.name, pathname) });
251
+ return Results.failure(`scheme:${manifest.name}`, "entry-not-found", 404, `No entry exists at ${EntryManifest.toPath(manifest.name, authority, pathname)}.`, {}, { target: EntryManifest.toPath(manifest.name, authority, pathname) });
260
252
  }
261
253
  await db.crud_delete_entry.run({ entry_id: existing.id });
262
254
  return { status: 200 };
263
255
  }
264
- static async readWorkspaceEntry(statement, ctx, manifest, address = {}) {
256
+ static async readWorkspaceEntry(statement, ctx, manifest, address) {
265
257
  const failure = (code, status, detail, fields, extensions = {}) => Results.failure(`scheme:${manifest.name}`, code, status, detail, fields, extensions);
266
258
  if (statement.target === null) {
267
259
  return failure("read-target-required", 400, "READ requires a target path.", { content: null, mimetype: null, channel: null }, {
@@ -269,33 +261,34 @@ export default class EntryOps {
269
261
  retryable: false,
270
262
  });
271
263
  }
264
+ if (address === null)
265
+ throw new Error("READ target reached storage without a bound entry principal");
272
266
  // Scope by the manifest's persisted entries.scheme (storedScheme; absent →
273
267
  // name). File persists under the reserved 'file' scheme ({§entry-identity-no-null}).
274
268
  const scheme = EntryCrud.identityScheme(manifest);
275
- const pathname = address.pathname ?? EntryOps.#pathnameOf(statement);
269
+ const authoredCoordinate = EntryOps.#coordinateOf(statement, manifest);
270
+ const coordinate = {
271
+ authority: address.authority ?? authoredCoordinate.authority,
272
+ pathname: address.pathname ?? authoredCoordinate.pathname,
273
+ };
274
+ const { authority, pathname } = coordinate;
276
275
  const selectedChannel = statement.target.kind === "url"
277
276
  ? statement.target.fragment ?? manifest.defaultChannel
278
277
  : manifest.defaultChannel;
279
- const identity = statement.target.kind === "url"
280
- ? renderTarget({
281
- ...statement.target,
282
- pathname,
283
- fragment: selectedChannel === manifest.defaultChannel ? null : selectedChannel,
284
- })
285
- : renderTarget({ scheme: null, pathname });
286
- if (identity === null)
287
- throw new TypeError("READ resolved an unrenderable resource identity.");
288
- const ownerId = await EntryOps.#ownerOf(address.ownerId, ctx);
289
- const stored = await EntryCrud.readEntry(pathname, ctx, scheme, ownerId);
278
+ const baseIdentity = EntryManifest.toPath(scheme, authority, pathname);
279
+ const identity = selectedChannel === manifest.defaultChannel
280
+ ? baseIdentity
281
+ : `${baseIdentity}#${PathSyntax.escapeTarget(selectedChannel)}`;
282
+ const stored = await EntryCrud.readEntry({ authority, pathname }, ctx, scheme, address.ownerId);
290
283
  // {§read-read-404} + {§fs-errno} — ENOENT carries its fact, the RESOLVED name in wire
291
284
  // canon: the model distinguishes wrong-address from wrong-range by the strings alone.
292
285
  if (stored.entry === null) {
293
- return failure("entry-not-found", 404, `No entry exists at ${EntryManifest.toPath(scheme, pathname)}.`, { content: null, mimetype: null, channel: null }, { target: EntryManifest.toPath(scheme, pathname) });
286
+ return failure("entry-not-found", 404, `No entry exists at ${EntryManifest.toPath(scheme, authority, pathname)}.`, { content: null, mimetype: null, channel: null }, { target: EntryManifest.toPath(scheme, authority, pathname) });
294
287
  }
295
288
  return ReadProjector.project({
296
289
  statement,
297
290
  manifest: { ...manifest, name: scheme },
298
- target: EntryManifest.toPath(scheme, pathname),
291
+ target: EntryManifest.toPath(scheme, authority, pathname),
299
292
  identity,
300
293
  representation: stored.entry,
301
294
  mimetypes: ctx.mimetypes,
@@ -1 +1 @@
1
- {"version":3,"file":"_entry-ops.js","sourceRoot":"","sources":["../../src/schemes/_entry-ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_entry-ops.js","sourceRoot":"","sources":["../../src/schemes/_entry-ops.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,10 @@
5
5
  -- PREP: ops_insert_workspace_entry_if_absent
6
6
  -- EDIT creation claims identity without surfacing a uniqueness exception when
7
7
  -- another correct writer wins the same resource concurrently.
8
- INSERT INTO entries (workspace_id, owner_id, scheme, pathname)
9
- VALUES ($workspace_id, $owner_id, $scheme, $pathname)
10
- ON CONFLICT (workspace_id, owner_id, scheme, pathname) DO NOTHING
8
+ INSERT INTO entries (owner_id, scheme, authority, pathname)
9
+ SELECT $owner_id, $scheme, $authority, $pathname
10
+ FROM workers WHERE id = $owner_id AND workspace_id = $workspace_id
11
+ ON CONFLICT (owner_id, scheme, authority, pathname) DO NOTHING
11
12
  RETURNING id;
12
13
 
13
14
  -- PREP: ops_insert_channel_if_absent
@@ -34,12 +35,14 @@ WHERE entry_id = $entry_id
34
35
  RETURNING name;
35
36
 
36
37
  -- PREP: ops_read_channel
37
- -- READ targeting a specific channel of an entry — identity is (workspace, owner, scheme, pathname).
38
+ -- READ targeting a specific channel of an entry — identity is
39
+ -- (owner, scheme, authority, pathname); owner determines workspace.
38
40
  SELECT ec.content, ec.mimetype, ec.producer_result
39
41
  FROM entries e
40
42
  JOIN entry_channels ec ON ec.entry_id = e.id
41
- WHERE e.workspace_id = $workspace_id
42
- AND e.owner_id = $owner_id
43
+ JOIN workers owner ON owner.id = e.owner_id
44
+ WHERE owner.workspace_id = $workspace_id AND e.owner_id = $owner_id
43
45
  AND e.scheme = $scheme
46
+ AND e.authority = $authority
44
47
  AND e.pathname = $pathname
45
48
  AND ec.name = $channel;
@@ -1,10 +1,10 @@
1
1
  import type { SendStatement } from "@plurnk/plurnk-contracts";
2
- import type { PlurnkSchemeContext } from "../core/scheme-types.ts";
2
+ import type { PlurnkSchemeContext, SchemeManifest } from "../core/scheme-types.ts";
3
3
  import { type SchemeResult } from "../core/results.ts";
4
4
  export interface SendResult extends SchemeResult {
5
5
  }
6
6
  export default class EntrySend {
7
7
  #private;
8
- static sendToWorkspaceEntry(statement: SendStatement, ctx: PlurnkSchemeContext, scheme: string, explicitOwnerId?: number): Promise<SendResult>;
8
+ static sendToWorkspaceEntry(statement: SendStatement, ctx: PlurnkSchemeContext, manifest: SchemeManifest, ownerId: number): Promise<SendResult>;
9
9
  }
10
10
  //# sourceMappingURL=_entry-send.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_entry-send.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-send.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,WAAW,UAAW,SAAQ,YAAY;CAAG;AAEnD,MAAM,CAAC,OAAO,OAAO,SAAS;;IAa1B,OAAa,oBAAoB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA4HnJ;CACJ"}
1
+ {"version":3,"file":"_entry-send.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-send.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGnF,OAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,WAAW,UAAW,SAAQ,YAAY;CAAG;AAEnD,MAAM,CAAC,OAAO,OAAO,SAAS;;IAa1B,OAAa,oBAAoB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA+HpJ;CACJ"}
@@ -1,17 +1,16 @@
1
1
  // Shared SEND dispatcher for entry-bearing schemes. Schemes interpret
2
2
  // status codes per SPEC {§send-dispatch}. v0 handles 410 (Gone, delete the resource)
3
3
  // and 499 (Client Closed Request, cancel active subscription).
4
- import Owner from "../core/Owner.js";
5
- import { entryPathnameOf, renderAddress } from "../core/plurnk-uri.js";
4
+ import { entryCoordinateOf, renderAddress } from "../core/plurnk-uri.js";
6
5
  import EntryCrud from "./_entry-crud.js";
7
6
  import ChannelWrite from "../core/ChannelWrite.js";
8
7
  import Results from "../core/results.js";
9
8
  export default class EntrySend {
10
- static #pathnameOf(statement) {
9
+ static #coordinateOf(statement, manifest) {
11
10
  const path = statement.target;
12
11
  if (path === null)
13
12
  return null;
14
- return entryPathnameOf(path);
13
+ return entryCoordinateOf(path, manifest.authority ?? "namespace");
15
14
  }
16
15
  static #fragmentOf(statement) {
17
16
  const path = statement.target;
@@ -19,7 +18,8 @@ export default class EntrySend {
19
18
  return null;
20
19
  return path.fragment;
21
20
  }
22
- static async sendToWorkspaceEntry(statement, ctx, scheme, explicitOwnerId) {
21
+ static async sendToWorkspaceEntry(statement, ctx, manifest, ownerId) {
22
+ const scheme = manifest.storedScheme ?? manifest.name;
23
23
  const failure = (code, status, detail, fields = {}, extensions = {}) => Results.failure(`scheme:${scheme}`, code, status, detail, fields, extensions);
24
24
  if (statement.target === null) {
25
25
  return failure("target-required", 400, "Directed SEND requires a target path.", {}, {
@@ -37,14 +37,15 @@ export default class EntrySend {
37
37
  // SEND signal 410 Gone — delete the targeted resource (SPEC {§send-dispatch}). With a
38
38
  // #fragment, deletes just that channel; without, deletes the whole entry.
39
39
  if (status === 410) {
40
- const pathname = EntrySend.#pathnameOf(statement);
41
- if (pathname === null)
40
+ const coordinate = EntrySend.#coordinateOf(statement, manifest);
41
+ if (coordinate === null)
42
42
  return failure("target-required", 400, "`## SEND0 [410]` requires a target path.");
43
- const target = renderAddress(scheme, pathname);
43
+ const { authority, pathname } = coordinate;
44
+ const target = renderAddress({ scheme, authority, pathname });
44
45
  const fragment = EntrySend.#fragmentOf(statement);
45
46
  if (fragment !== null) {
46
47
  const { db, workspaceId } = ctx;
47
- const entry = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: explicitOwnerId ?? await Owner.commonsId(db, workspaceId), scheme, pathname });
48
+ const entry = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: ownerId, scheme, authority, pathname });
48
49
  if (entry === undefined) {
49
50
  return failure("entry-not-found", 404, `No entry exists at ${target}.`, {}, { target });
50
51
  }
@@ -56,7 +57,7 @@ export default class EntrySend {
56
57
  })
57
58
  : { status: 200 };
58
59
  }
59
- const result = await EntryCrud.deleteEntry(pathname, ctx, scheme, explicitOwnerId);
60
+ const result = await EntryCrud.deleteEntry(coordinate, ctx, scheme, ownerId);
60
61
  return result;
61
62
  }
62
63
  // SEND signal 499 Client Closed Request — cancel active subscription (SPEC {§send-dispatch}, {§stream-control}).
@@ -64,12 +65,13 @@ export default class EntrySend {
64
65
  // Streaming schemes (sse / exec / etc.) override this and look up via
65
66
  // findActiveSubscription, then call their teardown using the stored handle.
66
67
  if (status === 499) {
67
- const pathname = EntrySend.#pathnameOf(statement);
68
- if (pathname === null)
68
+ const coordinate = EntrySend.#coordinateOf(statement, manifest);
69
+ if (coordinate === null)
69
70
  return failure("target-required", 400, "`## SEND0 [499]` requires a target path.");
70
- const target = renderAddress(scheme, pathname);
71
+ const { authority, pathname } = coordinate;
72
+ const target = renderAddress({ scheme, authority, pathname });
71
73
  const { db, workspaceId, workerId } = ctx;
72
- const entry = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: explicitOwnerId ?? await Owner.commonsId(db, workspaceId), scheme, pathname });
74
+ const entry = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: ownerId, scheme, authority, pathname });
73
75
  if (entry === undefined) {
74
76
  return failure("entry-not-found", 404, `No entry exists at ${target}.`, {}, { target });
75
77
  }