@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,175 @@
1
+ -- MIGRATE: 7 subscriptions
2
+ -- Chapter 7 of the schema baseline ({§db-schema-baseline}): Subscriptions to streams and their publication cursors.
3
+ -- Version numbers order the chapters on a fresh database; they are not history. A shape
4
+ -- change edits the chapter in place; existing development databases are recreated.
5
+
6
+ -- subscriptions
7
+ -- Durable subscription lifecycle per SPEC {§subscriptions}. The row records what
8
+ -- the worker holds and routes cancellation to a separate process-local callable;
9
+ -- it never serializes that callable. Closed rows persist for forensics; partial
10
+ -- unique index enforces one active subscription per entry. Causal worker and
11
+ -- resource owner may differ within the same workspace ({§runtime-resource-binding}).
12
+ CREATE TABLE IF NOT EXISTS subscriptions (
13
+ id INTEGER NOT NULL PRIMARY KEY,
14
+ version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
15
+ worker_id INTEGER,
16
+ entry_id INTEGER NOT NULL,
17
+ scheme TEXT NOT NULL CHECK (length(scheme) > 0),
18
+ handle TEXT NOT NULL CHECK (length(handle) > 0),
19
+ published_channel TEXT CHECK (published_channel IS NULL OR length(published_channel) > 0),
20
+ source TEXT CHECK (source IS NULL OR length(source) > 0),
21
+ opened_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
22
+ -- Execution `<T,P>` poll policy: NULL = default backoff, 0 = disabled, positive = fixed cadence.
23
+ -- While the owning loop hibernates (202), an armed policy wakes it to inspect the stream ({§exec-poll}).
24
+ poll_seconds INTEGER CHECK (poll_seconds IS NULL OR poll_seconds >= 0),
25
+ -- Execution `<0>` — turn-scoped: the stream is reaped at the worker's next pre-turn so it never survives
26
+ -- into the subsequent turn; its terminal output surfaces initially visible like any conclusion. {§exec-poll}
27
+ turn_scoped INTEGER NOT NULL DEFAULT 0 CHECK (turn_scoped IN (0, 1)),
28
+ -- {§worker-obligations}: a `<-1>` spawn outlives its loop and is nobody's obligation ({§exec-timeout}).
29
+ detached INTEGER NOT NULL DEFAULT 0 CHECK (detached IN (0, 1)),
30
+ closed_at TEXT,
31
+ close_status INTEGER CHECK (close_status IS NULL OR (close_status BETWEEN 100 AND 599)),
32
+ close_result TEXT CHECK (close_result IS NULL OR json_valid(close_result)),
33
+ channel_results TEXT CHECK (channel_results IS NULL OR json_valid(channel_results)),
34
+ CHECK ((closed_at IS NULL AND close_status IS NULL AND close_result IS NULL AND channel_results IS NULL)
35
+ OR (closed_at IS NOT NULL AND close_status IS NOT NULL AND close_result IS NOT NULL AND channel_results IS NOT NULL)),
36
+ CHECK (worker_id IS NOT NULL OR closed_at IS NOT NULL),
37
+ FOREIGN KEY (worker_id) REFERENCES workers(id) ON DELETE SET NULL,
38
+ FOREIGN KEY (entry_id) REFERENCES entries(id) ON DELETE CASCADE
39
+ ) STRICT;
40
+
41
+ CREATE TRIGGER IF NOT EXISTS subscriptions_workspace_insert
42
+ BEFORE INSERT ON subscriptions
43
+ WHEN NOT EXISTS (
44
+ SELECT 1 FROM entries e
45
+ JOIN workers caller ON caller.id = NEW.worker_id
46
+ WHERE e.id = NEW.entry_id AND e.workspace_id = caller.workspace_id
47
+ )
48
+ BEGIN
49
+ SELECT RAISE(ABORT, 'subscription and resource must share a workspace');
50
+ END;
51
+
52
+ CREATE TRIGGER IF NOT EXISTS subscriptions_identity_update
53
+ BEFORE UPDATE OF worker_id, entry_id, scheme, source ON subscriptions
54
+ WHEN NEW.entry_id != OLD.entry_id OR NEW.scheme != OLD.scheme OR NEW.source IS NOT OLD.source
55
+ OR (NEW.worker_id IS NOT OLD.worker_id AND NOT (NEW.worker_id IS NULL AND NEW.closed_at IS NOT NULL))
56
+ BEGIN
57
+ SELECT RAISE(ABORT, 'subscription identity is immutable');
58
+ END;
59
+
60
+ CREATE UNIQUE INDEX IF NOT EXISTS subscriptions_active_one_per_entry
61
+ ON subscriptions (entry_id)
62
+ WHERE closed_at IS NULL;
63
+
64
+ -- {§db-fk-indexes} Worker and entry deletion, and every by-worker stream lookup, otherwise scan all subscriptions,
65
+ -- closed ones included; the active-only partial indexes above do not cover foreign-key checks.
66
+ CREATE INDEX IF NOT EXISTS subscriptions_worker_id ON subscriptions (worker_id) WHERE worker_id IS NOT NULL;
67
+
68
+ CREATE INDEX IF NOT EXISTS subscriptions_entry_id ON subscriptions (entry_id);
69
+
70
+ CREATE TRIGGER IF NOT EXISTS subscriptions_result_contract_insert
71
+ BEFORE INSERT ON subscriptions
72
+ WHEN NEW.closed_at IS NOT NULL
73
+ OR NEW.close_status IS NOT NULL
74
+ OR NEW.close_result IS NOT NULL
75
+ OR NEW.channel_results IS NOT NULL
76
+ BEGIN
77
+ SELECT RAISE(ABORT, 'subscription must open before it can settle');
78
+ END;
79
+
80
+ CREATE TRIGGER IF NOT EXISTS subscriptions_result_contract_update
81
+ BEFORE UPDATE OF closed_at, close_status, close_result, channel_results ON subscriptions
82
+ WHEN NOT (
83
+ (NEW.closed_at IS NULL AND NEW.close_status IS NULL AND NEW.close_result IS NULL AND NEW.channel_results IS NULL)
84
+ OR (
85
+ NEW.closed_at IS NOT NULL
86
+ AND NEW.close_status IS NOT NULL
87
+ AND NEW.close_result IS NOT NULL
88
+ AND NEW.channel_results IS NOT NULL
89
+ AND json_valid(NEW.close_result)
90
+ AND json_valid(NEW.channel_results)
91
+ AND json_type(NEW.channel_results) = 'object'
92
+ AND json_type(NEW.close_result, '$.status') = 'integer'
93
+ AND json_extract(NEW.close_result, '$.status') = NEW.close_status
94
+ AND (
95
+ (NEW.close_status < 400 AND json_type(NEW.close_result, '$.problem') IS NULL)
96
+ OR (
97
+ NEW.close_status >= 400
98
+ AND json_type(NEW.close_result, '$.problem') = 'object'
99
+ AND json_extract(NEW.close_result, '$.problem.status') = NEW.close_status
100
+ )
101
+ )
102
+ )
103
+ )
104
+ BEGIN
105
+ SELECT RAISE(ABORT, 'subscription terminal result violates the operation-result contract');
106
+ END;
107
+
108
+ -- A settlement may override the universal result for exact named channels.
109
+ -- Unknown channels and malformed results fail before the subscription or any
110
+ -- representation changes. The JS boundary additionally rejects projection
111
+ -- fields that are structurally unavailable in ChannelProducerResult.
112
+ CREATE TRIGGER IF NOT EXISTS subscriptions_channel_results_contract
113
+ BEFORE UPDATE OF closed_at, close_status, close_result, channel_results ON subscriptions
114
+ WHEN NEW.closed_at IS NOT NULL AND (
115
+ EXISTS (
116
+ SELECT 1
117
+ FROM json_each(NEW.channel_results) AS channel_result
118
+ LEFT JOIN entry_channels ec
119
+ ON ec.entry_id = NEW.entry_id AND ec.name = channel_result.key
120
+ WHERE ec.name IS NULL
121
+ OR json_type(channel_result.value) != 'object'
122
+ OR json_type(channel_result.value, '$.status') != 'integer'
123
+ OR json_extract(channel_result.value, '$.status') NOT BETWEEN 200 AND 599
124
+ OR json_extract(channel_result.value, '$.status') = 202
125
+ OR (
126
+ json_extract(channel_result.value, '$.status') < 400
127
+ AND json_type(channel_result.value, '$.problem') IS NOT NULL
128
+ )
129
+ OR (
130
+ json_extract(channel_result.value, '$.status') >= 400
131
+ AND (
132
+ json_type(channel_result.value, '$.problem') != 'object'
133
+ OR json_extract(channel_result.value, '$.problem.status')
134
+ != json_extract(channel_result.value, '$.status')
135
+ )
136
+ )
137
+ )
138
+ )
139
+ BEGIN
140
+ SELECT RAISE(ABORT, 'subscription channel result violates the channel producer contract');
141
+ END;
142
+
143
+ -- One durable publication cursor per selected subscription channel. Log rows
144
+ -- are curated model context and therefore cannot own this lifecycle fact.
145
+ -- The row survives KILLing any generated observation and disappears only with
146
+ -- its subscription. {§exec-stream}
147
+ -- {§worker-obligations}: what a worker still holds — an open stream that is not detached, or a
148
+ -- child with an unresolved loop (the same liveness the Delegation section shows, so the 409 gate
149
+ -- and the section the model reads never disagree, {§child-orientation}). The one definition the
150
+ -- completion gate, the wait matrix, and the drain's wake settlement all read.
151
+ CREATE VIEW IF NOT EXISTS worker_obligations AS
152
+ SELECT w.id AS worker_id,
153
+ EXISTS (
154
+ SELECT 1 FROM subscriptions s
155
+ WHERE s.worker_id = w.id AND s.closed_at IS NULL AND s.detached = 0
156
+ ) AS streams,
157
+ EXISTS (
158
+ SELECT 1 FROM workers c JOIN loops l ON l.worker_id = c.id
159
+ WHERE c.parent_worker_id = w.id AND l.status IN (100, 102, 202)
160
+ ) AS workers
161
+ FROM workers w;
162
+
163
+ CREATE TABLE IF NOT EXISTS subscription_publications (
164
+ id INTEGER NOT NULL PRIMARY KEY,
165
+ version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
166
+ subscription_id INTEGER NOT NULL,
167
+ channel TEXT NOT NULL CHECK (length(channel) > 0),
168
+ published_end INTEGER NOT NULL DEFAULT 0 CHECK (published_end >= 0),
169
+ terminal_published INTEGER NOT NULL DEFAULT 0 CHECK (terminal_published IN (0, 1)),
170
+ UNIQUE (subscription_id, channel),
171
+ FOREIGN KEY (subscription_id) REFERENCES subscriptions(id) ON DELETE CASCADE
172
+ ) STRICT;
173
+
174
+ CREATE INDEX IF NOT EXISTS subscription_publications_pending
175
+ ON subscription_publications (subscription_id, terminal_published);
@@ -0,0 +1,29 @@
1
+ -- MIGRATE: 8 interactions
2
+ -- Chapter 8 of the schema baseline ({§db-schema-baseline}): Client interactions raised by a turn.
3
+ -- Version numbers order the chapters on a fresh database; they are not history. A shape
4
+ -- change edits the chapter in place; existing development databases are recreated.
5
+
6
+ -- {§client-interactions}: the durable discoverable half of a client-owned
7
+ -- interaction. The process-local lifecycle owner holds the awaiting callable;
8
+ -- this row holds only presentation and routing facts. Settlement deletes the
9
+ -- row, so client response payloads and owner-private continuation state are
10
+ -- never copied into persistence.
11
+ CREATE TABLE IF NOT EXISTS client_interactions (
12
+ id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
13
+ worker_id INTEGER NOT NULL,
14
+ loop_id INTEGER NOT NULL,
15
+ turn_id INTEGER NOT NULL,
16
+ request TEXT NOT NULL CHECK (json_valid(request) AND json_type(request) = 'object'),
17
+ created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
18
+ FOREIGN KEY (worker_id) REFERENCES workers(id) ON DELETE CASCADE,
19
+ FOREIGN KEY (loop_id) REFERENCES loops(id) ON DELETE CASCADE,
20
+ FOREIGN KEY (turn_id) REFERENCES turns(id) ON DELETE CASCADE
21
+ ) STRICT;
22
+
23
+ CREATE INDEX IF NOT EXISTS client_interactions_worker_id_id
24
+ ON client_interactions (worker_id, id);
25
+
26
+ -- {§db-fk-indexes} Turn and loop inserts check interactions by their loop and turn.
27
+ CREATE INDEX IF NOT EXISTS client_interactions_loop_id ON client_interactions (loop_id);
28
+
29
+ CREATE INDEX IF NOT EXISTS client_interactions_turn_id ON client_interactions (turn_id);
package/package.json CHANGED
@@ -1,7 +1,16 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-service",
3
- "version": "1.16.5",
3
+ "version": "1.18.0",
4
4
  "description": "Plurnk agent runtime — the server / engine / core. Implements the @plurnk/plurnk-contracts contract.",
5
+ "keywords": [
6
+ "plurnk",
7
+ "agent",
8
+ "llm",
9
+ "daemon",
10
+ "agui",
11
+ "sqlite",
12
+ "harness"
13
+ ],
5
14
  "type": "module",
6
15
  "license": "MIT",
7
16
  "engines": {
@@ -26,7 +35,7 @@
26
35
  "files": [
27
36
  ".env.defaults",
28
37
  "dist/**/*",
29
- "digest-sql/**/*.sql",
38
+ "docs/**/*",
30
39
  "migrations/**/*.sql",
31
40
  "README.md",
32
41
  "INSTALL.md",
@@ -45,17 +54,11 @@
45
54
  "test:unit": "node --conditions=plurnk-dev --import=./test/setup.ts --env-file-if-exists=.env.defaults --test --test-timeout=30000 scripts/*.test.mjs src/**/*.test.ts",
46
55
  "test:intg": "PLURNK_SERVICE_FILES_ITEMS=0 node --conditions=plurnk-dev --import=./test/setup.ts --env-file-if-exists=.env.defaults --test --test-concurrency=8 --test-timeout=30000 test/intg/*.test.ts",
47
56
  "test:mcp:dogfood": "PLURNK_MCP_DOGFOOD=1 node --conditions=plurnk-dev --import=./test/setup.ts --env-file-if-exists=.env.defaults --test --test-concurrency=1 --test-timeout=120000 test/intg/mcp-agui-composition.test.ts",
48
- "build:rail": "npm run build:gbnf -w @plurnk/plurnk-contracts",
49
- "pretest:live": "npm run build:rail",
50
57
  "test:live": "bash ../scripts/operator-environment.sh node --conditions=plurnk-dev scripts/live.mjs",
51
- "pretest:live:specimen": "npm run build:rail",
52
58
  "test:live:specimen": "bash ../scripts/operator-environment.sh node --conditions=plurnk-dev scripts/live.mjs --specimen",
53
59
  "test:live:zeropin": "PLURNK_ZERO_PIN=1 npm run test:live",
54
- "pretest:demo": "npm run build:rail",
55
60
  "test:demo": "bash ../scripts/operator-environment.sh node --conditions=plurnk-dev scripts/demo.mjs",
56
- "pretest:demo:specimen": "npm run build:rail",
57
61
  "test:demo:specimen": "bash ../scripts/operator-environment.sh node --conditions=plurnk-dev scripts/demo.mjs --specimen",
58
- "pretest:demo:zeropin": "npm run build:rail",
59
62
  "test:demo:zeropin": "PLURNK_ZERO_PIN=1 npm run test:demo",
60
63
  "test:benchlet": "bash ../scripts/operator-environment.sh node scripts/benchlet.mjs",
61
64
  "fixture:demo": "node --conditions=plurnk-dev test/demo/_fixture.ts",
@@ -87,31 +90,29 @@
87
90
  "@opentelemetry/resources": "^2.11.0",
88
91
  "@opentelemetry/sdk-metrics": "^2.11.0",
89
92
  "@opentelemetry/sdk-trace-base": "^2.11.0",
90
- "@plurnk/gbnf": "1.16.5",
91
- "@plurnk/plurnk-a2a": "1.16.5",
92
- "@plurnk/plurnk-agui": "1.16.5",
93
- "@plurnk/plurnk-contracts": "1.16.5",
94
- "@plurnk/plurnk-execs": "1.16.5",
95
- "@plurnk/plurnk-execs-common": "1.16.5",
96
- "@plurnk/plurnk-execs-jq": "1.16.5",
97
- "@plurnk/plurnk-execs-sqlite": "1.16.5",
98
- "@plurnk/plurnk-hooks": "1.16.5",
99
- "@plurnk/plurnk-mcp": "1.16.5",
100
- "@plurnk/plurnk-meta": "1.16.5",
101
- "@plurnk/plurnk-mimetypes": "1.16.5",
102
- "@plurnk/plurnk-mimetypes-application-ipynb": "1.16.5",
103
- "@plurnk/plurnk-mimetypes-application-json": "1.16.5",
104
- "@plurnk/plurnk-mimetypes-application-jsonl": "1.16.5",
105
- "@plurnk/plurnk-mimetypes-application-xml": "1.16.5",
106
- "@plurnk/plurnk-mimetypes-embeddings": "1.16.5",
93
+ "@plurnk/plurnk-a2a": "1.18.0",
94
+ "@plurnk/plurnk-agui": "1.18.0",
95
+ "@plurnk/plurnk-contracts": "1.18.0",
96
+ "@plurnk/plurnk-parser": "1.18.0",
97
+ "@plurnk/plurnk-execs": "1.18.0",
98
+ "@plurnk/plurnk-execs-common": "1.18.0",
99
+ "@plurnk/plurnk-execs-jq": "1.18.0",
100
+ "@plurnk/plurnk-execs-sqlite": "1.18.0",
101
+ "@plurnk/plurnk-hooks": "1.18.0",
102
+ "@plurnk/plurnk-mcp": "1.18.0",
103
+ "@plurnk/plurnk-meta": "1.18.0",
104
+ "@plurnk/plurnk-agent-skills": "1.18.0",
105
+ "@plurnk/plurnk-mimetypes": "1.18.0",
106
+ "@plurnk/plurnk-mimetypes-application-ipynb": "1.18.0",
107
+ "@plurnk/plurnk-mimetypes-application-json": "1.18.0",
108
+ "@plurnk/plurnk-mimetypes-application-jsonl": "1.18.0",
109
+ "@plurnk/plurnk-mimetypes-application-xml": "1.18.0",
107
110
  "@plurnk/plurnk-mimetypes-grammar-bash": "1.16.1",
108
111
  "@plurnk/plurnk-mimetypes-grammar-c": "1.16.1",
109
112
  "@plurnk/plurnk-mimetypes-grammar-cpp": "1.16.1",
110
113
  "@plurnk/plurnk-mimetypes-grammar-css": "1.16.1",
111
114
  "@plurnk/plurnk-mimetypes-grammar-dart": "1.16.1",
112
115
  "@plurnk/plurnk-mimetypes-grammar-elixir": "1.16.1",
113
- "@plurnk/plurnk-mimetypes-grammar-fsharp": "1.16.1",
114
- "@plurnk/plurnk-mimetypes-grammar-fsharp-signature": "1.16.1",
115
116
  "@plurnk/plurnk-mimetypes-grammar-go": "1.16.1",
116
117
  "@plurnk/plurnk-mimetypes-grammar-haskell": "1.16.1",
117
118
  "@plurnk/plurnk-mimetypes-grammar-java": "1.16.1",
@@ -132,25 +133,27 @@
132
133
  "@plurnk/plurnk-mimetypes-grammar-typescript": "1.16.1",
133
134
  "@plurnk/plurnk-mimetypes-grammar-yaml": "1.16.1",
134
135
  "@plurnk/plurnk-mimetypes-grammar-zig": "1.16.1",
135
- "@plurnk/plurnk-mimetypes-image": "1.16.5",
136
- "@plurnk/plurnk-mimetypes-text-csv": "1.16.5",
137
- "@plurnk/plurnk-mimetypes-text-diff": "1.16.5",
138
- "@plurnk/plurnk-mimetypes-text-dotenv": "1.16.5",
139
- "@plurnk/plurnk-mimetypes-text-html": "1.16.5",
140
- "@plurnk/plurnk-mimetypes-text-ini": "1.16.5",
141
- "@plurnk/plurnk-mimetypes-text-markdown": "1.16.5",
142
- "@plurnk/plurnk-mimetypes-text-plain": "1.16.5",
143
- "@plurnk/plurnk-models": "1.16.5",
144
- "@plurnk/plurnk-providers": "1.16.5",
145
- "@plurnk/plurnk-schemes": "1.16.5",
146
- "@plurnk/plurnk-schemes-http": "1.16.5",
147
- "@possumtech/sqlrite": "^6.5.2",
136
+ "@plurnk/plurnk-mimetypes-application-pdf": "1.18.0",
137
+ "@plurnk/plurnk-mimetypes-image": "1.18.0",
138
+ "@plurnk/plurnk-mimetypes-text-csv": "1.18.0",
139
+ "@plurnk/plurnk-mimetypes-text-diff": "1.18.0",
140
+ "@plurnk/plurnk-mimetypes-text-dotenv": "1.18.0",
141
+ "@plurnk/plurnk-mimetypes-text-html": "1.18.0",
142
+ "@plurnk/plurnk-mimetypes-text-ini": "1.18.0",
143
+ "@plurnk/plurnk-mimetypes-text-markdown": "1.18.0",
144
+ "@plurnk/plurnk-mimetypes-text-plain": "1.18.0",
145
+ "@plurnk/plurnk-models": "1.18.0",
146
+ "@plurnk/plurnk-providers": "1.18.0",
147
+ "@plurnk/plurnk-schemes": "1.18.0",
148
+ "@plurnk/plurnk-schemes-http": "1.18.0",
149
+ "@plurnk/plurnk-schemes-http-tavily": "^1.8.0",
150
+ "@possumtech/sqlrite": "^6.5.3",
148
151
  "diff": "^9.0.0",
149
152
  "yaml": "^2.9.0"
150
153
  },
151
154
  "devDependencies": {
152
155
  "@opentelemetry/core": "^2.11.0",
153
- "@plurnk/plurnk-mimetypes-tokenizers": "1.16.5",
156
+ "@plurnk/plurnk-mimetypes-tokenizers": "1.18.0",
154
157
  "@types/diff": "^7.0.2"
155
158
  },
156
159
  "homepage": "https://github.com/plurnk/plurnk-service/tree/main/plurnk-core#readme",
@@ -1,15 +0,0 @@
1
- -- PREP: digest_channel_disposition_counts
2
- SELECT d.disposition, COUNT(*) AS n
3
- FROM entries e
4
- JOIN entry_channels ec ON ec.entry_id = e.id
5
- JOIN derivations d ON d.deep_hash = ec.deep_hash
6
- GROUP BY d.disposition
7
- ORDER BY d.disposition;
8
-
9
- -- PREP: digest_channel_dispositions
10
- SELECT e.scheme, e.authority, e.pathname, ec.name AS channel, d.disposition, d.reason
11
- FROM entries e
12
- JOIN entry_channels ec ON ec.entry_id = e.id
13
- JOIN derivations d ON d.deep_hash = ec.deep_hash
14
- WHERE d.disposition <> 'vector'
15
- ORDER BY d.disposition, e.scheme, e.authority, e.pathname, channel;
@@ -1,6 +0,0 @@
1
- -- PREP: digest_channel_semantic_state
2
- SELECT COUNT(*) AS channel_entries,
3
- COUNT(ec.deep_hash) AS derivation_complete,
4
- COUNT(*) - COUNT(ec.deep_hash) AS unfinished
5
- FROM entries e
6
- JOIN entry_channels ec ON ec.entry_id = e.id;
@@ -1,6 +0,0 @@
1
- -- PREP: digest_curation_effects
2
- SELECT operation_log_entry_id, target_log_entry_id,
3
- active_before, active_after,
4
- folded_before, folded_after
5
- FROM log_curation_effects
6
- ORDER BY operation_log_entry_id, target_log_entry_id;
@@ -1,4 +0,0 @@
1
- -- PREP: digest_derivation_state
2
- SELECT COALESCE(SUM(CASE WHEN state = 'complete' THEN 1 ELSE 0 END), 0) AS complete,
3
- COALESCE(SUM(CASE WHEN state = 'building' THEN 1 ELSE 0 END), 0) AS building
4
- FROM derivations;
@@ -1,4 +0,0 @@
1
- -- PREP: digest_embedding_state
2
- SELECT COUNT(*) AS chunks,
3
- COUNT(DISTINCT embedding_model) AS models
4
- FROM derivation_embeddings;
@@ -1,15 +0,0 @@
1
- -- PREP: digest_entry_disposition_counts
2
- SELECT d.disposition, COUNT(*) AS n
3
- FROM entries e
4
- JOIN entry_channels ec ON ec.entry_id = e.id AND ec.name = 'body'
5
- JOIN derivations d ON d.deep_hash = e.deep_hash
6
- GROUP BY d.disposition
7
- ORDER BY d.disposition;
8
-
9
- -- PREP: digest_entry_dispositions
10
- SELECT e.scheme, e.authority, e.pathname, 'body' AS channel, d.disposition, d.reason
11
- FROM entries e
12
- JOIN entry_channels ec ON ec.entry_id = e.id AND ec.name = 'body'
13
- JOIN derivations d ON d.deep_hash = e.deep_hash
14
- WHERE d.disposition <> 'vector'
15
- ORDER BY d.disposition, e.scheme, e.authority, e.pathname, channel;
@@ -1,6 +0,0 @@
1
- -- PREP: digest_entry_semantic_state
2
- SELECT COUNT(*) AS channel_entries,
3
- COUNT(e.deep_hash) AS derivation_complete,
4
- COUNT(*) - COUNT(e.deep_hash) AS unfinished
5
- FROM entries e
6
- JOIN entry_channels ec ON ec.entry_id = e.id AND ec.name = 'body';
@@ -1,2 +0,0 @@
1
- -- PREP: digest_token_count
2
- SELECT COUNT(*) AS n FROM token_counts;
@@ -1,23 +0,0 @@
1
- import type { EmbedDocumentsOptions, EmbedDocumentsResult, EmbedQueryOptions, EmbedQueryResult, EmbeddingCallMetadata, Mimetypes } from "@plurnk/plurnk-mimetypes";
2
- import type { Db } from "./Db.ts";
3
- import InferenceCall from "./InferenceCall.ts";
4
- export type EmbeddingCallKind = "embedding_query" | "embedding_documents";
5
- type InferenceContext = {
6
- readonly workspaceId: number;
7
- readonly turnId: number | null;
8
- };
9
- export default class EmbeddingCall extends InferenceCall {
10
- #private;
11
- private constructor();
12
- static open(db: Db, input: InferenceContext & {
13
- kind: EmbeddingCallKind;
14
- model: string;
15
- inputCount: number;
16
- }): Promise<EmbeddingCall>;
17
- observeResponse(outputCount: number, metadata: EmbeddingCallMetadata): Promise<void>;
18
- fail(cause: unknown): Promise<void>;
19
- static query(db: Db, context: InferenceContext, mimetypes: Mimetypes, model: string, text: string, options?: Omit<EmbedQueryOptions, "observeRequest">): Promise<EmbedQueryResult>;
20
- static documents(db: Db, context: InferenceContext, mimetypes: Mimetypes, model: string, texts: readonly string[], options?: Omit<EmbedDocumentsOptions, "observeRequest">): Promise<EmbedDocumentsResult>;
21
- }
22
- export {};
23
- //# sourceMappingURL=EmbeddingCall.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmbeddingCall.d.ts","sourceRoot":"","sources":["../../src/core/EmbeddingCall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,SAAS,EACZ,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,aAGN,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,qBAAqB,CAAC;AAE1E,KAAK,gBAAgB,GAAG;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AA6BF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,aAAa;;IAGpD,OAAO,eAGN;IAED,OAAa,IAAI,CACb,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,gBAAgB,GAAG;QACtB,IAAI,EAAE,iBAAiB,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACtB,GACF,OAAO,CAAC,aAAa,CAAC,CAsBxB;IAEK,eAAe,CACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,qBAAqB,GAChC,OAAO,CAAC,IAAI,CAAC,CAkBf;IAEK,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAexC;IAED,OAAa,KAAK,CACd,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAM,GACxD,OAAO,CAAC,gBAAgB,CAAC,CAkB3B;IAED,OAAa,SAAS,CAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE,IAAI,CAAC,qBAAqB,EAAE,gBAAgB,CAAM,GAC5D,OAAO,CAAC,oBAAoB,CAAC,CAkB/B;CAoBJ"}
@@ -1,149 +0,0 @@
1
- import InferenceCall, { InferenceCallPersistenceError, ProviderAccountingIntegrityError, } from "./InferenceCall.js";
2
- const failureEvidence = (cause) => cause instanceof Error
3
- ? {
4
- name: cause.name,
5
- message: cause.message,
6
- ...(cause.cause === undefined ? {} : { cause: String(cause.cause) }),
7
- }
8
- : { name: "Error", message: String(cause) };
9
- const errorAccounting = (cause) => {
10
- if (typeof cause !== "object" || cause === null || !("accounting" in cause))
11
- return null;
12
- const accounting = cause.accounting;
13
- return Array.isArray(accounting) ? accounting : null;
14
- };
15
- const persistenceFailure = (cause) => {
16
- const seen = new Set();
17
- let current = cause;
18
- while (typeof current === "object" && current !== null && !seen.has(current)) {
19
- if (current instanceof InferenceCallPersistenceError)
20
- return current;
21
- seen.add(current);
22
- current = "cause" in current ? current.cause : undefined;
23
- }
24
- return null;
25
- };
26
- // Core-owned logical embedding inference. The artifact performs vector work;
27
- // this class owns durable lifecycle and cardinal physical request evidence.
28
- export default class EmbeddingCall extends InferenceCall {
29
- #db;
30
- constructor(db, id, sequence) {
31
- super(db, id, sequence);
32
- this.#db = db;
33
- }
34
- static async open(db, input) {
35
- let row;
36
- try {
37
- row = await db.engine_open_embedding_call.get({
38
- workspace_id: input.workspaceId,
39
- turn_id: input.turnId,
40
- kind: input.kind,
41
- model: input.model,
42
- });
43
- if (row === undefined)
44
- throw new Error("INSERT RETURNING produced no row");
45
- const prepared = await db.engine_prepare_embedding_call.run({
46
- id: row.id,
47
- input_count: input.inputCount,
48
- });
49
- if (prepared.changes !== 1)
50
- throw new Error(`embedding call ${row.id} was not prepared`);
51
- }
52
- catch (cause) {
53
- throw new InferenceCallPersistenceError(`could not open ${input.kind} inference for workspace ${input.workspaceId}`, cause);
54
- }
55
- return new EmbeddingCall(db, row.id, row.sequence);
56
- }
57
- async observeResponse(outputCount, metadata) {
58
- const { accounting, ...artifactMetadata } = metadata;
59
- this.assertAccounting(accounting);
60
- try {
61
- const result = await this.#db.engine_observe_embedding_call_response.run({
62
- id: this.id,
63
- output_count: outputCount,
64
- metadata: JSON.stringify(artifactMetadata),
65
- });
66
- if (result.changes !== 1) {
67
- throw new Error(`embedding call ${this.id} was not pending`);
68
- }
69
- }
70
- catch (cause) {
71
- throw new InferenceCallPersistenceError(`could not preserve response for embedding call ${this.id}`, cause);
72
- }
73
- }
74
- async fail(cause) {
75
- try {
76
- const result = await this.#db.engine_fail_embedding_call.run({
77
- id: this.id,
78
- failure: JSON.stringify(failureEvidence(cause)),
79
- });
80
- if (result.changes !== 1) {
81
- throw new Error(`embedding call ${this.id} was not pending`);
82
- }
83
- }
84
- catch (persistenceCause) {
85
- throw new InferenceCallPersistenceError(`could not preserve failure for embedding call ${this.id}`, persistenceCause);
86
- }
87
- }
88
- static async query(db, context, mimetypes, model, text, options = {}) {
89
- const call = await EmbeddingCall.open(db, {
90
- ...context,
91
- kind: "embedding_query",
92
- model,
93
- inputCount: 1,
94
- });
95
- try {
96
- const result = await mimetypes.embedQuery(text, {
97
- ...options,
98
- observeRequest: call.observeRequest,
99
- });
100
- await call.observeResponse(1, result.metadata);
101
- return result;
102
- }
103
- catch (cause) {
104
- await call.#closeFailure(cause);
105
- throw cause;
106
- }
107
- }
108
- static async documents(db, context, mimetypes, model, texts, options = {}) {
109
- const call = await EmbeddingCall.open(db, {
110
- ...context,
111
- kind: "embedding_documents",
112
- model,
113
- inputCount: texts.length,
114
- });
115
- try {
116
- const result = await mimetypes.embedDocuments(texts, {
117
- ...options,
118
- observeRequest: call.observeRequest,
119
- });
120
- await call.observeResponse(result.vectors.length, result.metadata);
121
- return result;
122
- }
123
- catch (cause) {
124
- await call.#closeFailure(cause);
125
- throw cause;
126
- }
127
- }
128
- async #closeFailure(cause) {
129
- // The observer is the durability boundary. If it failed to open or
130
- // settle a physical row, neither accounting comparison nor a second
131
- // write may claim that the logical call closed. Restart recovery owns
132
- // the remaining unknown boundary, exactly as it does for generation.
133
- if (persistenceFailure(cause) !== null) {
134
- return;
135
- }
136
- const accounting = errorAccounting(cause);
137
- try {
138
- this.assertAccounting(accounting ?? []);
139
- }
140
- catch (integrityCause) {
141
- await this.fail(integrityCause);
142
- if (integrityCause instanceof ProviderAccountingIntegrityError)
143
- throw integrityCause;
144
- throw new ProviderAccountingIntegrityError(String(integrityCause));
145
- }
146
- await this.fail(cause);
147
- }
148
- }
149
- //# sourceMappingURL=EmbeddingCall.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmbeddingCall.js","sourceRoot":"","sources":["../../src/core/EmbeddingCall.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { type KillStatement, type PlanStatement, type SendStatement } from "@plurnk/plurnk-contracts";
2
- import type { Db } from "./Db.ts";
3
- export type OverflowKill = {
4
- readonly statement: KillStatement;
5
- };
6
- export default class OverflowTurn {
7
- static plan(db: Db, loopId: number, turnId: number): Promise<OverflowKill[]>;
8
- static planStatement(): PlanStatement;
9
- static sendStatement(): SendStatement;
10
- }
11
- //# sourceMappingURL=OverflowTurn.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OverflowTurn.d.ts","sourceRoot":"","sources":["../../src/core/OverflowTurn.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAErB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAkBlC,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;CACrC,CAAC;AAoCF,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,OAAa,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAmBjF;IAED,MAAM,CAAC,aAAa,IAAI,aAAa,CAUpC;IAED,MAAM,CAAC,aAAa,IAAI,aAAa,CAUpC;CACJ"}