@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
@@ -0,0 +1,12 @@
1
+ import type { FindStatement, ParsedPath } from "@plurnk/plurnk-contracts";
2
+ import type { SchemeManifest } from "@plurnk/plurnk-schemes";
3
+ import { CoreSchemeAdapterBase, type CoreRepresentationProvider, type CoreRepresentationResolution, type CoreSchemeCallContext } from "../core/CoreSchemeServices.ts";
4
+ import { type FindResult } from "./_entry-find.ts";
5
+ export default class TurnSource extends CoreSchemeAdapterBase implements CoreRepresentationProvider {
6
+ #private;
7
+ readonly manifest: SchemeManifest;
8
+ constructor(kind: "ops" | "reasoning");
9
+ resolveCoreRepresentation(target: ParsedPath | null, context: CoreSchemeCallContext): Promise<CoreRepresentationResolution>;
10
+ find(statement: FindStatement, context: CoreSchemeCallContext): Promise<FindResult>;
11
+ }
12
+ //# sourceMappingURL=TurnSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TurnSource.d.ts","sourceRoot":"","sources":["../../src/schemes/TurnSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,KAAK,0BAA0B,EAAE,KAAK,4BAA4B,EAAE,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAOtK,OAAO,EAAsC,KAAK,UAAU,EAA+B,MAAM,kBAAkB,CAAC;AAOpH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,qBAAsB,YAAW,0BAA0B;;IAC/F,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAIlC,YAAY,IAAI,EAAE,KAAK,GAAG,WAAW,EASpC;IAUK,yBAAyB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAiBhI;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAsDxF;CACJ"}
@@ -0,0 +1,116 @@
1
+ import { CoreSchemeAdapterBase } from "../core/CoreSchemeServices.js";
2
+ import Results from "../core/results.js";
3
+ import { contentWeight } from "../core/content-weight.js";
4
+ import LogVisibility from "../core/LogVisibility.js";
5
+ import Matcher from "../content/matcher.js";
6
+ import EntryFts from "./_entry-fts.js";
7
+ import EntryGraph from "./_entry-graph.js";
8
+ import { emptyFindFields, projectFindResult } from "./_entry-find.js";
9
+ import { pathScope, pathScopeMatches, pathFolderSummaries } from "./_path-scope.js";
10
+ import { resolveSearchCandidates } from "./_search-candidate.js";
11
+ // {§turn-source-resources}: two read-only views of the current worker's history.
12
+ export default class TurnSource extends CoreSchemeAdapterBase {
13
+ manifest;
14
+ #kind;
15
+ #mimetype;
16
+ constructor(kind) {
17
+ super();
18
+ this.#kind = kind;
19
+ this.#mimetype = kind === "ops" ? "text/vnd.plurnk" : "text/plain";
20
+ this.manifest = {
21
+ name: kind, channels: { body: this.#mimetype }, defaultChannel: "body",
22
+ category: "logging", writableBy: [], volatile: false, modelVisible: true,
23
+ folderScopes: true, textEditScopes: true,
24
+ };
25
+ }
26
+ #failure(status, code, detail) {
27
+ return Results.failure(`scheme:${this.#kind}`, code, status, detail, { content: null, mimetype: null, channel: null });
28
+ }
29
+ #local(target) {
30
+ return target !== null && (target.kind !== "url" || [target.hostname, target.username, target.password, target.port].every((value) => value === null));
31
+ }
32
+ async resolveCoreRepresentation(target, context) {
33
+ const { db, workerId } = this.coreContext(context);
34
+ const pathname = target?.kind === "url" ? target.pathname : target?.raw;
35
+ const coordinate = /^\/(\d+)\/(\d+)\/?$/.exec(pathname ?? "");
36
+ if (!this.#local(target) || coordinate === null)
37
+ return { result: this.#failure(400, "coordinate-malformed", `Use ${this.#kind}:///<loop>/<turn>.`) };
38
+ const row = await db.turn_source_read.get({
39
+ worker_id: workerId, loop_seq: Number(coordinate[1]), turn_seq: Number(coordinate[2]), kind: this.#kind,
40
+ });
41
+ if (row === undefined)
42
+ return { result: this.#failure(404, "entry-not-found", `No turn exists at ${target.raw}.`) };
43
+ // An existing turn without a source of this kind is empty, not missing: the coordinate is
44
+ // real, the provider simply returned nothing there.
45
+ return {
46
+ identity: `${this.#kind}:///${coordinate[1]}/${coordinate[2]}`,
47
+ representation: { channels: { body: { content: row.content ?? "", mimetype: this.#mimetype, state: "static" } } },
48
+ };
49
+ }
50
+ async find(statement, context) {
51
+ const core = this.coreContext(context);
52
+ const { db, workerId, mimetypes } = core;
53
+ if (mimetypes === undefined)
54
+ throw new Error("TurnSource.find requires mimetypes.");
55
+ const target = statement.target;
56
+ const failed = (status, code, detail) => ({ ...this.#failure(status, code, detail), ...emptyFindFields() });
57
+ if (!this.#local(target))
58
+ return failed(400, "coordinate-malformed", `Use ${this.#kind}:/// with loop/turn coordinates or a path pattern.`);
59
+ const pathname = target.kind === "url" ? target.pathname : target.raw;
60
+ const scope = pathScope(/^\/\d+$/.test(pathname) ? `${pathname}/` : pathname, true);
61
+ const load = () => db.turn_source_candidates.all({ worker_id: workerId, kind: this.#kind });
62
+ let all = await load();
63
+ const relation = statement.matcher?.dialect === "fts" || statement.matcher?.dialect === "graph";
64
+ if (relation && all.some(({ deep_hash }) => deep_hash === null) && core.settleDerivations !== undefined) {
65
+ await core.settleDerivations();
66
+ all = await load();
67
+ }
68
+ const selected = all.filter((row) => pathScopeMatches(scope, row.pathname));
69
+ if (scope.kind === "exact" && selected.length === 0)
70
+ return failed(404, "entry-not-found", `No ${this.#kind} source exists at ${target.raw}.`);
71
+ const projections = selected.map(({ pathname: key, content }) => ({ key, content, mimetype: this.#mimetype }));
72
+ let matches;
73
+ if (relation) {
74
+ const candidates = resolveSearchCandidates(selected.map(({ pathname: key, deep_hash: deepHash }) => ({ key, deepHash })));
75
+ const universe = resolveSearchCandidates(all.map(({ pathname: key, deep_hash: deepHash }) => ({ key, deepHash })));
76
+ if (candidates.state !== "ready" || universe.state !== "ready")
77
+ return failed(503, "search-index-incomplete", "The persistent search index does not yet cover the selected history.");
78
+ if (statement.matcher.dialect === "fts") {
79
+ const result = await EntryFts.rankCandidates(db, candidates.candidates, statement.matcher.raw.slice(1), core.signal);
80
+ if (result.status !== 200)
81
+ return { ...result, ...emptyFindFields() };
82
+ matches = result.matches;
83
+ }
84
+ else {
85
+ const result = await EntryGraph.matchCandidates(db, universe.candidates, candidates.candidates, statement.matcher.raw);
86
+ if (result.status !== 200)
87
+ return failed(result.status, "invalid-expression", "Malformed graph matcher; expected &symbol, &<symbol, or &>symbol.");
88
+ matches = Matcher.addTextRegions(result.matches.map(({ key, lineStart, lineEnd }) => ({ key, span: { lineStart, lineEnd } })), projections);
89
+ }
90
+ }
91
+ else if (statement.matcher !== null) {
92
+ const result = await Matcher.matchCandidates(statement.matcher, projections, mimetypes);
93
+ if (result.status !== 200)
94
+ return { ...result, ...emptyFindFields() };
95
+ matches = result.matches;
96
+ }
97
+ else {
98
+ matches = selected.map(({ pathname: key }) => ({ key, matches: [] }));
99
+ }
100
+ const weigh = core.weigh ?? contentWeight;
101
+ const byPath = new Map(all.map((row) => [row.pathname, row]));
102
+ const resources = matches.map(({ key, matches: evidence }) => {
103
+ const row = byPath.get(key);
104
+ return {
105
+ item: [{ path: `${this.#kind}://${key}`, mimetype: this.#mimetype, weight: weigh(row.content), lines: LogVisibility.lineCount(row.content) }],
106
+ match: { pathname: key, matches: evidence },
107
+ };
108
+ });
109
+ const folders = statement.matcher === null ? pathFolderSummaries(scope, all.map(({ pathname }) => pathname)).map(({ selector, pathnames }) => ({
110
+ path: `${this.#kind}://${selector}`, items: pathnames.length,
111
+ weight: pathnames.reduce((sum, key) => sum + weigh(byPath.get(key).content), 0),
112
+ })) : [];
113
+ return projectFindResult(statement, scope, resources, folders);
114
+ }
115
+ }
116
+ //# sourceMappingURL=TurnSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TurnSource.js","sourceRoot":"","sources":["../../src/schemes/TurnSource.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,14 @@ import type { EditResult } from "./_entry-ops.ts";
3
3
  import type { EntryData, ReadEntryResult, WriteEntryResult, DeleteEntryResult } from "./_entry-crud.ts";
4
4
  import type { FindResult } from "./_entry-find.ts";
5
5
  import type { SendStatement, FindStatement, KillStatement, ParsedPath } from "@plurnk/plurnk-contracts";
6
- import type { ResolvedEditStatement, RepresentationPreparationRequest, RepresentationPreparationResult, SchemeCtx } from "@plurnk/plurnk-schemes";
6
+ import type { EntryAddress, ResolvedEditStatement, RepresentationPreparationRequest, RepresentationPreparationResult, SchemeCtx } from "@plurnk/plurnk-schemes";
7
7
  import { CoreSchemeAdapterBase } from "../core/CoreSchemeServices.ts";
8
- import type { CoreEntryAddress, CoreSchemeCallContext } from "../core/CoreSchemeServices.ts";
8
+ import type { CoreSchemeCallContext } from "../core/CoreSchemeServices.ts";
9
9
  import { type SchemeResultBase } from "../core/results.ts";
10
10
  export default class Worker extends CoreSchemeAdapterBase {
11
11
  #private;
12
12
  static manifest: SchemeManifest;
13
- resolveEntryAddress(target: ParsedPath, ctx: CoreSchemeCallContext): Promise<CoreEntryAddress | SchemeResultBase | null>;
13
+ resolveEntryAddress(target: ParsedPath, _ctx: CoreSchemeCallContext, access?: "read" | "write"): Promise<EntryAddress | SchemeResultBase | null>;
14
14
  prepareRepresentation(request: RepresentationPreparationRequest, ctx: SchemeCtx): Promise<RepresentationPreparationResult>;
15
15
  editBatch(statements: readonly ResolvedEditStatement[], ctx: CoreSchemeCallContext): Promise<EditResult>;
16
16
  edit(statement: ResolvedEditStatement, ctx: CoreSchemeCallContext): Promise<EditResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"Worker.d.ts","sourceRoot":"","sources":["../../src/schemes/Worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,yBAAyB,CAAC;AAKnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACxG,OAAO,KAAK,EAER,qBAAqB,EACrB,gCAAgC,EAChC,+BAA+B,EAC/B,SAAS,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAcpE,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,qBAAqB;;IACrD,MAAM,CAAC,QAAQ,EAAE,cAAc,CAc7B;IA0DI,mBAAmB,CACrB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,qBAAqB,GAC3B,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,GAAG,IAAI,CAAC,CAsCrD;IAEK,qBAAqB,CACvB,OAAO,EAAE,gCAAgC,EACzC,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,+BAA+B,CAAC,CAgH1C;IAEK,SAAS,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAsG7G;IAEK,IAAI,CAAC,SAAS,EAAE,qBAAqB,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAE5F;IAIK,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiD/F;IAOK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAmCpF;IAIK,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAKtF;IAEK,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiB1G;IAEK,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAa1F;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgF1F;CACJ"}
1
+ {"version":3,"file":"Worker.d.ts","sourceRoot":"","sources":["../../src/schemes/Worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAI9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACxG,OAAO,KAAK,EAER,YAAY,EACZ,qBAAqB,EACrB,gCAAgC,EAChC,+BAA+B,EAC/B,SAAS,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOpE,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,qBAAqB;;IACrD,MAAM,CAAC,QAAQ,EAAE,cAAc,CAY7B;IA0BI,mBAAmB,CACrB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,qBAAqB,EAC3B,MAAM,GAAE,MAAM,GAAG,OAAgB,GAClC,OAAO,CAAC,YAAY,GAAG,gBAAgB,GAAG,IAAI,CAAC,CAIjD;IAEK,qBAAqB,CACvB,OAAO,EAAE,gCAAgC,EACzC,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,+BAA+B,CAAC,CAmH1C;IAEK,SAAS,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CA6D7G;IAEK,IAAI,CAAC,SAAS,EAAE,qBAAqB,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAE5F;IAGK,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmB/F;IAMK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAapF;IAGK,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAKtF;IAEK,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAS1G;IAEK,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAQ1F;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAqE1F;CACJ"}
@@ -1,40 +1,29 @@
1
1
  import LoopPolicyReader from "../core/LoopPolicyReader.js";
2
- import CapabilityPolicies from "../core/CapabilityPolicies.js";
3
- import { isGeneratedPathname } from "../core/plurnk-uri.js";
2
+ import { taskTiming } from "../core/LoopLifecycle.js";
4
3
  import EntryOps from "./_entry-ops.js";
5
4
  import EntryFind from "./_entry-find.js";
6
5
  import EntryCrud from "./_entry-crud.js";
7
6
  import EntrySend from "./_entry-send.js";
8
- import Owner from "../core/Owner.js";
9
7
  import { CoreSchemeAdapterBase } from "../core/CoreSchemeServices.js";
10
8
  import Results from "../core/results.js";
11
9
  import TerminalResult from "../core/TerminalResult.js";
12
10
  import WorkerControlAddress from "../core/WorkerControlAddress.js";
13
11
  import SchemeCtxImpl from "../core/caps/SchemeCtxImpl.js";
14
- // {§worker-scheme} — worker:// is the knowledgebase plus inter-worker control (irc=SEND; WORK/FORK are
15
- // Dispatcher.#handleWorkerControl). The authority names the OWNER ({§worker-authority-carving}):
16
- // worker:///notes.md — the COMMONS, a shared blackboard
17
- // worker://~/draft.md — the calling worker's own private space
18
- // worker://<name>/result.md — a named worker's space, readable by any worker of the workspace (#394)
19
- // Writes are own-space-and-commons only ({§worker-write-scoping}): a named authority is read-only to
20
- // the model, so nothing worker-authored can ever land under another principal.
21
- // Path-absent forms are control on the worker-as-actor: READ collects the deliverable, SEND ircs;
22
- // WORK spawns / FORK forks (Dispatcher); EDIT on the bare entity is rejected.
12
+ // {§worker-scheme} Named and shared scratch are workspace resources; pathless
13
+ // addresses target actors through the ordinary delegation and messaging lifecycle.
23
14
  export default class Worker extends CoreSchemeAdapterBase {
24
15
  static manifest = {
25
16
  name: "worker",
26
- authority: "owner",
27
- channels: { body: "text/markdown" },
17
+ authority: "resource",
18
+ // {§readable-channel} — `readable` is the source's derived projection, never written.
19
+ channels: { body: "text/markdown", readable: "text/markdown" },
28
20
  defaultChannel: "body",
29
21
  category: "data",
30
- entryOwner: "resolved",
31
- inherit: "snapshot",
32
- writableBy: ["model", "client", "_plurnk"],
22
+ writableBy: ["model", "client", "_plurnk", "plugin"],
33
23
  volatile: false,
34
24
  modelVisible: true,
35
25
  folderScopes: true,
36
26
  textEditScopes: true,
37
- example: "### EDIT0 (worker:///notes.md)\nInvestigation notes.",
38
27
  };
39
28
  // The authority from a worker:// target — "" for the empty (commons) form; null when the
40
29
  // target isn't a worker:// url at all.
@@ -51,74 +40,15 @@ export default class Worker extends CoreSchemeAdapterBase {
51
40
  const p = target.pathname ?? "";
52
41
  return p === "/" ? "" : p;
53
42
  }
54
- // {§worker-authority-carving} — resolve the authority to the owning principal. Empty = the
55
- // commons (writable — the blackboard default); `~` = the caller (writable — own space); the
56
- // every name is a workspace-wide read ({§worker-read-scope}: the parent designs the
57
- // topology by what it names to whom; the engine imposes none, #394). Unknown name → null →
58
- // 404. Writability is the {§worker-write-scoping}
59
- // law: only `~` and the commons take model writes; owner_id is engine-stamped, never model-set.
60
- static async #resolveAuthority(authority, ctx) {
61
- if (authority === "")
62
- return { ownerId: await Owner.commonsId(ctx.db, ctx.workspaceId), writable: true };
63
- if (authority === "~")
64
- return { ownerId: ctx.workerId, writable: true };
65
- const named = await ctx.db.worker_resolve_by_name.get({ workspace_id: ctx.workspaceId, name: authority });
66
- if (named === undefined)
67
- return null;
68
- if (named.id === ctx.workerId)
69
- return { ownerId: named.id, writable: false }; // `~` is the sole writable self-reference
70
- const permitted = await ctx.db.owner_shares_workspace.get({ owner_id: named.id, reader_id: ctx.workerId });
71
- return permitted === undefined ? null : { ownerId: named.id, writable: false };
72
- }
73
- // {§worker-generated-subtree} — `/_plurnk/` is Plurnk's generated subtree in every
74
- // worker space: readable like the rest of the space, writable only by `_plurnk`.
75
- static #generatedRefusal(pathname, writer) {
76
- if (writer === "_plurnk" || !isGeneratedPathname(pathname))
77
- return null;
78
- return {
79
- code: "worker-generated-read-only",
80
- status: 403,
81
- message: `${pathname} is in Plurnk's generated subtree; only Plurnk writes worker://~/_plurnk/.`,
82
- extensions: {
83
- recovery: "READ generated documents under worker://~/_plurnk/; write elsewhere in your own space or the commons.",
84
- retryable: false,
85
- },
86
- };
87
- }
88
- // Hand the statement to the shared entry helpers authority-stripped: the owner rides the
89
- // resolved owner_id, the storage pathname is the bare entry path — never authority-folded.
90
- static #stripAuthority(statement) {
91
- const t = statement.target;
92
- if (t === null || t.kind !== "url")
93
- return statement;
94
- return { ...statement, target: { ...t, hostname: null } };
43
+ static #entryAddress(authority, pathname, access) {
44
+ if (access === "write" && pathname === "")
45
+ return Results.failure("scheme:worker", "worker-entity-not-editable", 400, "A worker entity is not an editable entry.", {}, { recovery: "EDIT requires an entry path, such as worker:///notes.md.", retryable: false });
46
+ return { authority, pathname };
95
47
  }
96
- async resolveEntryAddress(target, ctx) {
48
+ async resolveEntryAddress(target, _ctx, access = "read") {
97
49
  const authority = Worker.#authority(target);
98
- if (authority === null)
99
- return null;
100
- const pathname = Worker.#entryPath(target);
101
- // The authority-only form addresses the Worker actor, not its private
102
- // entries. Bind its principal without applying entry-read ancestry;
103
- // each control operation owns its own visibility and authorization.
104
- if (pathname === "") {
105
- if (authority === "") {
106
- return { authority: "", pathname, ownerId: await Owner.commonsId(this.coreContext(ctx).db, ctx.workspaceId) };
107
- }
108
- if (authority === "~")
109
- return { authority: "", pathname, ownerId: ctx.workerId };
110
- const named = await this.coreContext(ctx).db.worker_resolve_by_name.get({
111
- workspace_id: ctx.workspaceId,
112
- name: authority,
113
- });
114
- return named === undefined
115
- ? Results.failure("scheme:worker", "worker-not-found", 404, `Worker '${authority}' does not exist in this workspace.`, {}, { worker: authority, retryable: false })
116
- : { authority: "", pathname, ownerId: named.id };
117
- }
118
- const resolved = await Worker.#resolveAuthority(authority, this.coreContext(ctx));
119
- return resolved === null
120
- ? Results.failure("scheme:worker", "worker-not-found", 404, `Worker '${authority}' does not exist in this workspace.`, {}, { worker: authority, retryable: false })
121
- : { authority: "", pathname, ownerId: resolved.ownerId };
50
+ return authority === null ? null
51
+ : Worker.#entryAddress(authority, Worker.#entryPath(target), access);
122
52
  }
123
53
  async prepareRepresentation(request, ctx) {
124
54
  if (request.metadata !== null) {
@@ -128,7 +58,7 @@ export default class Worker extends CoreSchemeAdapterBase {
128
58
  return { status: 200 };
129
59
  }
130
60
  const authority = Worker.#authority(request.target);
131
- if (authority === null || authority === "" || authority === "~") {
61
+ if (authority === null || authority === "") {
132
62
  return Results.failure("scheme:worker", "named-worker-required", 400, "A worker deliverable READ requires a named worker.", {}, {
133
63
  recovery: "Address the worker by name.",
134
64
  retryable: false,
@@ -150,10 +80,9 @@ export default class Worker extends CoreSchemeAdapterBase {
150
80
  return Results.failure("scheme:worker", "worker-not-found", 404, `Worker '${authority}' does not exist in this workspace.`, {}, { worker: authority, retryable: false });
151
81
  }
152
82
  if (!Worker.#TERMINAL_LOOP.has(row.status)) {
153
- const detail = `Worker '${authority}' is still running and has no deliverable yet.`;
154
- return Results.failure("scheme:worker", "worker-still-running", 425, detail, { awaitWorker: authority }, {
83
+ const detail = `Worker '${authority}' has unfinished work (status ${row.status}).`;
84
+ return Results.failure("scheme:worker", "worker-unfinished", 425, detail, { loopId: row.id, ...taskTiming(row) }, {
155
85
  worker: authority,
156
- recovery: "Continue once; the engine will wait for the worker's deliverable.",
157
86
  retryable: false,
158
87
  });
159
88
  }
@@ -205,46 +134,21 @@ export default class Worker extends CoreSchemeAdapterBase {
205
134
  });
206
135
  }
207
136
  const entryPath = Worker.#entryPath(statement.target);
208
- // The worker ENTITY (path-absent worker://<name>) is not EDITable — EDIT is entry only
209
- // WORK on worker://<name> spawns a worker; FORK on that address forks a branch.
210
- if (entryPath === "") {
211
- return failure("worker-entity-not-editable", 400, "A worker entity is not an editable entry.", {
212
- recovery: "Use WORK or FORK to create a worker.",
213
- retryable: false,
214
- });
215
- }
216
- const resolved = await Worker.#resolveAuthority(authority, core);
217
- if (resolved === null) {
218
- return failure("worker-not-found", 404, `Worker '${authority}' does not exist in this workspace.`, {
219
- worker: authority,
220
- retryable: false,
221
- });
222
- }
223
- if (!resolved.writable) {
224
- return failure("worker-space-read-only", 403, `Worker '${authority}' has a read-only space.`, {
225
- worker: authority,
226
- recovery: "Write to the commons or the current worker's own space.",
227
- retryable: false,
228
- });
229
- }
230
- for (const candidate of statements) {
231
- const refusal = Worker.#generatedRefusal(Worker.#entryPath(candidate.target), core.writer);
232
- if (refusal !== null)
233
- return failure(refusal.code, refusal.status, refusal.message, refusal.extensions);
234
- }
137
+ const resolved = Worker.#entryAddress(authority, entryPath, "write");
138
+ if ("status" in resolved)
139
+ return { ...resolved, entryId: null, channel: null };
235
140
  if (statements.some((candidate) => Worker.#authority(candidate.target) !== authority)) {
236
141
  return failure("edit-batch-mismatch", 400, "One EDIT batch cannot span multiple worker spaces.", {
237
142
  recovery: "Use a separate EDIT batch for each worker space.",
238
143
  retryable: false,
239
144
  });
240
145
  }
241
- return EntryOps.editWorkspaceEntryBatch(statements.map((candidate) => Worker.#stripAuthority(candidate)), core, Worker.manifest, resolved.ownerId, precondition);
146
+ return EntryOps.editWorkspaceEntryBatch(statements, core, Worker.manifest, precondition);
242
147
  }
243
148
  async edit(statement, ctx) {
244
149
  return this.editBatch([statement], ctx);
245
150
  }
246
- // KILL an ENTRY (path present). Same write-scoping as EDIT: own space + commons only. The
247
- // path-ABSENT KILL form is worker cancellation, handled in Dispatcher.#handleKill.
151
+ // Pathless KILL is worker cancellation; an entry path is ordinary scratch deletion.
248
152
  async killEntry(statement, ctx) {
249
153
  const core = this.coreContext(ctx);
250
154
  const authority = Worker.#authority(statement.target);
@@ -254,30 +158,14 @@ export default class Worker extends CoreSchemeAdapterBase {
254
158
  retryable: false,
255
159
  });
256
160
  }
257
- const resolved = await Worker.#resolveAuthority(authority, core);
258
- if (resolved === null) {
259
- return Results.failure("scheme:worker", "worker-not-found", 404, `Worker '${authority}' does not exist.`, {}, {
260
- worker: authority,
261
- retryable: false,
262
- });
263
- }
264
- if (!resolved.writable) {
265
- return Results.failure("scheme:worker", "worker-space-read-only", 403, `Worker '${authority}' has a read-only space.`, {}, {
266
- worker: authority,
267
- recovery: "KILL entries in the commons or the current worker's own space.",
268
- retryable: false,
269
- });
270
- }
271
- const refusal = Worker.#generatedRefusal(Worker.#entryPath(statement.target), core.writer);
272
- if (refusal !== null) {
273
- return Results.failure("scheme:worker", refusal.code, refusal.status, refusal.message, {}, refusal.extensions);
274
- }
275
- return EntryOps.deleteWorkspaceEntry(Worker.#stripAuthority(statement), core, Worker.manifest, resolved.ownerId);
161
+ const resolved = Worker.#entryAddress(authority, Worker.#entryPath(statement.target), "write");
162
+ if ("status" in resolved)
163
+ return resolved;
164
+ return EntryOps.deleteWorkspaceEntry(statement, core, Worker.manifest);
276
165
  }
277
- // Terminal loop statuses ({§lifecycle-terms}) — a loop here has DELIVERED; anything else is still running.
166
+ // Terminal loop statuses ({§lifecycle-terms}); all other tasks remain unfinished.
278
167
  static #TERMINAL_LOOP = new Set([200, 413, 429, 499, 500, 504, 508]);
279
- // FIND draws from the resolved principal's space alone: worker:///** the commons,
280
- // worker://~/** your own, worker://<name>/** a named space (ancestry-gated like READ).
168
+ // {§worker-read-scope} The requested namespace scopes discovery, not access.
281
169
  async find(statement, ctx) {
282
170
  const core = this.coreContext(ctx);
283
171
  const authority = Worker.#authority(statement.target);
@@ -290,56 +178,24 @@ export default class Worker extends CoreSchemeAdapterBase {
290
178
  retryable: false,
291
179
  });
292
180
  }
293
- const resolved = await Worker.#resolveAuthority(authority, core);
294
- if (resolved === null) {
295
- return Results.failure("scheme:worker", "worker-not-found", 404, `Worker '${authority}' does not exist in this workspace.`, {
296
- content: null, mimetype: null, results: [], itemsWeightTotal: 0, returnedItemsWeightTotal: 0,
297
- matchingPathCount: 0, matchLocationCount: 0,
298
- }, {
299
- worker: authority,
300
- retryable: false,
301
- });
302
- }
303
- const found = await EntryFind.findWorkspaceEntries(Worker.#stripAuthority(statement), core, Worker.manifest, {
304
- ownerId: resolved.ownerId,
305
- });
306
- // The catalog renders the empty-authority form; a non-empty queried authority re-applies —
307
- // in results AND the serialized content the packet renders — so every path the model sees
308
- // is the address it typed (worker://~/x, worker://beta/x).
309
- if (authority === "")
310
- return found;
311
- const reface = (p) => p.replace(/^worker:\/\/\//, `worker://${authority}/`);
312
- const results = found.results.map((result) => Array.isArray(result)
313
- ? result.map((item) => ({ ...item, path: reface(item.path) }))
314
- : result);
315
- const content = found.content === null ? null : found.content.replaceAll("worker:///", `worker://${authority}/`);
316
- return { ...found, results, content };
181
+ return EntryFind.findWorkspaceEntries(statement, core, Worker.manifest, { authority });
317
182
  }
318
- // The entry-copy seam ({§worker-authority-carving}) — pathname-keyed, COMMONS-scoped: the
319
- // dispatcher refuses a non-empty authority upstream, so these faces only ever see worker:///….
183
+ // Bound contexts carry the exact resource authority through transfers.
320
184
  async readEntry(pathname, ctx) {
321
185
  const core = this.coreContext(ctx);
322
186
  return "entries" in ctx
323
187
  ? ctx.entries.read(pathname)
324
- : EntryCrud.readEntry({ authority: "", pathname }, core, Worker.manifest.name, core.workerId);
188
+ : EntryCrud.readEntry({ authority: "", pathname }, core, Worker.manifest.name);
325
189
  }
326
190
  async writeEntry(pathname, entry, ctx) {
327
- const refusal = Worker.#generatedRefusal(pathname, this.coreContext(ctx).writer);
328
- if (refusal !== null) {
329
- return Results.failure("scheme:worker", refusal.code, refusal.status, refusal.message, { created: false, entryId: null }, refusal.extensions);
330
- }
331
191
  return "entries" in ctx
332
192
  ? ctx.entries.write(pathname, entry)
333
- : EntryCrud.writeEntry({ authority: "", pathname }, entry, this.coreContext(ctx), Worker.manifest.name, this.coreContext(ctx).workerId);
193
+ : EntryCrud.writeEntry({ authority: "", pathname }, entry, this.coreContext(ctx), Worker.manifest.name);
334
194
  }
335
195
  async deleteEntry(pathname, ctx) {
336
- const refusal = Worker.#generatedRefusal(pathname, this.coreContext(ctx).writer);
337
- if (refusal !== null) {
338
- return Results.failure("scheme:worker", refusal.code, refusal.status, refusal.message, {}, refusal.extensions);
339
- }
340
196
  return "entries" in ctx
341
197
  ? ctx.entries.delete(pathname)
342
- : EntryCrud.deleteEntry({ authority: "", pathname }, this.coreContext(ctx), Worker.manifest.name, this.coreContext(ctx).workerId);
198
+ : EntryCrud.deleteEntry({ authority: "", pathname }, this.coreContext(ctx), Worker.manifest.name);
343
199
  }
344
200
  async send(statement, ctx) {
345
201
  const core = this.coreContext(ctx);
@@ -350,53 +206,50 @@ export default class Worker extends CoreSchemeAdapterBase {
350
206
  retryable: false,
351
207
  });
352
208
  }
353
- // An ENTRY-path SEND is the entry-SEND law (410 deletes, 499 cancels, else 501) on the
354
- // resolved principal; write-scoping holds — a named space takes no 410.
209
+ // An entry is not a message recipient ({§send-dispatch-entry-schemes-501}).
355
210
  if (Worker.#entryPath(statement.target) !== "") {
356
- const resolved = await Worker.#resolveAuthority(authority, core);
357
- if (resolved === null) {
358
- return Results.failure("scheme:worker", "worker-not-found", 404, `Worker '${authority}' does not exist in this workspace.`, {}, {
359
- worker: authority,
360
- retryable: false,
361
- });
362
- }
363
- return EntrySend.sendToWorkspaceEntry(Worker.#stripAuthority(statement), core, Worker.manifest, resolved.ownerId);
211
+ return EntrySend.sendToWorkspaceEntry(statement, core, Worker.manifest);
364
212
  }
365
213
  const address = WorkerControlAddress.resolve(statement.target, "SEND");
366
214
  if (!address.ok)
367
215
  return address.result;
216
+ const marks = statement.lineMarker?.marks;
217
+ const [delay, interval] = marks ?? [];
218
+ const maxMinutes = Math.floor((8.64e15 - Date.now()) / 60_000);
219
+ if (marks !== undefined && (marks.length < 1 || marks.length > 2
220
+ || delay === undefined || !Number.isSafeInteger(delay) || delay < 0
221
+ || (interval !== undefined && (!Number.isSafeInteger(interval) || interval <= 0))
222
+ || delay + (interval ?? 0) > maxMinutes)) {
223
+ return Results.failure("scheme:worker", "invalid-schedule", 400, "Worker SEND timing is <delay[,interval]> in whole minutes: delay >= 0, interval > 0, within the supported date range.", {}, { retryable: false });
224
+ }
368
225
  const controlAuthority = address.authority;
369
226
  if (core.injectWorker === undefined)
370
227
  throw new Error("worker.send: injectWorker capability absent");
371
- let workerId = core.workerId;
372
- if (controlAuthority !== "~") {
373
- const row = await core.db.worker_resolve_by_name.get({ workspace_id: core.workspaceId, name: controlAuthority });
374
- if (row === undefined) {
375
- return Results.failure("scheme:worker", "worker-not-found", 404, `Worker '${controlAuthority}' does not exist in this workspace.`, {}, {
376
- worker: controlAuthority,
377
- retryable: false,
378
- });
379
- }
380
- workerId = row.id;
228
+ const row = await core.db.worker_resolve_by_name.get({ workspace_id: core.workspaceId, name: controlAuthority });
229
+ if (row === undefined) {
230
+ return Results.failure("scheme:worker", "worker-not-found", 404, `Worker '${controlAuthority}' does not exist in this workspace.`, {}, {
231
+ worker: controlAuthority,
232
+ retryable: false,
233
+ });
381
234
  }
235
+ const workerId = row.id;
382
236
  const body = statement.body;
383
237
  const prompt = body === null ? "" : typeof body === "string" ? body : body.raw;
384
- // {§worker-delegation-inherits-policy} — an irc that RESUMES a parked loop keeps that loop's
385
- // own policy (inject ignores these there); a fresh loop raised by the message acts on
386
- // the sender's behalf and carries the sender's authority.
387
- const policy = await LoopPolicyReader.read(core.db, core.loopId);
388
- const freshLoopPolicy = {
389
- ...policy,
390
- capabilities: await CapabilityPolicies.delegationBound(core.db, core.workspaceId, core.workerId, policy),
391
- };
392
- await core.injectWorker({
238
+ // {§worker-delegation-inherits-policy} Only fresh loops inherit proposal
239
+ // disposition; resumed loops retain their immutable policy.
240
+ const freshLoopPolicy = await LoopPolicyReader.read(core.db, core.loopId);
241
+ const accepted = await core.injectWorker({
393
242
  workspaceId: core.workspaceId,
394
243
  workerId,
395
- sourceWorkerId: core.workerId,
244
+ sourceLoopId: core.loopId,
396
245
  prompt,
397
246
  freshLoopPolicy,
247
+ ...(delay === undefined ? {} : { schedule: {
248
+ delayMs: delay * 60_000,
249
+ ...(interval === undefined ? {} : { intervalMs: interval * 60_000 }),
250
+ } }),
398
251
  });
399
- return { status: 200 };
252
+ return { status: 200, ...(delay === undefined ? {} : accepted) };
400
253
  }
401
254
  }
402
255
  //# sourceMappingURL=Worker.js.map