@plurnk/plurnk-service 1.16.4 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (636) hide show
  1. package/.env.defaults +122 -246
  2. package/INSTALL.md +84 -138
  3. package/README.md +9 -5
  4. package/SPEC.md +1710 -1015
  5. package/dist/Paths.d.ts +2 -0
  6. package/dist/Paths.d.ts.map +1 -1
  7. package/dist/Paths.js +2 -0
  8. package/dist/Paths.js.map +1 -1
  9. package/dist/build-info.d.ts.map +1 -1
  10. package/dist/build-info.js +7 -1
  11. package/dist/build-info.js.map +1 -1
  12. package/dist/build-info.json +1 -1
  13. package/dist/content/body-preview.d.ts +8 -0
  14. package/dist/content/body-preview.d.ts.map +1 -0
  15. package/dist/content/body-preview.js +39 -0
  16. package/dist/content/body-preview.js.map +1 -0
  17. package/dist/content/byte-view.d.ts +1 -4
  18. package/dist/content/byte-view.d.ts.map +1 -1
  19. package/dist/content/byte-view.js.map +1 -1
  20. package/dist/content/edit-collision.d.ts.map +1 -1
  21. package/dist/content/edit-collision.js +3 -4
  22. package/dist/content/edit-collision.js.map +1 -1
  23. package/dist/content/line-anchors.d.ts +2 -2
  24. package/dist/content/line-anchors.d.ts.map +1 -1
  25. package/dist/content/line-anchors.js +4 -3
  26. package/dist/content/line-anchors.js.map +1 -1
  27. package/dist/content/line-selection.d.ts +9 -0
  28. package/dist/content/line-selection.d.ts.map +1 -0
  29. package/dist/content/line-selection.js +29 -0
  30. package/dist/content/line-selection.js.map +1 -0
  31. package/dist/content/matcher.d.ts +0 -1
  32. package/dist/content/matcher.d.ts.map +1 -1
  33. package/dist/content/matcher.js +2 -3
  34. package/dist/content/matcher.js.map +1 -1
  35. package/dist/content/pattern-edits.d.ts +39 -0
  36. package/dist/content/pattern-edits.d.ts.map +1 -0
  37. package/dist/content/pattern-edits.js +121 -0
  38. package/dist/content/pattern-edits.js.map +1 -0
  39. package/dist/content/read-projector.d.ts +18 -9
  40. package/dist/content/read-projector.d.ts.map +1 -1
  41. package/dist/content/read-projector.js +132 -35
  42. package/dist/content/read-projector.js.map +1 -1
  43. package/dist/content/read-resolve.d.ts +3 -1
  44. package/dist/content/read-resolve.d.ts.map +1 -1
  45. package/dist/content/read-resolve.js +39 -7
  46. package/dist/content/read-resolve.js.map +1 -1
  47. package/dist/core/AdmittedTurnExecutor.d.ts +3 -5
  48. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
  49. package/dist/core/AdmittedTurnExecutor.js +91 -83
  50. package/dist/core/AdmittedTurnExecutor.js.map +1 -1
  51. package/dist/core/BareBatchRunner.d.ts +6 -1
  52. package/dist/core/BareBatchRunner.d.ts.map +1 -1
  53. package/dist/core/BareBatchRunner.js +20 -5
  54. package/dist/core/BareBatchRunner.js.map +1 -1
  55. package/dist/core/BudgetReadout.d.ts +2 -3
  56. package/dist/core/BudgetReadout.d.ts.map +1 -1
  57. package/dist/core/BudgetReadout.js +23 -32
  58. package/dist/core/BudgetReadout.js.map +1 -1
  59. package/dist/core/CapabilityPolicies.d.ts +3 -8
  60. package/dist/core/CapabilityPolicies.d.ts.map +1 -1
  61. package/dist/core/CapabilityPolicies.js +2 -28
  62. package/dist/core/CapabilityPolicies.js.map +1 -1
  63. package/dist/core/CapabilityResolver.d.ts +10 -10
  64. package/dist/core/CapabilityResolver.d.ts.map +1 -1
  65. package/dist/core/CapabilityResolver.js +87 -65
  66. package/dist/core/CapabilityResolver.js.map +1 -1
  67. package/dist/core/ChannelWrite.d.ts +14 -11
  68. package/dist/core/ChannelWrite.d.ts.map +1 -1
  69. package/dist/core/ChannelWrite.js +11 -12
  70. package/dist/core/ChannelWrite.js.map +1 -1
  71. package/dist/core/ChannelWrite.sql +99 -9
  72. package/dist/core/ClientInteractions.d.ts.map +1 -1
  73. package/dist/core/ClientInteractions.js +7 -0
  74. package/dist/core/ClientInteractions.js.map +1 -1
  75. package/dist/core/CoreSchemeServices.d.ts +13 -10
  76. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  77. package/dist/core/CoreSchemeServices.js +13 -5
  78. package/dist/core/CoreSchemeServices.js.map +1 -1
  79. package/dist/core/DataStatementRunner.d.ts +2 -2
  80. package/dist/core/DataStatementRunner.d.ts.map +1 -1
  81. package/dist/core/DataStatementRunner.js +36 -39
  82. package/dist/core/DataStatementRunner.js.map +1 -1
  83. package/dist/core/Dispatcher.d.ts +19 -26
  84. package/dist/core/Dispatcher.d.ts.map +1 -1
  85. package/dist/core/Dispatcher.js +369 -219
  86. package/dist/core/Dispatcher.js.map +1 -1
  87. package/dist/core/Dispatcher.sql +66 -0
  88. package/dist/core/DurableStatement.d.ts.map +1 -1
  89. package/dist/core/DurableStatement.js +2 -1
  90. package/dist/core/DurableStatement.js.map +1 -1
  91. package/dist/core/EditMutations.d.ts +14 -18
  92. package/dist/core/EditMutations.d.ts.map +1 -1
  93. package/dist/core/EditMutations.js +211 -280
  94. package/dist/core/EditMutations.js.map +1 -1
  95. package/dist/core/EditMutations.sql +15 -0
  96. package/dist/core/EditSequence.d.ts +13 -0
  97. package/dist/core/EditSequence.d.ts.map +1 -0
  98. package/dist/core/EditSequence.js +73 -0
  99. package/dist/core/EditSequence.js.map +1 -0
  100. package/dist/core/Engine.d.ts +17 -23
  101. package/dist/core/Engine.d.ts.map +1 -1
  102. package/dist/core/Engine.js +73 -163
  103. package/dist/core/Engine.js.map +1 -1
  104. package/dist/core/Engine.sql +0 -724
  105. package/dist/core/EntryAddressBinding.d.ts +7 -17
  106. package/dist/core/EntryAddressBinding.d.ts.map +1 -1
  107. package/dist/core/EntryAddressBinding.js +12 -72
  108. package/dist/core/EntryAddressBinding.js.map +1 -1
  109. package/dist/core/ExecutionOutputs.d.ts +9 -0
  110. package/dist/core/ExecutionOutputs.d.ts.map +1 -0
  111. package/dist/core/ExecutionOutputs.js +36 -0
  112. package/dist/core/ExecutionOutputs.js.map +1 -0
  113. package/dist/core/ExecutionOutputs.sql +13 -0
  114. package/dist/core/ExecutorRegistry.d.ts +7 -5
  115. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  116. package/dist/core/ExecutorRegistry.js +36 -32
  117. package/dist/core/ExecutorRegistry.js.map +1 -1
  118. package/dist/core/HostPaths.d.ts +1 -0
  119. package/dist/core/HostPaths.d.ts.map +1 -1
  120. package/dist/core/HostPaths.js +4 -0
  121. package/dist/core/HostPaths.js.map +1 -1
  122. package/dist/core/InferenceCall.d.ts.map +1 -1
  123. package/dist/core/InferenceCall.js +1 -2
  124. package/dist/core/InferenceCall.js.map +1 -1
  125. package/dist/core/InferenceCall.sql +29 -0
  126. package/dist/core/KillHandler.d.ts +1 -0
  127. package/dist/core/KillHandler.d.ts.map +1 -1
  128. package/dist/core/KillHandler.js +24 -21
  129. package/dist/core/KillHandler.js.map +1 -1
  130. package/dist/core/LogBody.d.ts +8 -1
  131. package/dist/core/LogBody.d.ts.map +1 -1
  132. package/dist/core/LogBody.js +42 -11
  133. package/dist/core/LogBody.js.map +1 -1
  134. package/dist/core/LogEntryProjection.d.ts +1 -0
  135. package/dist/core/LogEntryProjection.d.ts.map +1 -1
  136. package/dist/core/LogEntryProjection.js +18 -10
  137. package/dist/core/LogEntryProjection.js.map +1 -1
  138. package/dist/core/LogVisibility.d.ts +1 -0
  139. package/dist/core/LogVisibility.d.ts.map +1 -1
  140. package/dist/core/LogVisibility.js +3 -0
  141. package/dist/core/LogVisibility.js.map +1 -1
  142. package/dist/core/LogWriter.d.ts +2 -3
  143. package/dist/core/LogWriter.d.ts.map +1 -1
  144. package/dist/core/LogWriter.js +25 -32
  145. package/dist/core/LogWriter.js.map +1 -1
  146. package/dist/core/LogWriter.sql +23 -0
  147. package/dist/core/LoopDriver.d.ts +11 -8
  148. package/dist/core/LoopDriver.d.ts.map +1 -1
  149. package/dist/core/LoopDriver.js +163 -189
  150. package/dist/core/LoopDriver.js.map +1 -1
  151. package/dist/core/LoopDriver.sql +11 -0
  152. package/dist/core/LoopLifecycle.d.ts +32 -2
  153. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  154. package/dist/core/LoopLifecycle.js +88 -4
  155. package/dist/core/LoopLifecycle.js.map +1 -1
  156. package/dist/core/LoopLifecycle.sql +145 -28
  157. package/dist/core/LoopPolicyReader.sql +6 -0
  158. package/dist/core/MembershipMaterialization.d.ts.map +1 -1
  159. package/dist/core/MembershipMaterialization.js +6 -28
  160. package/dist/core/MembershipMaterialization.js.map +1 -1
  161. package/dist/core/ModelCall.sql +70 -0
  162. package/dist/core/MutationEffects.d.ts +5 -3
  163. package/dist/core/MutationEffects.d.ts.map +1 -1
  164. package/dist/core/MutationEffects.js +10 -28
  165. package/dist/core/MutationEffects.js.map +1 -1
  166. package/dist/core/NativeContent.d.ts +6 -0
  167. package/dist/core/NativeContent.d.ts.map +1 -0
  168. package/dist/core/NativeContent.js +16 -0
  169. package/dist/core/NativeContent.js.map +1 -0
  170. package/dist/core/NativeContent.sql +6 -0
  171. package/dist/core/NoticeChannel.js +1 -1
  172. package/dist/core/NoticeChannel.js.map +1 -1
  173. package/dist/core/OperatorConfig.js +5 -5
  174. package/dist/core/OperatorConfig.js.map +1 -1
  175. package/dist/core/PacketBuilder.d.ts +8 -5
  176. package/dist/core/PacketBuilder.d.ts.map +1 -1
  177. package/dist/core/PacketBuilder.js +117 -81
  178. package/dist/core/PacketBuilder.js.map +1 -1
  179. package/dist/core/PacketBuilder.sql +146 -0
  180. package/dist/core/PatternSelection.d.ts +28 -0
  181. package/dist/core/PatternSelection.d.ts.map +1 -0
  182. package/dist/core/PatternSelection.js +42 -0
  183. package/dist/core/PatternSelection.js.map +1 -0
  184. package/dist/core/ProblemLog.d.ts.map +1 -1
  185. package/dist/core/ProblemLog.js +0 -1
  186. package/dist/core/ProblemLog.js.map +1 -1
  187. package/dist/core/PromptFrames.d.ts +12 -0
  188. package/dist/core/PromptFrames.d.ts.map +1 -0
  189. package/dist/core/PromptFrames.js +28 -0
  190. package/dist/core/PromptFrames.js.map +1 -0
  191. package/dist/core/ProposalLifecycle.d.ts +0 -1
  192. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  193. package/dist/core/ProposalLifecycle.js +20 -19
  194. package/dist/core/ProposalLifecycle.js.map +1 -1
  195. package/dist/core/ProposalLifecycle.sql +33 -0
  196. package/dist/core/ProviderInstantiate.d.ts +1 -1
  197. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  198. package/dist/core/ProviderInstantiate.js +7 -14
  199. package/dist/core/ProviderInstantiate.js.map +1 -1
  200. package/dist/core/ReasoningView.d.ts +9 -0
  201. package/dist/core/ReasoningView.d.ts.map +1 -0
  202. package/dist/core/ReasoningView.js +47 -0
  203. package/dist/core/ReasoningView.js.map +1 -0
  204. package/dist/core/ResourceBindings.d.ts +16 -0
  205. package/dist/core/ResourceBindings.d.ts.map +1 -0
  206. package/dist/core/ResourceBindings.js +45 -0
  207. package/dist/core/ResourceBindings.js.map +1 -0
  208. package/dist/core/ResourceMutations.d.ts +5 -8
  209. package/dist/core/ResourceMutations.d.ts.map +1 -1
  210. package/dist/core/ResourceMutations.js +6 -7
  211. package/dist/core/ResourceMutations.js.map +1 -1
  212. package/dist/core/ResourceSelector.d.ts +2 -2
  213. package/dist/core/ResourceSelector.d.ts.map +1 -1
  214. package/dist/core/ResourceSelector.js +122 -62
  215. package/dist/core/ResourceSelector.js.map +1 -1
  216. package/dist/core/ResourceTransfers.d.ts +4 -2
  217. package/dist/core/ResourceTransfers.d.ts.map +1 -1
  218. package/dist/core/ResourceTransfers.js +95 -26
  219. package/dist/core/ResourceTransfers.js.map +1 -1
  220. package/dist/core/RuntimeWorker.d.ts +5 -0
  221. package/dist/core/RuntimeWorker.d.ts.map +1 -0
  222. package/dist/core/RuntimeWorker.js +10 -0
  223. package/dist/core/RuntimeWorker.js.map +1 -0
  224. package/dist/core/RuntimeWorker.sql +5 -0
  225. package/dist/core/SchemeRegistry.d.ts +12 -16
  226. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  227. package/dist/core/SchemeRegistry.js +58 -84
  228. package/dist/core/SchemeRegistry.js.map +1 -1
  229. package/dist/core/StoredPacket.d.ts +6 -1
  230. package/dist/core/StoredPacket.d.ts.map +1 -1
  231. package/dist/core/StoredPacket.js +30 -10
  232. package/dist/core/StoredPacket.js.map +1 -1
  233. package/dist/core/StrikeRail.d.ts +9 -6
  234. package/dist/core/StrikeRail.d.ts.map +1 -1
  235. package/dist/core/StrikeRail.js +60 -113
  236. package/dist/core/StrikeRail.js.map +1 -1
  237. package/dist/core/StrikeRail.sql +12 -0
  238. package/dist/core/TerminalResult.d.ts +1 -1
  239. package/dist/core/TerminalResult.d.ts.map +1 -1
  240. package/dist/core/TerminalResult.js +2 -2
  241. package/dist/core/TerminalResult.js.map +1 -1
  242. package/dist/core/TokenCalibration.d.ts +1 -6
  243. package/dist/core/TokenCalibration.d.ts.map +1 -1
  244. package/dist/core/TokenCalibration.js +13 -9
  245. package/dist/core/TokenCalibration.js.map +1 -1
  246. package/dist/core/TokenCalibration.sql +15 -0
  247. package/dist/core/ToolInputSchema.d.ts +6 -0
  248. package/dist/core/ToolInputSchema.d.ts.map +1 -0
  249. package/dist/core/ToolInputSchema.js +43 -0
  250. package/dist/core/ToolInputSchema.js.map +1 -0
  251. package/dist/core/ToolResources.d.ts.map +1 -1
  252. package/dist/core/ToolResources.js +76 -52
  253. package/dist/core/ToolResources.js.map +1 -1
  254. package/dist/core/Turn.d.ts +5 -2
  255. package/dist/core/Turn.d.ts.map +1 -1
  256. package/dist/core/Turn.js +13 -11
  257. package/dist/core/Turn.js.map +1 -1
  258. package/dist/core/Turn.sql +25 -39
  259. package/dist/core/{SendBroadcastHandler.d.ts → TurnDispositionHandler.d.ts} +25 -17
  260. package/dist/core/TurnDispositionHandler.d.ts.map +1 -0
  261. package/dist/core/TurnDispositionHandler.js +198 -0
  262. package/dist/core/TurnDispositionHandler.js.map +1 -0
  263. package/dist/core/TurnMaterialization.d.ts +2 -3
  264. package/dist/core/TurnMaterialization.d.ts.map +1 -1
  265. package/dist/core/TurnMaterialization.js +40 -15
  266. package/dist/core/TurnMaterialization.js.map +1 -1
  267. package/dist/core/TurnMaterialization.sql +44 -0
  268. package/dist/core/TurnOps.d.ts.map +1 -1
  269. package/dist/core/TurnOps.js +8 -64
  270. package/dist/core/TurnOps.js.map +1 -1
  271. package/dist/core/TurnRunner.d.ts +9 -12
  272. package/dist/core/TurnRunner.d.ts.map +1 -1
  273. package/dist/core/TurnRunner.js +232 -408
  274. package/dist/core/TurnRunner.js.map +1 -1
  275. package/dist/core/TurnRunner.sql +74 -0
  276. package/dist/core/TurnSources.sql +39 -0
  277. package/dist/core/WorkerControlAddress.d.ts +1 -0
  278. package/dist/core/WorkerControlAddress.d.ts.map +1 -1
  279. package/dist/core/WorkerControlAddress.js +5 -0
  280. package/dist/core/WorkerControlAddress.js.map +1 -1
  281. package/dist/core/WorkerControlHandler.d.ts +1 -3
  282. package/dist/core/WorkerControlHandler.d.ts.map +1 -1
  283. package/dist/core/WorkerControlHandler.js +41 -48
  284. package/dist/core/WorkerControlHandler.js.map +1 -1
  285. package/dist/core/WorkerName.d.ts +8 -6
  286. package/dist/core/WorkerName.d.ts.map +1 -1
  287. package/dist/core/WorkerName.js +33 -24
  288. package/dist/core/WorkerName.js.map +1 -1
  289. package/dist/core/WorkerName.sql +7 -10
  290. package/dist/core/WorkspaceGate.d.ts +1 -1
  291. package/dist/core/WorkspaceGate.d.ts.map +1 -1
  292. package/dist/core/WorkspaceGate.js +29 -6
  293. package/dist/core/WorkspaceGate.js.map +1 -1
  294. package/dist/core/ambient.sql +236 -0
  295. package/dist/core/attachments.d.ts +2 -1
  296. package/dist/core/attachments.d.ts.map +1 -1
  297. package/dist/core/attachments.js +5 -4
  298. package/dist/core/attachments.js.map +1 -1
  299. package/dist/core/caps/CapsResolve.d.ts +2 -3
  300. package/dist/core/caps/CapsResolve.d.ts.map +1 -1
  301. package/dist/core/caps/CapsResolve.js +5 -5
  302. package/dist/core/caps/CapsResolve.js.map +1 -1
  303. package/dist/core/caps/DbChannelCaps.d.ts +1 -1
  304. package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
  305. package/dist/core/caps/DbChannelCaps.js +4 -6
  306. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  307. package/dist/core/caps/DbEntryCaps.d.ts +2 -1
  308. package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
  309. package/dist/core/caps/DbEntryCaps.js +11 -17
  310. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  311. package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
  312. package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
  313. package/dist/core/caps/DbNotifyCaps.js +3 -5
  314. package/dist/core/caps/DbNotifyCaps.js.map +1 -1
  315. package/dist/core/caps/DbProjectionCaps.js +1 -1
  316. package/dist/core/caps/DbProjectionCaps.js.map +1 -1
  317. package/dist/core/caps/DbSubscriptionCaps.d.ts +1 -1
  318. package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
  319. package/dist/core/caps/DbSubscriptionCaps.js +5 -7
  320. package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
  321. package/dist/core/caps/SchemeCtxImpl.d.ts +0 -2
  322. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  323. package/dist/core/caps/SchemeCtxImpl.js +4 -20
  324. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  325. package/dist/core/env-defaults.d.ts.map +1 -1
  326. package/dist/core/env-defaults.js +4 -2
  327. package/dist/core/env-defaults.js.map +1 -1
  328. package/dist/core/file-materialization.d.ts +4 -1
  329. package/dist/core/file-materialization.d.ts.map +1 -1
  330. package/dist/core/file-materialization.js +14 -0
  331. package/dist/core/file-materialization.js.map +1 -1
  332. package/dist/core/fork.d.ts +1 -6
  333. package/dist/core/fork.d.ts.map +1 -1
  334. package/dist/core/fork.js +9 -153
  335. package/dist/core/fork.js.map +1 -1
  336. package/dist/core/fork.sql +162 -185
  337. package/dist/core/git-env.d.ts +1 -0
  338. package/dist/core/git-env.d.ts.map +1 -1
  339. package/dist/core/git-env.js +39 -2
  340. package/dist/core/git-env.js.map +1 -1
  341. package/dist/core/git-membership.d.ts.map +1 -1
  342. package/dist/core/git-membership.js +64 -48
  343. package/dist/core/git-membership.js.map +1 -1
  344. package/dist/core/git-state.d.ts.map +1 -1
  345. package/dist/core/git-state.js +25 -19
  346. package/dist/core/git-state.js.map +1 -1
  347. package/dist/core/glob_match.d.ts +4 -0
  348. package/dist/core/glob_match.d.ts.map +1 -0
  349. package/dist/core/glob_match.js +7 -0
  350. package/dist/core/glob_match.js.map +1 -0
  351. package/dist/core/maintenance.sql +6 -0
  352. package/dist/core/mutation-types.d.ts +7 -28
  353. package/dist/core/mutation-types.d.ts.map +1 -1
  354. package/dist/core/packet-inject.d.ts.map +1 -1
  355. package/dist/core/packet-inject.js +2 -3
  356. package/dist/core/packet-inject.js.map +1 -1
  357. package/dist/core/packet-wire.d.ts +8 -6
  358. package/dist/core/packet-wire.d.ts.map +1 -1
  359. package/dist/core/packet-wire.js +131 -163
  360. package/dist/core/packet-wire.js.map +1 -1
  361. package/dist/core/plurnk-uri.d.ts +1 -1
  362. package/dist/core/plurnk-uri.d.ts.map +1 -1
  363. package/dist/core/plurnk-uri.js +5 -12
  364. package/dist/core/plurnk-uri.js.map +1 -1
  365. package/dist/core/scheme-types.d.ts +3 -3
  366. package/dist/core/scheme-types.d.ts.map +1 -1
  367. package/dist/core/scheme-types.js.map +1 -1
  368. package/dist/core/sha256.d.ts +4 -0
  369. package/dist/core/sha256.d.ts.map +1 -0
  370. package/dist/core/sha256.js +6 -0
  371. package/dist/core/sha256.js.map +1 -0
  372. package/dist/core/teaching.js +1 -1
  373. package/dist/core/teaching.js.map +1 -1
  374. package/dist/core/turn-scheduler.d.ts.map +1 -1
  375. package/dist/core/turn-scheduler.js +5 -18
  376. package/dist/core/turn-scheduler.js.map +1 -1
  377. package/dist/core/turn-signals.d.ts +0 -6
  378. package/dist/core/turn-signals.d.ts.map +1 -1
  379. package/dist/core/turn-signals.js +1 -7
  380. package/dist/core/turn-signals.js.map +1 -1
  381. package/dist/core/worker-ops.sql +15 -22
  382. package/dist/core/workspace-settings.d.ts.map +1 -1
  383. package/dist/core/workspace-settings.js +18 -2
  384. package/dist/core/workspace-settings.js.map +1 -1
  385. package/dist/core/workspace-settings.sql +6 -0
  386. package/dist/digest/Digest.d.ts.map +1 -1
  387. package/dist/digest/Digest.js +27 -90
  388. package/dist/digest/Digest.js.map +1 -1
  389. package/dist/digest/DigestRender.d.ts.map +1 -1
  390. package/dist/digest/DigestRender.js +14 -54
  391. package/dist/digest/DigestRender.js.map +1 -1
  392. package/dist/digest/digest-rows.d.ts +10 -32
  393. package/dist/digest/digest-rows.d.ts.map +1 -1
  394. package/dist/digest/digest.sql +43 -18
  395. package/dist/schemes/Exec.d.ts +6 -12
  396. package/dist/schemes/Exec.d.ts.map +1 -1
  397. package/dist/schemes/Exec.js +256 -188
  398. package/dist/schemes/Exec.js.map +1 -1
  399. package/dist/schemes/ExecOutputScheme.d.ts +8 -6
  400. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  401. package/dist/schemes/ExecOutputScheme.js +33 -61
  402. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  403. package/dist/schemes/ExecutionInput.d.ts +12 -0
  404. package/dist/schemes/ExecutionInput.d.ts.map +1 -0
  405. package/dist/schemes/ExecutionInput.js +94 -0
  406. package/dist/schemes/ExecutionInput.js.map +1 -0
  407. package/dist/schemes/File.d.ts +5 -2
  408. package/dist/schemes/File.d.ts.map +1 -1
  409. package/dist/schemes/File.js +62 -92
  410. package/dist/schemes/File.js.map +1 -1
  411. package/dist/schemes/Log.d.ts.map +1 -1
  412. package/dist/schemes/Log.js +84 -79
  413. package/dist/schemes/Log.js.map +1 -1
  414. package/dist/schemes/Log.sql +183 -15
  415. package/dist/schemes/Prompt.d.ts.map +1 -1
  416. package/dist/schemes/Prompt.js +3 -12
  417. package/dist/schemes/Prompt.js.map +1 -1
  418. package/dist/schemes/QuestionTool.d.ts +5 -0
  419. package/dist/schemes/QuestionTool.d.ts.map +1 -1
  420. package/dist/schemes/QuestionTool.js +6 -14
  421. package/dist/schemes/QuestionTool.js.map +1 -1
  422. package/dist/schemes/Skill.d.ts +12 -7
  423. package/dist/schemes/Skill.d.ts.map +1 -1
  424. package/dist/schemes/Skill.js +149 -21
  425. package/dist/schemes/Skill.js.map +1 -1
  426. package/dist/schemes/TurnSource.d.ts +12 -0
  427. package/dist/schemes/TurnSource.d.ts.map +1 -0
  428. package/dist/schemes/TurnSource.js +116 -0
  429. package/dist/schemes/TurnSource.js.map +1 -0
  430. package/dist/schemes/Worker.d.ts +3 -3
  431. package/dist/schemes/Worker.d.ts.map +1 -1
  432. package/dist/schemes/Worker.js +61 -208
  433. package/dist/schemes/Worker.js.map +1 -1
  434. package/dist/schemes/_entry-crud.d.ts +12 -15
  435. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  436. package/dist/schemes/_entry-crud.js +63 -63
  437. package/dist/schemes/_entry-crud.js.map +1 -1
  438. package/dist/schemes/_entry-crud.sql +142 -46
  439. package/dist/schemes/_entry-find.d.ts +1 -3
  440. package/dist/schemes/_entry-find.d.ts.map +1 -1
  441. package/dist/schemes/_entry-find.js +111 -112
  442. package/dist/schemes/_entry-find.js.map +1 -1
  443. package/dist/schemes/_entry-find.sql +22 -14
  444. package/dist/schemes/_entry-fts.d.ts +14 -0
  445. package/dist/schemes/_entry-fts.d.ts.map +1 -0
  446. package/dist/schemes/_entry-fts.js +82 -0
  447. package/dist/schemes/_entry-fts.js.map +1 -0
  448. package/dist/schemes/_entry-fts.sql +31 -0
  449. package/dist/schemes/_entry-graph.d.ts.map +1 -1
  450. package/dist/schemes/_entry-graph.js +6 -14
  451. package/dist/schemes/_entry-graph.js.map +1 -1
  452. package/dist/schemes/_entry-graph.sql +29 -44
  453. package/dist/schemes/_entry-manifest.d.ts +2 -1
  454. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  455. package/dist/schemes/_entry-manifest.js +15 -12
  456. package/dist/schemes/_entry-manifest.js.map +1 -1
  457. package/dist/schemes/_entry-manifest.sql +26 -0
  458. package/dist/schemes/_entry-ops.d.ts +3 -5
  459. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  460. package/dist/schemes/_entry-ops.js +30 -43
  461. package/dist/schemes/_entry-ops.js.map +1 -1
  462. package/dist/schemes/_entry-ops.sql +5 -6
  463. package/dist/schemes/_entry-readable.d.ts +8 -0
  464. package/dist/schemes/_entry-readable.d.ts.map +1 -0
  465. package/dist/schemes/_entry-readable.js +38 -0
  466. package/dist/schemes/_entry-readable.js.map +1 -0
  467. package/dist/schemes/_entry-send.d.ts +1 -1
  468. package/dist/schemes/_entry-send.d.ts.map +1 -1
  469. package/dist/schemes/_entry-send.js +3 -3
  470. package/dist/schemes/_entry-send.js.map +1 -1
  471. package/dist/schemes/_search-index.d.ts +1 -3
  472. package/dist/schemes/_search-index.d.ts.map +1 -1
  473. package/dist/schemes/_search-index.js +79 -110
  474. package/dist/schemes/_search-index.js.map +1 -1
  475. package/dist/schemes/_search-index.sql +30 -0
  476. package/dist/schemes/exec-runtime.d.ts +1 -1
  477. package/dist/schemes/exec-runtime.d.ts.map +1 -1
  478. package/dist/schemes/exec-runtime.js.map +1 -1
  479. package/dist/server/ClientReads.d.ts +2 -2
  480. package/dist/server/ClientReads.d.ts.map +1 -1
  481. package/dist/server/ClientReads.js +5 -8
  482. package/dist/server/ClientReads.js.map +1 -1
  483. package/dist/server/Daemon.d.ts +14 -21
  484. package/dist/server/Daemon.d.ts.map +1 -1
  485. package/dist/server/Daemon.js +135 -156
  486. package/dist/server/Daemon.js.map +1 -1
  487. package/dist/server/DaemonModule.d.ts +23 -21
  488. package/dist/server/DaemonModule.d.ts.map +1 -1
  489. package/dist/server/DrainSupervisor.d.ts +8 -21
  490. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  491. package/dist/server/DrainSupervisor.js +278 -306
  492. package/dist/server/DrainSupervisor.js.map +1 -1
  493. package/dist/server/Functionality.d.ts +11 -12
  494. package/dist/server/Functionality.d.ts.map +1 -1
  495. package/dist/server/Functionality.js +129 -101
  496. package/dist/server/Functionality.js.map +1 -1
  497. package/dist/server/FunctionalityManager.d.ts +3 -5
  498. package/dist/server/FunctionalityManager.d.ts.map +1 -1
  499. package/dist/server/FunctionalityManager.js +20 -58
  500. package/dist/server/FunctionalityManager.js.map +1 -1
  501. package/dist/server/MembersFunctionality.d.ts +5 -4
  502. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  503. package/dist/server/MembersFunctionality.js +24 -37
  504. package/dist/server/MembersFunctionality.js.map +1 -1
  505. package/dist/server/PlurnkSkill.d.ts +11 -0
  506. package/dist/server/PlurnkSkill.d.ts.map +1 -0
  507. package/dist/server/PlurnkSkill.js +41 -0
  508. package/dist/server/PlurnkSkill.js.map +1 -0
  509. package/dist/server/Retention.d.ts +22 -0
  510. package/dist/server/Retention.d.ts.map +1 -0
  511. package/dist/server/Retention.js +54 -0
  512. package/dist/server/Retention.js.map +1 -0
  513. package/dist/server/Retention.sql +36 -0
  514. package/dist/server/ServiceModules.d.ts +5 -0
  515. package/dist/server/ServiceModules.d.ts.map +1 -0
  516. package/dist/server/ServiceModules.js +10 -0
  517. package/dist/server/ServiceModules.js.map +1 -0
  518. package/dist/server/SkillsFunctionality.d.ts +14 -19
  519. package/dist/server/SkillsFunctionality.d.ts.map +1 -1
  520. package/dist/server/SkillsFunctionality.js +97 -104
  521. package/dist/server/SkillsFunctionality.js.map +1 -1
  522. package/dist/server/WorkerModelResolver.d.ts +4 -0
  523. package/dist/server/WorkerModelResolver.d.ts.map +1 -1
  524. package/dist/server/WorkerModelResolver.js +72 -39
  525. package/dist/server/WorkerModelResolver.js.map +1 -1
  526. package/dist/server/WorkspaceCapabilities.d.ts +21 -0
  527. package/dist/server/WorkspaceCapabilities.d.ts.map +1 -0
  528. package/dist/server/{WorkerCapabilities.js → WorkspaceCapabilities.js} +40 -40
  529. package/dist/server/WorkspaceCapabilities.js.map +1 -0
  530. package/dist/server/WorkspaceResidency.d.ts +36 -0
  531. package/dist/server/WorkspaceResidency.d.ts.map +1 -0
  532. package/dist/server/WorkspaceResidency.js +199 -0
  533. package/dist/server/WorkspaceResidency.js.map +1 -0
  534. package/dist/server/client-input.d.ts +1 -4
  535. package/dist/server/client-input.d.ts.map +1 -1
  536. package/dist/server/client-input.js +4 -45
  537. package/dist/server/client-input.js.map +1 -1
  538. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  539. package/dist/server/dispatch-as-plurnk.js +4 -22
  540. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  541. package/dist/server/drain.sql +65 -42
  542. package/dist/server/envelope.d.ts +8 -0
  543. package/dist/server/envelope.d.ts.map +1 -1
  544. package/dist/server/envelope.js +9 -7
  545. package/dist/server/envelope.js.map +1 -1
  546. package/dist/server/envelope.sql +49 -13
  547. package/dist/server/lifecycle-recovery.sql +14 -17
  548. package/dist/server/logEntry.d.ts +1 -1
  549. package/dist/server/logEntry.d.ts.map +1 -1
  550. package/dist/server/logEntry.js +4 -1
  551. package/dist/server/logEntry.js.map +1 -1
  552. package/dist/server/logEntry.sql +25 -1
  553. package/dist/server/loopDocs.d.ts +2 -2
  554. package/dist/server/loopDocs.d.ts.map +1 -1
  555. package/dist/server/loopDocs.js +38 -31
  556. package/dist/server/loopDocs.js.map +1 -1
  557. package/dist/server/loopDocs.sql +1 -3
  558. package/dist/server/model-catalog.d.ts.map +1 -1
  559. package/dist/server/model-catalog.js +2 -1
  560. package/dist/server/model-catalog.js.map +1 -1
  561. package/dist/server/model-route.d.ts +1 -1
  562. package/dist/server/model-route.d.ts.map +1 -1
  563. package/dist/server/model-route.js +4 -2
  564. package/dist/server/model-route.js.map +1 -1
  565. package/dist/server/seam-entry-read.sql +3 -4
  566. package/dist/server/seam-loop.sql +2 -9
  567. package/dist/server/workspace-capabilities.sql +19 -0
  568. package/dist/service.d.ts.map +1 -1
  569. package/dist/service.js +5 -17
  570. package/dist/service.js.map +1 -1
  571. package/docs/members.md +83 -0
  572. package/docs/skills.md +50 -0
  573. package/migrations/001_workspaces.sql +53 -0
  574. package/migrations/002_workers.sql +183 -0
  575. package/migrations/003_loops.sql +326 -0
  576. package/migrations/004_inference.sql +360 -0
  577. package/migrations/005_entries.sql +207 -0
  578. package/migrations/006_log.sql +578 -0
  579. package/migrations/007_subscriptions.sql +175 -0
  580. package/migrations/008_interactions.sql +29 -0
  581. package/package.json +33 -40
  582. package/digest-sql/channel-dispositions/dispositions.sql +0 -15
  583. package/digest-sql/channel-state/state.sql +0 -6
  584. package/digest-sql/curation/curation.sql +0 -6
  585. package/digest-sql/derivations/derivations.sql +0 -4
  586. package/digest-sql/embeddings/embeddings.sql +0 -4
  587. package/digest-sql/entry-dispositions/dispositions.sql +0 -15
  588. package/digest-sql/entry-state/state.sql +0 -6
  589. package/digest-sql/token-counts/token-counts.sql +0 -2
  590. package/dist/core/EmbeddingCall.d.ts +0 -23
  591. package/dist/core/EmbeddingCall.d.ts.map +0 -1
  592. package/dist/core/EmbeddingCall.js +0 -149
  593. package/dist/core/EmbeddingCall.js.map +0 -1
  594. package/dist/core/OverflowTurn.d.ts +0 -11
  595. package/dist/core/OverflowTurn.d.ts.map +0 -1
  596. package/dist/core/OverflowTurn.js +0 -80
  597. package/dist/core/OverflowTurn.js.map +0 -1
  598. package/dist/core/Owner.d.ts +0 -8
  599. package/dist/core/Owner.d.ts.map +0 -1
  600. package/dist/core/Owner.js +0 -46
  601. package/dist/core/Owner.js.map +0 -1
  602. package/dist/core/SendBroadcastHandler.d.ts.map +0 -1
  603. package/dist/core/SendBroadcastHandler.js +0 -159
  604. package/dist/core/SendBroadcastHandler.js.map +0 -1
  605. package/dist/core/VectorPump.d.ts +0 -28
  606. package/dist/core/VectorPump.d.ts.map +0 -1
  607. package/dist/core/VectorPump.js +0 -130
  608. package/dist/core/VectorPump.js.map +0 -1
  609. package/dist/core/owner.sql +0 -11
  610. package/dist/core/worker-settings.d.ts +0 -10
  611. package/dist/core/worker-settings.d.ts.map +0 -1
  612. package/dist/core/worker-settings.js +0 -53
  613. package/dist/core/worker-settings.js.map +0 -1
  614. package/dist/schemes/_entry-chunk.d.ts +0 -14
  615. package/dist/schemes/_entry-chunk.d.ts.map +0 -1
  616. package/dist/schemes/_entry-chunk.js +0 -165
  617. package/dist/schemes/_entry-chunk.js.map +0 -1
  618. package/dist/schemes/_entry-semantic.d.ts +0 -63
  619. package/dist/schemes/_entry-semantic.d.ts.map +0 -1
  620. package/dist/schemes/_entry-semantic.js +0 -299
  621. package/dist/schemes/_entry-semantic.js.map +0 -1
  622. package/dist/schemes/_entry-semantic.sql +0 -99
  623. package/dist/schemes/cosine.d.ts +0 -4
  624. package/dist/schemes/cosine.d.ts.map +0 -1
  625. package/dist/schemes/cosine.js +0 -9
  626. package/dist/schemes/cosine.js.map +0 -1
  627. package/dist/server/WorkerCapabilities.d.ts +0 -21
  628. package/dist/server/WorkerCapabilities.d.ts.map +0 -1
  629. package/dist/server/WorkerCapabilities.js.map +0 -1
  630. package/dist/server/WorkerResidency.d.ts +0 -40
  631. package/dist/server/WorkerResidency.d.ts.map +0 -1
  632. package/dist/server/WorkerResidency.js +0 -283
  633. package/dist/server/WorkerResidency.js.map +0 -1
  634. package/dist/server/seam-log-read.sql +0 -21
  635. package/dist/server/worker-capabilities.sql +0 -28
  636. package/migrations/001_schema.sql +0 -2207
@@ -1,165 +0,0 @@
1
- // The chunker for the `~query` semantic dialect — lossless, structure-preferring,
2
- // budget-driven. Service-owned: the embedder plugin only embeds text + reports
3
- // its window/tokenizer; how an entry is sliced to fit that window is the dialect's
4
- // job, and the dialect is ours.
5
- //
6
- // tile() partitions an entry's body into chunks each <= `budget` tokens, COVERING
7
- // EVERY LINE (losslessness — no truncation, ever), preferring to break at a
8
- // `boundaries` line (an &graph symbol edge) when one falls within budget. Pure: no
9
- // I/O, no DB, no plugin — `countTokens` is injected (the embedder's real
10
- // tokenizer selected by the pass-wide semantic plan in production; a stub in
11
- // tests). Every tunable is a parameter — no constants live here.
12
- import { availableParallelism } from "node:os";
13
- import { TextCoordinates } from "@plurnk/plurnk-mimetypes";
14
- export default class EntryChunk {
15
- static async tile(content, boundaries, budget, overlap, countTokens, onPlanningProgress) {
16
- if (!(budget >= 1))
17
- throw new Error(`EntryChunk.tile: budget must be >= 1, got ${budget}`);
18
- if (!(overlap >= 0 && overlap < 1))
19
- throw new Error(`EntryChunk.tile: overlap must be in [0,1), got ${overlap}`);
20
- if (content.length === 0)
21
- return [];
22
- const lines = TextCoordinates.logicalLines(content).map(({ start, end }) => content.slice(start, end));
23
- const n = lines.length;
24
- // The budget is checked against the SUM of per-line counts. Cross-line BPE
25
- // merges only ever shrink the true token count, so the sum is a safe upper
26
- // bound: a chunk that passes the sum check is guaranteed <= budget in the
27
- // real tokenizer. Lossless, and only O(n) countTokens calls.
28
- let planned = 0;
29
- let nextLine = 0;
30
- const lineTokens = new Array(lines.length);
31
- const counter = async () => {
32
- while (nextLine < lines.length) {
33
- const index = nextLine++;
34
- lineTokens[index] = await countTokens(lines[index]);
35
- planned++;
36
- onPlanningProgress?.({ completed: planned, total: lines.length });
37
- }
38
- };
39
- // Keep only a host-relative window of token-count promises alive. Mapping a
40
- // 400k-line tokenizer JSON through Promise.all retained hundreds of thousands
41
- // of promises per concurrent entry and could exhaust V8 before embedding began.
42
- await Promise.all(Array.from({ length: Math.min(lines.length, availableParallelism() * 2) }, () => counter()));
43
- const chunks = [];
44
- let start = 0;
45
- while (start < n) {
46
- // A single line larger than the whole budget can never fit — sub-split
47
- // it (the one place we ever cut mid-line). This is what makes "no
48
- // truncation, ever" hold even for a minified blob or a giant literal.
49
- if (lineTokens[start] > budget) {
50
- for (const piece of await EntryChunk.#splitLine(lines[start], lineTokens[start], budget, countTokens)) {
51
- chunks.push({ seq: chunks.length, lineStart: start + 1, lineEnd: start + 1, text: piece });
52
- }
53
- start += 1;
54
- continue;
55
- }
56
- // Greedily pack lines while the running sum stays within budget,
57
- // remembering the last boundary line crossed (the preferred cut point).
58
- let end = start;
59
- let sum = lineTokens[start];
60
- let lastBoundary = -1;
61
- while (end + 1 < n && sum + lineTokens[end + 1] <= budget) {
62
- end += 1;
63
- sum += lineTokens[end];
64
- if (boundaries.has(end + 1))
65
- lastBoundary = end;
66
- }
67
- // Structure chooses among required cuts. When the complete
68
- // remainder already fits, there is no cut to optimize.
69
- const closeAt = end === n - 1
70
- ? end
71
- : lastBoundary > start ? lastBoundary : end;
72
- chunks.push({
73
- seq: chunks.length,
74
- lineStart: start + 1,
75
- lineEnd: closeAt + 1,
76
- text: lines.slice(start, closeAt + 1).join(""),
77
- });
78
- start = EntryChunk.#nextStart(start, closeAt, n, overlap, budget, lineTokens);
79
- }
80
- return chunks;
81
- }
82
- // Start of the next chunk: just after the close, backed up by ~overlap*budget
83
- // tokens of trailing context. Always strictly after `start` so the tiling
84
- // advances (no infinite loop) and never leaves a gap (next <= closeAt+1).
85
- static #nextStart(start, closeAt, n, overlap, budget, lineTokens) {
86
- const after = closeAt + 1;
87
- if (overlap === 0 || after >= n || closeAt === start)
88
- return after;
89
- const want = budget * overlap;
90
- let next = closeAt;
91
- let acc = lineTokens[closeAt];
92
- while (next - 1 > start && acc + lineTokens[next - 1] <= want) {
93
- next -= 1;
94
- acc += lineTokens[next];
95
- }
96
- return next;
97
- }
98
- // Split one over-budget line into contiguous <= budget pieces. The former
99
- // longest-prefix loop awaited every tokenizer probe serially, leaving one
100
- // core hot for hours on a giant one-line JSON document. Partition from the
101
- // already-known whole-line token count, validate every candidate through a
102
- // bounded parallel counter, and recursively repartition only candidates
103
- // whose local token density still exceeds the ceiling.
104
- static async #splitLine(line, totalTokens, budget, countTokens) {
105
- const partition = (text, count) => {
106
- const n = Math.min(text.length, Math.max(2, count));
107
- const out = [];
108
- let start = 0;
109
- for (let i = 1; i <= n; i++) {
110
- let end = i === n ? text.length : Math.floor((text.length * i) / n);
111
- // Never split a UTF-16 surrogate pair across independently
112
- // tokenized pieces; concatenation and embedding both stay exact.
113
- const prior = text.charCodeAt(end - 1);
114
- const next = text.charCodeAt(end);
115
- if (prior >= 0xD800 && prior <= 0xDBFF && next >= 0xDC00 && next <= 0xDFFF)
116
- end++;
117
- if (prior === 0x0D && next === 0x0A)
118
- end++;
119
- if (end > start)
120
- out.push(text.slice(start, end));
121
- start = end;
122
- }
123
- return out;
124
- };
125
- const countAll = async (items) => {
126
- const counts = new Array(items.length);
127
- let next = 0;
128
- const worker = async () => {
129
- while (next < items.length) {
130
- const index = next++;
131
- counts[index] = await countTokens(items[index]);
132
- }
133
- };
134
- await Promise.all(Array.from({ length: Math.min(items.length, availableParallelism() * 2) }, () => worker()));
135
- return counts;
136
- };
137
- let pieces = partition(line, Math.ceil(totalTokens / budget));
138
- while (true) {
139
- const counts = await countAll(pieces);
140
- let changed = false;
141
- const next = [];
142
- for (let i = 0; i < pieces.length; i++) {
143
- const piece = pieces[i];
144
- const tokens = counts[i];
145
- if (tokens <= budget) {
146
- next.push(piece);
147
- continue;
148
- }
149
- if (piece.length <= 1) {
150
- throw new RangeError(`one code unit tokenizes to ${tokens} tokens, exceeding chunk budget ${budget}`);
151
- }
152
- const repartitioned = partition(piece, Math.ceil(tokens / budget));
153
- if (repartitioned.length === 1 && repartitioned[0] === piece) {
154
- throw new RangeError(`one indivisible text unit tokenizes to ${tokens} tokens, exceeding chunk budget ${budget}`);
155
- }
156
- next.push(...repartitioned);
157
- changed = true;
158
- }
159
- pieces = next;
160
- if (!changed)
161
- return pieces;
162
- }
163
- }
164
- }
165
- //# sourceMappingURL=_entry-chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_entry-chunk.js","sourceRoot":"","sources":["../../src/schemes/_entry-chunk.ts"],"names":[],"mappings":"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"}
@@ -1,63 +0,0 @@
1
- import type { Db } from "../core/Db.ts";
2
- import type { PlurnkSchemeContext } from "../core/scheme-types.ts";
3
- import { type LineMarker, type Notice } from "@plurnk/plurnk-contracts";
4
- import { type EmbedDocumentsOptions, type EmbedDocumentsResult, type Mimetypes, type TokenCountOptions, type TokenizerResolution } from "@plurnk/plurnk-mimetypes";
5
- type EmbedderInfo = NonNullable<Awaited<ReturnType<Mimetypes["embedderInfo"]>>>;
6
- import type { SearchCandidate } from "./_search-candidate.ts";
7
- export interface SemanticPlan {
8
- readonly mimetypes: Mimetypes;
9
- readonly info: EmbedderInfo | null;
10
- readonly countTokens: ((text: string, options?: TokenCountOptions) => Promise<number>) | null;
11
- readonly tokenizer: TokenizerResolution | null;
12
- readonly signature: string;
13
- }
14
- export type EmbedDocumentsExecutor = (texts: readonly string[], options?: EmbedDocumentsOptions) => Promise<EmbedDocumentsResult>;
15
- type SemanticResultSelection = {
16
- threshold: number | null;
17
- page: LineMarker;
18
- };
19
- export default class EntrySemantic {
20
- #private;
21
- static resultSelection(marker: LineMarker | null): SemanticResultSelection;
22
- static maxEmbedSize(): number;
23
- static embedSizeRejection(content: string): {
24
- actualBytes: number;
25
- maxBytes: number;
26
- } | null;
27
- static indexFts(db: Db, derivationId: number, content: string): Promise<void>;
28
- static cosine(a: Uint8Array, b: Uint8Array): number;
29
- static indexEmbedding(db: Db, derivationId: number, chunks: {
30
- lineStart: number;
31
- lineEnd: number;
32
- vector: Uint8Array;
33
- }[], model: string | undefined): Promise<void>;
34
- static deriveEmbeddings(plan: SemanticPlan, embedDocuments: EmbedDocumentsExecutor, content: string, symbols: readonly {
35
- line?: number;
36
- endLine?: number;
37
- }[], fallbackEmbedding: Uint8Array | undefined, fallbackModel: string | undefined, signal?: AbortSignal, onProgress?: (progress: {
38
- phase: "planning" | "embedding";
39
- completed: number;
40
- total: number;
41
- }) => void): Promise<{
42
- chunks: {
43
- lineStart: number;
44
- lineEnd: number;
45
- vector: Uint8Array;
46
- }[];
47
- model: string | undefined;
48
- }>;
49
- static assertExactChunking(plan: SemanticPlan, pushNotice?: (notice: Notice) => void): void;
50
- static prepareEmbeddings(mimetypes: Mimetypes): Promise<SemanticPlan>;
51
- static ftsQueryFor(text: string): string;
52
- static rankCandidates(context: PlurnkSchemeContext, candidates: readonly SearchCandidate[], queryText: string, selection: Pick<SemanticResultSelection, "threshold">): Promise<{
53
- status: number;
54
- results: Array<{
55
- key: string;
56
- lineStart: number;
57
- lineEnd: number;
58
- score: number | null;
59
- }>;
60
- }>;
61
- }
62
- export {};
63
- //# sourceMappingURL=_entry-semantic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_entry-semantic.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-semantic.ts"],"names":[],"mappings":"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"}
@@ -1,299 +0,0 @@
1
- // ~semantic storage and ranking. Complete content-addressed derivations own the
2
- // exact READ-body FTS, graph, and vectors. Vector search ranks every eligible
3
- // vector in scope; FTS is only the explicit no-embedder fallback.
4
- import EmbeddingCall from "../core/EmbeddingCall.js";
5
- import { DEFAULT_RETRIEVAL_LIMIT } from "@plurnk/plurnk-contracts";
6
- import { EmbeddingVector, TextCoordinates, } from "@plurnk/plurnk-mimetypes";
7
- import EntryChunk from "./_entry-chunk.js";
8
- // Changes whenever the deterministic tiling algorithm changes in a way that
9
- // can alter stored chunk extents. Existing vectors must never masquerade as a
10
- // projection produced by the current algorithm.
11
- const SEMANTIC_CHUNK_REVISION = 2;
12
- export default class EntrySemantic {
13
- // FIND owns result positions uniformly across matcher dialects. Semantic
14
- // search adds only an optional leading decimal threshold; any remaining
15
- // integers retain the ordinary FIND positional meaning. The rank query
16
- // needs only the prefix ending at the requested page, while an open-ended
17
- // or malformed page remains exhaustive so the shared pager can report the
18
- // authoritative result extent.
19
- static resultSelection(marker) {
20
- if (marker === null) {
21
- return { threshold: null, page: { marks: [1, DEFAULT_RETRIEVAL_LIMIT] } };
22
- }
23
- const [first, ...remaining] = marker.marks;
24
- if (Number.isInteger(first)) {
25
- return {
26
- threshold: null,
27
- page: marker,
28
- };
29
- }
30
- const page = remaining.length === 0
31
- ? { marks: [1, DEFAULT_RETRIEVAL_LIMIT] }
32
- : { marks: remaining };
33
- return {
34
- threshold: first,
35
- page,
36
- };
37
- }
38
- static maxEmbedSize() {
39
- const raw = process.env.PLURNK_SERVICE_MAX_EMBED_SIZE;
40
- const value = Number(raw);
41
- if (!Number.isSafeInteger(value) || value < 0) {
42
- throw new Error(`PLURNK_SERVICE_MAX_EMBED_SIZE must be a non-negative safe integer byte count (0 = unlimited), got ${JSON.stringify(raw)}`);
43
- }
44
- return value;
45
- }
46
- static embedSizeRejection(content) {
47
- const maxBytes = EntrySemantic.maxEmbedSize();
48
- if (maxBytes === 0)
49
- return null;
50
- const actualBytes = Buffer.byteLength(content, "utf8");
51
- return actualBytes > maxBytes ? { actualBytes, maxBytes } : null;
52
- }
53
- // Replace a derivation artifact's FTS row with its readable content.
54
- // Empty content (binary member / cleared entry) → no FTS row (delete only).
55
- static async indexFts(db, derivationId, content) {
56
- await db.fts_delete.run({ derivation_id: derivationId });
57
- if (content.length > 0)
58
- await db.fts_insert.run({ derivation_id: derivationId, content });
59
- }
60
- // Cosine similarity over the framework-owned embedding wire — the SqlRite
61
- // `cosine()` function delegates here (cosine.ts is the registration adapter).
62
- static cosine(a, b) {
63
- const x = EmbeddingVector.decode(a, undefined, "cosine left operand");
64
- const y = EmbeddingVector.decode(b, undefined, "cosine right operand");
65
- if (x.length !== y.length) {
66
- throw new RangeError(`cosine operands must have the same dimension, got ${x.length} and ${y.length}`);
67
- }
68
- let dot = 0, nx = 0, ny = 0;
69
- for (let i = 0; i < x.length; i++) {
70
- dot += x[i] * y[i];
71
- nx += x[i] * x[i];
72
- ny += y[i] * y[i];
73
- }
74
- const denom = Math.sqrt(nx) * Math.sqrt(ny);
75
- return denom === 0 ? 0 : dot / denom;
76
- }
77
- // Store a derivation's embedding vectors + model, or clear them.
78
- // row (binary/empty entry, or a degraded `embeddingMissing` projection). Called
79
- // from the gated manifest-add hook beside indexFts / the symbol index.
80
- static async indexEmbedding(db, derivationId, chunks, model) {
81
- // Re-derivation = clear all of the artifact's chunk rows, then insert each in seq
82
- // order. No model (no embedder installed) or no chunks → just cleared.
83
- await db.embedding_delete.run({ derivation_id: derivationId });
84
- if (model === undefined)
85
- return;
86
- for (const [seq, c] of chunks.entries()) {
87
- await db.embedding_set.run({
88
- derivation_id: derivationId, chunk_seq: seq, line_start: c.lineStart, line_end: c.lineEnd,
89
- vector: c.vector, embedding_model: model,
90
- });
91
- }
92
- }
93
- // Project Semantics — derive an entry's chunk embeddings. Probes the embedder
94
- // capability (the plugin's window + tokenizer, surfaced via the Mimetypes
95
- // handle): ABSENT → one whole-entry chunk from the fallback vector (today's
96
- // behavior, no extra embed call); PRESENT → lossless tile, embed each chunk.
97
- // Returns the chunk list + model for indexEmbedding; never touches the DB.
98
- static async deriveEmbeddings(plan, embedDocuments, content, symbols, fallbackEmbedding, fallbackModel, signal, onProgress) {
99
- const { info } = plan;
100
- if (info === null) {
101
- const totalLines = TextCoordinates.logicalLines(content).length;
102
- if (fallbackEmbedding === undefined || fallbackEmbedding.byteLength === 0 || totalLines === 0)
103
- return { chunks: [], model: undefined };
104
- return { chunks: [{ lineStart: 1, lineEnd: totalLines, vector: fallbackEmbedding }], model: fallbackModel };
105
- }
106
- EntrySemantic.assertExactChunking(plan);
107
- // Symbol edges (an &graph endLine, or the line before a symbol starts) are the
108
- // tiler's preferred cut points; it still tiles every line if there are none.
109
- const boundaries = new Set();
110
- for (const s of symbols) {
111
- if (typeof s.endLine === "number")
112
- boundaries.add(s.endLine);
113
- if (typeof s.line === "number" && s.line > 1)
114
- boundaries.add(s.line - 1);
115
- }
116
- // A hosted embedder may omit its own counter. The pass-wide semantic plan
117
- // preserves the one fallback tokenizer resolution, including identity and
118
- // exactness; {§semantic-embed-dedup} owns its derivation identity and #95
119
- // owns whether an inexact resolution may authorize chunking.
120
- if (info.contextWindow === null)
121
- throw new Error("embedding profile reports no input context window");
122
- const counter = plan.countTokens;
123
- if (counter === null)
124
- throw new Error("semantic plan has no token counter for an embedder with a declared context window");
125
- signal?.throwIfAborted();
126
- const budget = EntrySemantic.#chunkBudget(info.contextWindow);
127
- let specs = await EntryChunk.tile(content, boundaries, budget, EntrySemantic.#chunkOverlap(), (text) => counter(text, { signal }), (progress) => onProgress?.({ phase: "planning", ...progress }));
128
- signal?.throwIfAborted();
129
- if (specs.length === 0)
130
- return { chunks: [], model: undefined };
131
- // Tiles cross the ordered batch seam as raw fragment text, never as
132
- // standalone documents requiring format validation.
133
- // {§mimetype-embedding}, {§derivation-dedup-parallel}
134
- const texts = specs.map((s) => s.text);
135
- const { vectors } = await embedDocuments(texts, {
136
- signal,
137
- onProgress: (progress) => onProgress?.({ phase: "embedding", ...progress }),
138
- });
139
- const chunks = [];
140
- for (const [i, spec] of specs.entries()) {
141
- const vector = vectors[i];
142
- if (vector !== undefined && vector.byteLength > 0)
143
- chunks.push({ lineStart: spec.lineStart, lineEnd: spec.lineEnd, vector });
144
- }
145
- return { chunks, model: chunks.length > 0 ? info.model : undefined };
146
- }
147
- // {§semantic-embed-dedup} — an estimate may inform callers but cannot prove
148
- // that a chunk fits an embedder's declared token window.
149
- static assertExactChunking(plan, pushNotice) {
150
- const { info, tokenizer } = plan;
151
- if (info === null || info.countTokens !== null || tokenizer === null || tokenizer.exact)
152
- return;
153
- for (const notice of tokenizer.notices ?? [])
154
- pushNotice?.(notice);
155
- throw new Error(`semantic chunking requires an exact token counter for ${JSON.stringify(info.model)}; `
156
- + `${JSON.stringify(tokenizer.tokenizerId)} is an estimate and cannot prove the declared ${info.contextWindow}-token window`);
157
- }
158
- // Chunk budget in tokens — `.env.defaults` is the law, no code fallback. EMPTY =
159
- // the embedder's reported window (scalable — NO model-specific number baked in);
160
- // a positive value caps BELOW the window (e.g. to sweep granularity).
161
- static #chunkBudget(contextWindow) {
162
- const raw = process.env.PLURNK_SERVICE_SEMANTIC_CHUNK_TOKENS;
163
- if (raw === undefined || raw.trim() === "")
164
- return contextWindow;
165
- const v = Number(raw);
166
- if (!Number.isInteger(v) || v < 1)
167
- throw new Error(`PLURNK_SERVICE_SEMANTIC_CHUNK_TOKENS must be empty (= the embedder's window) or a positive integer, got ${JSON.stringify(raw)}`);
168
- return Math.min(v, contextWindow);
169
- }
170
- static #chunkOverlap() {
171
- const v = Number(process.env.PLURNK_SERVICE_SEMANTIC_CHUNK_OVERLAP);
172
- if (!(v >= 0 && v < 1))
173
- throw new Error(`PLURNK_SERVICE_SEMANTIC_CHUNK_OVERLAP must be in [0,1), got ${JSON.stringify(process.env.PLURNK_SERVICE_SEMANTIC_CHUNK_OVERLAP)}`);
174
- return v;
175
- }
176
- // The embedder capability surface (plugin window + tokenizer + model id), probed
177
- // through the Mimetypes handle. null means semantic derivation is unavailable.
178
- static async #embedderInfo(mimetypes) {
179
- // PLURNK_SERVICE_EMBED_DISABLE=1 forces the no-embedder path even though the default service
180
- // includes one. The semantic stack funnels through this gate, so disabling it is wholly FTS-only.
181
- if (process.env.PLURNK_SERVICE_EMBED_DISABLE === "1")
182
- return null;
183
- return await mimetypes.embedderInfo();
184
- }
185
- // Resolve the pass-wide semantic facts once. The plan binds the selected
186
- // counter to the same identity folded into every derivation hash, so entries
187
- // cannot be tiled with provenance different from the configuration key.
188
- static async prepareEmbeddings(mimetypes) {
189
- const info = await EntrySemantic.#embedderInfo(mimetypes);
190
- if (info === null) {
191
- return {
192
- mimetypes,
193
- info: null,
194
- countTokens: null,
195
- tokenizer: null,
196
- signature: "embed:none",
197
- };
198
- }
199
- const tokenizer = info.countTokens === null && info.contextWindow !== null
200
- ? await mimetypes.tokenizer(info.tokenizerModel ?? info.model ?? "")
201
- : null;
202
- const countTokens = info.countTokens ?? tokenizer?.countTokens ?? null;
203
- const tokenizerIdentity = tokenizer === null
204
- ? ""
205
- : `:tokenizer=${tokenizer.tokenizerId}:${tokenizer.exact ? "exact" : "estimate"}`;
206
- const base = `embed:${info.model ?? "?"}:${info.contextWindow}:${info.contextWindow === null ? "?" : EntrySemantic.#chunkBudget(info.contextWindow)}:${EntrySemantic.#chunkOverlap()}:chunker=${SEMANTIC_CHUNK_REVISION}:wire=${EmbeddingVector.encoding}${tokenizerIdentity}`;
207
- const maxBytes = EntrySemantic.maxEmbedSize();
208
- return {
209
- mimetypes,
210
- info,
211
- countTokens,
212
- tokenizer,
213
- signature: maxBytes === 0 ? base : `${base}:max-bytes=${maxBytes}`,
214
- };
215
- }
216
- // Build the FTS5 query used only by the no-embedder keyword fallback.
217
- static ftsQueryFor(text) {
218
- const terms = text.toLowerCase().match(/[a-z0-9]+/g);
219
- if (terms === null)
220
- return "";
221
- return [...new Set(terms)].join(" OR ");
222
- }
223
- // The ~query dispatch: embed the query text through the SAME channel and cosine-rank
224
- // every vector in scope. Each result carries its best-matching
225
- // chunk's line span (the Finding extent). No embedder -> an unthresholded
226
- // ranked prefix degrades to FTS-only keyword rank (whole-entry findings);
227
- // a similarity threshold stays 501.
228
- static async rankCandidates(context, candidates, queryText, selection) {
229
- const { threshold } = selection;
230
- // {§find-semantic-selection} — the cosine the rank was ordered by rides each result;
231
- // the lexical fallback ranks by BM25 and carries none.
232
- const toResult = (x) => ({
233
- key: x.key,
234
- lineStart: x.line_start,
235
- lineEnd: x.line_end,
236
- score: typeof x.score === "number" ? x.score : null,
237
- });
238
- if (threshold !== null && (threshold <= 0 || threshold >= 1)) {
239
- return { status: 416, results: [] };
240
- }
241
- if (candidates.length === 0)
242
- return { status: 200, results: [] };
243
- const serializedCandidates = JSON.stringify(candidates);
244
- // The query embedding honors the SAME gate as the corpus (#embedderInfo /
245
- // PLURNK_SERVICE_EMBED_DISABLE): with the embeddings package installed but disabled,
246
- // calling process() directly would compute a query vector and rank it against
247
- // an empty derivation_embeddings - every ~query silently []. Disabled means the honest
248
- // FTS keyword fallback, same as no embedder at all.
249
- const { db, mimetypes } = context;
250
- if (mimetypes === undefined)
251
- throw new Error("semantic ranking requires Mimetypes");
252
- const info = await EntrySemantic.#embedderInfo(mimetypes);
253
- // {§derivation-vectors-background} — vectors derive behind the attached artifact; the
254
- // semantic query is the join and holds until every candidate's vectors landed.
255
- if (info !== null && context.settleVectors !== undefined) {
256
- await context.settleVectors(candidates.flatMap(({ deepHash }) => deepHash === null ? [] : [deepHash]));
257
- }
258
- const r = info === null
259
- ? { embedding: undefined, embeddingModel: undefined }
260
- : await EmbeddingCall.query(db, {
261
- workspaceId: context.workspaceId,
262
- turnId: context.turnId > 0 ? context.turnId : null,
263
- }, mimetypes, info.model, queryText, { signal: context.signal }).then(({ vector }) => ({ embedding: vector, embeddingModel: info.model }));
264
- if (r.embedding === undefined || r.embedding.byteLength === 0 || r.embeddingModel === undefined) {
265
- // FTS fallback: no embedder, so there is no query vector to cosine with. Top-K ranks
266
- // by BM25 keyword relevance alone; the <0.x> threshold form is intrinsically cosine-
267
- // based (no bounded BM25 analogue), so it stays 501.
268
- if (threshold !== null)
269
- return { status: 501, results: [] };
270
- const ftsQuery = EntrySemantic.ftsQueryFor(queryText);
271
- if (ftsQuery.length === 0)
272
- return { status: 200, results: [] };
273
- const rows = await db.semantic_rank_candidates_fts.all({
274
- fts_query: ftsQuery,
275
- candidates: serializedCandidates,
276
- k: -1,
277
- });
278
- return { status: 200, results: rows.map(toResult) };
279
- }
280
- if (threshold === null) {
281
- const rows = await db.semantic_rank_candidates.all({
282
- candidates: serializedCandidates,
283
- query_vector: r.embedding,
284
- embedding_model: r.embeddingModel,
285
- k: -1,
286
- });
287
- return { status: 200, results: rows.map(toResult) };
288
- }
289
- const rows = await db.semantic_rank_candidates_threshold.all({
290
- candidates: serializedCandidates,
291
- query_vector: r.embedding,
292
- embedding_model: r.embeddingModel,
293
- threshold,
294
- cap: -1,
295
- });
296
- return { status: 200, results: rows.map(toResult) };
297
- }
298
- }
299
- //# sourceMappingURL=_entry-semantic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_entry-semantic.js","sourceRoot":"","sources":["../../src/schemes/_entry-semantic.ts"],"names":[],"mappings":"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"}