@plurnk/plurnk-service 1.16.4 → 1.17.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 (636) hide show
  1. package/.env.defaults +122 -246
  2. package/INSTALL.md +84 -138
  3. package/README.md +9 -5
  4. package/SPEC.md +1710 -1015
  5. package/dist/Paths.d.ts +2 -0
  6. package/dist/Paths.d.ts.map +1 -1
  7. package/dist/Paths.js +2 -0
  8. package/dist/Paths.js.map +1 -1
  9. package/dist/build-info.d.ts.map +1 -1
  10. package/dist/build-info.js +7 -1
  11. package/dist/build-info.js.map +1 -1
  12. package/dist/build-info.json +1 -1
  13. package/dist/content/body-preview.d.ts +8 -0
  14. package/dist/content/body-preview.d.ts.map +1 -0
  15. package/dist/content/body-preview.js +39 -0
  16. package/dist/content/body-preview.js.map +1 -0
  17. package/dist/content/byte-view.d.ts +1 -4
  18. package/dist/content/byte-view.d.ts.map +1 -1
  19. package/dist/content/byte-view.js.map +1 -1
  20. package/dist/content/edit-collision.d.ts.map +1 -1
  21. package/dist/content/edit-collision.js +3 -4
  22. package/dist/content/edit-collision.js.map +1 -1
  23. package/dist/content/line-anchors.d.ts +2 -2
  24. package/dist/content/line-anchors.d.ts.map +1 -1
  25. package/dist/content/line-anchors.js +4 -3
  26. package/dist/content/line-anchors.js.map +1 -1
  27. package/dist/content/line-selection.d.ts +9 -0
  28. package/dist/content/line-selection.d.ts.map +1 -0
  29. package/dist/content/line-selection.js +29 -0
  30. package/dist/content/line-selection.js.map +1 -0
  31. package/dist/content/matcher.d.ts +0 -1
  32. package/dist/content/matcher.d.ts.map +1 -1
  33. package/dist/content/matcher.js +2 -3
  34. package/dist/content/matcher.js.map +1 -1
  35. package/dist/content/pattern-edits.d.ts +39 -0
  36. package/dist/content/pattern-edits.d.ts.map +1 -0
  37. package/dist/content/pattern-edits.js +121 -0
  38. package/dist/content/pattern-edits.js.map +1 -0
  39. package/dist/content/read-projector.d.ts +18 -9
  40. package/dist/content/read-projector.d.ts.map +1 -1
  41. package/dist/content/read-projector.js +132 -35
  42. package/dist/content/read-projector.js.map +1 -1
  43. package/dist/content/read-resolve.d.ts +3 -1
  44. package/dist/content/read-resolve.d.ts.map +1 -1
  45. package/dist/content/read-resolve.js +39 -7
  46. package/dist/content/read-resolve.js.map +1 -1
  47. package/dist/core/AdmittedTurnExecutor.d.ts +3 -5
  48. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
  49. package/dist/core/AdmittedTurnExecutor.js +91 -83
  50. package/dist/core/AdmittedTurnExecutor.js.map +1 -1
  51. package/dist/core/BareBatchRunner.d.ts +6 -1
  52. package/dist/core/BareBatchRunner.d.ts.map +1 -1
  53. package/dist/core/BareBatchRunner.js +20 -5
  54. package/dist/core/BareBatchRunner.js.map +1 -1
  55. package/dist/core/BudgetReadout.d.ts +2 -3
  56. package/dist/core/BudgetReadout.d.ts.map +1 -1
  57. package/dist/core/BudgetReadout.js +23 -32
  58. package/dist/core/BudgetReadout.js.map +1 -1
  59. package/dist/core/CapabilityPolicies.d.ts +3 -8
  60. package/dist/core/CapabilityPolicies.d.ts.map +1 -1
  61. package/dist/core/CapabilityPolicies.js +2 -28
  62. package/dist/core/CapabilityPolicies.js.map +1 -1
  63. package/dist/core/CapabilityResolver.d.ts +10 -10
  64. package/dist/core/CapabilityResolver.d.ts.map +1 -1
  65. package/dist/core/CapabilityResolver.js +87 -65
  66. package/dist/core/CapabilityResolver.js.map +1 -1
  67. package/dist/core/ChannelWrite.d.ts +14 -11
  68. package/dist/core/ChannelWrite.d.ts.map +1 -1
  69. package/dist/core/ChannelWrite.js +11 -12
  70. package/dist/core/ChannelWrite.js.map +1 -1
  71. package/dist/core/ChannelWrite.sql +99 -9
  72. package/dist/core/ClientInteractions.d.ts.map +1 -1
  73. package/dist/core/ClientInteractions.js +7 -0
  74. package/dist/core/ClientInteractions.js.map +1 -1
  75. package/dist/core/CoreSchemeServices.d.ts +13 -10
  76. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  77. package/dist/core/CoreSchemeServices.js +13 -5
  78. package/dist/core/CoreSchemeServices.js.map +1 -1
  79. package/dist/core/DataStatementRunner.d.ts +2 -2
  80. package/dist/core/DataStatementRunner.d.ts.map +1 -1
  81. package/dist/core/DataStatementRunner.js +36 -39
  82. package/dist/core/DataStatementRunner.js.map +1 -1
  83. package/dist/core/Dispatcher.d.ts +19 -26
  84. package/dist/core/Dispatcher.d.ts.map +1 -1
  85. package/dist/core/Dispatcher.js +369 -219
  86. package/dist/core/Dispatcher.js.map +1 -1
  87. package/dist/core/Dispatcher.sql +66 -0
  88. package/dist/core/DurableStatement.d.ts.map +1 -1
  89. package/dist/core/DurableStatement.js +2 -1
  90. package/dist/core/DurableStatement.js.map +1 -1
  91. package/dist/core/EditMutations.d.ts +14 -18
  92. package/dist/core/EditMutations.d.ts.map +1 -1
  93. package/dist/core/EditMutations.js +211 -280
  94. package/dist/core/EditMutations.js.map +1 -1
  95. package/dist/core/EditMutations.sql +15 -0
  96. package/dist/core/EditSequence.d.ts +13 -0
  97. package/dist/core/EditSequence.d.ts.map +1 -0
  98. package/dist/core/EditSequence.js +73 -0
  99. package/dist/core/EditSequence.js.map +1 -0
  100. package/dist/core/Engine.d.ts +17 -23
  101. package/dist/core/Engine.d.ts.map +1 -1
  102. package/dist/core/Engine.js +73 -163
  103. package/dist/core/Engine.js.map +1 -1
  104. package/dist/core/Engine.sql +0 -724
  105. package/dist/core/EntryAddressBinding.d.ts +7 -17
  106. package/dist/core/EntryAddressBinding.d.ts.map +1 -1
  107. package/dist/core/EntryAddressBinding.js +12 -72
  108. package/dist/core/EntryAddressBinding.js.map +1 -1
  109. package/dist/core/ExecutionOutputs.d.ts +9 -0
  110. package/dist/core/ExecutionOutputs.d.ts.map +1 -0
  111. package/dist/core/ExecutionOutputs.js +36 -0
  112. package/dist/core/ExecutionOutputs.js.map +1 -0
  113. package/dist/core/ExecutionOutputs.sql +13 -0
  114. package/dist/core/ExecutorRegistry.d.ts +7 -5
  115. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  116. package/dist/core/ExecutorRegistry.js +36 -32
  117. package/dist/core/ExecutorRegistry.js.map +1 -1
  118. package/dist/core/HostPaths.d.ts +1 -0
  119. package/dist/core/HostPaths.d.ts.map +1 -1
  120. package/dist/core/HostPaths.js +4 -0
  121. package/dist/core/HostPaths.js.map +1 -1
  122. package/dist/core/InferenceCall.d.ts.map +1 -1
  123. package/dist/core/InferenceCall.js +1 -2
  124. package/dist/core/InferenceCall.js.map +1 -1
  125. package/dist/core/InferenceCall.sql +29 -0
  126. package/dist/core/KillHandler.d.ts +1 -0
  127. package/dist/core/KillHandler.d.ts.map +1 -1
  128. package/dist/core/KillHandler.js +24 -21
  129. package/dist/core/KillHandler.js.map +1 -1
  130. package/dist/core/LogBody.d.ts +8 -1
  131. package/dist/core/LogBody.d.ts.map +1 -1
  132. package/dist/core/LogBody.js +42 -11
  133. package/dist/core/LogBody.js.map +1 -1
  134. package/dist/core/LogEntryProjection.d.ts +1 -0
  135. package/dist/core/LogEntryProjection.d.ts.map +1 -1
  136. package/dist/core/LogEntryProjection.js +18 -10
  137. package/dist/core/LogEntryProjection.js.map +1 -1
  138. package/dist/core/LogVisibility.d.ts +1 -0
  139. package/dist/core/LogVisibility.d.ts.map +1 -1
  140. package/dist/core/LogVisibility.js +3 -0
  141. package/dist/core/LogVisibility.js.map +1 -1
  142. package/dist/core/LogWriter.d.ts +2 -3
  143. package/dist/core/LogWriter.d.ts.map +1 -1
  144. package/dist/core/LogWriter.js +25 -32
  145. package/dist/core/LogWriter.js.map +1 -1
  146. package/dist/core/LogWriter.sql +23 -0
  147. package/dist/core/LoopDriver.d.ts +11 -8
  148. package/dist/core/LoopDriver.d.ts.map +1 -1
  149. package/dist/core/LoopDriver.js +163 -189
  150. package/dist/core/LoopDriver.js.map +1 -1
  151. package/dist/core/LoopDriver.sql +11 -0
  152. package/dist/core/LoopLifecycle.d.ts +32 -2
  153. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  154. package/dist/core/LoopLifecycle.js +88 -4
  155. package/dist/core/LoopLifecycle.js.map +1 -1
  156. package/dist/core/LoopLifecycle.sql +145 -28
  157. package/dist/core/LoopPolicyReader.sql +6 -0
  158. package/dist/core/MembershipMaterialization.d.ts.map +1 -1
  159. package/dist/core/MembershipMaterialization.js +6 -28
  160. package/dist/core/MembershipMaterialization.js.map +1 -1
  161. package/dist/core/ModelCall.sql +70 -0
  162. package/dist/core/MutationEffects.d.ts +5 -3
  163. package/dist/core/MutationEffects.d.ts.map +1 -1
  164. package/dist/core/MutationEffects.js +10 -28
  165. package/dist/core/MutationEffects.js.map +1 -1
  166. package/dist/core/NativeContent.d.ts +6 -0
  167. package/dist/core/NativeContent.d.ts.map +1 -0
  168. package/dist/core/NativeContent.js +16 -0
  169. package/dist/core/NativeContent.js.map +1 -0
  170. package/dist/core/NativeContent.sql +6 -0
  171. package/dist/core/NoticeChannel.js +1 -1
  172. package/dist/core/NoticeChannel.js.map +1 -1
  173. package/dist/core/OperatorConfig.js +5 -5
  174. package/dist/core/OperatorConfig.js.map +1 -1
  175. package/dist/core/PacketBuilder.d.ts +8 -5
  176. package/dist/core/PacketBuilder.d.ts.map +1 -1
  177. package/dist/core/PacketBuilder.js +117 -81
  178. package/dist/core/PacketBuilder.js.map +1 -1
  179. package/dist/core/PacketBuilder.sql +146 -0
  180. package/dist/core/PatternSelection.d.ts +28 -0
  181. package/dist/core/PatternSelection.d.ts.map +1 -0
  182. package/dist/core/PatternSelection.js +42 -0
  183. package/dist/core/PatternSelection.js.map +1 -0
  184. package/dist/core/ProblemLog.d.ts.map +1 -1
  185. package/dist/core/ProblemLog.js +0 -1
  186. package/dist/core/ProblemLog.js.map +1 -1
  187. package/dist/core/PromptFrames.d.ts +12 -0
  188. package/dist/core/PromptFrames.d.ts.map +1 -0
  189. package/dist/core/PromptFrames.js +28 -0
  190. package/dist/core/PromptFrames.js.map +1 -0
  191. package/dist/core/ProposalLifecycle.d.ts +0 -1
  192. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  193. package/dist/core/ProposalLifecycle.js +20 -19
  194. package/dist/core/ProposalLifecycle.js.map +1 -1
  195. package/dist/core/ProposalLifecycle.sql +33 -0
  196. package/dist/core/ProviderInstantiate.d.ts +1 -1
  197. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  198. package/dist/core/ProviderInstantiate.js +7 -14
  199. package/dist/core/ProviderInstantiate.js.map +1 -1
  200. package/dist/core/ReasoningView.d.ts +9 -0
  201. package/dist/core/ReasoningView.d.ts.map +1 -0
  202. package/dist/core/ReasoningView.js +47 -0
  203. package/dist/core/ReasoningView.js.map +1 -0
  204. package/dist/core/ResourceBindings.d.ts +16 -0
  205. package/dist/core/ResourceBindings.d.ts.map +1 -0
  206. package/dist/core/ResourceBindings.js +45 -0
  207. package/dist/core/ResourceBindings.js.map +1 -0
  208. package/dist/core/ResourceMutations.d.ts +5 -8
  209. package/dist/core/ResourceMutations.d.ts.map +1 -1
  210. package/dist/core/ResourceMutations.js +6 -7
  211. package/dist/core/ResourceMutations.js.map +1 -1
  212. package/dist/core/ResourceSelector.d.ts +2 -2
  213. package/dist/core/ResourceSelector.d.ts.map +1 -1
  214. package/dist/core/ResourceSelector.js +122 -62
  215. package/dist/core/ResourceSelector.js.map +1 -1
  216. package/dist/core/ResourceTransfers.d.ts +4 -2
  217. package/dist/core/ResourceTransfers.d.ts.map +1 -1
  218. package/dist/core/ResourceTransfers.js +95 -26
  219. package/dist/core/ResourceTransfers.js.map +1 -1
  220. package/dist/core/RuntimeWorker.d.ts +5 -0
  221. package/dist/core/RuntimeWorker.d.ts.map +1 -0
  222. package/dist/core/RuntimeWorker.js +10 -0
  223. package/dist/core/RuntimeWorker.js.map +1 -0
  224. package/dist/core/RuntimeWorker.sql +5 -0
  225. package/dist/core/SchemeRegistry.d.ts +12 -16
  226. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  227. package/dist/core/SchemeRegistry.js +58 -84
  228. package/dist/core/SchemeRegistry.js.map +1 -1
  229. package/dist/core/StoredPacket.d.ts +6 -1
  230. package/dist/core/StoredPacket.d.ts.map +1 -1
  231. package/dist/core/StoredPacket.js +30 -10
  232. package/dist/core/StoredPacket.js.map +1 -1
  233. package/dist/core/StrikeRail.d.ts +9 -6
  234. package/dist/core/StrikeRail.d.ts.map +1 -1
  235. package/dist/core/StrikeRail.js +60 -113
  236. package/dist/core/StrikeRail.js.map +1 -1
  237. package/dist/core/StrikeRail.sql +12 -0
  238. package/dist/core/TerminalResult.d.ts +1 -1
  239. package/dist/core/TerminalResult.d.ts.map +1 -1
  240. package/dist/core/TerminalResult.js +2 -2
  241. package/dist/core/TerminalResult.js.map +1 -1
  242. package/dist/core/TokenCalibration.d.ts +1 -6
  243. package/dist/core/TokenCalibration.d.ts.map +1 -1
  244. package/dist/core/TokenCalibration.js +13 -9
  245. package/dist/core/TokenCalibration.js.map +1 -1
  246. package/dist/core/TokenCalibration.sql +15 -0
  247. package/dist/core/ToolInputSchema.d.ts +6 -0
  248. package/dist/core/ToolInputSchema.d.ts.map +1 -0
  249. package/dist/core/ToolInputSchema.js +43 -0
  250. package/dist/core/ToolInputSchema.js.map +1 -0
  251. package/dist/core/ToolResources.d.ts.map +1 -1
  252. package/dist/core/ToolResources.js +76 -52
  253. package/dist/core/ToolResources.js.map +1 -1
  254. package/dist/core/Turn.d.ts +5 -2
  255. package/dist/core/Turn.d.ts.map +1 -1
  256. package/dist/core/Turn.js +13 -11
  257. package/dist/core/Turn.js.map +1 -1
  258. package/dist/core/Turn.sql +25 -39
  259. package/dist/core/{SendBroadcastHandler.d.ts → TurnDispositionHandler.d.ts} +25 -17
  260. package/dist/core/TurnDispositionHandler.d.ts.map +1 -0
  261. package/dist/core/TurnDispositionHandler.js +198 -0
  262. package/dist/core/TurnDispositionHandler.js.map +1 -0
  263. package/dist/core/TurnMaterialization.d.ts +2 -3
  264. package/dist/core/TurnMaterialization.d.ts.map +1 -1
  265. package/dist/core/TurnMaterialization.js +40 -15
  266. package/dist/core/TurnMaterialization.js.map +1 -1
  267. package/dist/core/TurnMaterialization.sql +44 -0
  268. package/dist/core/TurnOps.d.ts.map +1 -1
  269. package/dist/core/TurnOps.js +8 -64
  270. package/dist/core/TurnOps.js.map +1 -1
  271. package/dist/core/TurnRunner.d.ts +9 -12
  272. package/dist/core/TurnRunner.d.ts.map +1 -1
  273. package/dist/core/TurnRunner.js +232 -408
  274. package/dist/core/TurnRunner.js.map +1 -1
  275. package/dist/core/TurnRunner.sql +74 -0
  276. package/dist/core/TurnSources.sql +39 -0
  277. package/dist/core/WorkerControlAddress.d.ts +1 -0
  278. package/dist/core/WorkerControlAddress.d.ts.map +1 -1
  279. package/dist/core/WorkerControlAddress.js +5 -0
  280. package/dist/core/WorkerControlAddress.js.map +1 -1
  281. package/dist/core/WorkerControlHandler.d.ts +1 -3
  282. package/dist/core/WorkerControlHandler.d.ts.map +1 -1
  283. package/dist/core/WorkerControlHandler.js +41 -48
  284. package/dist/core/WorkerControlHandler.js.map +1 -1
  285. package/dist/core/WorkerName.d.ts +8 -6
  286. package/dist/core/WorkerName.d.ts.map +1 -1
  287. package/dist/core/WorkerName.js +33 -24
  288. package/dist/core/WorkerName.js.map +1 -1
  289. package/dist/core/WorkerName.sql +7 -10
  290. package/dist/core/WorkspaceGate.d.ts +1 -1
  291. package/dist/core/WorkspaceGate.d.ts.map +1 -1
  292. package/dist/core/WorkspaceGate.js +29 -6
  293. package/dist/core/WorkspaceGate.js.map +1 -1
  294. package/dist/core/ambient.sql +236 -0
  295. package/dist/core/attachments.d.ts +2 -1
  296. package/dist/core/attachments.d.ts.map +1 -1
  297. package/dist/core/attachments.js +5 -4
  298. package/dist/core/attachments.js.map +1 -1
  299. package/dist/core/caps/CapsResolve.d.ts +2 -3
  300. package/dist/core/caps/CapsResolve.d.ts.map +1 -1
  301. package/dist/core/caps/CapsResolve.js +5 -5
  302. package/dist/core/caps/CapsResolve.js.map +1 -1
  303. package/dist/core/caps/DbChannelCaps.d.ts +1 -1
  304. package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
  305. package/dist/core/caps/DbChannelCaps.js +4 -6
  306. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  307. package/dist/core/caps/DbEntryCaps.d.ts +2 -1
  308. package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
  309. package/dist/core/caps/DbEntryCaps.js +11 -17
  310. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  311. package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
  312. package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
  313. package/dist/core/caps/DbNotifyCaps.js +3 -5
  314. package/dist/core/caps/DbNotifyCaps.js.map +1 -1
  315. package/dist/core/caps/DbProjectionCaps.js +1 -1
  316. package/dist/core/caps/DbProjectionCaps.js.map +1 -1
  317. package/dist/core/caps/DbSubscriptionCaps.d.ts +1 -1
  318. package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
  319. package/dist/core/caps/DbSubscriptionCaps.js +5 -7
  320. package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
  321. package/dist/core/caps/SchemeCtxImpl.d.ts +0 -2
  322. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  323. package/dist/core/caps/SchemeCtxImpl.js +4 -20
  324. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  325. package/dist/core/env-defaults.d.ts.map +1 -1
  326. package/dist/core/env-defaults.js +4 -2
  327. package/dist/core/env-defaults.js.map +1 -1
  328. package/dist/core/file-materialization.d.ts +4 -1
  329. package/dist/core/file-materialization.d.ts.map +1 -1
  330. package/dist/core/file-materialization.js +14 -0
  331. package/dist/core/file-materialization.js.map +1 -1
  332. package/dist/core/fork.d.ts +1 -6
  333. package/dist/core/fork.d.ts.map +1 -1
  334. package/dist/core/fork.js +9 -153
  335. package/dist/core/fork.js.map +1 -1
  336. package/dist/core/fork.sql +162 -185
  337. package/dist/core/git-env.d.ts +1 -0
  338. package/dist/core/git-env.d.ts.map +1 -1
  339. package/dist/core/git-env.js +39 -2
  340. package/dist/core/git-env.js.map +1 -1
  341. package/dist/core/git-membership.d.ts.map +1 -1
  342. package/dist/core/git-membership.js +64 -48
  343. package/dist/core/git-membership.js.map +1 -1
  344. package/dist/core/git-state.d.ts.map +1 -1
  345. package/dist/core/git-state.js +25 -19
  346. package/dist/core/git-state.js.map +1 -1
  347. package/dist/core/glob_match.d.ts +4 -0
  348. package/dist/core/glob_match.d.ts.map +1 -0
  349. package/dist/core/glob_match.js +7 -0
  350. package/dist/core/glob_match.js.map +1 -0
  351. package/dist/core/maintenance.sql +6 -0
  352. package/dist/core/mutation-types.d.ts +7 -28
  353. package/dist/core/mutation-types.d.ts.map +1 -1
  354. package/dist/core/packet-inject.d.ts.map +1 -1
  355. package/dist/core/packet-inject.js +2 -3
  356. package/dist/core/packet-inject.js.map +1 -1
  357. package/dist/core/packet-wire.d.ts +8 -6
  358. package/dist/core/packet-wire.d.ts.map +1 -1
  359. package/dist/core/packet-wire.js +131 -163
  360. package/dist/core/packet-wire.js.map +1 -1
  361. package/dist/core/plurnk-uri.d.ts +1 -1
  362. package/dist/core/plurnk-uri.d.ts.map +1 -1
  363. package/dist/core/plurnk-uri.js +5 -12
  364. package/dist/core/plurnk-uri.js.map +1 -1
  365. package/dist/core/scheme-types.d.ts +3 -3
  366. package/dist/core/scheme-types.d.ts.map +1 -1
  367. package/dist/core/scheme-types.js.map +1 -1
  368. package/dist/core/sha256.d.ts +4 -0
  369. package/dist/core/sha256.d.ts.map +1 -0
  370. package/dist/core/sha256.js +6 -0
  371. package/dist/core/sha256.js.map +1 -0
  372. package/dist/core/teaching.js +1 -1
  373. package/dist/core/teaching.js.map +1 -1
  374. package/dist/core/turn-scheduler.d.ts.map +1 -1
  375. package/dist/core/turn-scheduler.js +5 -18
  376. package/dist/core/turn-scheduler.js.map +1 -1
  377. package/dist/core/turn-signals.d.ts +0 -6
  378. package/dist/core/turn-signals.d.ts.map +1 -1
  379. package/dist/core/turn-signals.js +1 -7
  380. package/dist/core/turn-signals.js.map +1 -1
  381. package/dist/core/worker-ops.sql +15 -22
  382. package/dist/core/workspace-settings.d.ts.map +1 -1
  383. package/dist/core/workspace-settings.js +18 -2
  384. package/dist/core/workspace-settings.js.map +1 -1
  385. package/dist/core/workspace-settings.sql +6 -0
  386. package/dist/digest/Digest.d.ts.map +1 -1
  387. package/dist/digest/Digest.js +27 -90
  388. package/dist/digest/Digest.js.map +1 -1
  389. package/dist/digest/DigestRender.d.ts.map +1 -1
  390. package/dist/digest/DigestRender.js +14 -54
  391. package/dist/digest/DigestRender.js.map +1 -1
  392. package/dist/digest/digest-rows.d.ts +10 -32
  393. package/dist/digest/digest-rows.d.ts.map +1 -1
  394. package/dist/digest/digest.sql +43 -18
  395. package/dist/schemes/Exec.d.ts +6 -12
  396. package/dist/schemes/Exec.d.ts.map +1 -1
  397. package/dist/schemes/Exec.js +256 -188
  398. package/dist/schemes/Exec.js.map +1 -1
  399. package/dist/schemes/ExecOutputScheme.d.ts +8 -6
  400. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  401. package/dist/schemes/ExecOutputScheme.js +33 -61
  402. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  403. package/dist/schemes/ExecutionInput.d.ts +12 -0
  404. package/dist/schemes/ExecutionInput.d.ts.map +1 -0
  405. package/dist/schemes/ExecutionInput.js +94 -0
  406. package/dist/schemes/ExecutionInput.js.map +1 -0
  407. package/dist/schemes/File.d.ts +5 -2
  408. package/dist/schemes/File.d.ts.map +1 -1
  409. package/dist/schemes/File.js +62 -92
  410. package/dist/schemes/File.js.map +1 -1
  411. package/dist/schemes/Log.d.ts.map +1 -1
  412. package/dist/schemes/Log.js +84 -79
  413. package/dist/schemes/Log.js.map +1 -1
  414. package/dist/schemes/Log.sql +183 -15
  415. package/dist/schemes/Prompt.d.ts.map +1 -1
  416. package/dist/schemes/Prompt.js +3 -12
  417. package/dist/schemes/Prompt.js.map +1 -1
  418. package/dist/schemes/QuestionTool.d.ts +5 -0
  419. package/dist/schemes/QuestionTool.d.ts.map +1 -1
  420. package/dist/schemes/QuestionTool.js +6 -14
  421. package/dist/schemes/QuestionTool.js.map +1 -1
  422. package/dist/schemes/Skill.d.ts +12 -7
  423. package/dist/schemes/Skill.d.ts.map +1 -1
  424. package/dist/schemes/Skill.js +149 -21
  425. package/dist/schemes/Skill.js.map +1 -1
  426. package/dist/schemes/TurnSource.d.ts +12 -0
  427. package/dist/schemes/TurnSource.d.ts.map +1 -0
  428. package/dist/schemes/TurnSource.js +116 -0
  429. package/dist/schemes/TurnSource.js.map +1 -0
  430. package/dist/schemes/Worker.d.ts +3 -3
  431. package/dist/schemes/Worker.d.ts.map +1 -1
  432. package/dist/schemes/Worker.js +61 -208
  433. package/dist/schemes/Worker.js.map +1 -1
  434. package/dist/schemes/_entry-crud.d.ts +12 -15
  435. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  436. package/dist/schemes/_entry-crud.js +63 -63
  437. package/dist/schemes/_entry-crud.js.map +1 -1
  438. package/dist/schemes/_entry-crud.sql +142 -46
  439. package/dist/schemes/_entry-find.d.ts +1 -3
  440. package/dist/schemes/_entry-find.d.ts.map +1 -1
  441. package/dist/schemes/_entry-find.js +111 -112
  442. package/dist/schemes/_entry-find.js.map +1 -1
  443. package/dist/schemes/_entry-find.sql +22 -14
  444. package/dist/schemes/_entry-fts.d.ts +14 -0
  445. package/dist/schemes/_entry-fts.d.ts.map +1 -0
  446. package/dist/schemes/_entry-fts.js +82 -0
  447. package/dist/schemes/_entry-fts.js.map +1 -0
  448. package/dist/schemes/_entry-fts.sql +31 -0
  449. package/dist/schemes/_entry-graph.d.ts.map +1 -1
  450. package/dist/schemes/_entry-graph.js +6 -14
  451. package/dist/schemes/_entry-graph.js.map +1 -1
  452. package/dist/schemes/_entry-graph.sql +29 -44
  453. package/dist/schemes/_entry-manifest.d.ts +2 -1
  454. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  455. package/dist/schemes/_entry-manifest.js +15 -12
  456. package/dist/schemes/_entry-manifest.js.map +1 -1
  457. package/dist/schemes/_entry-manifest.sql +26 -0
  458. package/dist/schemes/_entry-ops.d.ts +3 -5
  459. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  460. package/dist/schemes/_entry-ops.js +30 -43
  461. package/dist/schemes/_entry-ops.js.map +1 -1
  462. package/dist/schemes/_entry-ops.sql +5 -6
  463. package/dist/schemes/_entry-readable.d.ts +8 -0
  464. package/dist/schemes/_entry-readable.d.ts.map +1 -0
  465. package/dist/schemes/_entry-readable.js +38 -0
  466. package/dist/schemes/_entry-readable.js.map +1 -0
  467. package/dist/schemes/_entry-send.d.ts +1 -1
  468. package/dist/schemes/_entry-send.d.ts.map +1 -1
  469. package/dist/schemes/_entry-send.js +3 -3
  470. package/dist/schemes/_entry-send.js.map +1 -1
  471. package/dist/schemes/_search-index.d.ts +1 -3
  472. package/dist/schemes/_search-index.d.ts.map +1 -1
  473. package/dist/schemes/_search-index.js +79 -110
  474. package/dist/schemes/_search-index.js.map +1 -1
  475. package/dist/schemes/_search-index.sql +30 -0
  476. package/dist/schemes/exec-runtime.d.ts +1 -1
  477. package/dist/schemes/exec-runtime.d.ts.map +1 -1
  478. package/dist/schemes/exec-runtime.js.map +1 -1
  479. package/dist/server/ClientReads.d.ts +2 -2
  480. package/dist/server/ClientReads.d.ts.map +1 -1
  481. package/dist/server/ClientReads.js +5 -8
  482. package/dist/server/ClientReads.js.map +1 -1
  483. package/dist/server/Daemon.d.ts +14 -21
  484. package/dist/server/Daemon.d.ts.map +1 -1
  485. package/dist/server/Daemon.js +135 -156
  486. package/dist/server/Daemon.js.map +1 -1
  487. package/dist/server/DaemonModule.d.ts +23 -21
  488. package/dist/server/DaemonModule.d.ts.map +1 -1
  489. package/dist/server/DrainSupervisor.d.ts +8 -21
  490. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  491. package/dist/server/DrainSupervisor.js +278 -306
  492. package/dist/server/DrainSupervisor.js.map +1 -1
  493. package/dist/server/Functionality.d.ts +11 -12
  494. package/dist/server/Functionality.d.ts.map +1 -1
  495. package/dist/server/Functionality.js +129 -101
  496. package/dist/server/Functionality.js.map +1 -1
  497. package/dist/server/FunctionalityManager.d.ts +3 -5
  498. package/dist/server/FunctionalityManager.d.ts.map +1 -1
  499. package/dist/server/FunctionalityManager.js +20 -58
  500. package/dist/server/FunctionalityManager.js.map +1 -1
  501. package/dist/server/MembersFunctionality.d.ts +5 -4
  502. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  503. package/dist/server/MembersFunctionality.js +24 -37
  504. package/dist/server/MembersFunctionality.js.map +1 -1
  505. package/dist/server/PlurnkSkill.d.ts +11 -0
  506. package/dist/server/PlurnkSkill.d.ts.map +1 -0
  507. package/dist/server/PlurnkSkill.js +41 -0
  508. package/dist/server/PlurnkSkill.js.map +1 -0
  509. package/dist/server/Retention.d.ts +22 -0
  510. package/dist/server/Retention.d.ts.map +1 -0
  511. package/dist/server/Retention.js +54 -0
  512. package/dist/server/Retention.js.map +1 -0
  513. package/dist/server/Retention.sql +36 -0
  514. package/dist/server/ServiceModules.d.ts +5 -0
  515. package/dist/server/ServiceModules.d.ts.map +1 -0
  516. package/dist/server/ServiceModules.js +10 -0
  517. package/dist/server/ServiceModules.js.map +1 -0
  518. package/dist/server/SkillsFunctionality.d.ts +14 -19
  519. package/dist/server/SkillsFunctionality.d.ts.map +1 -1
  520. package/dist/server/SkillsFunctionality.js +97 -104
  521. package/dist/server/SkillsFunctionality.js.map +1 -1
  522. package/dist/server/WorkerModelResolver.d.ts +4 -0
  523. package/dist/server/WorkerModelResolver.d.ts.map +1 -1
  524. package/dist/server/WorkerModelResolver.js +72 -39
  525. package/dist/server/WorkerModelResolver.js.map +1 -1
  526. package/dist/server/WorkspaceCapabilities.d.ts +21 -0
  527. package/dist/server/WorkspaceCapabilities.d.ts.map +1 -0
  528. package/dist/server/{WorkerCapabilities.js → WorkspaceCapabilities.js} +40 -40
  529. package/dist/server/WorkspaceCapabilities.js.map +1 -0
  530. package/dist/server/WorkspaceResidency.d.ts +36 -0
  531. package/dist/server/WorkspaceResidency.d.ts.map +1 -0
  532. package/dist/server/WorkspaceResidency.js +199 -0
  533. package/dist/server/WorkspaceResidency.js.map +1 -0
  534. package/dist/server/client-input.d.ts +1 -4
  535. package/dist/server/client-input.d.ts.map +1 -1
  536. package/dist/server/client-input.js +4 -45
  537. package/dist/server/client-input.js.map +1 -1
  538. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  539. package/dist/server/dispatch-as-plurnk.js +4 -22
  540. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  541. package/dist/server/drain.sql +65 -42
  542. package/dist/server/envelope.d.ts +8 -0
  543. package/dist/server/envelope.d.ts.map +1 -1
  544. package/dist/server/envelope.js +9 -7
  545. package/dist/server/envelope.js.map +1 -1
  546. package/dist/server/envelope.sql +49 -13
  547. package/dist/server/lifecycle-recovery.sql +14 -17
  548. package/dist/server/logEntry.d.ts +1 -1
  549. package/dist/server/logEntry.d.ts.map +1 -1
  550. package/dist/server/logEntry.js +4 -1
  551. package/dist/server/logEntry.js.map +1 -1
  552. package/dist/server/logEntry.sql +25 -1
  553. package/dist/server/loopDocs.d.ts +2 -2
  554. package/dist/server/loopDocs.d.ts.map +1 -1
  555. package/dist/server/loopDocs.js +38 -31
  556. package/dist/server/loopDocs.js.map +1 -1
  557. package/dist/server/loopDocs.sql +1 -3
  558. package/dist/server/model-catalog.d.ts.map +1 -1
  559. package/dist/server/model-catalog.js +2 -1
  560. package/dist/server/model-catalog.js.map +1 -1
  561. package/dist/server/model-route.d.ts +1 -1
  562. package/dist/server/model-route.d.ts.map +1 -1
  563. package/dist/server/model-route.js +4 -2
  564. package/dist/server/model-route.js.map +1 -1
  565. package/dist/server/seam-entry-read.sql +3 -4
  566. package/dist/server/seam-loop.sql +2 -9
  567. package/dist/server/workspace-capabilities.sql +19 -0
  568. package/dist/service.d.ts.map +1 -1
  569. package/dist/service.js +5 -17
  570. package/dist/service.js.map +1 -1
  571. package/docs/members.md +83 -0
  572. package/docs/skills.md +50 -0
  573. package/migrations/001_workspaces.sql +53 -0
  574. package/migrations/002_workers.sql +183 -0
  575. package/migrations/003_loops.sql +326 -0
  576. package/migrations/004_inference.sql +360 -0
  577. package/migrations/005_entries.sql +207 -0
  578. package/migrations/006_log.sql +578 -0
  579. package/migrations/007_subscriptions.sql +175 -0
  580. package/migrations/008_interactions.sql +29 -0
  581. package/package.json +33 -40
  582. package/digest-sql/channel-dispositions/dispositions.sql +0 -15
  583. package/digest-sql/channel-state/state.sql +0 -6
  584. package/digest-sql/curation/curation.sql +0 -6
  585. package/digest-sql/derivations/derivations.sql +0 -4
  586. package/digest-sql/embeddings/embeddings.sql +0 -4
  587. package/digest-sql/entry-dispositions/dispositions.sql +0 -15
  588. package/digest-sql/entry-state/state.sql +0 -6
  589. package/digest-sql/token-counts/token-counts.sql +0 -2
  590. package/dist/core/EmbeddingCall.d.ts +0 -23
  591. package/dist/core/EmbeddingCall.d.ts.map +0 -1
  592. package/dist/core/EmbeddingCall.js +0 -149
  593. package/dist/core/EmbeddingCall.js.map +0 -1
  594. package/dist/core/OverflowTurn.d.ts +0 -11
  595. package/dist/core/OverflowTurn.d.ts.map +0 -1
  596. package/dist/core/OverflowTurn.js +0 -80
  597. package/dist/core/OverflowTurn.js.map +0 -1
  598. package/dist/core/Owner.d.ts +0 -8
  599. package/dist/core/Owner.d.ts.map +0 -1
  600. package/dist/core/Owner.js +0 -46
  601. package/dist/core/Owner.js.map +0 -1
  602. package/dist/core/SendBroadcastHandler.d.ts.map +0 -1
  603. package/dist/core/SendBroadcastHandler.js +0 -159
  604. package/dist/core/SendBroadcastHandler.js.map +0 -1
  605. package/dist/core/VectorPump.d.ts +0 -28
  606. package/dist/core/VectorPump.d.ts.map +0 -1
  607. package/dist/core/VectorPump.js +0 -130
  608. package/dist/core/VectorPump.js.map +0 -1
  609. package/dist/core/owner.sql +0 -11
  610. package/dist/core/worker-settings.d.ts +0 -10
  611. package/dist/core/worker-settings.d.ts.map +0 -1
  612. package/dist/core/worker-settings.js +0 -53
  613. package/dist/core/worker-settings.js.map +0 -1
  614. package/dist/schemes/_entry-chunk.d.ts +0 -14
  615. package/dist/schemes/_entry-chunk.d.ts.map +0 -1
  616. package/dist/schemes/_entry-chunk.js +0 -165
  617. package/dist/schemes/_entry-chunk.js.map +0 -1
  618. package/dist/schemes/_entry-semantic.d.ts +0 -63
  619. package/dist/schemes/_entry-semantic.d.ts.map +0 -1
  620. package/dist/schemes/_entry-semantic.js +0 -299
  621. package/dist/schemes/_entry-semantic.js.map +0 -1
  622. package/dist/schemes/_entry-semantic.sql +0 -99
  623. package/dist/schemes/cosine.d.ts +0 -4
  624. package/dist/schemes/cosine.d.ts.map +0 -1
  625. package/dist/schemes/cosine.js +0 -9
  626. package/dist/schemes/cosine.js.map +0 -1
  627. package/dist/server/WorkerCapabilities.d.ts +0 -21
  628. package/dist/server/WorkerCapabilities.d.ts.map +0 -1
  629. package/dist/server/WorkerCapabilities.js.map +0 -1
  630. package/dist/server/WorkerResidency.d.ts +0 -40
  631. package/dist/server/WorkerResidency.d.ts.map +0 -1
  632. package/dist/server/WorkerResidency.js +0 -283
  633. package/dist/server/WorkerResidency.js.map +0 -1
  634. package/dist/server/seam-log-read.sql +0 -21
  635. package/dist/server/worker-capabilities.sql +0 -28
  636. package/migrations/001_schema.sql +0 -2207
@@ -1,10 +1,9 @@
1
1
  -- Channel-write SQL for streaming schemes. SPEC {§channel-state} + {§subscriptions} + {§notifications}.
2
2
 
3
3
  -- PREP: channel_meta
4
- SELECT owner.workspace_id, e.owner_id AS workerId, e.scheme, e.authority, e.pathname, ec.state, ec.mimetype, length(ec.content) AS contentLength
4
+ SELECT e.workspace_id, e.scheme, e.authority, e.pathname, ec.state, ec.mimetype, length(ec.content) AS contentLength
5
5
  FROM entry_channels ec
6
6
  JOIN entries e ON e.id = ec.entry_id
7
- JOIN workers owner ON owner.id = e.owner_id
8
7
  WHERE ec.entry_id = $entry_id AND ec.name = $channel;
9
8
 
10
9
  -- PREP: append_to_channel
@@ -37,8 +36,8 @@ WHERE entry_id = $entry_id AND name = $channel;
37
36
  -- PREP: open_subscription
38
37
  -- turn_scoped COALESCEs to 0 so a caller binding the raw prep without it (an unbounded stream) is
39
38
  -- a normal, non-turn-scoped subscription — the column is NOT NULL, so a missing bind would error.
40
- INSERT INTO subscriptions (worker_id, entry_id, scheme, handle, poll_seconds, turn_scoped, published_channel)
41
- VALUES ($worker_id, $entry_id, $scheme, $handle, $poll_seconds, COALESCE($turn_scoped, 0), $published_channel)
39
+ INSERT INTO subscriptions (worker_id, entry_id, scheme, handle, poll_seconds, turn_scoped, detached, published_channel, source)
40
+ VALUES ($worker_id, $entry_id, $scheme, $handle, $poll_seconds, COALESCE($turn_scoped, 0), COALESCE($detached, 0), $published_channel, $source)
42
41
  RETURNING id;
43
42
 
44
43
  -- PREP: close_subscription
@@ -50,20 +49,19 @@ SET closed_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
50
49
  WHERE id = $subscription_id AND closed_at IS NULL;
51
50
 
52
51
  -- PREP: subscription_published_channel_meta
53
- SELECT e.id AS entryId, owner.workspace_id, e.owner_id AS workerId, e.scheme, e.authority, e.pathname,
52
+ SELECT e.id AS entryId, s.worker_id AS workerId, e.workspace_id, e.scheme, e.authority, e.pathname,
54
53
  ec.name AS channel, ec.state, ec.mimetype,
55
54
  length(ec.content) AS contentLength
56
55
  FROM subscriptions s
57
56
  JOIN subscription_publications sp ON sp.subscription_id = s.id
58
57
  JOIN entries e ON e.id = s.entry_id
59
- JOIN workers owner ON owner.id = e.owner_id
60
58
  JOIN entry_channels ec ON ec.entry_id = e.id AND ec.name = sp.channel
61
59
  WHERE s.id = $subscription_id;
62
60
 
63
61
  -- PREP: find_active_subscription
64
62
  SELECT id, scheme, handle
65
63
  FROM subscriptions
66
- WHERE worker_id = $worker_id AND entry_id = $entry_id AND closed_at IS NULL;
64
+ WHERE entry_id = $entry_id AND closed_at IS NULL;
67
65
 
68
66
  -- PREP: find_open_subscriptions_for_worker
69
67
  -- The worker's still-open subscriptions — the registry-routed reap ({§worker-lifecycle-total-reap}):
@@ -88,9 +86,101 @@ WHERE worker_id = $worker_id AND closed_at IS NULL AND turn_scoped = 1;
88
86
  SELECT s.close_status
89
87
  FROM entries e
90
88
  JOIN subscriptions s ON s.entry_id = e.id
91
- JOIN workers owner ON owner.id = e.owner_id
92
- WHERE owner.workspace_id = $workspace_id AND s.worker_id = $worker_id
89
+ WHERE e.workspace_id = $workspace_id
93
90
  AND e.scheme = $scheme AND e.authority = $authority AND e.pathname = $pathname
94
91
  AND s.closed_at IS NOT NULL
95
92
  ORDER BY s.closed_at DESC
96
93
  LIMIT 1;
94
+
95
+ -- INIT: subscriptions_wake_revision
96
+ DROP TRIGGER IF EXISTS subscriptions_wake_revision;
97
+ CREATE TRIGGER subscriptions_wake_revision
98
+ AFTER UPDATE OF closed_at ON subscriptions
99
+ WHEN OLD.closed_at IS NULL AND NEW.closed_at IS NOT NULL
100
+ BEGIN
101
+ UPDATE workers SET wake_revision = wake_revision + 1 WHERE id = NEW.worker_id;
102
+ END;
103
+
104
+ -- INIT: subscriptions_settle_channels
105
+ -- Subscription settlement is the single atomic transition that closes the
106
+ -- lifecycle and installs current terminal producer evidence on every channel.
107
+ -- Overrides are exact; all other channels inherit the universal result.
108
+ DROP TRIGGER IF EXISTS subscriptions_settle_channels;
109
+ CREATE TRIGGER subscriptions_settle_channels
110
+ AFTER UPDATE OF closed_at, close_status, close_result, channel_results ON subscriptions
111
+ WHEN OLD.closed_at IS NULL AND NEW.closed_at IS NOT NULL
112
+ BEGIN
113
+ UPDATE entry_channels
114
+ SET producer_result = COALESCE(
115
+ (
116
+ SELECT json(channel_result.value)
117
+ FROM json_each(NEW.channel_results) AS channel_result
118
+ WHERE channel_result.key = entry_channels.name
119
+ ),
120
+ NEW.close_result
121
+ ),
122
+ state = CASE WHEN json_extract(
123
+ COALESCE(
124
+ (
125
+ SELECT json(channel_result.value)
126
+ FROM json_each(NEW.channel_results) AS channel_result
127
+ WHERE channel_result.key = entry_channels.name
128
+ ),
129
+ NEW.close_result
130
+ ),
131
+ '$.status'
132
+ ) >= 400 THEN 'errored' ELSE 'closed' END
133
+ WHERE entry_id = NEW.entry_id;
134
+ END;
135
+
136
+ -- INIT: subscriptions_seed_publications
137
+ DROP TRIGGER IF EXISTS subscriptions_seed_publications;
138
+ CREATE TRIGGER subscriptions_seed_publications
139
+ AFTER INSERT ON subscriptions
140
+ BEGIN
141
+ INSERT INTO subscription_publications (subscription_id, channel)
142
+ SELECT NEW.id, ec.name
143
+ FROM entry_channels ec
144
+ WHERE ec.entry_id = NEW.entry_id
145
+ AND (NEW.published_channel IS NULL OR ec.name = NEW.published_channel);
146
+
147
+ SELECT CASE WHEN NOT EXISTS (
148
+ SELECT 1 FROM subscription_publications WHERE subscription_id = NEW.id
149
+ ) THEN RAISE(ABORT, 'subscription has no publishable channel') END;
150
+ END;
151
+
152
+ -- INIT: log_entries_advance_subscription_publication
153
+ -- The generated READ and its cursor transition are one SQLite statement. A
154
+ -- later log KILL removes evidence from active context without rewinding the
155
+ -- subscription/channel publication state. {§exec-stream}
156
+ DROP TRIGGER IF EXISTS log_entries_advance_subscription_publication;
157
+ CREATE TRIGGER log_entries_advance_subscription_publication
158
+ AFTER INSERT ON log_entries
159
+ WHEN NEW.subscription_publication_id IS NOT NULL
160
+ BEGIN
161
+ SELECT CASE WHEN
162
+ NEW.origin != '_plurnk'
163
+ OR NEW.op != 'READ'
164
+ OR json_type(NEW.attrs, '$.streamEnd') != 'integer'
165
+ OR json_extract(NEW.attrs, '$.streamEnd') < 0
166
+ OR json_type(NEW.attrs, '$.terminal') NOT IN ('true', 'false')
167
+ THEN RAISE(ABORT, 'subscription publication requires one canonical stream observation') END;
168
+
169
+ UPDATE subscription_publications
170
+ SET published_end = json_extract(NEW.attrs, '$.streamEnd'),
171
+ terminal_published = json_extract(NEW.attrs, '$.terminal'),
172
+ version = version + 1
173
+ WHERE id = NEW.subscription_publication_id
174
+ AND terminal_published = 0
175
+ AND (
176
+ (json_extract(NEW.attrs, '$.terminal') = 0
177
+ AND json_extract(NEW.attrs, '$.streamEnd') > published_end)
178
+ OR
179
+ (json_extract(NEW.attrs, '$.terminal') = 1
180
+ AND json_extract(NEW.attrs, '$.streamEnd') >= published_end)
181
+ );
182
+
183
+ SELECT CASE WHEN changes() != 1
184
+ THEN RAISE(ABORT, 'subscription publication transition is stale or already terminal')
185
+ END;
186
+ END;
@@ -1 +1 @@
1
- {"version":3,"file":"ClientInteractions.d.ts","sourceRoot":"","sources":["../../src/core/ClientInteractions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EACnC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAGlC,MAAM,WAAW,6BAA8B,SAAQ,2BAA2B;IAC9E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAChC;AAmCD,MAAM,CAAC,OAAO,OAAO,kBAAkB;;IAKnC,YAAY,EAAE,EAAE,EAAE,EAEjB;IAED,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,GAAG,IAAI,CAExE;IAEK,OAAO,CACT,OAAO,EAAE,wBAAwB,EACjC,GAAG,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAC9E,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,2BAA2B,CAAC,CAqEtC;IAEK,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAM3F;IAEK,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAKtE;CAiBJ"}
1
+ {"version":3,"file":"ClientInteractions.d.ts","sourceRoot":"","sources":["../../src/core/ClientInteractions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EACnC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAGlC,MAAM,WAAW,6BAA8B,SAAQ,2BAA2B;IAC9E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAChC;AAoCD,MAAM,CAAC,OAAO,OAAO,kBAAkB;;IAKnC,YAAY,EAAE,EAAE,EAAE,EAEjB;IAED,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,GAAG,IAAI,CAExE;IAEK,OAAO,CACT,OAAO,EAAE,wBAAwB,EACjC,GAAG,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAC9E,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,2BAA2B,CAAC,CAsEtC;IAEK,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3F;IAEK,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAKtE;CAiBJ"}
@@ -38,6 +38,7 @@ export default class ClientInteractions {
38
38
  });
39
39
  };
40
40
  const waiter = {
41
+ request: exact,
41
42
  settle: async (settlement) => {
42
43
  if (settled)
43
44
  return pendingFailure(interactionId);
@@ -94,6 +95,12 @@ export default class ClientInteractions {
94
95
  if (waiter === undefined)
95
96
  throw pendingFailure(interactionId);
96
97
  const exact = structuredClone(Validator.assertClientInteractionResolution(resolution));
98
+ if (exact.status === "resolved") {
99
+ const validation = Validator.validateJsonSchemaInstance(waiter.request.responseSchema, exact.payload);
100
+ if (!validation.valid) {
101
+ throw new OperationFailureError(Results.failure("interaction:resolution", "interaction-response-invalid", 400, "Response does not satisfy the pending interaction's schema.", {}, { interactionId, issues: validation.errors, retryable: false }));
102
+ }
103
+ }
97
104
  const failure = await waiter.settle({ resolution: exact });
98
105
  if (failure !== null)
99
106
  throw failure;
@@ -1 +1 @@
1
- {"version":3,"file":"ClientInteractions.js","sourceRoot":"","sources":["../../src/core/ClientInteractions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClientInteractions.js","sourceRoot":"","sources":["../../src/core/ClientInteractions.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,15 @@ import type { Db } from "./Db.ts";
2
2
  import type { Mimetypes } from "@plurnk/plurnk-mimetypes";
3
3
  import type ExecutorRegistry from "./ExecutorRegistry.ts";
4
4
  import type { InjectWorkerNotify, StreamEventNotify, WakeWorkerNotify } from "./ChannelWrite.ts";
5
- import type { ClientInteractionRequest, ClientInteractionResolution, Notice, ParsedPath, ReadStatement } from "@plurnk/plurnk-contracts";
5
+ import type { ClientInteractionRequest, ClientInteractionResolution, Notice, ParsedPath, PlurnkStatement, ReadStatement } from "@plurnk/plurnk-contracts";
6
6
  import type { PlurnkSchemeContext } from "./scheme-types.ts";
7
7
  import type { SchemeAddressCtx, SchemeCtx, SchemeResult, StoredEntryData } from "@plurnk/plurnk-schemes";
8
8
  import type LiveSubscriptions from "./LiveSubscriptions.ts";
9
9
  import type { EntryAddressResolution } from "./EntryAddressBinding.ts";
10
+ export interface ExecSource {
11
+ readonly result: SchemeResult;
12
+ readonly nativePath: string | null;
13
+ }
10
14
  export interface CoreSchemeServices {
11
15
  readonly db: Db;
12
16
  readonly mimetypes: Mimetypes;
@@ -16,11 +20,11 @@ export interface CoreSchemeServices {
16
20
  readonly wakeWorkerNotify: WakeWorkerNotify | undefined;
17
21
  readonly injectWorker: InjectWorkerNotify | undefined;
18
22
  readonly pushNotice: (workspaceId: number, workerId: number, loopId: number, notice: Notice) => void;
19
- readonly defaultChannelFor: (scheme: string, workerId: number) => string;
23
+ readonly defaultChannelFor: (scheme: string, workspaceId: number) => string;
20
24
  readonly settleDerivations: (context: PlurnkSchemeContext) => Promise<void>;
21
- readonly settleVectors: (context: PlurnkSchemeContext, hashes: readonly string[]) => Promise<void>;
22
25
  readonly resolveEntryAddress: (target: ParsedPath, ctx: PlurnkSchemeContext) => Promise<EntryAddressResolution | null>;
23
- readonly readExecSource: (statement: ReadStatement, ctx: PlurnkSchemeContext) => Promise<SchemeResult>;
26
+ readonly readExecSource: (statement: ReadStatement, ctx: PlurnkSchemeContext) => Promise<ExecSource>;
27
+ readonly capabilityDenial: (statement: PlurnkStatement, ctx: PlurnkSchemeContext) => Promise<SchemeResult | null>;
24
28
  readonly requestInteraction: (request: ClientInteractionRequest, ids: {
25
29
  workspaceId: number;
26
30
  workerId: number;
@@ -32,26 +36,25 @@ export interface CoreSchemeServices {
32
36
  export interface CoreSchemeAdapter {
33
37
  bindCore(services: CoreSchemeServices): void;
34
38
  }
35
- export interface CoreEntryAddress {
36
- readonly authority: string;
37
- readonly pathname: string;
38
- readonly ownerId: number;
39
- }
40
39
  export type CoreRepresentationResolution = {
41
40
  readonly representation: StoredEntryData;
41
+ readonly identity?: string;
42
+ readonly visibleLines?: Readonly<Record<string, readonly number[]>>;
42
43
  } | {
43
44
  readonly result: SchemeResult;
44
45
  };
45
46
  export interface CoreRepresentationProvider {
46
47
  resolveCoreRepresentation(target: ParsedPath | null, ctx: CoreSchemeCallContext): Promise<CoreRepresentationResolution>;
47
48
  }
49
+ export declare const coreRepresentationProvider: (handler: unknown) => CoreRepresentationProvider | null;
48
50
  export type CoreSchemeCallContext = SchemeAddressCtx | SchemeCtx | PlurnkSchemeContext;
49
51
  export declare abstract class CoreSchemeAdapterBase implements CoreSchemeAdapter {
50
52
  #private;
51
53
  bindCore(services: CoreSchemeServices): void;
52
54
  protected coreContext(ctx: CoreSchemeCallContext): PlurnkSchemeContext;
53
55
  protected liveSubscriptions(): LiveSubscriptions;
54
- protected readExecSource(statement: ReadStatement, ctx: CoreSchemeCallContext): Promise<SchemeResult>;
56
+ protected capabilityDenial(statement: PlurnkStatement, ctx: CoreSchemeCallContext): Promise<SchemeResult | null>;
57
+ protected readExecSource(statement: ReadStatement, ctx: CoreSchemeCallContext): Promise<ExecSource>;
55
58
  protected bindEntryAddress(target: ParsedPath, ctx: CoreSchemeCallContext): Promise<EntryAddressResolution | null>;
56
59
  }
57
60
  //# sourceMappingURL=CoreSchemeServices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CoreSchemeServices.d.ts","sourceRoot":"","sources":["../../src/core/CoreSchemeServices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoreSchemeServices.d.ts","sourceRoot":"","sources":["../../src/core/CoreSchemeServices.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ export const coreRepresentationProvider = (handler) => handler instanceof CoreSchemeAdapterBase
2
+ && typeof handler.resolveCoreRepresentation === "function"
3
+ ? handler
4
+ : null;
1
5
  export class CoreSchemeAdapterBase {
2
6
  #services;
3
7
  bindCore(services) {
@@ -13,7 +17,6 @@ export class CoreSchemeAdapterBase {
13
17
  db: services.db,
14
18
  workspaceId: ctx.workspaceId,
15
19
  workerId: ctx.workerId,
16
- functionalityWorkerId: ctx.functionalityWorkerId,
17
20
  loopId: ctx.loopId,
18
21
  turnId: ctx.turnId,
19
22
  writer: ctx.writer,
@@ -24,16 +27,15 @@ export class CoreSchemeAdapterBase {
24
27
  mimetypes: services.mimetypes,
25
28
  executors: services.executors(),
26
29
  weigh: services.weigh,
27
- defaultChannelFor: (scheme) => services.defaultChannelFor(scheme, ctx.workerId),
30
+ defaultChannelFor: (scheme) => services.defaultChannelFor(scheme, ctx.workspaceId),
28
31
  settleDerivations: () => services.settleDerivations(this.coreContext(ctx)),
29
- settleVectors: (hashes) => services.settleVectors(this.coreContext(ctx), hashes),
30
32
  pushNotice: (notice) => services.pushNotice(ctx.workspaceId, ctx.workerId, ctx.loopId, notice),
31
- requestInteraction: (request) => services.requestInteraction(request, {
33
+ requestInteraction: (request, signal = ctx.signal) => services.requestInteraction(request, {
32
34
  workspaceId: ctx.workspaceId,
33
35
  workerId: ctx.workerId,
34
36
  loopId: ctx.loopId,
35
37
  turnId: ctx.turnId,
36
- }, ctx.signal),
38
+ }, signal),
37
39
  };
38
40
  }
39
41
  liveSubscriptions() {
@@ -42,6 +44,12 @@ export class CoreSchemeAdapterBase {
42
44
  throw new Error(`${this.constructor.name}: core services are not bound`);
43
45
  return services.liveSubscriptions;
44
46
  }
47
+ capabilityDenial(statement, ctx) {
48
+ const services = this.#services;
49
+ if (services === undefined)
50
+ throw new Error(`${this.constructor.name}: core services are not bound`);
51
+ return services.capabilityDenial(statement, this.coreContext(ctx));
52
+ }
45
53
  readExecSource(statement, ctx) {
46
54
  const services = this.#services;
47
55
  if (services === undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"CoreSchemeServices.js","sourceRoot":"","sources":["../../src/core/CoreSchemeServices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoreSchemeServices.js","sourceRoot":"","sources":["../../src/core/CoreSchemeServices.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { type EntryAddressResolution as PreparedRepresentation } from "./EntryAd
7
7
  import type { DispatchResult, UnaryStatement, SchemeWithEntryAddress } from "./Dispatcher.ts";
8
8
  export default class DataStatementRunner {
9
9
  #private;
10
- constructor({ schemes, liveSubscriptions, resolveDataEntryAddress, fixedEntryOwnerId, prepareDataRepresentation, failure }: {
10
+ constructor({ schemes, liveSubscriptions, resolveDataEntryAddress, prepareDataRepresentation, failure }: {
11
11
  schemes: SchemeRegistry;
12
12
  liveSubscriptions: LiveSubscriptions;
13
13
  resolveDataEntryAddress: (arg0: {
@@ -16,8 +16,8 @@ export default class DataStatementRunner {
16
16
  handler: SchemeWithEntryAddress;
17
17
  manifest: SchemeManifest;
18
18
  ctx: PlurnkSchemeContext;
19
+ access?: "read" | "write";
19
20
  }) => Promise<PreparedRepresentation>;
20
- fixedEntryOwnerId: (manifest: SchemeManifest, ctx: PlurnkSchemeContext) => Promise<number | null>;
21
21
  prepareDataRepresentation: (arg0: {
22
22
  target: ParsedPath;
23
23
  metadata: readonly string[] | null;
@@ -1 +1 @@
1
- {"version":3,"file":"DataStatementRunner.d.ts","sourceRoot":"","sources":["../../src/core/DataStatementRunner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAGtD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAK7E,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,KAAK,sBAAsB,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACjG,OAAO,KAAK,EAAE,cAAc,EAAgB,cAAc,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE5G,MAAM,CAAC,OAAO,OAAO,mBAAmB;;IAQpC,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,OAAO,EAAE,EAAE;QACxH,OAAO,EAAE,cAAc,CAAC;QACxB,iBAAiB,EAAE,iBAAiB,CAAC;QACrC,uBAAuB,EAAE,CAAC,IAAI,EAAE;YAAE,MAAM,EAAE,UAAU,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,sBAAsB,CAAC;YAAC,QAAQ,EAAE,cAAc,CAAC;YAAC,GAAG,EAAE,mBAAmB,CAAC;SAAE,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACvM,iBAAiB,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAClG,yBAAyB,EAAE,CAAC,IAAI,EAAE;YAAE,MAAM,EAAE,UAAU,CAAC;YAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,sBAAsB,GAAG,aAAa,CAAC;YAAC,QAAQ,EAAE,cAAc,CAAC;YAAC,GAAG,EAAE,mBAAmB,CAAC;YAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;SAAE,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACjU,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,cAAc,CAAC;KACzK,EAOA;IAaK,GAAG,CACL,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,SAAS,EAAE,cAAc,EACzB,GAAG,EAAE,mBAAmB,GACzB,OAAO,CAAC,cAAc,CAAC,CAiRzB;CAEJ"}
1
+ {"version":3,"file":"DataStatementRunner.d.ts","sourceRoot":"","sources":["../../src/core/DataStatementRunner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAItD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAK7E,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,KAAK,sBAAsB,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACjG,OAAO,KAAK,EAAE,cAAc,EAAgB,cAAc,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE5G,MAAM,CAAC,OAAO,OAAO,mBAAmB;;IAOpC,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,OAAO,EAAE,EAAE;QACrG,OAAO,EAAE,cAAc,CAAC;QACxB,iBAAiB,EAAE,iBAAiB,CAAC;QACrC,uBAAuB,EAAE,CAAC,IAAI,EAAE;YAAE,MAAM,EAAE,UAAU,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,sBAAsB,CAAC;YAAC,QAAQ,EAAE,cAAc,CAAC;YAAC,GAAG,EAAE,mBAAmB,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;SAAE,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAClO,yBAAyB,EAAE,CAAC,IAAI,EAAE;YAAE,MAAM,EAAE,UAAU,CAAC;YAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,sBAAsB,GAAG,aAAa,CAAC;YAAC,QAAQ,EAAE,cAAc,CAAC;YAAC,GAAG,EAAE,mBAAmB,CAAC;YAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;SAAE,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACjU,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,cAAc,CAAC;KACzK,EAMA;IAaK,GAAG,CACL,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,SAAS,EAAE,cAAc,EACzB,GAAG,EAAE,mBAAmB,GACzB,OAAO,CAAC,cAAc,CAAC,CAwQzB;CAEJ"}
@@ -1,24 +1,23 @@
1
- import { entryCoordinateOf, renderTarget, schemeNameOf } from "./plurnk-uri.js";
1
+ import ResourceBindings from "./ResourceBindings.js";
2
+ import { entryCoordinateOf, renderTarget } from "./plurnk-uri.js";
2
3
  import { PathSyntax } from "@plurnk/plurnk-contracts";
3
4
  import { ReadProjector } from "../content/index.js";
4
5
  import SchemeCtxImpl from "./caps/SchemeCtxImpl.js";
5
6
  import EntryOps from "../schemes/_entry-ops.js";
6
7
  import EntryFind from "../schemes/_entry-find.js";
7
8
  import Results from "./results.js";
8
- import { CoreSchemeAdapterBase } from "./CoreSchemeServices.js";
9
+ import { coreRepresentationProvider } from "./CoreSchemeServices.js";
9
10
  import { InvalidOperationResultError } from "@plurnk/plurnk-schemes";
10
11
  export default class DataStatementRunner {
11
12
  #schemes;
12
13
  #liveSubscriptions;
13
14
  #resolveDataEntryAddress;
14
- #fixedEntryOwnerId;
15
15
  #prepareDataRepresentation;
16
16
  #failure;
17
- constructor({ schemes, liveSubscriptions, resolveDataEntryAddress, fixedEntryOwnerId, prepareDataRepresentation, failure }) {
17
+ constructor({ schemes, liveSubscriptions, resolveDataEntryAddress, prepareDataRepresentation, failure }) {
18
18
  this.#schemes = schemes;
19
19
  this.#liveSubscriptions = liveSubscriptions;
20
20
  this.#resolveDataEntryAddress = resolveDataEntryAddress;
21
- this.#fixedEntryOwnerId = fixedEntryOwnerId;
22
21
  this.#prepareDataRepresentation = prepareDataRepresentation;
23
22
  this.#failure = failure;
24
23
  }
@@ -48,8 +47,10 @@ export default class DataStatementRunner {
48
47
  : {};
49
48
  return this.#failure("target-scheme-required", 400, `${statement.op} requires a target scheme.`, fields, { operation: statement.op, retryable: false });
50
49
  }
51
- const manifest = this.#schemes.manifestFor(schemeName, ctx.functionalityWorkerId);
52
- const handler = this.#schemes.get(schemeName, ctx.functionalityWorkerId);
50
+ const resourceRead = statement.op === "READ" || statement.op === "FIND";
51
+ const binding = resourceRead ? await ResourceBindings.resolve(statement.target, ctx) : undefined;
52
+ const manifest = resourceRead ? binding?.manifest : this.#schemes.manifestFor(schemeName, ctx.workspaceId);
53
+ const handler = (resourceRead ? binding?.handler : this.#schemes.get(schemeName, ctx.workspaceId));
53
54
  if (handler === undefined) {
54
55
  return this.#failure("scheme-not-found", 501, `Scheme '${schemeName}' is not registered.`, {}, { scheme: schemeName, retryable: false });
55
56
  }
@@ -58,31 +59,14 @@ export default class DataStatementRunner {
58
59
  const addressedScheme = statement.target?.kind === "url" ? statement.target.scheme : null;
59
60
  if (manifest === undefined)
60
61
  throw new Error(`scheme '${schemeName}' has no manifest`);
61
- // Metadata belongs to the handler that receives it. EXEC over a
62
- // non-file resource is the one split route: exec hosts the operation,
63
- // while the canonically routed source scheme receives the metadata.
64
- // {§exec-executor-slot} — an EXEC's metadata belongs to the resource its path names when
65
- // that is a URL; otherwise the executor reads it (`{cwd=…}`).
66
- const execResource = schemeName === "exec" && statement.op === "EXEC" ? statement.target : null;
67
- const metadataScheme = execResource?.kind === "url" && execResource.scheme !== "file"
68
- ? schemeNameOf(execResource) ?? schemeName
69
- : schemeName;
70
- const metadataManifest = metadataScheme === schemeName
71
- ? manifest
72
- : this.#schemes.manifestFor(metadataScheme, ctx.functionalityWorkerId);
73
- if (statement.metadata !== null && metadataManifest === undefined) {
74
- return this.#failure("scheme-not-found", 501, `Scheme '${metadataScheme}' is not registered.`, {}, { scheme: metadataScheme, retryable: false });
75
- }
76
- if (statement.metadata !== null && metadataManifest?.metadataModifier !== true) {
77
- return this.#failure("scheme-metadata-unsupported", 400, `Scheme '${metadataScheme}' does not accept the {metadata} modifier.`, {}, {
78
- scheme: metadataScheme,
62
+ if (statement.metadata !== null && manifest.metadataModifier !== true) {
63
+ return this.#failure("scheme-metadata-unsupported", 400, `Scheme '${schemeName}' does not accept the [metadata] modifier.`, {}, {
64
+ scheme: schemeName,
79
65
  operation: statement.op,
80
66
  retryable: false,
81
67
  });
82
68
  }
83
- const publishedChannel = statement.target?.kind === "url"
84
- ? statement.target.fragment ?? manifest.defaultChannel
85
- : manifest.defaultChannel;
69
+ const publishedChannel = statement.target?.fragment ?? manifest.defaultChannel;
86
70
  const authoredCoordinate = statement.target === null
87
71
  ? { authority: "", pathname: "" }
88
72
  : entryCoordinateOf(statement.target, manifest.authority ?? "namespace");
@@ -106,12 +90,24 @@ export default class DataStatementRunner {
106
90
  const operationAddress = addressResolution?.address ?? null;
107
91
  const schemeCtx = new SchemeCtxImpl(ctx, addressedScheme ?? schemeName, manifest, this.#liveSubscriptions, {
108
92
  authority: operationAddress?.authority ?? authoredCoordinate.authority,
109
- ownerId: operationAddress?.ownerId ?? await this.#fixedEntryOwnerId(manifest, ctx),
110
93
  publishedChannel,
111
94
  });
112
- if (statement.op === "READ"
113
- && handler instanceof CoreSchemeAdapterBase
114
- && typeof handler.resolveCoreRepresentation === "function") {
95
+ let publishesLineAnchors = manifest.lineAnchors === true;
96
+ if (statement.op === "READ" && !publishesLineAnchors && manifest.category === "data"
97
+ && manifest.textEditScopes === true && manifest.writableBy.includes("model") && statement.target !== null) {
98
+ // {§line-anchor-write-authority}: initialization's producer is not the model's write grant.
99
+ const writable = await this.#resolveDataEntryAddress({
100
+ target: statement.target, routedScheme: schemeName,
101
+ handler: handler, manifest,
102
+ ctx: { ...ctx, writer: "model" }, access: "write",
103
+ });
104
+ if (writable.result !== null && writable.result.status >= 500) {
105
+ return Results.assertReadResult({ ...writable.result, content: null, mimetype: null, channel: null });
106
+ }
107
+ publishesLineAnchors = writable.address !== null;
108
+ }
109
+ const coreRepresentation = coreRepresentationProvider(handler);
110
+ if (statement.op === "READ" && coreRepresentation !== null) {
115
111
  const selectionNeutralTarget = statement.target?.kind === "url"
116
112
  ? {
117
113
  ...statement.target,
@@ -119,8 +115,7 @@ export default class DataStatementRunner {
119
115
  fragment: null,
120
116
  }
121
117
  : statement.target;
122
- const resolved = await handler
123
- .resolveCoreRepresentation(selectionNeutralTarget, schemeCtx);
118
+ const resolved = await coreRepresentation.resolveCoreRepresentation(selectionNeutralTarget, schemeCtx);
124
119
  if ("result" in resolved)
125
120
  return Results.assertReadResult(resolved.result);
126
121
  if (selectionNeutralTarget === null) {
@@ -135,10 +130,13 @@ export default class DataStatementRunner {
135
130
  return Results.assertReadResult(await ReadProjector.project({
136
131
  statement,
137
132
  manifest,
133
+ publishesLineAnchors,
138
134
  target,
139
- identity: target,
135
+ identity: resolved.identity ?? target,
140
136
  representation: resolved.representation,
137
+ ...(resolved.visibleLines === undefined ? {} : { visibleLines: resolved.visibleLines }),
141
138
  mimetypes: ctx.mimetypes,
139
+ ...(ctx.weigh === undefined ? {} : { weigh: ctx.weigh }),
142
140
  }));
143
141
  }
144
142
  if (statement.op === "READ" && manifest.category === "data") {
@@ -170,14 +168,13 @@ export default class DataStatementRunner {
170
168
  const projected = Results.assertReadResult(await EntryOps.readWorkspaceEntry(statement, ctx, { ...manifest, name: storageScheme, storedScheme: storageScheme }, resolved === null
171
169
  ? null
172
170
  : {
173
- ownerId: resolved.ownerId,
174
171
  authority: resolved.authority,
175
172
  pathname: resolved.pathname,
176
- },
173
+ }, publishesLineAnchors,
177
174
  // {§read-bytes} — a scheme that can supply the resource's bytes hands READ its source.
178
175
  resolved === null
179
176
  ? undefined
180
- : handler.byteSource?.(resolved.pathname, ctx)));
177
+ : handler.byteSource?.(resolved, schemeCtx)));
181
178
  if (projected.status !== 404 || statement.target === null)
182
179
  return projected;
183
180
  return await this.#missRefusal(handler, statement.target, ctx) ?? projected;
@@ -199,6 +196,7 @@ export default class DataStatementRunner {
199
196
  && (targetPathname === "" || targetPathname.endsWith("/"));
200
197
  const exactTarget = statement.target !== null
201
198
  && !collectionTarget
199
+ && !PathSyntax.hasGlob(authoredCoordinate.authority)
202
200
  && !PathSyntax.hasGlob(authoredCoordinate.pathname);
203
201
  if (exactTarget && statement.target !== null) {
204
202
  const prepared = await this.#prepareDataRepresentation({
@@ -232,7 +230,6 @@ export default class DataStatementRunner {
232
230
  ?? addressedScheme
233
231
  ?? schemeName;
234
232
  return Results.assert(await EntryFind.findWorkspaceEntries(statement, ctx, { ...manifest, name: storageScheme, storedScheme: storageScheme }, {
235
- ownerId: prepared.address.ownerId,
236
233
  authority: prepared.address.authority,
237
234
  pathname: prepared.address.pathname,
238
235
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"DataStatementRunner.js","sourceRoot":"","sources":["../../src/core/DataStatementRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataStatementRunner.js","sourceRoot":"","sources":["../../src/core/DataStatementRunner.ts"],"names":[],"mappings":"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"}