@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,5 +1,5 @@
1
1
  -- {§worker-loop-lifecycle} — the worker-level loop queue: enqueue at status 100,
2
- -- claim atomically (100 → 102) in FIFO order, execute, and continue draining.
2
+ -- claim eligible tasks atomically (100 → 102) in FIFO order and continue draining.
3
3
 
4
4
  -- {§worker-model-selection} — resolved model routes are append-only; one row per complete
5
5
  -- resolved tuple. Create-or-lookup is one owner (the drain boundary).
@@ -17,19 +17,31 @@ SELECT alias, provider, model, base_url FROM model_routes WHERE id = $id;
17
17
 
18
18
  -- PREP: drain_enqueue_loop
19
19
  -- Insert a loop at queued state. Sequence is per-worker, 1-based.
20
- INSERT INTO loops (worker_id, sequence, status, prompt, prompt_source, model_route_id, spawn_model_route_id, reasoning_policy, max_turns)
21
- VALUES ($worker_id, $sequence, 100, $prompt, $prompt_source, $model_route_id, $spawn_model_route_id, $reasoning_policy, $max_turns)
22
- RETURNING id;
20
+ INSERT INTO loops (worker_id, sequence, status, prompt, prompt_source, model_route_id, spawn_model_route_id, reasoning_policy, max_turns, policy, open_paths, scheduled_at, repeat_interval_ms)
21
+ VALUES ($worker_id, (SELECT COALESCE(MAX(sequence), 0) + 1 FROM loops WHERE worker_id = $worker_id), 100,
22
+ $prompt, $prompt_source, $model_route_id, $spawn_model_route_id, $reasoning_policy, $max_turns, $policy, $open_paths,
23
+ $scheduled_at, $repeat_interval_ms)
24
+ RETURNING id, scheduled_at, repeat_interval_ms;
25
+
26
+ -- PREP: drain_ready_loop
27
+ SELECT id FROM loops WHERE worker_id = $worker_id AND status = 100
28
+ AND (scheduled_at IS NULL OR wait_revision > 0 OR scheduled_at <= $now)
29
+ ORDER BY sequence LIMIT 1;
30
+
31
+ -- PREP: drain_scheduled_loops
32
+ SELECT id, wait_revision, scheduled_at FROM loops
33
+ WHERE worker_id = $worker_id AND status = 100 AND scheduled_at IS NOT NULL AND wait_revision = 0;
23
34
 
24
35
  -- PREP: drain_claim_next_loop
25
- -- Atomic claim: flip the oldest queued loop in this worker from 100 → 102 and
26
- -- return it. Returns no row when the queue is empty. The ORDER BY sequence
27
- -- + LIMIT 1 inside the subquery is the FIFO discipline.
36
+ -- Claim the oldest eligible task. A WAIT wake keeps its already-selected slot.
28
37
  UPDATE loops
29
- SET status = 102
38
+ SET status = 102,
39
+ scheduled_at = CASE WHEN repeat_interval_ms IS NULL OR wait_revision > 0 THEN scheduled_at
40
+ ELSE scheduled_at + MAX(0, CAST(($now - scheduled_at) / repeat_interval_ms AS INTEGER)) * repeat_interval_ms END
30
41
  WHERE id = (
31
42
  SELECT id FROM loops
32
43
  WHERE worker_id = $worker_id AND status = 100
44
+ AND (scheduled_at IS NULL OR wait_revision > 0 OR scheduled_at <= $now)
33
45
  ORDER BY sequence ASC
34
46
  LIMIT 1
35
47
  )
@@ -39,15 +51,21 @@ RETURNING id, sequence, prompt, policy, max_turns;
39
51
  SELECT max_turns FROM loops WHERE id = $loop_id;
40
52
 
41
53
  -- PREP: drain_current_loop_for_worker
42
- -- The worker's current NON-TERMINAL loop — active (102) or parked (202). At most one per worker
43
- -- under drain semantics. Engine.inject uses it to write the prompt entry for the right loop's
44
- -- next turn; {§methods-loop-run-fold-consistency} requires an IRC to target a PARKED loop's
45
- -- resume turn instead of orphaning it with a fresh loop. (102 preferred if both somehow exist.)
54
+ -- {§loop-wake-identity}: unaddressed arrivals choose the running loop first,
55
+ -- otherwise the oldest parked loop. Admission checks and writes that exact id.
46
56
  SELECT id, sequence FROM loops
47
57
  WHERE worker_id = $worker_id AND status IN (102, 202)
48
58
  ORDER BY (status = 102) DESC, sequence ASC
49
59
  LIMIT 1;
50
60
 
61
+ -- PREP: drain_injection_target
62
+ SELECT worker_id, sequence FROM loops WHERE id = $loop_id AND status IN (100, 102, 202);
63
+
64
+ -- PREP: drain_message_source
65
+ SELECT l.worker_id, w.workspace_id, l.status
66
+ FROM loops l JOIN workers w ON w.id = l.worker_id
67
+ WHERE l.id = $loop_id;
68
+
51
69
  -- PREP: drain_next_turn_seq_for_loop
52
70
  -- Next turn sequence for the given loop. Used by Engine.inject to compute
53
71
  -- the turn on which its next prompt frame will be published.
@@ -61,11 +79,12 @@ SELECT workspace_id FROM workers WHERE id = $worker_id;
61
79
 
62
80
  -- PREP: drain_next_prompt_ordinal_for_loop
63
81
  -- {§prompt-loop-containment} — derive the next per-loop frame ordinal from the
64
- -- greatest materialized ordinal. The initial frame reserves ordinal 1 even
82
+ -- greatest persisted delivery ordinal. The initial frame reserves ordinal 1 even
65
83
  -- before turn 1 materializes it, so an injection starts at 2.
66
- SELECT COALESCE(MAX(CAST(substr(pathname, $prefix_len + 1) AS INTEGER)), 1) + 1 AS next
67
- FROM entries
68
- WHERE scheme = 'prompt' AND authority = '' AND owner_id = $owner_id AND pathname LIKE $pattern;
84
+ SELECT COALESCE(MAX(json_extract(e.attributes, '$.ordinal')), 1) + 1 AS next
85
+ FROM entries e JOIN workers w ON w.workspace_id = e.workspace_id AND w.name = e.authority
86
+ WHERE scheme = 'prompt' AND w.id = $worker_id
87
+ AND substr(pathname, 1, $prefix_len) = substr($pattern, 1, $prefix_len);
69
88
 
70
89
  -- PREP: drain_undelivered_prompts_for_loop
71
90
  -- {§prompt-loop-containment} - the prompts the loop contains but has not yet delivered: no
@@ -73,40 +92,40 @@ WHERE scheme = 'prompt' AND authority = '' AND owner_id = $owner_id AND pathname
73
92
  -- boundary publishes each, so every arrival reaches the model exactly once.
74
93
  SELECT c.content, e.pathname, e.attributes
75
94
  FROM entries e
95
+ JOIN workers w ON w.workspace_id = e.workspace_id AND w.name = e.authority
76
96
  JOIN entry_channels c ON c.entry_id = e.id
77
97
  WHERE e.scheme = 'prompt'
78
- AND e.authority = ''
79
- AND e.owner_id = $owner_id
80
- AND e.pathname LIKE $pattern
98
+ AND w.id = $worker_id
99
+ AND substr(e.pathname, 1, $prefix_len) = substr($pattern, 1, $prefix_len)
81
100
  AND c.name = 'body'
82
101
  AND NOT EXISTS (
83
102
  SELECT 1 FROM log_entries le
84
103
  WHERE le.loop_id = $loop_id AND le.origin = '_plurnk' AND le.op = 'prompt'
85
104
  AND le.scheme = 'prompt' AND le.pathname = e.pathname
86
105
  )
87
- ORDER BY CAST(substr(e.pathname, $prefix_len + 1) AS INTEGER) ASC;
106
+ ORDER BY json_extract(e.attributes, '$.ordinal') ASC;
88
107
 
89
108
  -- PREP: drain_get_all_prompt_bodies_for_loop
90
- -- Sources the Active User Prompts section: EVERY prompt entry the
109
+ -- Sources the Active Prompts section: EVERY prompt entry the
91
110
  -- current loop holds, OLDEST first — typically one, but an active loop admits injected
92
- -- prompts (multiple prompt:///<loop>/<N> entries), all shown in order. Same pattern as
111
+ -- prompts (multiple prompt://<worker>/<loop>/<id> entries), all shown in order. Same pattern as
93
112
  -- the latest-only sibling (promptLoopPrefix pattern, built JS-side); the section renders
94
113
  -- each body in its fixed model-facing enclosure.
95
114
  SELECT c.content, e.pathname
96
115
  FROM entries e
116
+ JOIN workers w ON w.workspace_id = e.workspace_id AND w.name = e.authority
97
117
  JOIN entry_channels c ON c.entry_id = e.id
98
118
  WHERE e.scheme = 'prompt'
99
- AND e.authority = ''
100
- AND e.owner_id = $owner_id
101
- AND e.pathname LIKE $pattern
119
+ AND w.id = $worker_id
120
+ AND substr(e.pathname, 1, $prefix_len) = substr($pattern, 1, $prefix_len)
102
121
  AND c.name = 'body'
103
- ORDER BY CAST(substr(e.pathname, $prefix_len + 1) AS INTEGER) ASC;
122
+ ORDER BY json_extract(e.attributes, '$.ordinal') ASC;
104
123
 
105
124
  -- PREP: drain_orphaned_prompts_for_loop
106
125
  -- A loop can terminate before consuming a next-turn prompt injected into it
107
126
  -- (a wake-on-completion, or a runLoop-while-active prompt that landed on a turn the
108
- -- loop never reached). Engine.inject writes prompt:///<loop>/<N>;
109
- -- if the loop ended at turn K, an injected prompt at turn > K never ran.
127
+ -- loop never reached). Engine.inject writes prompt://<worker>/<loop>/<id>;
128
+ -- a prompt without a publication row has not been delivered.
110
129
  -- Return the complete orphan set oldest-first with the ended loop posture so
111
130
  -- one recovery loop can preserve frame cardinality and ordering.
112
131
  -- $pattern = promptLoopPrefix + '%', $prefix_len = length of that prefix
@@ -118,19 +137,22 @@ SELECT c.content AS body, l.policy AS policy, l.model_route_id AS model_route_id
118
137
  json_extract(e.attributes, '$.openPaths') AS open_paths,
119
138
  json_extract(e.attributes, '$.source') AS prompt_source
120
139
  FROM entries e
140
+ JOIN workers w ON w.workspace_id = e.workspace_id AND w.name = e.authority
121
141
  JOIN entry_channels c ON c.entry_id = e.id
122
142
  JOIN loops l ON l.id = $loop_id
123
143
  WHERE e.scheme = 'prompt'
124
- AND e.authority = ''
125
- AND e.owner_id = $owner_id
126
- AND e.pathname LIKE $pattern
144
+ AND l.status IN (200, 413, 429, 499, 500, 504, 508)
145
+ AND l.terminated_by IS NOT 'cancel'
146
+ AND l.sequence > (SELECT cancelled_through_sequence FROM workers WHERE id = l.worker_id)
147
+ AND w.id = $worker_id
148
+ AND substr(e.pathname, 1, $prefix_len) = substr($pattern, 1, $prefix_len)
127
149
  AND c.name = 'body'
128
150
  AND NOT EXISTS (
129
151
  SELECT 1 FROM log_entries le
130
152
  WHERE le.loop_id = $loop_id AND le.origin = '_plurnk' AND le.op = 'prompt'
131
153
  AND le.scheme = 'prompt' AND le.pathname = e.pathname
132
154
  )
133
- ORDER BY CAST(substr(e.pathname, $prefix_len + 1) AS INTEGER) ASC;
155
+ ORDER BY json_extract(e.attributes, '$.ordinal') ASC;
134
156
 
135
157
  -- PREP: drain_enqueue_orphan_recovery_loop
136
158
  -- {§prompt-loop-containment}: recovery identity is the concluded source loop.
@@ -140,7 +162,8 @@ INSERT INTO loops (
140
162
  open_paths, orphan_source_loop_id
141
163
  )
142
164
  VALUES (
143
- $worker_id, $sequence, 100, $prompt, $prompt_source, $policy, $model_route_id, $spawn_model_route_id, $reasoning_policy, $max_turns,
165
+ $worker_id, (SELECT COALESCE(MAX(sequence), 0) + 1 FROM loops WHERE worker_id = $worker_id),
166
+ 100, $prompt, $prompt_source, $policy, $model_route_id, $spawn_model_route_id, $reasoning_policy, $max_turns,
144
167
  $open_paths, $orphan_source_loop_id
145
168
  )
146
169
  ON CONFLICT (orphan_source_loop_id) DO UPDATE
@@ -154,12 +177,12 @@ RETURNING id, sequence, status;
154
177
  WITH orphaned(id, ordinal) AS MATERIALIZED (
155
178
  SELECT e.id,
156
179
  ROW_NUMBER() OVER (
157
- ORDER BY CAST(substr(e.pathname, $source_prefix_len + 1) AS INTEGER) ASC
180
+ ORDER BY json_extract(e.attributes, '$.ordinal') ASC
158
181
  )
159
182
  FROM entries e
183
+ JOIN workers w ON w.workspace_id = e.workspace_id AND w.name = e.authority
160
184
  WHERE e.scheme = 'prompt'
161
- AND e.authority = ''
162
- AND e.owner_id = $owner_id
185
+ AND w.id = $worker_id
163
186
  AND e.pathname LIKE $source_pattern
164
187
  AND EXISTS (
165
188
  SELECT 1 FROM entry_channels c
@@ -172,16 +195,16 @@ WITH orphaned(id, ordinal) AS MATERIALIZED (
172
195
  )
173
196
  )
174
197
  UPDATE entries
175
- SET pathname = $target_prefix || (
198
+ SET pathname = $target_prefix || substr(pathname, $source_prefix_len + 1),
199
+ attributes = json_set(attributes, '$.ordinal', (
176
200
  SELECT ordinal FROM orphaned WHERE orphaned.id = entries.id
177
- )
201
+ ))
178
202
  WHERE id IN (SELECT id FROM orphaned)
179
203
  RETURNING id, pathname;
180
204
 
181
205
  -- PREP: drain_find_slept_loop
182
- -- A worker's parked (slept) loop — SEND signal 202 suspends it at status 202, resumable by a wake
183
- -- ({§worker-lifecycle-wake-liveness}). A worker parks one at a time; take the most recent.
184
- SELECT id FROM loops WHERE worker_id = $worker_id AND status = 202 ORDER BY sequence DESC LIMIT 1;
206
+ -- Existence/arrival selection only; completion wakes use all eligible waits.
207
+ SELECT id FROM loops WHERE worker_id = $worker_id AND status = 202 ORDER BY sequence ASC LIMIT 1;
185
208
 
186
209
  -- PREP: drain_loop_generation_policy
187
210
  SELECT model_route_id, spawn_model_route_id, reasoning_policy FROM loops WHERE id = $loop_id;
@@ -203,7 +226,7 @@ FROM subscriptions WHERE worker_id = $worker_id AND closed_at IS NULL;
203
226
 
204
227
  -- PREP: worker_parent_id
205
228
  -- A worker's parent (worker:// spawn / fork set parent_worker_id, {§lifecycle-terms}). NULL = a root worker.
206
- -- Used at drain-exit to wake a parent that parked awaiting this child ({§worker-loop-lifecycle} topology join).
229
+ -- {§worker-lifecycle-child-wake}: direct parent of a terminal task's worker.
207
230
  SELECT parent_worker_id FROM workers WHERE id = $worker_id;
208
231
 
209
232
  -- PREP: worker_lineage_contains
@@ -1,5 +1,6 @@
1
1
  import type { Db } from "../core/Db.ts";
2
2
  import { type SchemeResult } from "../core/results.ts";
3
+ import { type ApplicationWorkerKind, type LoopLifecycle as WorkerLifecycle } from "@plurnk/plurnk-contracts";
3
4
  export interface WorkspaceRow {
4
5
  id: number;
5
6
  name: string;
@@ -12,7 +13,14 @@ export interface WorkerRow {
12
13
  created_at: string;
13
14
  origin: "model" | "client" | "_plurnk";
14
15
  parentWorkerId: number | null;
16
+ kind: ApplicationWorkerKind;
17
+ lifecycle: WorkerLifecycle;
15
18
  }
19
+ export declare const projectWorkerRow: <T extends {
20
+ latestLoopStatus: number | null;
21
+ }>(row: T) => Omit<T, "latestLoopStatus"> & {
22
+ lifecycle: WorkerLifecycle;
23
+ };
16
24
  export interface WorkerQuery {
17
25
  origin?: WorkerRow["origin"];
18
26
  parentWorkerId?: number | null;
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,16 @@ import GitMembership from "../core/git-membership.js";
8
8
  import Results, { OperationFailureError } from "../core/results.js";
9
9
  import LoopLifecycle from "../core/LoopLifecycle.js";
10
10
  import WorkerName from "../core/WorkerName.js";
11
+ import { lifecycleOfLoopStatus } from "@plurnk/plurnk-contracts";
11
12
  const envelopeFailure = (owner, code, status, detail, extensions = {}) => new OperationFailureError(Results.failure(owner, code, status, detail, {}, extensions));
13
+ // The SQL projects the latest loop's status; the shared vocabulary turns it into a lifecycle word.
14
+ export const projectWorkerRow = (row) => {
15
+ const { latestLoopStatus, ...rest } = row;
16
+ return { ...rest, lifecycle: lifecycleOfLoopStatus(latestLoopStatus) };
17
+ };
12
18
  export default class Envelope {
13
19
  // {§workspace-auto-name} — five characters from the line-anchor alphabet, no prefix:
14
- // a name says nothing about where the workspace came from. Worker names use the
15
- // workspace-local `<prefix>-<ordinal>` contract in WorkerName.
20
+ // a name says nothing about where the workspace came from.
16
21
  static AUTO_NAME_ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
17
22
  static generateWorkspaceName() {
18
23
  return Array.from(randomBytes(5), (byte) => Envelope.AUTO_NAME_ALPHABET[byte % 62]).join("");
@@ -38,7 +43,6 @@ export default class Envelope {
38
43
  await GitMembership.resolveGitMembership(db, workspace.id, undefined);
39
44
  const worker = await WorkerName.claimAuto(db, {
40
45
  workspaceId: workspace.id,
41
- prefix: "client",
42
46
  origin: "client",
43
47
  });
44
48
  return {
@@ -88,7 +92,6 @@ export default class Envelope {
88
92
  }
89
93
  return await WorkerName.claimAuto(db, {
90
94
  workspaceId,
91
- prefix: "client",
92
95
  origin: "client",
93
96
  });
94
97
  }
@@ -122,7 +125,6 @@ export default class Envelope {
122
125
  if (name === undefined) {
123
126
  return await WorkerName.claimAuto(db, {
124
127
  workspaceId,
125
- prefix: "model",
126
128
  origin: "model",
127
129
  });
128
130
  }
@@ -141,7 +143,6 @@ export default class Envelope {
141
143
  // distinguishes this default from arbitrary fresh conversations.
142
144
  const worker = await WorkerName.ensureDefaultConversation(db, {
143
145
  workspaceId,
144
- prefix: "model",
145
146
  });
146
147
  return worker.id;
147
148
  }
@@ -159,12 +160,13 @@ export default class Envelope {
159
160
  }
160
161
  static async listWorkersForWorkspace(db, workspaceId, query = {}) {
161
162
  const filterParent = Object.hasOwn(query, "parentWorkerId");
162
- return await db.envelope_list_workers_for_workspace.all({
163
+ const rows = await db.envelope_list_workers_for_workspace.all({
163
164
  workspace_id: workspaceId,
164
165
  origin: query.origin ?? null,
165
166
  filter_parent: filterParent ? 1 : 0,
166
167
  parent_worker_id: query.parentWorkerId ?? null,
167
168
  });
169
+ return rows.map(projectWorkerRow);
168
170
  }
169
171
  // {§methods-workspace-prompts}: expose root-conversation loop seeds directly,
170
172
  // without forcing clients to reconstruct prompt history from log rows.
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"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"}
@@ -33,50 +33,86 @@ INSERT INTO workers (workspace_id, name, origin)
33
33
  VALUES ($workspace_id, $name, $origin)
34
34
  RETURNING id, name, origin;
35
35
 
36
+ -- {§application-worker-observation}: kind is minted lineage (fork boundary → fork, other child →
37
+ -- work, root → conversation); latestLoopStatus feeds the shared lifecycle vocabulary in TS.
36
38
  -- PREP: envelope_get_worker_by_id
37
39
  SELECT id, name, workspace_id, created_at, origin,
38
- parent_worker_id AS parentWorkerId
40
+ parent_worker_id AS parentWorkerId,
41
+ CASE WHEN fork_event_boundary IS NOT NULL THEN 'fork'
42
+ WHEN parent_worker_id IS NOT NULL THEN 'work'
43
+ ELSE 'conversation' END AS kind,
44
+ (SELECT l.status FROM work_loops l WHERE l.worker_id = workers.id ORDER BY l.sequence DESC LIMIT 1) AS latestLoopStatus
39
45
  FROM workers
40
46
  WHERE id = $id;
41
47
 
42
48
  -- PREP: envelope_get_worker_by_name
43
49
  SELECT id, name, workspace_id, created_at, origin,
44
- parent_worker_id AS parentWorkerId
50
+ parent_worker_id AS parentWorkerId,
51
+ CASE WHEN fork_event_boundary IS NOT NULL THEN 'fork'
52
+ WHEN parent_worker_id IS NOT NULL THEN 'work'
53
+ ELSE 'conversation' END AS kind,
54
+ (SELECT l.status FROM work_loops l WHERE l.worker_id = workers.id ORDER BY l.sequence DESC LIMIT 1) AS latestLoopStatus
45
55
  FROM workers
46
56
  WHERE workspace_id = $workspace_id AND name = $name;
47
57
 
48
58
  -- PREP: envelope_list_workers_for_workspace
49
- SELECT id, name, created_at, origin, parent_worker_id AS parentWorkerId
59
+ SELECT id, name, created_at, origin, parent_worker_id AS parentWorkerId,
60
+ CASE WHEN fork_event_boundary IS NOT NULL THEN 'fork'
61
+ WHEN parent_worker_id IS NOT NULL THEN 'work'
62
+ ELSE 'conversation' END AS kind,
63
+ (SELECT l.status FROM work_loops l WHERE l.worker_id = workers.id ORDER BY l.sequence DESC LIMIT 1) AS latestLoopStatus
50
64
  FROM workers
51
65
  WHERE workspace_id = $workspace_id
52
66
  AND ($origin IS NULL OR origin = $origin)
53
67
  AND ($filter_parent = 0 OR parent_worker_id IS $parent_worker_id)
54
68
  ORDER BY created_at DESC;
55
69
 
56
- -- PREP: worker_settings_read
57
- -- {§worker-settings} — the worker's own behavioral-rules bag.
58
- SELECT settings, capability_bound FROM workers WHERE id = $id;
59
-
60
- -- PREP: worker_settings_update
61
- UPDATE workers
62
- SET settings = $settings,
63
- version = version + 1
64
- WHERE id = $id
70
+ -- PREP: workspace_capability_policy_update
71
+ -- {§workspace-capability-policy}: one atomic field replacement preserves other settings.
72
+ UPDATE workspaces SET settings = json_set(settings, '$.capabilities', json($policy))
73
+ WHERE id = $workspace_id
65
74
  RETURNING id;
66
75
 
67
76
  -- PREP: worker_generation_policy_read
68
77
  -- {§worker-model-selection}/{§worker-reasoning-policy} — one durable generation policy.
69
- SELECT model_route_id, spawn_model_route_id, reasoning_policy FROM workers WHERE id = $id;
78
+ SELECT model_route_id, spawn_model_route_id, reasoning_policy, reasoning_source FROM workers WHERE id = $id;
70
79
 
71
80
  -- PREP: worker_generation_policy_update
81
+ -- {§worker-model-selection}: test liveness in the policy write, not before it.
72
82
  UPDATE workers
73
83
  SET model_route_id = $model_route_id,
74
84
  spawn_model_route_id = $spawn_model_route_id,
75
85
  reasoning_policy = $reasoning_policy,
86
+ reasoning_source = $reasoning_source,
76
87
  version = version + 1
77
88
  WHERE id = $id
89
+ AND (
90
+ model_route_id IS NULL
91
+ OR (model_route_id IS $model_route_id
92
+ AND spawn_model_route_id IS $spawn_model_route_id
93
+ AND reasoning_policy IS $reasoning_policy)
94
+ OR NOT EXISTS (
95
+ SELECT 1 FROM loops
96
+ WHERE worker_id = workers.id AND status IN (100, 102, 202)
97
+ )
98
+ )
78
99
  RETURNING id;
79
100
 
101
+ -- PREP: worker_generation_policy_selectable
102
+ -- Avoid provider setup for a disallowed change; the write rechecks after setup.
103
+ SELECT id FROM workers
104
+ WHERE id = $id
105
+ AND (
106
+ model_route_id IS NULL
107
+ OR (model_route_id IS $model_route_id
108
+ AND spawn_model_route_id IS $spawn_model_route_id
109
+ AND reasoning_policy IS $reasoning_policy)
110
+ OR NOT EXISTS (
111
+ SELECT 1 FROM loops
112
+ WHERE worker_id = workers.id AND status IN (100, 102, 202)
113
+ )
114
+ );
115
+
80
116
  -- PREP: envelope_list_workspace_prompts
81
117
  -- {§methods-workspace-prompts}: nonempty model-root loop seeds, newest-first;
82
118
  -- spawned and forked children are not workspace-level user prompt history.
@@ -47,16 +47,6 @@ SET failure = json_object(
47
47
  )
48
48
  WHERE (SELECT state FROM inference_calls WHERE id = model_calls.id) = 'pending';
49
49
 
50
- -- PREP: recovery_fail_open_embedding_calls
51
- -- Workspace-only and turn-owned embedding inferences lose the same
52
- -- process-local owner. Their physical requests were settled above.
53
- UPDATE embedding_calls
54
- SET failure = json_object(
55
- 'name', 'OwnerVanished',
56
- 'message', 'The daemon restarted before this embedding response was durably observed; whether the provider completed the call is unknown.'
57
- )
58
- WHERE (SELECT state FROM inference_calls WHERE id = embedding_calls.id) = 'pending';
59
-
60
50
  -- PREP: recovery_fail_open_turns
61
51
  -- Every open turn has lost its process-local producer, including a narrow crash
62
52
  -- window after its loop parked or queued. Provider evidence settles first; then
@@ -131,12 +121,18 @@ SET closed_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now'),
131
121
  WHERE closed_at IS NULL;
132
122
 
133
123
  -- PREP: recovery_resume_unblocked_parks
134
- -- A 202 continuation is valid only while its worker still holds an open stream
135
- -- or a child with any unresolved loop. Requeue every now-satisfied park in one
136
- -- pass; child completion propagates the same transition to ancestors later.
124
+ -- {§loop-wake-identity}: a persisted completion beats a future clock. Otherwise
125
+ -- only an untimed, now-empty join wakes here; clock ownership is restored below
126
+ -- through the same scheduler used after a live park.
137
127
  UPDATE loops
138
- SET status = 100
128
+ SET status = 100,
129
+ wait_deadline_at = NULL,
130
+ wait_poll_interval = NULL,
131
+ wait_poll_at = NULL
139
132
  WHERE status = 202
133
+ AND (observed_wake_revision < (SELECT wake_revision FROM workers WHERE id = loops.worker_id)
134
+ OR (wait_deadline_at IS NULL
135
+ AND COALESCE(wait_poll_interval, 0) = 0
140
136
  AND NOT EXISTS (
141
137
  SELECT 1
142
138
  FROM subscriptions s
@@ -148,7 +144,7 @@ WHERE status = 202
148
144
  JOIN loops child_loop ON child_loop.worker_id = child.id
149
145
  WHERE child.parent_worker_id = loops.worker_id
150
146
  AND child_loop.status IN (100, 102, 202)
151
- );
147
+ )));
152
148
 
153
149
  -- PREP: recovery_orphan_prompt_sources
154
150
  -- {§prompt-loop-containment}: finish an absent or partially staged orphan
@@ -159,14 +155,15 @@ FROM loops source
159
155
  JOIN workers w ON w.id = source.worker_id
160
156
  LEFT JOIN loops recovery ON recovery.orphan_source_loop_id = source.id
161
157
  WHERE source.status IN (200, 413, 429, 499, 500, 504, 508)
158
+ AND source.terminated_by IS NOT 'cancel'
159
+ AND source.sequence > w.cancelled_through_sequence
162
160
  AND (recovery.id IS NULL OR recovery.status = 100)
163
161
  AND EXISTS (
164
162
  SELECT 1
165
163
  FROM entries e
166
164
  JOIN entry_channels c ON c.entry_id = e.id AND c.name = 'body'
167
165
  WHERE e.scheme = 'prompt'
168
- AND e.authority = ''
169
- AND e.owner_id = source.worker_id
166
+ AND e.workspace_id = w.workspace_id AND e.authority = w.name
170
167
  AND e.pathname LIKE '/' || source.sequence || '/%'
171
168
  AND NOT EXISTS (
172
169
  SELECT 1 FROM log_entries le
@@ -11,7 +11,6 @@ export type LogEntryWire = {
11
11
  origin: string;
12
12
  source: string | null;
13
13
  op: string | null;
14
- delimiter: string;
15
14
  signal: unknown;
16
15
  scheme: string | null;
17
16
  username: string | null;
@@ -34,5 +33,6 @@ export type LogEntryWire = {
34
33
  export default class LogEntry {
35
34
  #private;
36
35
  static fetchLogEntry(db: Db, id: number): Promise<LogEntryWire>;
36
+ static wire(row: Record<string, unknown>): LogEntryWire;
37
37
  }
38
38
  //# sourceMappingURL=logEntry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logEntry.d.ts","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAMxC,MAAM,MAAM,YAAY,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,QAAQ;;IAWzB,OAAa,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAmCpE;CACJ"}
1
+ {"version":3,"file":"logEntry.d.ts","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAMxC,MAAM,MAAM,YAAY,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,QAAQ;;IAWzB,OAAa,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAIpE;IAGD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAgCtD;CACJ"}
@@ -16,6 +16,10 @@ export default class LogEntry {
16
16
  const row = await db.log_entry_by_id.get({ id });
17
17
  if (row === undefined)
18
18
  throw new Error(`log_entries row ${id} not found`);
19
+ return LogEntry.wire(row);
20
+ }
21
+ // One hydrated row, as log_entry_by_id and log_entries_recent both select it.
22
+ static wire(row) {
19
23
  return {
20
24
  id: row.id,
21
25
  worker_id: row.worker_id,
@@ -28,7 +32,6 @@ export default class LogEntry {
28
32
  origin: row.origin,
29
33
  source: row.source,
30
34
  op: row.op,
31
- delimiter: row.delimiter,
32
35
  signal: LogEntry.#parseJsonOrNull(row.signal),
33
36
  scheme: row.scheme,
34
37
  username: row.username,
@@ -1 +1 @@
1
- {"version":3,"file":"logEntry.js","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,6DAA6D;AAC7D,yCAAyC;AAyCzC,MAAM,CAAC,OAAO,OAAO,QAAQ;IACzB,MAAM,CAAC,gBAAgB,CAAC,CAAU;QAC9B,kEAAkE;QAClE,uCAAuC;QACvC,kFAAkF;QAClF,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAC3D,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAM,EAAE,EAAU;QACzC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,GAAG,CAA0B,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1E,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;QAC1E,OAAO;YACH,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,SAAS,EAAE,GAAG,CAAC,SAAmB;YAClC,OAAO,EAAE,GAAG,CAAC,OAAiB;YAC9B,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,OAAO,EAAE,GAAG,CAAC,OAAiB;YAC9B,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,MAAM,EAAE,GAAG,CAAC,MAAuB;YACnC,EAAE,EAAE,GAAG,CAAC,EAAmB;YAC3B,SAAS,EAAE,GAAG,CAAC,SAAmB;YAClC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7C,MAAM,EAAE,GAAG,CAAC,MAAuB;YACnC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,IAAI,EAAE,GAAG,CAAC,IAAqB;YAC/B,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,KAAK,EAAE,GAAG,CAAC,KAAsB;YACjC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,UAAU,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC;YACrD,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,WAAW,EAAE,GAAG,CAAC,WAAqB;YACtC,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,WAAW,EAAE,GAAG,CAAC,WAAqB;YACtC,SAAS,EAAE,GAAG,CAAC,SAAmB;YAClC,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;YAC3C,GAAG,CAAC,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7E,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"logEntry.js","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,6DAA6D;AAC7D,yCAAyC;AAwCzC,MAAM,CAAC,OAAO,OAAO,QAAQ;IACzB,MAAM,CAAC,gBAAgB,CAAC,CAAU;QAC9B,kEAAkE;QAClE,uCAAuC;QACvC,kFAAkF;QAClF,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAC3D,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAM,EAAE,EAAU;QACzC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,GAAG,CAA0B,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1E,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,8EAA8E;IAC9E,MAAM,CAAC,IAAI,CAAC,GAA4B;QACpC,OAAO;YACH,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,SAAS,EAAE,GAAG,CAAC,SAAmB;YAClC,OAAO,EAAE,GAAG,CAAC,OAAiB;YAC9B,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,OAAO,EAAE,GAAG,CAAC,OAAiB;YAC9B,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,MAAM,EAAE,GAAG,CAAC,MAAuB;YACnC,EAAE,EAAE,GAAG,CAAC,EAAmB;YAC3B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7C,MAAM,EAAE,GAAG,CAAC,MAAuB;YACnC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,IAAI,EAAE,GAAG,CAAC,IAAqB;YAC/B,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,KAAK,EAAE,GAAG,CAAC,KAAsB;YACjC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,UAAU,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC;YACrD,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,WAAW,EAAE,GAAG,CAAC,WAAqB;YACtC,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,WAAW,EAAE,GAAG,CAAC,WAAqB;YACtC,SAAS,EAAE,GAAG,CAAC,SAAmB;YAClC,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;YAC3C,GAAG,CAAC,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7E,CAAC;IACN,CAAC;CACJ"}
@@ -6,7 +6,7 @@
6
6
  SELECT le.*, l.sequence AS loop_seq, t.sequence AS turn_seq,
7
7
  CASE
8
8
  WHEN le.origin = 'model'
9
- AND le.op = 'SEND'
9
+ AND le.op IN ('SEND', 'TASK')
10
10
  AND json_type(t.packet, '$.assistant.reasoning') = 'text'
11
11
  AND length(json_extract(t.packet, '$.assistant.reasoning')) > 0
12
12
  THEN json_extract(t.packet, '$.assistant.reasoning')
@@ -15,3 +15,27 @@ FROM log_entries le
15
15
  JOIN loops l ON l.id = le.loop_id
16
16
  JOIN turns t ON t.id = le.turn_id
17
17
  WHERE le.id = $id;
18
+
19
+ -- PREP: log_entries_recent
20
+ -- {§methods-log-read}: the newest rows a client asks for, hydrated exactly as log_entry_by_id
21
+ -- hydrates one — a page is one statement, never one statement per row.
22
+ SELECT le.*, l.sequence AS loop_seq, t.sequence AS turn_seq,
23
+ CASE
24
+ WHEN le.origin = 'model'
25
+ AND le.op IN ('SEND', 'TASK')
26
+ AND json_type(t.packet, '$.assistant.reasoning') = 'text'
27
+ AND length(json_extract(t.packet, '$.assistant.reasoning')) > 0
28
+ THEN json_extract(t.packet, '$.assistant.reasoning')
29
+ END AS reasoning
30
+ FROM log_entries le
31
+ JOIN loops l ON l.id = le.loop_id
32
+ JOIN turns t ON t.id = le.turn_id
33
+ WHERE le.worker_id = $worker_id
34
+ AND ($loop_id IS NULL OR le.loop_id = $loop_id)
35
+ AND ($turn_id IS NULL OR le.turn_id = $turn_id)
36
+ AND ($since_id IS NULL OR le.id > $since_id)
37
+ AND ($loop_seq IS NULL OR l.sequence = $loop_seq)
38
+ AND ($turn_seq IS NULL OR t.sequence = $turn_seq)
39
+ AND ($sequence IS NULL OR le.sequence = $sequence)
40
+ ORDER BY le.at DESC
41
+ LIMIT $limit;
@@ -2,7 +2,7 @@ import type Engine from "../core/Engine.ts";
2
2
  import type { Db } from "../core/Db.ts";
3
3
  export default class LoopDocs {
4
4
  #private;
5
- static evict(db: Db, workerId: number): void;
6
- static materialize(engine: Engine, db: Db, workspaceId: number, workerId: number): Promise<void>;
5
+ static evict(db: Db, workspaceId: number): void;
6
+ static materialize(engine: Engine, db: Db, workspaceId: number): Promise<void>;
7
7
  }
8
8
  //# sourceMappingURL=loopDocs.d.ts.map