@plurnk/plurnk-service 1.16.5 → 1.18.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 (661) hide show
  1. package/.env.defaults +140 -246
  2. package/INSTALL.md +84 -138
  3. package/README.md +10 -6
  4. package/SPEC.md +2468 -1694
  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 +4 -1
  44. package/dist/content/read-resolve.d.ts.map +1 -1
  45. package/dist/content/read-resolve.js +42 -7
  46. package/dist/content/read-resolve.js.map +1 -1
  47. package/dist/core/AdmittedTurnExecutor.d.ts +2 -5
  48. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
  49. package/dist/core/AdmittedTurnExecutor.js +96 -88
  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 +122 -93
  66. package/dist/core/CapabilityResolver.js.map +1 -1
  67. package/dist/core/ChannelWrite.d.ts +15 -11
  68. package/dist/core/ChannelWrite.d.ts.map +1 -1
  69. package/dist/core/ChannelWrite.js +12 -13
  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 +208 -161
  82. package/dist/core/DataStatementRunner.js.map +1 -1
  83. package/dist/core/Dispatcher.d.ts +24 -26
  84. package/dist/core/Dispatcher.d.ts.map +1 -1
  85. package/dist/core/Dispatcher.js +381 -232
  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 +74 -164
  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 +21 -0
  114. package/dist/core/ExecutorRegistry.d.ts +11 -5
  115. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  116. package/dist/core/ExecutorRegistry.js +37 -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 +44 -12
  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 +12 -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 +31 -36
  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 +161 -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.d.ts.map +1 -1
  162. package/dist/core/ModelCall.js +2 -6
  163. package/dist/core/ModelCall.js.map +1 -1
  164. package/dist/core/ModelCall.sql +41 -0
  165. package/dist/core/MutationEffects.d.ts +5 -3
  166. package/dist/core/MutationEffects.d.ts.map +1 -1
  167. package/dist/core/MutationEffects.js +10 -28
  168. package/dist/core/MutationEffects.js.map +1 -1
  169. package/dist/core/NativeContent.d.ts +6 -0
  170. package/dist/core/NativeContent.d.ts.map +1 -0
  171. package/dist/core/NativeContent.js +16 -0
  172. package/dist/core/NativeContent.js.map +1 -0
  173. package/dist/core/NativeContent.sql +6 -0
  174. package/dist/core/NoticeChannel.js +1 -1
  175. package/dist/core/NoticeChannel.js.map +1 -1
  176. package/dist/core/OperatorConfig.js +5 -5
  177. package/dist/core/OperatorConfig.js.map +1 -1
  178. package/dist/core/PacketBuilder.d.ts +8 -5
  179. package/dist/core/PacketBuilder.d.ts.map +1 -1
  180. package/dist/core/PacketBuilder.js +117 -81
  181. package/dist/core/PacketBuilder.js.map +1 -1
  182. package/dist/core/PacketBuilder.sql +146 -0
  183. package/dist/core/PatternSelection.d.ts +28 -0
  184. package/dist/core/PatternSelection.d.ts.map +1 -0
  185. package/dist/core/PatternSelection.js +42 -0
  186. package/dist/core/PatternSelection.js.map +1 -0
  187. package/dist/core/ProblemLog.d.ts.map +1 -1
  188. package/dist/core/ProblemLog.js +0 -1
  189. package/dist/core/ProblemLog.js.map +1 -1
  190. package/dist/core/PromptFrames.d.ts +12 -0
  191. package/dist/core/PromptFrames.d.ts.map +1 -0
  192. package/dist/core/PromptFrames.js +28 -0
  193. package/dist/core/PromptFrames.js.map +1 -0
  194. package/dist/core/ProposalLifecycle.d.ts +0 -1
  195. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  196. package/dist/core/ProposalLifecycle.js +26 -23
  197. package/dist/core/ProposalLifecycle.js.map +1 -1
  198. package/dist/core/ProposalLifecycle.sql +33 -0
  199. package/dist/core/ProviderInstantiate.d.ts +1 -1
  200. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  201. package/dist/core/ProviderInstantiate.js +7 -14
  202. package/dist/core/ProviderInstantiate.js.map +1 -1
  203. package/dist/core/ReasoningView.d.ts +9 -0
  204. package/dist/core/ReasoningView.d.ts.map +1 -0
  205. package/dist/core/ReasoningView.js +47 -0
  206. package/dist/core/ReasoningView.js.map +1 -0
  207. package/dist/core/ResourceBindings.d.ts +16 -0
  208. package/dist/core/ResourceBindings.d.ts.map +1 -0
  209. package/dist/core/ResourceBindings.js +45 -0
  210. package/dist/core/ResourceBindings.js.map +1 -0
  211. package/dist/core/ResourceMutations.d.ts +5 -8
  212. package/dist/core/ResourceMutations.d.ts.map +1 -1
  213. package/dist/core/ResourceMutations.js +6 -7
  214. package/dist/core/ResourceMutations.js.map +1 -1
  215. package/dist/core/ResourceSelector.d.ts +2 -2
  216. package/dist/core/ResourceSelector.d.ts.map +1 -1
  217. package/dist/core/ResourceSelector.js +122 -62
  218. package/dist/core/ResourceSelector.js.map +1 -1
  219. package/dist/core/ResourceTransfers.d.ts +4 -2
  220. package/dist/core/ResourceTransfers.d.ts.map +1 -1
  221. package/dist/core/ResourceTransfers.js +95 -26
  222. package/dist/core/ResourceTransfers.js.map +1 -1
  223. package/dist/core/RuntimeWorker.d.ts +5 -0
  224. package/dist/core/RuntimeWorker.d.ts.map +1 -0
  225. package/dist/core/RuntimeWorker.js +15 -0
  226. package/dist/core/RuntimeWorker.js.map +1 -0
  227. package/dist/core/RuntimeWorker.sql +11 -0
  228. package/dist/core/SchemeRegistry.d.ts +12 -16
  229. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  230. package/dist/core/SchemeRegistry.js +59 -85
  231. package/dist/core/SchemeRegistry.js.map +1 -1
  232. package/dist/core/StoredPacket.d.ts +6 -1
  233. package/dist/core/StoredPacket.d.ts.map +1 -1
  234. package/dist/core/StoredPacket.js +30 -10
  235. package/dist/core/StoredPacket.js.map +1 -1
  236. package/dist/core/StrikeRail.d.ts +11 -8
  237. package/dist/core/StrikeRail.d.ts.map +1 -1
  238. package/dist/core/StrikeRail.js +63 -114
  239. package/dist/core/StrikeRail.js.map +1 -1
  240. package/dist/core/StrikeRail.sql +12 -0
  241. package/dist/core/TerminalResult.d.ts +1 -1
  242. package/dist/core/TerminalResult.d.ts.map +1 -1
  243. package/dist/core/TerminalResult.js +2 -2
  244. package/dist/core/TerminalResult.js.map +1 -1
  245. package/dist/core/TokenCalibration.d.ts +1 -6
  246. package/dist/core/TokenCalibration.d.ts.map +1 -1
  247. package/dist/core/TokenCalibration.js +13 -9
  248. package/dist/core/TokenCalibration.js.map +1 -1
  249. package/dist/core/TokenCalibration.sql +15 -0
  250. package/dist/core/ToolInputSchema.d.ts +6 -0
  251. package/dist/core/ToolInputSchema.d.ts.map +1 -0
  252. package/dist/core/ToolInputSchema.js +43 -0
  253. package/dist/core/ToolInputSchema.js.map +1 -0
  254. package/dist/core/ToolResources.d.ts.map +1 -1
  255. package/dist/core/ToolResources.js +77 -51
  256. package/dist/core/ToolResources.js.map +1 -1
  257. package/dist/core/Turn.d.ts +5 -2
  258. package/dist/core/Turn.d.ts.map +1 -1
  259. package/dist/core/Turn.js +13 -11
  260. package/dist/core/Turn.js.map +1 -1
  261. package/dist/core/Turn.sql +25 -39
  262. package/dist/core/{SendBroadcastHandler.d.ts → TurnDispositionHandler.d.ts} +24 -18
  263. package/dist/core/TurnDispositionHandler.d.ts.map +1 -0
  264. package/dist/core/TurnDispositionHandler.js +206 -0
  265. package/dist/core/TurnDispositionHandler.js.map +1 -0
  266. package/dist/core/TurnMaterialization.d.ts +2 -3
  267. package/dist/core/TurnMaterialization.d.ts.map +1 -1
  268. package/dist/core/TurnMaterialization.js +47 -24
  269. package/dist/core/TurnMaterialization.js.map +1 -1
  270. package/dist/core/TurnMaterialization.sql +44 -0
  271. package/dist/core/TurnOps.d.ts.map +1 -1
  272. package/dist/core/TurnOps.js +8 -64
  273. package/dist/core/TurnOps.js.map +1 -1
  274. package/dist/core/TurnRunner.d.ts +8 -15
  275. package/dist/core/TurnRunner.d.ts.map +1 -1
  276. package/dist/core/TurnRunner.js +1175 -1317
  277. package/dist/core/TurnRunner.js.map +1 -1
  278. package/dist/core/TurnRunner.sql +74 -0
  279. package/dist/core/TurnSources.sql +39 -0
  280. package/dist/core/WorkerControlAddress.d.ts +1 -0
  281. package/dist/core/WorkerControlAddress.d.ts.map +1 -1
  282. package/dist/core/WorkerControlAddress.js +5 -0
  283. package/dist/core/WorkerControlAddress.js.map +1 -1
  284. package/dist/core/WorkerControlHandler.d.ts +1 -3
  285. package/dist/core/WorkerControlHandler.d.ts.map +1 -1
  286. package/dist/core/WorkerControlHandler.js +64 -48
  287. package/dist/core/WorkerControlHandler.js.map +1 -1
  288. package/dist/core/WorkerName.d.ts +11 -12
  289. package/dist/core/WorkerName.d.ts.map +1 -1
  290. package/dist/core/WorkerName.js +40 -47
  291. package/dist/core/WorkerName.js.map +1 -1
  292. package/dist/core/WorkerName.sql +7 -10
  293. package/dist/core/WorkspaceGate.d.ts +1 -1
  294. package/dist/core/WorkspaceGate.d.ts.map +1 -1
  295. package/dist/core/WorkspaceGate.js +33 -10
  296. package/dist/core/WorkspaceGate.js.map +1 -1
  297. package/dist/core/ambient.sql +236 -0
  298. package/dist/core/attachments.d.ts +2 -1
  299. package/dist/core/attachments.d.ts.map +1 -1
  300. package/dist/core/attachments.js +5 -4
  301. package/dist/core/attachments.js.map +1 -1
  302. package/dist/core/caps/CapsResolve.d.ts +2 -3
  303. package/dist/core/caps/CapsResolve.d.ts.map +1 -1
  304. package/dist/core/caps/CapsResolve.js +5 -5
  305. package/dist/core/caps/CapsResolve.js.map +1 -1
  306. package/dist/core/caps/DbChannelCaps.d.ts +1 -1
  307. package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
  308. package/dist/core/caps/DbChannelCaps.js +4 -6
  309. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  310. package/dist/core/caps/DbEntryCaps.d.ts +2 -1
  311. package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
  312. package/dist/core/caps/DbEntryCaps.js +11 -17
  313. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  314. package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
  315. package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
  316. package/dist/core/caps/DbNotifyCaps.js +3 -5
  317. package/dist/core/caps/DbNotifyCaps.js.map +1 -1
  318. package/dist/core/caps/DbProjectionCaps.js +1 -1
  319. package/dist/core/caps/DbProjectionCaps.js.map +1 -1
  320. package/dist/core/caps/DbSubscriptionCaps.d.ts +1 -1
  321. package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
  322. package/dist/core/caps/DbSubscriptionCaps.js +5 -7
  323. package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
  324. package/dist/core/caps/SchemeCtxImpl.d.ts +0 -2
  325. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  326. package/dist/core/caps/SchemeCtxImpl.js +4 -20
  327. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  328. package/dist/core/env-catalog.d.ts +28 -0
  329. package/dist/core/env-catalog.d.ts.map +1 -0
  330. package/dist/core/env-catalog.js +99 -0
  331. package/dist/core/env-catalog.js.map +1 -0
  332. package/dist/core/env-defaults.d.ts.map +1 -1
  333. package/dist/core/env-defaults.js +4 -2
  334. package/dist/core/env-defaults.js.map +1 -1
  335. package/dist/core/file-materialization.d.ts +4 -1
  336. package/dist/core/file-materialization.d.ts.map +1 -1
  337. package/dist/core/file-materialization.js +15 -1
  338. package/dist/core/file-materialization.js.map +1 -1
  339. package/dist/core/fork.d.ts +1 -6
  340. package/dist/core/fork.d.ts.map +1 -1
  341. package/dist/core/fork.js +9 -153
  342. package/dist/core/fork.js.map +1 -1
  343. package/dist/core/fork.sql +162 -185
  344. package/dist/core/git-env.d.ts +1 -0
  345. package/dist/core/git-env.d.ts.map +1 -1
  346. package/dist/core/git-env.js +39 -2
  347. package/dist/core/git-env.js.map +1 -1
  348. package/dist/core/git-membership.d.ts.map +1 -1
  349. package/dist/core/git-membership.js +64 -48
  350. package/dist/core/git-membership.js.map +1 -1
  351. package/dist/core/git-state.d.ts.map +1 -1
  352. package/dist/core/git-state.js +26 -20
  353. package/dist/core/git-state.js.map +1 -1
  354. package/dist/core/glob_match.d.ts +4 -0
  355. package/dist/core/glob_match.d.ts.map +1 -0
  356. package/dist/core/glob_match.js +7 -0
  357. package/dist/core/glob_match.js.map +1 -0
  358. package/dist/core/maintenance.sql +6 -0
  359. package/dist/core/mutation-types.d.ts +7 -28
  360. package/dist/core/mutation-types.d.ts.map +1 -1
  361. package/dist/core/operation-target-groups.d.ts.map +1 -1
  362. package/dist/core/operation-target-groups.js +2 -1
  363. package/dist/core/operation-target-groups.js.map +1 -1
  364. package/dist/core/packet-inject.d.ts.map +1 -1
  365. package/dist/core/packet-inject.js +2 -3
  366. package/dist/core/packet-inject.js.map +1 -1
  367. package/dist/core/packet-wire.d.ts +8 -6
  368. package/dist/core/packet-wire.d.ts.map +1 -1
  369. package/dist/core/packet-wire.js +381 -388
  370. package/dist/core/packet-wire.js.map +1 -1
  371. package/dist/core/plurnk-uri.d.ts +1 -1
  372. package/dist/core/plurnk-uri.d.ts.map +1 -1
  373. package/dist/core/plurnk-uri.js +5 -12
  374. package/dist/core/plurnk-uri.js.map +1 -1
  375. package/dist/core/scheme-types.d.ts +3 -3
  376. package/dist/core/scheme-types.d.ts.map +1 -1
  377. package/dist/core/scheme-types.js.map +1 -1
  378. package/dist/core/sha256.d.ts +4 -0
  379. package/dist/core/sha256.d.ts.map +1 -0
  380. package/dist/core/sha256.js +6 -0
  381. package/dist/core/sha256.js.map +1 -0
  382. package/dist/core/teaching.js +1 -1
  383. package/dist/core/teaching.js.map +1 -1
  384. package/dist/core/turn-scheduler.d.ts.map +1 -1
  385. package/dist/core/turn-scheduler.js +5 -18
  386. package/dist/core/turn-scheduler.js.map +1 -1
  387. package/dist/core/turn-signals.d.ts +0 -6
  388. package/dist/core/turn-signals.d.ts.map +1 -1
  389. package/dist/core/turn-signals.js +1 -7
  390. package/dist/core/turn-signals.js.map +1 -1
  391. package/dist/core/worker-ops.sql +15 -22
  392. package/dist/core/workspace-settings.d.ts.map +1 -1
  393. package/dist/core/workspace-settings.js +18 -2
  394. package/dist/core/workspace-settings.js.map +1 -1
  395. package/dist/core/workspace-settings.sql +6 -0
  396. package/dist/digest/Digest.d.ts.map +1 -1
  397. package/dist/digest/Digest.js +30 -91
  398. package/dist/digest/Digest.js.map +1 -1
  399. package/dist/digest/DigestRender.d.ts +1 -0
  400. package/dist/digest/DigestRender.d.ts.map +1 -1
  401. package/dist/digest/DigestRender.js +58 -62
  402. package/dist/digest/DigestRender.js.map +1 -1
  403. package/dist/digest/digest-rows.d.ts +16 -32
  404. package/dist/digest/digest-rows.d.ts.map +1 -1
  405. package/dist/digest/digest.sql +54 -20
  406. package/dist/schemes/Exec.d.ts +6 -12
  407. package/dist/schemes/Exec.d.ts.map +1 -1
  408. package/dist/schemes/Exec.js +318 -215
  409. package/dist/schemes/Exec.js.map +1 -1
  410. package/dist/schemes/ExecOutputScheme.d.ts +8 -6
  411. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  412. package/dist/schemes/ExecOutputScheme.js +33 -61
  413. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  414. package/dist/schemes/ExecScheduler.js +2 -2
  415. package/dist/schemes/ExecScheduler.js.map +1 -1
  416. package/dist/schemes/ExecutionInput.d.ts +12 -0
  417. package/dist/schemes/ExecutionInput.d.ts.map +1 -0
  418. package/dist/schemes/ExecutionInput.js +94 -0
  419. package/dist/schemes/ExecutionInput.js.map +1 -0
  420. package/dist/schemes/File.d.ts +5 -2
  421. package/dist/schemes/File.d.ts.map +1 -1
  422. package/dist/schemes/File.js +62 -91
  423. package/dist/schemes/File.js.map +1 -1
  424. package/dist/schemes/Log.d.ts.map +1 -1
  425. package/dist/schemes/Log.js +84 -79
  426. package/dist/schemes/Log.js.map +1 -1
  427. package/dist/schemes/Log.sql +183 -15
  428. package/dist/schemes/Prompt.d.ts.map +1 -1
  429. package/dist/schemes/Prompt.js +3 -12
  430. package/dist/schemes/Prompt.js.map +1 -1
  431. package/dist/schemes/QuestionTool.d.ts +5 -0
  432. package/dist/schemes/QuestionTool.d.ts.map +1 -1
  433. package/dist/schemes/QuestionTool.js +7 -15
  434. package/dist/schemes/QuestionTool.js.map +1 -1
  435. package/dist/schemes/Skill.d.ts +12 -7
  436. package/dist/schemes/Skill.d.ts.map +1 -1
  437. package/dist/schemes/Skill.js +149 -21
  438. package/dist/schemes/Skill.js.map +1 -1
  439. package/dist/schemes/TurnSource.d.ts +12 -0
  440. package/dist/schemes/TurnSource.d.ts.map +1 -0
  441. package/dist/schemes/TurnSource.js +117 -0
  442. package/dist/schemes/TurnSource.js.map +1 -0
  443. package/dist/schemes/Worker.d.ts +3 -3
  444. package/dist/schemes/Worker.d.ts.map +1 -1
  445. package/dist/schemes/Worker.js +61 -208
  446. package/dist/schemes/Worker.js.map +1 -1
  447. package/dist/schemes/_entry-crud.d.ts +12 -15
  448. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  449. package/dist/schemes/_entry-crud.js +63 -63
  450. package/dist/schemes/_entry-crud.js.map +1 -1
  451. package/dist/schemes/_entry-crud.sql +159 -45
  452. package/dist/schemes/_entry-find.d.ts +1 -3
  453. package/dist/schemes/_entry-find.d.ts.map +1 -1
  454. package/dist/schemes/_entry-find.js +111 -112
  455. package/dist/schemes/_entry-find.js.map +1 -1
  456. package/dist/schemes/_entry-find.sql +22 -14
  457. package/dist/schemes/_entry-fts.d.ts +14 -0
  458. package/dist/schemes/_entry-fts.d.ts.map +1 -0
  459. package/dist/schemes/_entry-fts.js +82 -0
  460. package/dist/schemes/_entry-fts.js.map +1 -0
  461. package/dist/schemes/_entry-fts.sql +31 -0
  462. package/dist/schemes/_entry-graph.d.ts.map +1 -1
  463. package/dist/schemes/_entry-graph.js +6 -14
  464. package/dist/schemes/_entry-graph.js.map +1 -1
  465. package/dist/schemes/_entry-graph.sql +29 -44
  466. package/dist/schemes/_entry-manifest.d.ts +2 -1
  467. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  468. package/dist/schemes/_entry-manifest.js +20 -26
  469. package/dist/schemes/_entry-manifest.js.map +1 -1
  470. package/dist/schemes/_entry-manifest.sql +26 -0
  471. package/dist/schemes/_entry-ops.d.ts +3 -5
  472. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  473. package/dist/schemes/_entry-ops.js +30 -43
  474. package/dist/schemes/_entry-ops.js.map +1 -1
  475. package/dist/schemes/_entry-ops.sql +5 -6
  476. package/dist/schemes/_entry-readable.d.ts +8 -0
  477. package/dist/schemes/_entry-readable.d.ts.map +1 -0
  478. package/dist/schemes/_entry-readable.js +38 -0
  479. package/dist/schemes/_entry-readable.js.map +1 -0
  480. package/dist/schemes/_entry-send.d.ts +1 -1
  481. package/dist/schemes/_entry-send.d.ts.map +1 -1
  482. package/dist/schemes/_entry-send.js +3 -3
  483. package/dist/schemes/_entry-send.js.map +1 -1
  484. package/dist/schemes/_search-index.d.ts +5 -3
  485. package/dist/schemes/_search-index.d.ts.map +1 -1
  486. package/dist/schemes/_search-index.js +169 -160
  487. package/dist/schemes/_search-index.js.map +1 -1
  488. package/dist/schemes/_search-index.sql +47 -0
  489. package/dist/schemes/exec-abort.js +1 -1
  490. package/dist/schemes/exec-abort.js.map +1 -1
  491. package/dist/schemes/exec-env.d.ts +3 -0
  492. package/dist/schemes/exec-env.d.ts.map +1 -1
  493. package/dist/schemes/exec-env.js +66 -15
  494. package/dist/schemes/exec-env.js.map +1 -1
  495. package/dist/schemes/exec-runtime.d.ts +1 -1
  496. package/dist/schemes/exec-runtime.d.ts.map +1 -1
  497. package/dist/schemes/exec-runtime.js +1 -1
  498. package/dist/schemes/exec-runtime.js.map +1 -1
  499. package/dist/server/ClientReads.d.ts +2 -2
  500. package/dist/server/ClientReads.d.ts.map +1 -1
  501. package/dist/server/ClientReads.js +7 -9
  502. package/dist/server/ClientReads.js.map +1 -1
  503. package/dist/server/Daemon.d.ts +15 -21
  504. package/dist/server/Daemon.d.ts.map +1 -1
  505. package/dist/server/Daemon.js +165 -168
  506. package/dist/server/Daemon.js.map +1 -1
  507. package/dist/server/DaemonModule.d.ts +29 -22
  508. package/dist/server/DaemonModule.d.ts.map +1 -1
  509. package/dist/server/DrainSupervisor.d.ts +8 -21
  510. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  511. package/dist/server/DrainSupervisor.js +278 -306
  512. package/dist/server/DrainSupervisor.js.map +1 -1
  513. package/dist/server/EnvFunctionality.d.ts +43 -0
  514. package/dist/server/EnvFunctionality.d.ts.map +1 -0
  515. package/dist/server/EnvFunctionality.js +194 -0
  516. package/dist/server/EnvFunctionality.js.map +1 -0
  517. package/dist/server/Functionality.d.ts +12 -11
  518. package/dist/server/Functionality.d.ts.map +1 -1
  519. package/dist/server/Functionality.js +279 -142
  520. package/dist/server/Functionality.js.map +1 -1
  521. package/dist/server/FunctionalityManager.d.ts +5 -5
  522. package/dist/server/FunctionalityManager.d.ts.map +1 -1
  523. package/dist/server/FunctionalityManager.js +29 -57
  524. package/dist/server/FunctionalityManager.js.map +1 -1
  525. package/dist/server/MembersFunctionality.d.ts +5 -4
  526. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  527. package/dist/server/MembersFunctionality.js +24 -38
  528. package/dist/server/MembersFunctionality.js.map +1 -1
  529. package/dist/server/PlurnkSkill.d.ts +11 -0
  530. package/dist/server/PlurnkSkill.d.ts.map +1 -0
  531. package/dist/server/PlurnkSkill.js +41 -0
  532. package/dist/server/PlurnkSkill.js.map +1 -0
  533. package/dist/server/Retention.d.ts +25 -0
  534. package/dist/server/Retention.d.ts.map +1 -0
  535. package/dist/server/Retention.js +57 -0
  536. package/dist/server/Retention.js.map +1 -0
  537. package/dist/server/Retention.sql +59 -0
  538. package/dist/server/ServiceModules.d.ts +5 -0
  539. package/dist/server/ServiceModules.d.ts.map +1 -0
  540. package/dist/server/ServiceModules.js +10 -0
  541. package/dist/server/ServiceModules.js.map +1 -0
  542. package/dist/server/SkillsFunctionality.d.ts +14 -19
  543. package/dist/server/SkillsFunctionality.d.ts.map +1 -1
  544. package/dist/server/SkillsFunctionality.js +102 -106
  545. package/dist/server/SkillsFunctionality.js.map +1 -1
  546. package/dist/server/WorkerModelResolver.d.ts +4 -0
  547. package/dist/server/WorkerModelResolver.d.ts.map +1 -1
  548. package/dist/server/WorkerModelResolver.js +72 -39
  549. package/dist/server/WorkerModelResolver.js.map +1 -1
  550. package/dist/server/WorkspaceCapabilities.d.ts +21 -0
  551. package/dist/server/WorkspaceCapabilities.d.ts.map +1 -0
  552. package/dist/server/{WorkerCapabilities.js → WorkspaceCapabilities.js} +40 -40
  553. package/dist/server/WorkspaceCapabilities.js.map +1 -0
  554. package/dist/server/WorkspaceResidency.d.ts +38 -0
  555. package/dist/server/WorkspaceResidency.d.ts.map +1 -0
  556. package/dist/server/WorkspaceResidency.js +226 -0
  557. package/dist/server/WorkspaceResidency.js.map +1 -0
  558. package/dist/server/client-input.d.ts +1 -4
  559. package/dist/server/client-input.d.ts.map +1 -1
  560. package/dist/server/client-input.js +5 -46
  561. package/dist/server/client-input.js.map +1 -1
  562. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  563. package/dist/server/dispatch-as-plurnk.js +4 -22
  564. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  565. package/dist/server/drain.sql +66 -43
  566. package/dist/server/envelope.d.ts +8 -1
  567. package/dist/server/envelope.d.ts.map +1 -1
  568. package/dist/server/envelope.js +9 -19
  569. package/dist/server/envelope.js.map +1 -1
  570. package/dist/server/envelope.sql +49 -13
  571. package/dist/server/lifecycle-recovery.sql +18 -20
  572. package/dist/server/logEntry.d.ts +1 -1
  573. package/dist/server/logEntry.d.ts.map +1 -1
  574. package/dist/server/logEntry.js +4 -1
  575. package/dist/server/logEntry.js.map +1 -1
  576. package/dist/server/logEntry.sql +25 -1
  577. package/dist/server/loopDocs.d.ts +2 -2
  578. package/dist/server/loopDocs.d.ts.map +1 -1
  579. package/dist/server/loopDocs.js +38 -31
  580. package/dist/server/loopDocs.js.map +1 -1
  581. package/dist/server/loopDocs.sql +1 -3
  582. package/dist/server/model-catalog.d.ts.map +1 -1
  583. package/dist/server/model-catalog.js +2 -1
  584. package/dist/server/model-catalog.js.map +1 -1
  585. package/dist/server/model-route.d.ts +1 -1
  586. package/dist/server/model-route.d.ts.map +1 -1
  587. package/dist/server/model-route.js +4 -2
  588. package/dist/server/model-route.js.map +1 -1
  589. package/dist/server/seam-entry-read.sql +3 -4
  590. package/dist/server/seam-loop.sql +2 -9
  591. package/dist/server/workspace-capabilities.sql +64 -0
  592. package/dist/service.d.ts.map +1 -1
  593. package/dist/service.js +21 -18
  594. package/dist/service.js.map +1 -1
  595. package/docs/env.md +55 -0
  596. package/docs/members.md +83 -0
  597. package/docs/skills.md +50 -0
  598. package/migrations/001_workspaces.sql +53 -0
  599. package/migrations/002_workers.sql +198 -0
  600. package/migrations/003_loops.sql +326 -0
  601. package/migrations/004_inference.sql +401 -0
  602. package/migrations/005_entries.sql +215 -0
  603. package/migrations/006_log.sql +581 -0
  604. package/migrations/007_subscriptions.sql +175 -0
  605. package/migrations/008_interactions.sql +29 -0
  606. package/package.json +44 -41
  607. package/digest-sql/channel-dispositions/dispositions.sql +0 -15
  608. package/digest-sql/channel-state/state.sql +0 -6
  609. package/digest-sql/curation/curation.sql +0 -6
  610. package/digest-sql/derivations/derivations.sql +0 -4
  611. package/digest-sql/embeddings/embeddings.sql +0 -4
  612. package/digest-sql/entry-dispositions/dispositions.sql +0 -15
  613. package/digest-sql/entry-state/state.sql +0 -6
  614. package/digest-sql/token-counts/token-counts.sql +0 -2
  615. package/dist/core/EmbeddingCall.d.ts +0 -23
  616. package/dist/core/EmbeddingCall.d.ts.map +0 -1
  617. package/dist/core/EmbeddingCall.js +0 -149
  618. package/dist/core/EmbeddingCall.js.map +0 -1
  619. package/dist/core/OverflowTurn.d.ts +0 -11
  620. package/dist/core/OverflowTurn.d.ts.map +0 -1
  621. package/dist/core/OverflowTurn.js +0 -80
  622. package/dist/core/OverflowTurn.js.map +0 -1
  623. package/dist/core/Owner.d.ts +0 -8
  624. package/dist/core/Owner.d.ts.map +0 -1
  625. package/dist/core/Owner.js +0 -46
  626. package/dist/core/Owner.js.map +0 -1
  627. package/dist/core/SendBroadcastHandler.d.ts.map +0 -1
  628. package/dist/core/SendBroadcastHandler.js +0 -159
  629. package/dist/core/SendBroadcastHandler.js.map +0 -1
  630. package/dist/core/VectorPump.d.ts +0 -28
  631. package/dist/core/VectorPump.d.ts.map +0 -1
  632. package/dist/core/VectorPump.js +0 -130
  633. package/dist/core/VectorPump.js.map +0 -1
  634. package/dist/core/owner.sql +0 -11
  635. package/dist/core/worker-settings.d.ts +0 -10
  636. package/dist/core/worker-settings.d.ts.map +0 -1
  637. package/dist/core/worker-settings.js +0 -53
  638. package/dist/core/worker-settings.js.map +0 -1
  639. package/dist/schemes/_entry-chunk.d.ts +0 -14
  640. package/dist/schemes/_entry-chunk.d.ts.map +0 -1
  641. package/dist/schemes/_entry-chunk.js +0 -165
  642. package/dist/schemes/_entry-chunk.js.map +0 -1
  643. package/dist/schemes/_entry-semantic.d.ts +0 -63
  644. package/dist/schemes/_entry-semantic.d.ts.map +0 -1
  645. package/dist/schemes/_entry-semantic.js +0 -299
  646. package/dist/schemes/_entry-semantic.js.map +0 -1
  647. package/dist/schemes/_entry-semantic.sql +0 -99
  648. package/dist/schemes/cosine.d.ts +0 -4
  649. package/dist/schemes/cosine.d.ts.map +0 -1
  650. package/dist/schemes/cosine.js +0 -9
  651. package/dist/schemes/cosine.js.map +0 -1
  652. package/dist/server/WorkerCapabilities.d.ts +0 -21
  653. package/dist/server/WorkerCapabilities.d.ts.map +0 -1
  654. package/dist/server/WorkerCapabilities.js.map +0 -1
  655. package/dist/server/WorkerResidency.d.ts +0 -40
  656. package/dist/server/WorkerResidency.d.ts.map +0 -1
  657. package/dist/server/WorkerResidency.js +0 -283
  658. package/dist/server/WorkerResidency.js.map +0 -1
  659. package/dist/server/seam-log-read.sql +0 -21
  660. package/dist/server/worker-capabilities.sql +0 -28
  661. package/migrations/001_schema.sql +0 -2207
@@ -0,0 +1,206 @@
1
+ var _a;
2
+ import { TurnDisposition } from "@plurnk/plurnk-contracts";
3
+ import TerminalResult from "./TerminalResult.js";
4
+ import Results from "./results.js";
5
+ import ErrorDetail from "./ErrorDetail.js";
6
+ import { promptLoopPrefix } from "./plurnk-uri.js";
7
+ const observedResultsGuidance = "If your final response has already been sent and these results require no further work or response revision, submit only TASK.";
8
+ class TurnDispositionHandler {
9
+ #db;
10
+ #cancelDescendants;
11
+ #lifecycle;
12
+ #nextPacketBoundaries;
13
+ #unobservedFailureCount;
14
+ #pendingSet;
15
+ #hasLiveWork;
16
+ #failure;
17
+ #statusResult;
18
+ constructor({ db, cancelDescendants, lifecycle, nextPacketBoundaries, unobservedFailureCount, pendingSet, hasLiveWork, failure, statusResult }) {
19
+ this.#db = db;
20
+ this.#cancelDescendants = cancelDescendants;
21
+ this.#lifecycle = lifecycle;
22
+ this.#nextPacketBoundaries = nextPacketBoundaries;
23
+ this.#unobservedFailureCount = unobservedFailureCount;
24
+ this.#pendingSet = pendingSet;
25
+ this.#hasLiveWork = hasLiveWork;
26
+ this.#failure = failure;
27
+ this.#statusResult = statusResult;
28
+ }
29
+ async handle(statement, ctx) {
30
+ const { workerId, loopId, turnId } = ctx;
31
+ const intent = TurnDisposition.intent(statement.body);
32
+ const status = TurnDisposition.status(statement);
33
+ const timingDetail = intent !== "wait" && statement.lineMarker !== null
34
+ ? "Wait timing was not applied because no waiting intent was selected." : null;
35
+ const withTimingDetail = (result) => timingDetail === null
36
+ ? result : { ...result, detail: [result.detail, timingDetail].filter(Boolean).join(" ") };
37
+ if (intent === "missing") {
38
+ return withTimingDetail(this.#failure("task-inventory-missing", 409, "No tasks were supplied. Submit a nonempty TASK inventory."));
39
+ }
40
+ if (intent === "continue" || intent === "todo")
41
+ return withTimingDetail({ status: 102 });
42
+ // {§worker-wait-timing}: explicit timing is an obligation in its own
43
+ // right; otherwise {§wait-obligation-matrix} decides an untimed join.
44
+ if (intent === "wait") {
45
+ const marks = statement.lineMarker?.marks;
46
+ const timeout = marks?.[0] ?? -1;
47
+ const poll = marks?.[1];
48
+ if ((marks?.length ?? 0) > 2 || timeout < -1 || (poll !== undefined && poll < 0)
49
+ || [timeout, poll].some((value) => value !== undefined
50
+ && (!Number.isSafeInteger(value) || value * 60_000 + Date.now() > 8.64e15))) {
51
+ return this.#failure("wait-timing-invalid", 400, "TASK wait timing accepts <timeout[,poll]> in whole minutes: timeout is -1 or nonnegative; poll is nonnegative.");
52
+ }
53
+ const seconds = timeout < 0 ? -1 : timeout * 60;
54
+ const timing = {
55
+ ...(timeout < 0 ? {} : { timeoutMs: timeout * 60_000 }),
56
+ ...(poll === undefined ? {} : { pollMs: poll * 60_000 }),
57
+ };
58
+ if (timeout >= 0 || (poll ?? 0) > 0 || await this.#hasLiveWork(workerId)) {
59
+ if (!await this.#lifecycle.park(loopId, timing)) {
60
+ return this.#statusResult(await this.#lifecycle.status(loopId), "loop-already-terminal", "The loop was already terminal when TASK attempted to wait.");
61
+ }
62
+ return { status: 202, attrs: { waiting: seconds, ...(poll === undefined ? {} : { polling: poll * 60 }) } };
63
+ }
64
+ // Retrievals, fast stream conclusions, and child conclusions are
65
+ // all complete-but-unobserved. Their wake edge may already have
66
+ // fired, so do not park; continue directly to the packet that
67
+ // materializes them.
68
+ const boundaries = await this.#nextPacketBoundaries(workerId, turnId);
69
+ if (boundaries.operations.length > 0 || boundaries.streamTerminations.length > 0 || boundaries.childTerminations) {
70
+ return { status: 102 };
71
+ }
72
+ const failCount = await this.#unobservedFailureCount(turnId);
73
+ if (failCount > 0)
74
+ return { status: 102 };
75
+ return { status: 102, detail: "Nothing is in flight and no timed or polled wait is set. Continuing." };
76
+ }
77
+ // Both terminals cross the observation barrier ({§completion-defers-to-results}): a
78
+ // model's claim over prompts the loop has not published, failures this turn has not
79
+ // seen, or settled results the next packet carries is deferred one packet and never
80
+ // struck. A completion over live work is the join a scope's exit implies: the loop parks
81
+ // until the work settles ({§completion-joins-live-work}); an abandonment cancels it. A
82
+ // `_plurnk` maintenance program closes only its own administrative loop; it must not
83
+ // claim, consume, or be blocked by model work elsewhere in the same Worker.
84
+ if ((status === 200 || status === 499) && ctx.origin === "model") {
85
+ const deferred = await this.#barrier(ctx, status === 200 ? "Completion" : "Abandonment");
86
+ if (deferred !== null)
87
+ return withTimingDetail(deferred);
88
+ }
89
+ // [200] — terminate. A refused attempt is recorded faithfully (status_rx=409, never
90
+ // erased); the loop stays a continue; the strike couples in runTurn. [499] abandons and
91
+ // cancels the descendant scope.
92
+ if (status === 200) {
93
+ const finished = await this.#lifecycle.finish(loopId, TerminalResult.success(null));
94
+ return withTimingDetail(this.#statusResult(finished !== null ? 200 : await this.#lifecycle.status(loopId), "loop-already-terminal", "The loop was already terminal when TASK attempted to conclude it."));
95
+ }
96
+ if (status === 499) {
97
+ const reason = ErrorDetail.preview(statement.body.filter(({ status: state }) => state === "failed").map(({ content }) => content).join("\n"));
98
+ const failure = withTimingDetail(this.#failure("scope-abandoned", 499, "All tasks in the final inventory failed.", {}, {
99
+ ...(reason.length === 0 ? {} : { reason }),
100
+ retryable: false,
101
+ }));
102
+ const seqs = await this.#db.engine_loop_turn_seqs.get({
103
+ loop_id: loopId,
104
+ turn_id: turnId,
105
+ });
106
+ if (seqs === undefined) {
107
+ throw new Error(`TASK: no coordinate for loop=${loopId} turn=${turnId}`);
108
+ }
109
+ Results.attachInstance(failure, `log:///${seqs.loop_seq}/${seqs.turn_seq}/${ctx.sequence}/TASK`);
110
+ const finished = await this.#lifecycle.finish(loopId, failure);
111
+ if (finished === null)
112
+ return this.#statusResult(await this.#lifecycle.status(loopId), "loop-already-terminal", "The loop was already terminal when TASK attempted to abandon it.");
113
+ await this.#cancelDescendants?.(workerId, reason || "all tasks in the parent inventory failed");
114
+ return failure;
115
+ }
116
+ return { status };
117
+ }
118
+ // {§completion-defers-to-prompts} Prompt frames this loop contains but has not published
119
+ // (the same rows the next turn boundary publishes, {§prompt-loop-containment}).
120
+ async #undeliveredPromptCount(workerId, loopId) {
121
+ const loopSeq = (await this.#db.engine_loop_sequence.get({ loop_id: loopId }))?.sequence ?? loopId;
122
+ const prefix = promptLoopPrefix(loopSeq);
123
+ const rows = await this.#db.drain_undelivered_prompts_for_loop.all({
124
+ worker_id: workerId, pattern: `${prefix}%`, prefix_len: prefix.length, loop_id: loopId,
125
+ });
126
+ return rows.filter((row) => typeof row.content === "string" && row.content.length > 0).length;
127
+ }
128
+ // {§completion-defers-to-results} — the observation barrier, in the order the graph demands:
129
+ // a prompt the loop has not published; then, for a completion, live work, which parks the
130
+ // loop as a join; then this turn's unseen failures; then the
131
+ // settled results the next packet carries. Every deferral is 102 with the read-time receipt
132
+ // and its pending facts in `attrs`; null means the claim may conclude now.
133
+ async #barrier({ workerId, loopId, turnId }, verb) {
134
+ const concludes = verb === "Completion" ? "complete" : "conclude";
135
+ // {§completion-defers-to-prompts} — a prompt that arrived during this turn is published
136
+ // by the next packet; concluding over it would answer a conversation the model has not
137
+ // seen. Not the model's fault, so a deferral, never a strike.
138
+ const undelivered = await this.#undeliveredPromptCount(workerId, loopId);
139
+ if (undelivered > 0) {
140
+ return {
141
+ status: 102,
142
+ detail: `${verb} deferred: ${undelivered} new prompt${undelivered === 1 ? "" : "s"} arrived during this turn. `
143
+ + `${undelivered === 1 ? "It is" : "They are"} in this packet; a response and a TASK now ${concludes}.`,
144
+ };
145
+ }
146
+ const { pending, receipts } = await this.#pendingSet(workerId, turnId);
147
+ const live = pending.filter((kind) => kind === "streams" || kind === "workers");
148
+ if (verb === "Completion" && live.length > 0) {
149
+ // {§completion-joins-live-work} — a completion over live work is the join a scope's
150
+ // exit implies: the loop parks until the work settles, the wake carries what concluded,
151
+ // and the next TASK decides with it in the packet. Never a strike.
152
+ if (!await this.#lifecycle.park(loopId)) {
153
+ return this.#statusResult(await this.#lifecycle.status(loopId), "loop-already-terminal", "The loop was already terminal when TASK attempted to conclude it.");
154
+ }
155
+ return { status: 202, detail: _a.joinDetail(live), attrs: { waiting: -1, pending: [...pending] } };
156
+ }
157
+ // A failed operation is also an unobserved result: it does not enter the model's Log
158
+ // until the next packet.
159
+ const failCount = await this.#unobservedFailureCount(turnId);
160
+ if (failCount > 0) {
161
+ return {
162
+ status: 102,
163
+ detail: `${verb} deferred: ${failCount} operation${failCount === 1 ? "" : "s"} failed in the same turn. `
164
+ + `The failure${failCount === 1 ? " is" : "s are"} in this packet. ${observedResultsGuidance}`,
165
+ attrs: { failures: failCount },
166
+ };
167
+ }
168
+ const settled = pending.filter((kind) => kind !== "streams" && kind !== "workers");
169
+ if (settled.length === 0)
170
+ return null;
171
+ // The receipt is read one packet later, beside the results it names, so it speaks from
172
+ // that moment. The model decides whether the results change its work or response.
173
+ const detail = settled.every((kind) => kind === "receipts")
174
+ ? _a.deferredReceiptsDetail(receipts, verb)
175
+ : _a.deferredWorkDetail(settled, verb);
176
+ return { status: 102, detail, attrs: { pending: settled } };
177
+ }
178
+ // {§completion-defers-to-results} Receipts-only deferral, worded at read time.
179
+ static deferredReceiptsDetail(receipts, verb = "Completion") {
180
+ const plural = receipts.length > 1;
181
+ return `${verb} deferred until ${ErrorDetail.preview(receipts.join(", "))} reached a packet. ${plural ? "They are" : "It is"} in this packet. ${observedResultsGuidance}`;
182
+ }
183
+ // {§completion-joins-live-work} The join receipt, read when the wake lands.
184
+ static joinDetail(live) {
185
+ const parts = [];
186
+ if (live.includes("workers"))
187
+ parts.push("child workers were still running");
188
+ if (live.includes("streams"))
189
+ parts.push("an execution was still running");
190
+ return `Completion joined: ${parts.join(" and ")}. The loop waited, and what concluded is in this packet. ${observedResultsGuidance}`;
191
+ }
192
+ // {§completion-defers-to-results} Observed-now results name the packet.
193
+ static deferredWorkDetail(pending, verb = "Completion") {
194
+ const landed = [];
195
+ if (pending.includes("worker-results"))
196
+ landed.push("a child worker's result");
197
+ if (pending.includes("failed-stream-results"))
198
+ landed.push("a failed execution result");
199
+ if (pending.includes("receipts"))
200
+ landed.push("operation receipts");
201
+ return `${verb} deferred until ${landed.join(" and ")} reached a packet. ${landed.length > 1 ? "They are" : "It is"} in this packet. ${observedResultsGuidance}`;
202
+ }
203
+ }
204
+ _a = TurnDispositionHandler;
205
+ export default TurnDispositionHandler;
206
+ //# sourceMappingURL=TurnDispositionHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TurnDispositionHandler.js","sourceRoot":"","sources":["../../src/core/TurnDispositionHandler.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,11 @@
1
1
  import type { UrlPath } from "@plurnk/plurnk-contracts";
2
- import type SchemeRegistry from "./SchemeRegistry.ts";
3
2
  import type { Db } from "./Db.ts";
4
3
  import { type FsDivergence } from "./git-membership.ts";
5
4
  import { type GitStatusSnapshot } from "./git-state.ts";
6
5
  export default class TurnMaterialization {
7
6
  #private;
8
- constructor({ db, schemes, weighContent }: {
7
+ constructor({ db, weighContent }: {
9
8
  db: Db;
10
- schemes: SchemeRegistry;
11
9
  weighContent: (text: string) => number;
12
10
  });
13
11
  materializeEnvironmentDeltas(args: {
@@ -18,6 +16,7 @@ export default class TurnMaterialization {
18
16
  fromSequence: number;
19
17
  }): Promise<number>;
20
18
  materializeStreamDeltas(args: {
19
+ workspaceId: number;
21
20
  workerId: number;
22
21
  loopId: number;
23
22
  turnId: number;
@@ -1 +1 @@
1
- {"version":3,"file":"TurnMaterialization.d.ts","sourceRoot":"","sources":["../../src/core/TurnMaterialization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAYxD,MAAM,CAAC,OAAO,OAAO,mBAAmB;;IAKpC,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;QACvC,EAAE,EAAE,EAAE,CAAC;QACP,OAAO,EAAE,cAAc,CAAC;QACxB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;KAC1C,EAIA;IAEK,4BAA4B,CAAC,IAAI,EAAE;QACrC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;KAC/F,GAAG,OAAO,CAAC,MAAM,CAAC,CAgHlB;IAGK,uBAAuB,CAAC,IAAI,EAAE;QAChC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;KAC1E,GAAG,OAAO,CAAC,MAAM,CAAC,CAuElB;IAKK,aAAa,CACf,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,YAAY,EAAE,EAC3B,SAAS,EAAE,iBAAiB,GAAG,IAAI,GACpC,OAAO,CAAC,IAAI,CAAC,CAmEf;IAIK,cAAc,CAAC,EACjB,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAM,EACN,OAAO,EACP,MAAM,GACT,EAAE;QACC,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0ClB;CAKJ"}
1
+ {"version":3,"file":"TurnMaterialization.d.ts","sourceRoot":"","sources":["../../src/core/TurnMaterialization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAaxD,MAAM,CAAC,OAAO,OAAO,mBAAmB;;IAIpC,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;QAC9B,EAAE,EAAE,EAAE,CAAC;QACP,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;KAC1C,EAGA;IAEK,4BAA4B,CAAC,IAAI,EAAE;QACrC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;KAC/F,GAAG,OAAO,CAAC,MAAM,CAAC,CA4GlB;IAGK,uBAAuB,CAAC,IAAI,EAAE;QAChC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;KAC/F,GAAG,OAAO,CAAC,MAAM,CAAC,CAgGlB;IAKK,aAAa,CACf,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,YAAY,EAAE,EAC3B,SAAS,EAAE,iBAAiB,GAAG,IAAI,GACpC,OAAO,CAAC,IAAI,CAAC,CAiEf;IAIK,cAAc,CAAC,EACjB,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAM,EACN,OAAO,EACP,MAAM,GACT,EAAE;QACC,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyClB;CAKJ"}
@@ -6,15 +6,14 @@ import TerminalResult from "./TerminalResult.js";
6
6
  import LoopLifecycle from "./LoopLifecycle.js";
7
7
  import WorkerControlAddress from "./WorkerControlAddress.js";
8
8
  import Turn from "./Turn.js";
9
+ import RuntimeWorker from "./RuntimeWorker.js";
9
10
  import LogBody from "./LogBody.js";
10
11
  import LogVisibility from "./LogVisibility.js";
11
12
  export default class TurnMaterialization {
12
13
  #db;
13
- #schemes;
14
14
  #weighContent;
15
- constructor({ db, schemes, weighContent }) {
15
+ constructor({ db, weighContent }) {
16
16
  this.#db = db;
17
- this.#schemes = schemes;
18
17
  this.#weighContent = weighContent;
19
18
  }
20
19
  async materializeEnvironmentDeltas(args) {
@@ -26,7 +25,7 @@ export default class TurnMaterialization {
26
25
  let written = 0;
27
26
  for (const r of rows) {
28
27
  if (r.event_id === null || r.producer_worker_id === null || r.producer_worker_name === null || r.kind === null
29
- || r.at === null || r.op === null || r.delimiter === null || r.tx === null || r.mimetype_tx === null
28
+ || r.at === null || r.op === null || r.tx === null || r.mimetype_tx === null
30
29
  || r.rx === null || r.mimetype_rx === null || r.status_rx === null || r.state === null)
31
30
  continue;
32
31
  const termination = r.kind === "loop_termination";
@@ -54,7 +53,6 @@ export default class TurnMaterialization {
54
53
  event_id: r.event_id,
55
54
  source: WorkerControlAddress.render(r.producer_worker_name),
56
55
  op: r.op,
57
- delimiter: r.delimiter,
58
56
  signal: r.signal,
59
57
  scheme: r.scheme,
60
58
  username: r.username,
@@ -80,9 +78,9 @@ export default class TurnMaterialization {
80
78
  }, this.#weighContent),
81
79
  state: r.state,
82
80
  outcome: r.outcome,
83
- folded: LogVisibility.serialize(terminal !== null && terminal.status >= 200 && terminal.status < 300
84
- ? LogVisibility.OPEN
85
- : LogVisibility.FOLDED),
81
+ // {§worker-scheme-collect} — every conclusion is born visible, whatever its status;
82
+ // a child's activity rows fold.
83
+ folded: LogVisibility.serialize(terminal !== null ? LogVisibility.OPEN : LogVisibility.FOLDED),
86
84
  attrs,
87
85
  });
88
86
  const materialized = inserted ?? await this.#db.engine_ambient_delta_id.get({
@@ -106,38 +104,67 @@ export default class TurnMaterialization {
106
104
  const { workerId, loopId, turnId, fromSequence } = args;
107
105
  const channels = await this.#db.engine_worker_stream_channels.all({ worker_id: workerId });
108
106
  let written = 0;
107
+ // {§exec-stream} — a concluded stream lands one row per channel that has content; an empty
108
+ // sibling channel is a fact on that row (`channels`), never a row of its own, and only a
109
+ // stream that printed nothing at all lands one bodyless row on its default channel
110
+ // (operator, 2026-09-13: the empty ambient row was a packet bomb).
111
+ const closedBySubscription = new Map();
112
+ for (const ch of channels) {
113
+ if (ch.state !== "closed" && ch.state !== "errored")
114
+ continue;
115
+ const group = closedBySubscription.get(ch.subscription_id) ?? [];
116
+ group.push(ch);
117
+ closedBySubscription.set(ch.subscription_id, group);
118
+ }
119
+ const skipped = new Set();
120
+ const siblings = new Map();
121
+ for (const group of closedBySubscription.values()) {
122
+ const withContent = group.filter((ch) => ch.content.length > 0);
123
+ const kept = withContent.length > 0 ? withContent : group.filter((ch) => ch.channel === ch.default_channel).slice(0, 1);
124
+ if (kept.length === 0)
125
+ kept.push(group[0]);
126
+ for (const ch of group) {
127
+ if (kept.includes(ch))
128
+ continue;
129
+ skipped.add(ch.publication_id);
130
+ await this.#db.engine_mark_publication_terminal.run({ publication_id: ch.publication_id, published_end: ch.content.length });
131
+ }
132
+ const empties = Object.fromEntries(group.filter((ch) => !kept.includes(ch)).map((ch) => [`#${ch.channel}`, 0]));
133
+ for (const ch of kept)
134
+ siblings.set(ch.publication_id, empties);
135
+ }
109
136
  for (const ch of channels) {
110
137
  // Default channels are an implementation detail. Preserve the
111
138
  // channel internally on the entry/subscription, but present the
112
139
  // ordinary address to the model; only an explicitly non-default
113
140
  // channel earns a fragment in the log.
114
141
  const visibleFragment = ch.published_channel !== null
115
- && ch.channel === this.#schemes.defaultChannelFor(ch.runtime, workerId)
142
+ && ch.channel === ch.default_channel
116
143
  ? null
117
144
  : ch.channel;
118
145
  const targetParts = authorityParts(ch.authority);
119
- // {§exec-stream} — nothing publishes while a stream is active: the Child Streams
146
+ // {§exec-stream} — nothing publishes while a stream is active: the Delegation streams
120
147
  // section reports its size and growth ({§child-orientation}); the model READs any
121
148
  // range it wants. At close, ONE foisted READ that is exactly a markerless READ —
122
149
  // the first page, the extent, the terminal status and Problem — initially visible. {§exec-stream-page}
123
150
  if (ch.state !== "closed" && ch.state !== "errored")
124
151
  continue;
152
+ if (skipped.has(ch.publication_id))
153
+ continue;
125
154
  const terminal = Results.assert(JSON.parse(ch.producer_result ?? "null"));
126
155
  const sequence = fromSequence + written;
127
- // {§log-coordinate-hierarchy} — the stream lives at its EXEC item's own address, so the
128
- // causal source is that address under the log scheme.
129
- const source = this.#schemes.isRuntimeScheme(ch.runtime, workerId)
130
- && /^\/[1-9]\d*\/[1-9]\d*\/[1-9]\d*\/EXEC$/.test(ch.coord)
131
- ? `log://${ch.coord}`
132
- : null;
156
+ const source = ch.source;
133
157
  const page = await ReadResolve.resolve({ content: ch.content, mimetype: ch.mimetype, lineMarker: null });
158
+ const emptySiblings = siblings.get(ch.publication_id) ?? {};
134
159
  const result = Results.assert({
135
160
  ...terminal,
136
161
  ...(terminal.problem === undefined ? {} : { problem: { ...terminal.problem } }),
137
162
  content: page.content ?? "",
138
163
  mimetype: page.mimetype,
164
+ ...(Object.keys(emptySiblings).length === 0 ? {} : { channels: emptySiblings }),
139
165
  ...(page.startLine === undefined || page.startLine === null ? {} : { startLine: page.startLine }),
140
166
  ...(page.range === undefined ? {} : { range: page.range }),
167
+ ...(page.range !== undefined || page.region === undefined ? {} : { region: page.region }),
141
168
  });
142
169
  if (result.problem !== undefined) {
143
170
  const seqs = await this.#db.engine_loop_turn_seqs.get({
@@ -178,11 +205,8 @@ export default class TurnMaterialization {
178
205
  if (divergences.length === 0)
179
206
  return;
180
207
  const gitByPath = new Map(gitStatus?.files.map(({ path, status }) => [path, status]) ?? []);
181
- const worker = await this.#db.envelope_get_worker_by_name.get({ workspace_id: workspaceId, name: "plurnk" })
182
- ?? await this.#db.envelope_insert_worker.get({ workspace_id: workspaceId, name: "plurnk", origin: "_plurnk" });
183
- if (worker === undefined)
184
- throw new Error("logFsFictions: plurnk worker resolution returned no row");
185
- const loop = await this.#db.envelope_insert_client_loop.get({ worker_id: worker.id });
208
+ const workerId = await RuntimeWorker.ensure(this.#db, workspaceId);
209
+ const loop = await this.#db.envelope_insert_client_loop.get({ worker_id: workerId });
186
210
  if (loop === undefined)
187
211
  throw new Error("logFsFictions: loop insert returned no row");
188
212
  const turn = await Turn.open(this.#db, { loopId: loop.id, producer: "_plurnk", kind: "operation" });
@@ -196,9 +220,9 @@ export default class TurnMaterialization {
196
220
  ? JSON.stringify({ git: gitByPath.get(d.pathname) })
197
221
  : "{}";
198
222
  await this.#db.engine_insert_log_entry.get({
199
- worker_id: worker.id, loop_id: loop.id, turn_id: turn.id, sequence: sequence++,
223
+ worker_id: workerId, loop_id: loop.id, turn_id: turn.id, sequence: sequence++,
200
224
  origin: "_plurnk", source: "file", model_call_id: null,
201
- op: "EDIT", delimiter: "", signal: null,
225
+ op: "EDIT", signal: null,
202
226
  // Match Dispatcher.#extractTarget: a bare file address has NULL scheme
203
227
  // only in log target metadata; its entry identity remains `file`.
204
228
  scheme: null, username: null, password: null, hostname: null, port: null,
@@ -259,7 +283,6 @@ export default class TurnMaterialization {
259
283
  source,
260
284
  model_call_id: null,
261
285
  op: "prompt",
262
- delimiter: "",
263
286
  signal: null,
264
287
  scheme: target.scheme,
265
288
  username: target.username,
@@ -1 +1 @@
1
- {"version":3,"file":"TurnMaterialization.js","sourceRoot":"","sources":["../../src/core/TurnMaterialization.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,OAA8B,MAAM,cAAc,CAAC;AAC1D,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAC7D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAC3B,GAAG,CAAK;IACR,QAAQ,CAAiB;IACzB,aAAa,CAA2B;IAEjD,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAItC;QACG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,IAElC;QACG,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QACrE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,GAAG,CA8BvD,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,4BAA4B,CAAC,CAAC;QACxG,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,kBAAkB,KAAK,IAAI,IAAI,CAAC,CAAC,oBAAoB,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;mBACvG,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,IAAI;mBACjG,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI;gBAAE,SAAS;YACrG,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC;YAClD,MAAM,QAAQ,GAAG,WAAW;gBACxB,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,kCAAkC,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC5E,CAAC,CAAC,IAAI,CAAC;YACX,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,QAAQ,WAAW,CAAC,CAAC,SAAS,8CAA8C,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACvJ,CAAC;YACD,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;YAC5B,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAC;gBAC/C,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;oBAClF,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC,QAAQ,0BAA0B,CAAC,CAAC;gBAChG,CAAC;gBACD,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;oBACnB,GAAG,SAAS;oBACZ,IAAI,EAAE,kBAAkB;oBACxB,GAAG,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;iBACzE,CAAC,CAAC;YACP,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,GAAG,CAAiB;gBAC5E,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO;gBACvF,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC;gBAC3D,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,MAAM,EAAE,CAAC,CAAC,SAAS;gBACnB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;oBACnB,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,KAAK;oBACL,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,UAAU,EAAE,CAAC,CAAC,WAAW;oBACzB,UAAU,EAAE,CAAC,CAAC,WAAW;iBAC5B,EAAE,IAAI,CAAC,aAAa,CAAC;gBACtB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,MAAM,EAAE,aAAa,CAAC,SAAS,CAC3B,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG;oBAChE,CAAC,CAAC,aAAa,CAAC,IAAI;oBACpB,CAAC,CAAC,aAAa,CAAC,MAAM,CAC7B;gBACD,KAAK;aACR,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,QAAQ,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAiB;gBACxF,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACvB,CAAC,CAAC;YACH,IAAI,YAAY,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,gDAAgD,CAAC,CAAC;YAC7H,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAC;QAC1C,CAAC;QACD,MAAM,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,GAAG,CAAC;YAC7C,YAAY,EAAE,WAAW;YACzB,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC5B,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IAGD,KAAK,CAAC,uBAAuB,CAAC,IAE7B;QACG,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,GAAG,CAI9D,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5B,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YACxB,8DAA8D;YAC9D,gEAAgE;YAChE,gEAAgE;YAChE,uCAAuC;YACvC,MAAM,eAAe,GAAG,EAAE,CAAC,iBAAiB,KAAK,IAAI;mBAC9C,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;gBACvE,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC;YACjB,MAAM,WAAW,GAAG,cAAc,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;YACjD,iFAAiF;YACjF,kFAAkF;YAClF,iFAAiF;YACjF,uGAAuG;YACvG,IAAI,EAAE,CAAC,KAAK,KAAK,QAAQ,IAAI,EAAE,CAAC,KAAK,KAAK,SAAS;gBAAE,SAAS;YAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,IAAI,MAAM,CAAiB,CAAC,CAAC;YAC1F,MAAM,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC;YACxC,wFAAwF;YACxF,sDAAsD;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;mBAC3D,wCAAwC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBAC1D,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE;gBACrB,CAAC,CAAC,IAAI,CAAC;YACX,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YACzG,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC1B,GAAG,QAAQ;gBACX,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC/E,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjG,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;aAC7D,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAyC;oBAC1F,OAAO,EAAE,MAAM;oBACf,OAAO,EAAE,MAAM;iBAClB,CAAC,CAAC;gBACH,IAAI,IAAI,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,SAAS,MAAM,EAAE,CAAC,CAAC;gBAChH,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,OAAO,CAAC,CAAC;YAChG,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC;gBAC1C,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;gBAC/D,2BAA2B,EAAE,EAAE,CAAC,cAAc;gBAC9C,MAAM;gBACN,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI;gBAC1E,QAAQ,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,eAAe;gBAC7C,EAAE;gBACF,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;oBACnB,EAAE,EAAE,MAAM;oBACV,KAAK,EAAE,EAAE;oBACT,EAAE,EAAE,EAAE;oBACN,EAAE;oBACF,UAAU,EAAE,YAAY;oBACxB,UAAU,EAAE,kBAAkB;iBACjC,EAAE,IAAI,CAAC,aAAa,CAAC;gBACtB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACvE,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,uDAAuD;aAC/G,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAGD,wEAAwE;IACxE,oEAAoE;IACpE,KAAK,CAAC,aAAa,CACf,WAAmB,EACnB,WAA2B,EAC3B,SAAmC;QAEnC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACrC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACrG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,GAAG,CAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;eACrH,MAAM,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACnI,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACrG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,GAAG,CAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACtG,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACtF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACpG,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC;YACD,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzF,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACnC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpD,CAAC,CAAC,IAAI,CAAC;gBACX,MAAM,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC;oBACvC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;oBAC9E,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI;oBACtD,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI;oBACvC,uEAAuE;oBACvE,kEAAkE;oBAClE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;oBACxE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI;oBACnE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,YAAY;oBACjC,EAAE,EAAE,WAAW,EAAE,kBAAkB;oBACnC,SAAS,EAAE,GAAG;oBACd,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;wBACnB,EAAE,EAAE,MAAM;wBACV,KAAK;wBACL,EAAE,EAAE,EAAE;wBACN,EAAE;wBACF,UAAU,EAAE,YAAY;wBACxB,UAAU,EAAE,kBAAkB;qBACjC,EAAE,IAAI,CAAC,aAAa,CAAC;oBACtB,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI;oBAChC,KAAK;oBACL,cAAc,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC;iBAC9D,CAAC,CAAC;YACP,CAAC;YACD,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC5C,QAAQ,GAAG,KAAK,CAAC;YACjB,MAAM,MAAM,GAAG,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAClF,IAAI,MAAM,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAChH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,kBAAkB,GAAc,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAC3B,6BAA6B,EAC7B,kBAAkB,EAClB,GAAG,EACH,2EAA2E,EAC3E,EAAE,EACF,EAAE,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,KAAK,EAAE,CACtD,CAAC;YACF,IAAI,QAAQ,EAAE,CAAC;gBACX,IAAI,CAAC;oBAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAAC,CAAC;gBAC/D,OAAO,SAAS,EAAE,CAAC;oBAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAAC,CAAC;YAC7D,CAAC;YACD,IAAI,CAAC;gBAAC,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAAC,CAAC;YACnE,OAAO,SAAS,EAAE,CAAC;gBAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAAC,CAAC;YACzD,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,cAAc,CAAC,CAAC,KAAK,EAAE,GAAG,kBAAkB,CAAC,EAAE,wBAAwB,IAAI,CAAC,EAAE,mBAAmB,CAAC,CAAC;YACjH,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAID,KAAK,CAAC,cAAc,CAAC,EACjB,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAM,EACN,OAAO,EACP,MAAM,GAST;QACG,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAiB;YACnE,SAAS,EAAE,QAAQ;YACnB,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,MAAM;YACf,QAAQ;YACR,MAAM,EAAE,SAAS;YACjB,MAAM;YACN,aAAa,EAAE,IAAI;YACnB,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,IAAI;YAChB,EAAE,EAAE,EAAE;YACN,WAAW,EAAE,YAAY;YACzB,EAAE;YACF,WAAW,EAAE,kBAAkB;YAC/B,SAAS,EAAE,GAAG;YACd,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;gBACnB,EAAE,EAAE,QAAQ;gBACZ,KAAK,EAAE,EAAE;gBACT,EAAE,EAAE,EAAE;gBACN,EAAE;gBACF,UAAU,EAAE,YAAY;gBACxB,UAAU,EAAE,kBAAkB;aACjC,EAAE,IAAI,CAAC,aAAa,CAAC;YACtB,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;YACX,cAAc,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC;SAC9D,CAAC,CAAC;QACH,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QAC3G,OAAO,GAAG,CAAC,EAAE,CAAC;IAClB,CAAC;CAKJ"}
1
+ {"version":3,"file":"TurnMaterialization.js","sourceRoot":"","sources":["../../src/core/TurnMaterialization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ -- TurnMaterialization: the harness rows a turn opens with — stream deltas the worker observes.
2
+
3
+ -- PREP: engine_worker_stream_channels
4
+ -- {§exec-stream} — every not-yet-terminally-published stream channel the worker
5
+ -- owns, with its durable per-subscription cursor. Log curation never rewinds it.
6
+ SELECT s.id AS subscription_id, sp.id AS publication_id,
7
+ sp.published_end, sp.terminal_published,
8
+ e.scheme AS runtime, e.authority, e.pathname AS coord,
9
+ ec.name AS channel, ec.content AS content, ec.mimetype AS mimetype,
10
+ ec.state AS state, ec.producer_result AS producer_result,
11
+ s.published_channel, s.source, e.default_channel
12
+ FROM subscriptions s
13
+ JOIN entries e ON e.id = s.entry_id
14
+ JOIN subscription_publications sp ON sp.subscription_id = s.id
15
+ JOIN entry_channels ec ON ec.entry_id = s.entry_id AND ec.name = sp.channel
16
+ WHERE s.worker_id = $worker_id
17
+ AND sp.terminal_published = 0
18
+ ORDER BY s.id, ec.name;
19
+
20
+ -- PREP: engine_mark_publication_terminal
21
+ -- {§exec-stream} — an empty sibling channel of a concluded stream lands no row of its own; its
22
+ -- publication is still marked terminal here so the stream's termination counts as delivered.
23
+ UPDATE subscription_publications
24
+ SET published_end = $published_end,
25
+ terminal_published = 1,
26
+ version = version + 1
27
+ WHERE id = $publication_id
28
+ AND terminal_published = 0;
29
+
30
+ -- PREP: engine_insert_stream_delta
31
+ -- {§exec-stream} / {§env-delta} — materialize a channel's next publishable content as a
32
+ -- foisted READ row (the model READs the stream it never typed). origin=_plurnk; fragment is
33
+ -- the channel; source links an EXEC observation to its causal invocation;
34
+ -- attrs.streamEnd is the next turn's cursor. Only terminal observations
35
+ -- materialize here, initially visible; active progress stays in the Delegation streams list. {§exec-stream}
36
+ INSERT INTO log_entries (
37
+ worker_id, loop_id, turn_id, sequence, origin, source, model_call_id,
38
+ subscription_publication_id,
39
+ op, scheme, hostname, port, pathname, fragment, tx, mimetype_tx, rx, mimetype_rx, status_rx, weight, attrs, initial_folded
40
+ ) VALUES (
41
+ $worker_id, $loop_id, $turn_id, $sequence, '_plurnk', $source, NULL,
42
+ $subscription_publication_id,
43
+ 'READ', $scheme, $hostname, $port, $pathname, $fragment, '', 'text/plain', $rx, 'application/json', $status, $weight, $attrs, $folded
44
+ );
@@ -1 +1 @@
1
- {"version":3,"file":"TurnOps.d.ts","sourceRoot":"","sources":["../../src/core/TurnOps.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,KAAK,eAAe,EACvB,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;AAwBpD,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,GAAG,MAAM,CA2B1E;IAED,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,CAqBtD;CACJ"}
1
+ {"version":3,"file":"TurnOps.d.ts","sourceRoot":"","sources":["../../src/core/TurnOps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;AAGpD,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,GAAG,MAAM,CAK1E;IAED,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,CAiBtD;CACJ"}
@@ -1,64 +1,12 @@
1
- import { PlurnkParseError, PlurnkParser, PlanValue, } from "@plurnk/plurnk-contracts";
2
- const SEND_LABELS = Object.freeze({ 102: "NEXT", 202: "WAIT", 200: "TERM", 499: "FAIL" });
3
- const renderBody = (statement) => {
4
- if (statement.op === "PLAN")
5
- return PlanValue.stringify(statement.body);
6
- if (statement.op === "COPY" || statement.op === "MOVE")
7
- return null;
8
- if (statement.body === null)
9
- return null;
10
- if (typeof statement.body === "string")
11
- return statement.body;
12
- if ("raw" in statement.body)
13
- return statement.body.raw;
14
- return null;
15
- };
16
- const renderSelection = (selection) => {
17
- const modifiers = [`(${selection.target.raw})`];
18
- for (const metadata of selection.metadata ?? [])
19
- modifiers.push(`{${metadata}}`);
20
- if (selection.lineMarker !== null)
21
- modifiers.push(`<${selection.lineMarker.marks.join(",")}>`);
22
- return modifiers;
23
- };
24
- // Core-authored turns are programs, not synthetic result rows. This formatter
25
- // owns the deliberately small statement alphabet used by initialization and
26
- // overflow recovery; its output is reparsed before admission so the parser,
27
- // rather than constructed AST objects, remains the executable authority.
1
+ import { TurnDisposition } from "@plurnk/plurnk-contracts";
2
+ import { PlurnkParser } from "@plurnk/plurnk-parser";
3
+ // {§statement-rendering} — core programs use the same serializer and admission parser.
28
4
  export default class TurnOps {
29
5
  static renderInternal(statements) {
30
- if (statements[0]?.op !== "PLAN" || statements.at(-1)?.op !== "SEND") {
31
- throw new TypeError("An internal turnOps program must begin with PLAN and end with SEND.");
6
+ if (statements.length === 0 || statements.some((statement, index) => TurnDisposition.is(statement) && index !== statements.length - 1)) {
7
+ throw new TypeError("An internal turnOps program must contain operations; TASK, when present, must be last.");
32
8
  }
33
- const delimiter = statements[0].delimiter || "0";
34
- return statements.map((statement, index) => {
35
- const heading = statement.op === "PLAN"
36
- ? `## PLAN${delimiter}`
37
- : `### ${statement.op}${delimiter}`;
38
- const modifiers = [];
39
- // {§send-label} — a disposition renders as its label in the path slot.
40
- if (statement.op === "SEND" && statement.status !== null)
41
- modifiers.push(`(${SEND_LABELS[statement.status]})`);
42
- if (statement.op === "COPY" || statement.op === "MOVE") {
43
- modifiers.push(...renderSelection(statement.source), ...renderSelection(statement.destination));
44
- }
45
- else {
46
- if (statement.target !== null)
47
- modifiers.push(`(${statement.target.raw})`);
48
- for (const metadata of statement.metadata ?? [])
49
- modifiers.push(`{${metadata}}`);
50
- if (statement.lineMarker !== null)
51
- modifiers.push(`<${statement.lineMarker.marks.join(",")}>`);
52
- }
53
- if (statement.annotation !== null)
54
- modifiers.push(`<!-- ${statement.annotation} -->`);
55
- const header = modifiers.length === 0 ? heading : `${heading} ${modifiers.join(" ")}`;
56
- const body = renderBody(statement);
57
- const boundaryPadding = body?.endsWith("\n") === true && index < statements.length - 1
58
- ? "\n"
59
- : "";
60
- return body === null ? header : `${header}\n${body}${boundaryPadding}`;
61
- }).join("\n");
9
+ return PlurnkParser.stringify(statements);
62
10
  }
63
11
  static parseInternal(source) {
64
12
  const parsed = PlurnkParser.parse(source);
@@ -69,19 +17,15 @@ export default class TurnOps {
69
17
  statements.push(item.statement);
70
18
  continue;
71
19
  }
72
- if (item.kind === "text" && item.text.trim().length === 0)
20
+ if (item.error.severity === "warning")
73
21
  continue;
74
- const error = item.kind === "error" ? item.error : null;
75
- failures.push(error instanceof PlurnkParseError ? error.message : "unparsed text");
22
+ failures.push(item.error.message);
76
23
  }
77
24
  if (parsed.unparsedTail !== undefined)
78
25
  failures.push(parsed.unparsedTail.reason);
79
26
  if (failures.length > 0) {
80
27
  throw new SyntaxError(`Core generated invalid turnOps: ${failures.join("; ")}`);
81
28
  }
82
- if (statements[0]?.op !== "PLAN" || statements.at(-1)?.op !== "SEND") {
83
- throw new SyntaxError("Core generated turnOps without a PLAN…SEND boundary.");
84
- }
85
29
  return statements;
86
30
  }
87
31
  }