@plurnk/plurnk-service 1.3.12 → 1.5.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 (488) hide show
  1. package/.env.defaults +95 -91
  2. package/INSTALL.md +54 -28
  3. package/README.md +25 -10
  4. package/SPEC.md +2426 -942
  5. package/dist/Paths.d.ts +4 -1
  6. package/dist/Paths.d.ts.map +1 -1
  7. package/dist/Paths.js +24 -23
  8. package/dist/Paths.js.map +1 -1
  9. package/dist/build-info.json +1 -1
  10. package/dist/content/edit-receipt.d.ts +13 -28
  11. package/dist/content/edit-receipt.d.ts.map +1 -1
  12. package/dist/content/edit-receipt.js +285 -104
  13. package/dist/content/edit-receipt.js.map +1 -1
  14. package/dist/content/edited-span.d.ts.map +1 -1
  15. package/dist/content/edited-span.js +2 -5
  16. package/dist/content/edited-span.js.map +1 -1
  17. package/dist/content/index.d.ts +4 -3
  18. package/dist/content/index.d.ts.map +1 -1
  19. package/dist/content/index.js +2 -1
  20. package/dist/content/index.js.map +1 -1
  21. package/dist/content/line-marker.d.ts +10 -9
  22. package/dist/content/line-marker.d.ts.map +1 -1
  23. package/dist/content/line-marker.js +8 -11
  24. package/dist/content/line-marker.js.map +1 -1
  25. package/dist/content/matcher.d.ts +15 -26
  26. package/dist/content/matcher.d.ts.map +1 -1
  27. package/dist/content/matcher.js +77 -107
  28. package/dist/content/matcher.js.map +1 -1
  29. package/dist/content/mimetype-binary.d.ts +2 -2
  30. package/dist/content/mimetype-binary.d.ts.map +1 -1
  31. package/dist/content/mimetype-binary.js +10 -10
  32. package/dist/content/mimetype-binary.js.map +1 -1
  33. package/dist/content/path-mimetype.js +3 -3
  34. package/dist/content/path-mimetype.js.map +1 -1
  35. package/dist/content/read-projector.d.ts +14 -0
  36. package/dist/content/read-projector.d.ts.map +1 -0
  37. package/dist/content/read-projector.js +86 -0
  38. package/dist/content/read-projector.js.map +1 -0
  39. package/dist/content/read-resolve.d.ts +6 -7
  40. package/dist/content/read-resolve.d.ts.map +1 -1
  41. package/dist/content/read-resolve.js +36 -59
  42. package/dist/content/read-resolve.js.map +1 -1
  43. package/dist/core/BranchReceipt.d.ts +6 -0
  44. package/dist/core/BranchReceipt.d.ts.map +1 -0
  45. package/dist/core/BranchReceipt.js +24 -0
  46. package/dist/core/BranchReceipt.js.map +1 -0
  47. package/dist/core/BudgetOverflow.d.ts +20 -0
  48. package/dist/core/BudgetOverflow.d.ts.map +1 -0
  49. package/dist/core/BudgetOverflow.js +49 -0
  50. package/dist/core/BudgetOverflow.js.map +1 -0
  51. package/dist/core/BudgetReadout.d.ts +8 -0
  52. package/dist/core/BudgetReadout.d.ts.map +1 -0
  53. package/dist/core/BudgetReadout.js +79 -0
  54. package/dist/core/BudgetReadout.js.map +1 -0
  55. package/dist/core/ChannelWrite.d.ts +31 -9
  56. package/dist/core/ChannelWrite.d.ts.map +1 -1
  57. package/dist/core/ChannelWrite.js +30 -23
  58. package/dist/core/ChannelWrite.js.map +1 -1
  59. package/dist/core/ChannelWrite.sql +14 -12
  60. package/dist/core/CoreSchemeServices.d.ts +18 -4
  61. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  62. package/dist/core/CoreSchemeServices.js +7 -1
  63. package/dist/core/CoreSchemeServices.js.map +1 -1
  64. package/dist/core/Dispatcher.d.ts +26 -21
  65. package/dist/core/Dispatcher.d.ts.map +1 -1
  66. package/dist/core/Dispatcher.js +1626 -671
  67. package/dist/core/Dispatcher.js.map +1 -1
  68. package/dist/core/DurableStatement.d.ts +6 -0
  69. package/dist/core/DurableStatement.d.ts.map +1 -0
  70. package/dist/core/DurableStatement.js +51 -0
  71. package/dist/core/DurableStatement.js.map +1 -0
  72. package/dist/core/Engine.d.ts +64 -29
  73. package/dist/core/Engine.d.ts.map +1 -1
  74. package/dist/core/Engine.js +1348 -835
  75. package/dist/core/Engine.js.map +1 -1
  76. package/dist/core/Engine.sql +329 -234
  77. package/dist/core/EnvFlags.js +1 -1
  78. package/dist/core/EnvFlags.js.map +1 -1
  79. package/dist/core/ErrorDetail.d.ts +6 -0
  80. package/dist/core/ErrorDetail.d.ts.map +1 -0
  81. package/dist/core/ErrorDetail.js +20 -0
  82. package/dist/core/ErrorDetail.js.map +1 -0
  83. package/dist/core/ExecutorRegistry.d.ts +14 -3
  84. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  85. package/dist/core/ExecutorRegistry.js +56 -30
  86. package/dist/core/ExecutorRegistry.js.map +1 -1
  87. package/dist/core/GitBranch.d.ts +20 -0
  88. package/dist/core/GitBranch.d.ts.map +1 -0
  89. package/dist/core/GitBranch.js +110 -0
  90. package/dist/core/GitBranch.js.map +1 -0
  91. package/dist/core/JournalTurn.d.ts +9 -0
  92. package/dist/core/JournalTurn.d.ts.map +1 -0
  93. package/dist/core/JournalTurn.js +14 -0
  94. package/dist/core/JournalTurn.js.map +1 -0
  95. package/dist/core/JournalTurn.sql +10 -0
  96. package/dist/core/LogBody.d.ts +18 -0
  97. package/dist/core/LogBody.d.ts.map +1 -0
  98. package/dist/core/LogBody.js +180 -0
  99. package/dist/core/LogBody.js.map +1 -0
  100. package/dist/core/LoopFlagsReader.d.ts +7 -0
  101. package/dist/core/LoopFlagsReader.d.ts.map +1 -0
  102. package/dist/core/LoopFlagsReader.js +33 -0
  103. package/dist/core/LoopFlagsReader.js.map +1 -0
  104. package/dist/core/LoopLifecycle.d.ts +8 -2
  105. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  106. package/dist/core/LoopLifecycle.js +54 -11
  107. package/dist/core/LoopLifecycle.js.map +1 -1
  108. package/dist/core/LoopLifecycle.sql +10 -7
  109. package/dist/core/NoticeChannel.d.ts +13 -0
  110. package/dist/core/NoticeChannel.d.ts.map +1 -0
  111. package/dist/core/NoticeChannel.js +40 -0
  112. package/dist/core/NoticeChannel.js.map +1 -0
  113. package/dist/core/Owner.d.ts +0 -1
  114. package/dist/core/Owner.d.ts.map +1 -1
  115. package/dist/core/Owner.js +2 -5
  116. package/dist/core/Owner.js.map +1 -1
  117. package/dist/core/PacketBuilder.d.ts +27 -25
  118. package/dist/core/PacketBuilder.d.ts.map +1 -1
  119. package/dist/core/PacketBuilder.js +321 -383
  120. package/dist/core/PacketBuilder.js.map +1 -1
  121. package/dist/core/ProblemLog.d.ts +26 -0
  122. package/dist/core/ProblemLog.d.ts.map +1 -0
  123. package/dist/core/ProblemLog.js +58 -0
  124. package/dist/core/ProblemLog.js.map +1 -0
  125. package/dist/core/ProposalLifecycle.d.ts +15 -21
  126. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  127. package/dist/core/ProposalLifecycle.js +291 -78
  128. package/dist/core/ProposalLifecycle.js.map +1 -1
  129. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  130. package/dist/core/ProviderInstantiate.js +51 -48
  131. package/dist/core/ProviderInstantiate.js.map +1 -1
  132. package/dist/core/SchemeRegistry.d.ts +14 -8
  133. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  134. package/dist/core/SchemeRegistry.js +189 -114
  135. package/dist/core/SchemeRegistry.js.map +1 -1
  136. package/dist/core/ServiceTeardown.d.ts +11 -0
  137. package/dist/core/ServiceTeardown.d.ts.map +1 -0
  138. package/dist/core/ServiceTeardown.js +70 -0
  139. package/dist/core/ServiceTeardown.js.map +1 -0
  140. package/dist/core/StoredPacket.d.ts +29 -0
  141. package/dist/core/StoredPacket.d.ts.map +1 -0
  142. package/dist/core/StoredPacket.js +147 -0
  143. package/dist/core/StoredPacket.js.map +1 -0
  144. package/dist/core/StrikeRail.d.ts +6 -3
  145. package/dist/core/StrikeRail.d.ts.map +1 -1
  146. package/dist/core/StrikeRail.js +27 -56
  147. package/dist/core/StrikeRail.js.map +1 -1
  148. package/dist/core/TerminalResult.d.ts +16 -0
  149. package/dist/core/TerminalResult.d.ts.map +1 -0
  150. package/dist/core/TerminalResult.js +49 -0
  151. package/dist/core/TerminalResult.js.map +1 -0
  152. package/dist/core/WorkerControlAddress.d.ts +17 -0
  153. package/dist/core/WorkerControlAddress.d.ts.map +1 -0
  154. package/dist/core/WorkerControlAddress.js +44 -0
  155. package/dist/core/WorkerControlAddress.js.map +1 -0
  156. package/dist/core/WorkerName.d.ts +31 -0
  157. package/dist/core/WorkerName.d.ts.map +1 -0
  158. package/dist/core/WorkerName.js +95 -0
  159. package/dist/core/WorkerName.js.map +1 -0
  160. package/dist/core/WorkerName.sql +36 -0
  161. package/dist/core/WorkspaceGate.d.ts +14 -0
  162. package/dist/core/WorkspaceGate.d.ts.map +1 -0
  163. package/dist/core/WorkspaceGate.js +155 -0
  164. package/dist/core/WorkspaceGate.js.map +1 -0
  165. package/dist/core/caps/CapsResolve.d.ts +5 -1
  166. package/dist/core/caps/CapsResolve.d.ts.map +1 -1
  167. package/dist/core/caps/CapsResolve.js +8 -4
  168. package/dist/core/caps/CapsResolve.js.map +1 -1
  169. package/dist/core/caps/DbChannelCaps.d.ts +5 -11
  170. package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
  171. package/dist/core/caps/DbChannelCaps.js +30 -12
  172. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  173. package/dist/core/caps/DbEntryCaps.d.ts +5 -14
  174. package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
  175. package/dist/core/caps/DbEntryCaps.js +27 -8
  176. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  177. package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
  178. package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
  179. package/dist/core/caps/DbNotifyCaps.js +18 -15
  180. package/dist/core/caps/DbNotifyCaps.js.map +1 -1
  181. package/dist/core/caps/DbProjectionCaps.d.ts +5 -5
  182. package/dist/core/caps/DbProjectionCaps.d.ts.map +1 -1
  183. package/dist/core/caps/DbProjectionCaps.js +21 -4
  184. package/dist/core/caps/DbProjectionCaps.js.map +1 -1
  185. package/dist/core/caps/DbSubscriptionCaps.d.ts +4 -6
  186. package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
  187. package/dist/core/caps/DbSubscriptionCaps.js +75 -66
  188. package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
  189. package/dist/core/caps/DbTagCaps.d.ts +5 -12
  190. package/dist/core/caps/DbTagCaps.d.ts.map +1 -1
  191. package/dist/core/caps/DbTagCaps.js +20 -11
  192. package/dist/core/caps/DbTagCaps.js.map +1 -1
  193. package/dist/core/caps/SchemeCtxImpl.d.ts +6 -1
  194. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  195. package/dist/core/caps/SchemeCtxImpl.js +6 -6
  196. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  197. package/dist/core/content-hash.js +1 -1
  198. package/dist/core/content-hash.js.map +1 -1
  199. package/dist/core/env-defaults.d.ts.map +1 -1
  200. package/dist/core/env-defaults.js.map +1 -1
  201. package/dist/core/fork.d.ts.map +1 -1
  202. package/dist/core/fork.js +55 -30
  203. package/dist/core/fork.js.map +1 -1
  204. package/dist/core/fork.sql +43 -29
  205. package/dist/core/git-env.d.ts +2 -0
  206. package/dist/core/git-env.d.ts.map +1 -1
  207. package/dist/core/git-env.js +13 -18
  208. package/dist/core/git-env.js.map +1 -1
  209. package/dist/core/git-iso.d.ts +3 -2
  210. package/dist/core/git-iso.d.ts.map +1 -1
  211. package/dist/core/git-iso.js +36 -27
  212. package/dist/core/git-iso.js.map +1 -1
  213. package/dist/core/git-membership.d.ts +2 -1
  214. package/dist/core/git-membership.d.ts.map +1 -1
  215. package/dist/core/git-membership.js +276 -162
  216. package/dist/core/git-membership.js.map +1 -1
  217. package/dist/core/git-state.d.ts +8 -1
  218. package/dist/core/git-state.d.ts.map +1 -1
  219. package/dist/core/git-state.js +44 -26
  220. package/dist/core/git-state.js.map +1 -1
  221. package/dist/core/namespace.d.ts +1 -0
  222. package/dist/core/namespace.d.ts.map +1 -1
  223. package/dist/core/namespace.js +20 -0
  224. package/dist/core/namespace.js.map +1 -1
  225. package/dist/core/optimistic-settlement.d.ts +2 -0
  226. package/dist/core/optimistic-settlement.d.ts.map +1 -0
  227. package/dist/core/optimistic-settlement.js +14 -0
  228. package/dist/core/optimistic-settlement.js.map +1 -0
  229. package/dist/core/owner.sql +1 -1
  230. package/dist/core/packet-inject.d.ts.map +1 -1
  231. package/dist/core/packet-inject.js +7 -11
  232. package/dist/core/packet-inject.js.map +1 -1
  233. package/dist/core/packet-wire.d.ts +3 -21
  234. package/dist/core/packet-wire.d.ts.map +1 -1
  235. package/dist/core/packet-wire.js +305 -385
  236. package/dist/core/packet-wire.js.map +1 -1
  237. package/dist/core/plurnk-uri.d.ts +12 -1
  238. package/dist/core/plurnk-uri.d.ts.map +1 -1
  239. package/dist/core/plurnk-uri.js +49 -29
  240. package/dist/core/plurnk-uri.js.map +1 -1
  241. package/dist/core/results.d.ts +18 -5
  242. package/dist/core/results.d.ts.map +1 -1
  243. package/dist/core/results.js +33 -18
  244. package/dist/core/results.js.map +1 -1
  245. package/dist/core/ruler_count.d.ts +4 -0
  246. package/dist/core/ruler_count.d.ts.map +1 -0
  247. package/dist/core/ruler_count.js +7 -0
  248. package/dist/core/ruler_count.js.map +1 -0
  249. package/dist/core/scheme-types.d.ts +3 -17
  250. package/dist/core/scheme-types.d.ts.map +1 -1
  251. package/dist/core/scheme-types.js.map +1 -1
  252. package/dist/core/search-gate.d.ts.map +1 -1
  253. package/dist/core/search-gate.js +3 -11
  254. package/dist/core/search-gate.js.map +1 -1
  255. package/dist/core/teaching-corpus.d.ts +6 -0
  256. package/dist/core/teaching-corpus.d.ts.map +1 -0
  257. package/dist/core/teaching-corpus.js +23 -0
  258. package/dist/core/teaching-corpus.js.map +1 -0
  259. package/dist/core/teaching.d.ts +0 -1
  260. package/dist/core/teaching.d.ts.map +1 -1
  261. package/dist/core/teaching.js +2 -8
  262. package/dist/core/teaching.js.map +1 -1
  263. package/dist/core/token-ruler.d.ts.map +1 -1
  264. package/dist/core/token-ruler.js +3 -16
  265. package/dist/core/token-ruler.js.map +1 -1
  266. package/dist/core/turn-scheduler.d.ts +1 -1
  267. package/dist/core/turn-scheduler.d.ts.map +1 -1
  268. package/dist/core/turn-scheduler.js +1 -1
  269. package/dist/core/turn-scheduler.js.map +1 -1
  270. package/dist/core/worker-cap.d.ts +2 -4
  271. package/dist/core/worker-cap.d.ts.map +1 -1
  272. package/dist/core/worker-cap.js +13 -4
  273. package/dist/core/worker-cap.js.map +1 -1
  274. package/dist/core/{run-ops.sql → worker-ops.sql} +14 -14
  275. package/dist/core/workspace-settings.d.ts.map +1 -1
  276. package/dist/core/workspace-settings.js +17 -9
  277. package/dist/core/workspace-settings.js.map +1 -1
  278. package/dist/digest/Digest.d.ts +2 -1
  279. package/dist/digest/Digest.d.ts.map +1 -1
  280. package/dist/digest/Digest.js +510 -149
  281. package/dist/digest/Digest.js.map +1 -1
  282. package/dist/digest/digest.sql +23 -10
  283. package/dist/index.d.ts.map +1 -1
  284. package/dist/index.js +3 -5
  285. package/dist/index.js.map +1 -1
  286. package/dist/observe/api.d.ts +6 -0
  287. package/dist/observe/api.d.ts.map +1 -0
  288. package/dist/observe/api.js +11 -0
  289. package/dist/observe/api.js.map +1 -0
  290. package/dist/observe/init.d.ts +7 -0
  291. package/dist/observe/init.d.ts.map +1 -0
  292. package/dist/observe/init.js +159 -0
  293. package/dist/observe/init.js.map +1 -0
  294. package/dist/observe/metrics.d.ts +6 -0
  295. package/dist/observe/metrics.d.ts.map +1 -0
  296. package/dist/observe/metrics.js +15 -0
  297. package/dist/observe/metrics.js.map +1 -0
  298. package/dist/observe/spans.d.ts +4 -0
  299. package/dist/observe/spans.d.ts.map +1 -0
  300. package/dist/observe/spans.js +51 -0
  301. package/dist/observe/spans.js.map +1 -0
  302. package/dist/schemes/EffectPolicy.d.ts +1 -0
  303. package/dist/schemes/EffectPolicy.d.ts.map +1 -1
  304. package/dist/schemes/EffectPolicy.js +5 -2
  305. package/dist/schemes/EffectPolicy.js.map +1 -1
  306. package/dist/schemes/Exec.d.ts +9 -14
  307. package/dist/schemes/Exec.d.ts.map +1 -1
  308. package/dist/schemes/Exec.js +402 -262
  309. package/dist/schemes/Exec.js.map +1 -1
  310. package/dist/schemes/ExecOutputScheme.d.ts +9 -9
  311. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  312. package/dist/schemes/ExecOutputScheme.js +49 -18
  313. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  314. package/dist/schemes/File.d.ts +7 -13
  315. package/dist/schemes/File.d.ts.map +1 -1
  316. package/dist/schemes/File.js +280 -151
  317. package/dist/schemes/File.js.map +1 -1
  318. package/dist/schemes/Log.d.ts +8 -12
  319. package/dist/schemes/Log.d.ts.map +1 -1
  320. package/dist/schemes/Log.js +402 -233
  321. package/dist/schemes/Log.js.map +1 -1
  322. package/dist/schemes/Log.sql +71 -32
  323. package/dist/schemes/Prompt.d.ts +3 -3
  324. package/dist/schemes/Prompt.d.ts.map +1 -1
  325. package/dist/schemes/Prompt.js +10 -10
  326. package/dist/schemes/Prompt.js.map +1 -1
  327. package/dist/schemes/Skill.d.ts +2 -3
  328. package/dist/schemes/Skill.d.ts.map +1 -1
  329. package/dist/schemes/Skill.js +2 -6
  330. package/dist/schemes/Skill.js.map +1 -1
  331. package/dist/schemes/Worker.d.ts +11 -19
  332. package/dist/schemes/Worker.d.ts.map +1 -1
  333. package/dist/schemes/Worker.js +210 -89
  334. package/dist/schemes/Worker.js.map +1 -1
  335. package/dist/schemes/_entry-chunk.d.ts.map +1 -1
  336. package/dist/schemes/_entry-chunk.js +12 -5
  337. package/dist/schemes/_entry-chunk.js.map +1 -1
  338. package/dist/schemes/_entry-crud.d.ts +11 -9
  339. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  340. package/dist/schemes/_entry-crud.js +72 -13
  341. package/dist/schemes/_entry-crud.js.map +1 -1
  342. package/dist/schemes/_entry-crud.sql +28 -10
  343. package/dist/schemes/_entry-find.d.ts +49 -18
  344. package/dist/schemes/_entry-find.d.ts.map +1 -1
  345. package/dist/schemes/_entry-find.js +348 -195
  346. package/dist/schemes/_entry-find.js.map +1 -1
  347. package/dist/schemes/_entry-find.sql +20 -8
  348. package/dist/schemes/_entry-graph.d.ts +4 -2
  349. package/dist/schemes/_entry-graph.d.ts.map +1 -1
  350. package/dist/schemes/_entry-graph.js +55 -31
  351. package/dist/schemes/_entry-graph.js.map +1 -1
  352. package/dist/schemes/_entry-graph.sql +37 -22
  353. package/dist/schemes/_entry-manifest.d.ts +10 -15
  354. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  355. package/dist/schemes/_entry-manifest.js +50 -268
  356. package/dist/schemes/_entry-manifest.js.map +1 -1
  357. package/dist/schemes/_entry-ops.d.ts +14 -15
  358. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  359. package/dist/schemes/_entry-ops.js +121 -110
  360. package/dist/schemes/_entry-ops.js.map +1 -1
  361. package/dist/schemes/_entry-ops.sql +2 -3
  362. package/dist/schemes/_entry-semantic.d.ts +22 -9
  363. package/dist/schemes/_entry-semantic.d.ts.map +1 -1
  364. package/dist/schemes/_entry-semantic.js +127 -67
  365. package/dist/schemes/_entry-semantic.js.map +1 -1
  366. package/dist/schemes/_entry-semantic.sql +63 -45
  367. package/dist/schemes/_entry-send.d.ts +3 -4
  368. package/dist/schemes/_entry-send.d.ts.map +1 -1
  369. package/dist/schemes/_entry-send.js +48 -23
  370. package/dist/schemes/_entry-send.js.map +1 -1
  371. package/dist/schemes/_path-scope.d.ts +23 -0
  372. package/dist/schemes/_path-scope.d.ts.map +1 -0
  373. package/dist/schemes/_path-scope.js +61 -0
  374. package/dist/schemes/_path-scope.js.map +1 -0
  375. package/dist/schemes/_search-candidate.d.ts +20 -0
  376. package/dist/schemes/_search-candidate.d.ts.map +1 -0
  377. package/dist/schemes/_search-candidate.js +19 -0
  378. package/dist/schemes/_search-candidate.js.map +1 -0
  379. package/dist/schemes/_search-exclusion.d.ts +7 -0
  380. package/dist/schemes/_search-exclusion.d.ts.map +1 -0
  381. package/dist/schemes/_search-exclusion.js +23 -0
  382. package/dist/schemes/_search-exclusion.js.map +1 -0
  383. package/dist/schemes/_search-index.d.ts +6 -0
  384. package/dist/schemes/_search-index.d.ts.map +1 -0
  385. package/dist/schemes/_search-index.js +328 -0
  386. package/dist/schemes/_search-index.js.map +1 -0
  387. package/dist/schemes/cosine.js +1 -1
  388. package/dist/schemes/cosine.js.map +1 -1
  389. package/dist/schemes/exec-abort.js +3 -3
  390. package/dist/schemes/exec-abort.js.map +1 -1
  391. package/dist/schemes/exec-env.js +3 -3
  392. package/dist/schemes/exec-env.js.map +1 -1
  393. package/dist/server/BranchBatches.d.ts +49 -0
  394. package/dist/server/BranchBatches.d.ts.map +1 -0
  395. package/dist/server/BranchBatches.js +592 -0
  396. package/dist/server/BranchBatches.js.map +1 -0
  397. package/dist/server/Daemon.d.ts +39 -71
  398. package/dist/server/Daemon.d.ts.map +1 -1
  399. package/dist/server/Daemon.js +1133 -491
  400. package/dist/server/Daemon.js.map +1 -1
  401. package/dist/server/DaemonModule.d.ts +31 -0
  402. package/dist/server/DaemonModule.d.ts.map +1 -0
  403. package/dist/server/DaemonModule.js +2 -0
  404. package/dist/server/DaemonModule.js.map +1 -0
  405. package/dist/server/branch-batch.sql +154 -0
  406. package/dist/server/client-input.d.ts +13 -0
  407. package/dist/server/client-input.d.ts.map +1 -1
  408. package/dist/server/client-input.js +268 -57
  409. package/dist/server/client-input.js.map +1 -1
  410. package/dist/server/dispatch-as-plurnk.d.ts +1 -1
  411. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  412. package/dist/server/dispatch-as-plurnk.js +15 -7
  413. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  414. package/dist/server/drain.sql +96 -65
  415. package/dist/server/envelope.d.ts +4 -7
  416. package/dist/server/envelope.d.ts.map +1 -1
  417. package/dist/server/envelope.js +118 -95
  418. package/dist/server/envelope.js.map +1 -1
  419. package/dist/server/envelope.sql +18 -23
  420. package/dist/server/exec-poll-backoff.js +1 -1
  421. package/dist/server/exec-poll-backoff.js.map +1 -1
  422. package/dist/server/lifecycle-recovery.sql +112 -2
  423. package/dist/server/logEntry.d.ts +4 -2
  424. package/dist/server/logEntry.d.ts.map +1 -1
  425. package/dist/server/logEntry.js +6 -3
  426. package/dist/server/logEntry.js.map +1 -1
  427. package/dist/server/logEntry.sql +1 -1
  428. package/dist/server/loop-model.d.ts.map +1 -1
  429. package/dist/server/loop-model.js +22 -9
  430. package/dist/server/loop-model.js.map +1 -1
  431. package/dist/server/loopDocs.d.ts.map +1 -1
  432. package/dist/server/loopDocs.js +5 -4
  433. package/dist/server/loopDocs.js.map +1 -1
  434. package/dist/server/seam-entry-read.sql +15 -10
  435. package/dist/server/seam-log-read.sql +2 -2
  436. package/dist/server/seam-loop.sql +1 -1
  437. package/dist/server/seam-proposal-list.sql +17 -7
  438. package/dist/service.d.ts.map +1 -1
  439. package/dist/service.js +79 -61
  440. package/dist/service.js.map +1 -1
  441. package/migrations/001_schema.sql +1010 -0
  442. package/package.json +65 -32
  443. package/dist/core/PluginLoader.d.ts +0 -20
  444. package/dist/core/PluginLoader.d.ts.map +0 -1
  445. package/dist/core/PluginLoader.js +0 -142
  446. package/dist/core/PluginLoader.js.map +0 -1
  447. package/dist/core/TelemetryChannel.d.ts +0 -37
  448. package/dist/core/TelemetryChannel.d.ts.map +0 -1
  449. package/dist/core/TelemetryChannel.js +0 -80
  450. package/dist/core/TelemetryChannel.js.map +0 -1
  451. package/dist/core/path-decode.d.ts +0 -3
  452. package/dist/core/path-decode.d.ts.map +0 -1
  453. package/dist/core/path-decode.js +0 -9
  454. package/dist/core/path-decode.js.map +0 -1
  455. package/dist/core/plugin-attribution.d.ts +0 -5
  456. package/dist/core/plugin-attribution.d.ts.map +0 -1
  457. package/dist/core/plugin-attribution.js +0 -39
  458. package/dist/core/plugin-attribution.js.map +0 -1
  459. package/dist/core/world-state.d.ts +0 -10
  460. package/dist/core/world-state.d.ts.map +0 -1
  461. package/dist/core/world-state.js +0 -35
  462. package/dist/core/world-state.js.map +0 -1
  463. package/dist/core/world-state.sql +0 -35
  464. package/dist/core/zero-pin.d.ts +0 -3
  465. package/dist/core/zero-pin.d.ts.map +0 -1
  466. package/dist/core/zero-pin.js +0 -16
  467. package/dist/core/zero-pin.js.map +0 -1
  468. package/dist/server/auto.d.ts +0 -6
  469. package/dist/server/auto.d.ts.map +0 -1
  470. package/dist/server/auto.js +0 -63
  471. package/dist/server/auto.js.map +0 -1
  472. package/dist/server/clientTurn.d.ts +0 -6
  473. package/dist/server/clientTurn.d.ts.map +0 -1
  474. package/dist/server/clientTurn.js +0 -22
  475. package/dist/server/clientTurn.js.map +0 -1
  476. package/dist/server/clientTurn.sql +0 -10
  477. package/dist/server/noProposals.d.ts +0 -6
  478. package/dist/server/noProposals.d.ts.map +0 -1
  479. package/dist/server/noProposals.js +0 -37
  480. package/dist/server/noProposals.js.map +0 -1
  481. package/dist/server/version-info.d.ts +0 -14
  482. package/dist/server/version-info.d.ts.map +0 -1
  483. package/dist/server/version-info.js +0 -69
  484. package/dist/server/version-info.js.map +0 -1
  485. package/migrations/0000-00-00.01_schema.sql +0 -536
  486. package/migrations/0004_loop-provider.sql +0 -3
  487. package/migrations/0005_subscription-published-channel.sql +0 -3
  488. package/migrations/0006_loop-max-turns.sql +0 -3
@@ -1,15 +1,34 @@
1
1
  // ~semantic storage and ranking. Complete content-addressed derivations own the
2
- // reader-projected FTS, graph, and vectors. Vector search ranks every eligible
2
+ // exact READ-body FTS, graph, and vectors. Vector search ranks every eligible
3
3
  // vector in scope; FTS is only the explicit no-embedder fallback.
4
+ import { DEFAULT_RETRIEVAL_LIMIT } from "@plurnk/plurnk-contracts";
5
+ import { EmbeddingVector, TextCoordinates, } from "@plurnk/plurnk-mimetypes";
4
6
  import EntryChunk from "./_entry-chunk.js";
5
7
  export default class EntrySemantic {
6
- static defaultTopK() {
7
- const raw = process.env.PLURNK_SERVICE_SEMANTIC_TOP_K;
8
- const value = Number(raw);
9
- if (!Number.isSafeInteger(value) || value < 1) {
10
- throw new Error(`PLURNK_SERVICE_SEMANTIC_TOP_K must be a positive safe integer, got ${JSON.stringify(raw)}`);
8
+ // FIND owns result positions uniformly across matcher dialects. Semantic
9
+ // search adds only an optional leading decimal threshold; any remaining
10
+ // integers retain the ordinary FIND positional meaning. The rank query
11
+ // needs only the prefix ending at the requested page, while an open-ended
12
+ // or malformed page remains exhaustive so the shared pager can report the
13
+ // authoritative result extent.
14
+ static resultSelection(marker) {
15
+ if (marker === null) {
16
+ return { threshold: null, page: { marks: [1, DEFAULT_RETRIEVAL_LIMIT] } };
11
17
  }
12
- return value;
18
+ const [first, ...remaining] = marker.marks;
19
+ if (Number.isInteger(first)) {
20
+ return {
21
+ threshold: null,
22
+ page: marker,
23
+ };
24
+ }
25
+ const page = remaining.length === 0
26
+ ? { marks: [1, DEFAULT_RETRIEVAL_LIMIT] }
27
+ : { marks: remaining };
28
+ return {
29
+ threshold: first,
30
+ page,
31
+ };
13
32
  }
14
33
  static maxEmbedSize() {
15
34
  const raw = process.env.PLURNK_SERVICE_MAX_EMBED_SIZE;
@@ -33,13 +52,14 @@ export default class EntrySemantic {
33
52
  if (content.length > 0)
34
53
  await db.fts_insert.run({ derivation_id: derivationId, content });
35
54
  }
36
- // Cosine similarity over two Float32 vectors stored as BLOBs — the SqlRite
55
+ // Cosine similarity over the framework-owned embedding wire — the SqlRite
37
56
  // `cosine()` function delegates here (cosine.ts is the registration adapter).
38
- // Alignment-proof: the BLOB Uint8Array may be an unaligned view, so copy the
39
- // exact bytes to a fresh buffer before the Float32 view. A zero vector → 0.
40
57
  static cosine(a, b) {
41
- const x = new Float32Array(a.buffer.slice(a.byteOffset, a.byteOffset + a.byteLength));
42
- const y = new Float32Array(b.buffer.slice(b.byteOffset, b.byteOffset + b.byteLength));
58
+ const x = EmbeddingVector.decode(a, undefined, "cosine left operand");
59
+ const y = EmbeddingVector.decode(b, undefined, "cosine right operand");
60
+ if (x.length !== y.length) {
61
+ throw new RangeError(`cosine operands must have the same dimension, got ${x.length} and ${y.length}`);
62
+ }
43
63
  let dot = 0, nx = 0, ny = 0;
44
64
  for (let i = 0; i < x.length; i++) {
45
65
  dot += x[i] * y[i];
@@ -70,14 +90,15 @@ export default class EntrySemantic {
70
90
  // handle): ABSENT → one whole-entry chunk from the fallback vector (today's
71
91
  // behavior, no extra embed call); PRESENT → lossless tile, embed each chunk.
72
92
  // Returns the chunk list + model for indexEmbedding; never touches the DB.
73
- static async deriveEmbeddings(mimetypes, content, symbols, fallbackEmbedding, fallbackModel, signal, onProgress) {
74
- const info = await EntrySemantic.#embedderInfo(mimetypes);
93
+ static async deriveEmbeddings(plan, content, symbols, fallbackEmbedding, fallbackModel, signal, onProgress) {
94
+ const { info } = plan;
75
95
  if (info === null) {
76
- const totalLines = content.length === 0 ? 0 : content.split("\n").length;
96
+ const totalLines = TextCoordinates.logicalLines(content).length;
77
97
  if (fallbackEmbedding === undefined || fallbackEmbedding.byteLength === 0 || totalLines === 0)
78
98
  return { chunks: [], model: undefined };
79
99
  return { chunks: [{ lineStart: 1, lineEnd: totalLines, vector: fallbackEmbedding }], model: fallbackModel };
80
100
  }
101
+ EntrySemantic.assertExactChunking(plan);
81
102
  // Symbol edges (a @graph endLine, or the line before a symbol starts) are the
82
103
  // tiler's preferred cut points; it still tiles every line if there are none.
83
104
  const boundaries = new Set();
@@ -87,23 +108,25 @@ export default class EntrySemantic {
87
108
  if (typeof s.line === "number" && s.line > 1)
88
109
  boundaries.add(s.line - 1);
89
110
  }
90
- // mimetypes#50 — a REMOTE embedder is present with an incomplete self-report: the window
91
- // is the operator's to declare (their knob), and the counter resolves through the seam's
92
- // tokenizers by the embedder's model name — the chars/2 upper bound when inexact is the
93
- // surfaced conservative fallback (smaller chunks are correct chunks).
111
+ // A remote embedder may omit its own counter. The pass-wide semantic plan
112
+ // preserves the one fallback tokenizer resolution, including identity and
113
+ // exactness; {§semantic-embed-dedup} owns its derivation identity and #95
114
+ // owns whether an inexact resolution may authorize chunking.
94
115
  if (info.contextWindow === null)
95
116
  throw new Error("remote embedder reports no input context window — set PLURNK_MIMETYPES_EMBED_CONTEXT_WINDOW to the endpoint's limit");
96
- const counter = info.countTokens ?? (await mimetypes.tokenizer(info.model ?? "")).countTokens;
117
+ const counter = plan.countTokens;
118
+ if (counter === null)
119
+ throw new Error("semantic plan has no token counter for an embedder with a declared context window");
120
+ signal?.throwIfAborted();
97
121
  const budget = EntrySemantic.#chunkBudget(info.contextWindow);
98
- let specs = await EntryChunk.tile(content, boundaries, budget, EntrySemantic.#chunkOverlap(), counter, (progress) => onProgress?.({ phase: "planning", ...progress }));
122
+ let specs = await EntryChunk.tile(content, boundaries, budget, EntrySemantic.#chunkOverlap(), (text) => counter(text, { signal }), (progress) => onProgress?.({ phase: "planning", ...progress }));
123
+ signal?.throwIfAborted();
99
124
  if (specs.length === 0)
100
125
  return { chunks: [], model: undefined };
101
- // One data-parallel batch over the tiled chunk texts (#272 — embedBatch via the
102
- // framework seam, ~6× the per-chunk loop on a multi-core box; vectors bit-identical,
103
- // so no re-embed). Each tile embeds as PLAIN TEXT: a chunk is a fragment, not a
104
- // standalone document, so embedding under the entry's mimetype (e.g. application/json)
105
- // re-validates the partial and throws — embedBatch embeds raw text directly.
106
- const vectors = await mimetypes.embedBatch(specs.map((s) => s.text), {
126
+ // Tiles cross the ordered batch seam as raw fragment text, never as
127
+ // standalone documents requiring format validation.
128
+ // {§mimetype-embedding}, {§derivation-dedup-parallel}
129
+ const vectors = await plan.mimetypes.embedBatch(specs.map((s) => s.text), {
107
130
  signal,
108
131
  onProgress: (progress) => onProgress?.({ phase: "embedding", ...progress }),
109
132
  });
@@ -115,6 +138,17 @@ export default class EntrySemantic {
115
138
  }
116
139
  return { chunks, model: chunks.length > 0 ? info.model : undefined };
117
140
  }
141
+ // {§semantic-embed-dedup} — an estimate may inform callers but cannot prove
142
+ // that a chunk fits an embedder's declared token window.
143
+ static assertExactChunking(plan, pushNotice) {
144
+ const { info, tokenizer } = plan;
145
+ if (info === null || info.countTokens !== null || tokenizer === null || tokenizer.exact)
146
+ return;
147
+ for (const notice of tokenizer.notices ?? [])
148
+ pushNotice?.(notice);
149
+ throw new Error(`semantic chunking requires an exact token counter for ${JSON.stringify(info.model)}; `
150
+ + `${JSON.stringify(tokenizer.tokenizerId)} is an estimate and cannot prove the declared ${info.contextWindow}-token window`);
151
+ }
118
152
  // Chunk budget in tokens — `.env.defaults` is the law, no code fallback. EMPTY =
119
153
  // the embedder's reported window (scalable — NO model-specific number baked in);
120
154
  // a positive value caps BELOW the window (e.g. to sweep granularity).
@@ -134,28 +168,44 @@ export default class EntrySemantic {
134
168
  return v;
135
169
  }
136
170
  // The embedder capability surface (plugin window + tokenizer + model id), probed
137
- // through the Mimetypes handle. null until an embedder is installed.
171
+ // through the Mimetypes handle. null means semantic derivation is unavailable.
138
172
  static async #embedderInfo(mimetypes) {
139
- // PLURNK_SERVICE_EMBED_DISABLE=1 forces the no-embedder path even when the optional embeddings package
140
- // IS installed — the whole semantic stack (deriveEmbeddings, exhaustive ~query cosine rank, the
141
- // deep_hash config) funnels through here, so one gate makes everything FTS-only. The fast lane
142
- // (mock-provider tests) sets it so the suite doesn't spin up the MiniLM worker pool for nothing.
173
+ // PLURNK_SERVICE_EMBED_DISABLE=1 forces the no-embedder path even though the default service
174
+ // includes one. The semantic stack funnels through this gate, so disabling it is wholly FTS-only.
143
175
  if (process.env.PLURNK_SERVICE_EMBED_DISABLE === "1")
144
176
  return null;
145
177
  return await mimetypes.embedderInfo();
146
178
  }
147
- // Folded into the entry's deep_hash so a derivation re-runs when the EMBEDDING
148
- // inputs change, not just content: installing/swapping the embedder (the window
149
- // flips none→N, activating tiling), the embedder's model id changing at the SAME
150
- // window (#31 — else stale vectors from the old model's space survive the swap and
151
- // get cosine-compared against the new model's), or sweeping the chunk knobs.
152
- static async deepConfigSignature(mimetypes) {
179
+ // Resolve the pass-wide semantic facts once. The plan binds the selected
180
+ // counter to the same identity folded into every derivation hash, so entries
181
+ // cannot be tiled with provenance different from the configuration key.
182
+ static async prepareEmbeddings(mimetypes) {
153
183
  const info = await EntrySemantic.#embedderInfo(mimetypes);
154
- if (info === null)
155
- return "embed:none";
156
- const base = `embed:${info.model ?? "?"}:${info.contextWindow}:${info.contextWindow === null ? "?" : EntrySemantic.#chunkBudget(info.contextWindow)}:${EntrySemantic.#chunkOverlap()}`;
184
+ if (info === null) {
185
+ return {
186
+ mimetypes,
187
+ info: null,
188
+ countTokens: null,
189
+ tokenizer: null,
190
+ signature: "embed:none",
191
+ };
192
+ }
193
+ const tokenizer = info.countTokens === null && info.contextWindow !== null
194
+ ? await mimetypes.tokenizer(info.model ?? "")
195
+ : null;
196
+ const countTokens = info.countTokens ?? tokenizer?.countTokens ?? null;
197
+ const tokenizerIdentity = tokenizer === null
198
+ ? ""
199
+ : `:tokenizer=${tokenizer.tokenizerId}:${tokenizer.exact ? "exact" : "estimate"}`;
200
+ const base = `embed:${info.model ?? "?"}:${info.contextWindow}:${info.contextWindow === null ? "?" : EntrySemantic.#chunkBudget(info.contextWindow)}:${EntrySemantic.#chunkOverlap()}:wire=${EmbeddingVector.encoding}${tokenizerIdentity}`;
157
201
  const maxBytes = EntrySemantic.maxEmbedSize();
158
- return maxBytes === 0 ? base : `${base}:max-bytes=${maxBytes}`;
202
+ return {
203
+ mimetypes,
204
+ info,
205
+ countTokens,
206
+ tokenizer,
207
+ signature: maxBytes === 0 ? base : `${base}:max-bytes=${maxBytes}`,
208
+ };
159
209
  }
160
210
  // Build the FTS5 query used only by the no-embedder keyword fallback.
161
211
  static ftsQueryFor(text) {
@@ -165,23 +215,27 @@ export default class EntrySemantic {
165
215
  return [...new Set(terms)].join(" OR ");
166
216
  }
167
217
  // The ~query dispatch: embed the query text through the SAME channel and cosine-rank
168
- // every vector in scope, top-K. Each result carries its best-matching
169
- // chunk's line span (the Finding extent). No embedder → the top-K <K> form degrades to an
170
- // FTS-only keyword rank (whole-entry findings); the <0.x> threshold form stays 501.
171
- static async rankSemantic(db, workspaceId, scheme, entryIds, mimetypes, queryText, marker) {
172
- // #209 — the result marker form-dispatches: integer <K> → top-K rank;
173
- // decimal <0.x> → a similarity threshold (minimum cosine in (0,1)), with
174
- // <0.x,N> capping the threshold set at N (else unbounded). A fractional
175
- // value outside (0,1) is a nonsense result-marker → 416, never coerced.
176
- const { first, last } = marker;
177
- const toResult = (x) => ({ pathname: x.pathname, lineStart: x.line_start, lineEnd: x.line_end });
178
- if (entryIds.length === 0)
218
+ // every vector in scope. Each result carries its best-matching
219
+ // chunk's line span (the Finding extent). No embedder -> an unthresholded
220
+ // ranked prefix degrades to FTS-only keyword rank (whole-entry findings);
221
+ // a similarity threshold stays 501.
222
+ static async rankCandidates(db, candidates, mimetypes, queryText, selection) {
223
+ const { threshold } = selection;
224
+ const toResult = (x) => ({
225
+ key: x.key,
226
+ lineStart: x.line_start,
227
+ lineEnd: x.line_end,
228
+ });
229
+ if (threshold !== null && (threshold <= 0 || threshold >= 1)) {
230
+ return { status: 416, results: [] };
231
+ }
232
+ if (candidates.length === 0)
179
233
  return { status: 200, results: [] };
180
- const entry_ids = JSON.stringify(entryIds);
234
+ const serializedCandidates = JSON.stringify(candidates);
181
235
  // The query embedding honors the SAME gate as the corpus (#embedderInfo /
182
236
  // PLURNK_SERVICE_EMBED_DISABLE): with the embeddings package installed but disabled,
183
237
  // calling process() directly would compute a query vector and rank it against
184
- // an empty entry_embeddings — every ~query silently []. Disabled → the honest
238
+ // an empty derivation_embeddings - every ~query silently []. Disabled means the honest
185
239
  // FTS keyword fallback, same as no embedder at all.
186
240
  const info = await EntrySemantic.#embedderInfo(mimetypes);
187
241
  const r = info === null
@@ -190,28 +244,34 @@ export default class EntrySemantic {
190
244
  if (r.embedding === undefined || r.embedding.byteLength === 0 || r.embeddingModel === undefined) {
191
245
  // FTS fallback: no embedder, so there is no query vector to cosine with. Top-K ranks
192
246
  // by BM25 keyword relevance alone; the <0.x> threshold form is intrinsically cosine-
193
- // based (no bounded BM25 analogue) → it stays 501.
194
- if (!Number.isInteger(first))
247
+ // based (no bounded BM25 analogue), so it stays 501.
248
+ if (threshold !== null)
195
249
  return { status: 501, results: [] };
196
250
  const ftsQuery = EntrySemantic.ftsQueryFor(queryText);
197
251
  if (ftsQuery.length === 0)
198
252
  return { status: 200, results: [] };
199
- const rows = await db.semantic_rank_fts.all({
200
- fts_query: ftsQuery, workspace_id: workspaceId, scheme, entry_ids, k: first,
253
+ const rows = await db.semantic_rank_candidates_fts.all({
254
+ fts_query: ftsQuery,
255
+ candidates: serializedCandidates,
256
+ k: -1,
201
257
  });
202
258
  return { status: 200, results: rows.map(toResult) };
203
259
  }
204
- if (Number.isInteger(first)) {
205
- const rows = await db.semantic_rank.all({
206
- workspace_id: workspaceId, scheme, entry_ids, query_vector: r.embedding, embedding_model: r.embeddingModel, k: first,
260
+ if (threshold === null) {
261
+ const rows = await db.semantic_rank_candidates.all({
262
+ candidates: serializedCandidates,
263
+ query_vector: r.embedding,
264
+ embedding_model: r.embeddingModel,
265
+ k: -1,
207
266
  });
208
267
  return { status: 200, results: rows.map(toResult) };
209
268
  }
210
- if (first <= 0 || first >= 1)
211
- return { status: 416, results: [] };
212
- const cap = (last !== null && Number.isInteger(last) && last > 0) ? last : -1;
213
- const rows = await db.semantic_rank_threshold.all({
214
- workspace_id: workspaceId, scheme, entry_ids, query_vector: r.embedding, embedding_model: r.embeddingModel, threshold: first, cap,
269
+ const rows = await db.semantic_rank_candidates_threshold.all({
270
+ candidates: serializedCandidates,
271
+ query_vector: r.embedding,
272
+ embedding_model: r.embeddingModel,
273
+ threshold,
274
+ cap: -1,
215
275
  });
216
276
  return { status: 200, results: rows.map(toResult) };
217
277
  }
@@ -1 +1 @@
1
- {"version":3,"file":"_entry-semantic.js","sourceRoot":"","sources":["../../src/schemes/_entry-semantic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_entry-semantic.js","sourceRoot":"","sources":["../../src/schemes/_entry-semantic.ts"],"names":[],"mappings":"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"}
@@ -1,81 +1,99 @@
1
- -- ~semantic (plurnk-service#186): exhaustive cosine ranking over every complete
1
+ -- {§relation-indexed-dialects} Exhaustive cosine ranking over every complete
2
2
  -- derivation in scope. FTS is retained only as the explicit no-embedder fallback;
3
3
  -- it never gates vector recall.
4
4
 
5
5
  -- PREP: fts_delete
6
- DELETE FROM entry_fts WHERE rowid = $derivation_id;
6
+ DELETE FROM derivation_fts WHERE rowid = $derivation_id;
7
7
 
8
8
  -- PREP: fts_insert
9
- INSERT INTO entry_fts (rowid, content) VALUES ($derivation_id, $content);
9
+ INSERT INTO derivation_fts (rowid, content) VALUES ($derivation_id, $content);
10
10
 
11
11
  -- PREP: embedding_set
12
12
  -- Insert ONE chunk's vector + its <L> extent + the model. The caller clears the
13
13
  -- entry's rows (embedding_delete) first and inserts each chunk in seq order, so no
14
14
  -- upsert is needed — a re-derivation is delete-all then insert-each.
15
- INSERT INTO entry_embeddings (derivation_id, chunk_seq, line_start, line_end, vector, embedding_model)
15
+ INSERT INTO derivation_embeddings (derivation_id, chunk_seq, line_start, line_end, vector, embedding_model)
16
16
  VALUES ($derivation_id, $chunk_seq, $line_start, $line_end, $vector, $embedding_model);
17
17
 
18
18
  -- PREP: embedding_delete
19
19
  -- Clears ALL of an entry's chunk rows (the re-derivation reset).
20
- DELETE FROM entry_embeddings WHERE derivation_id = $derivation_id;
20
+ DELETE FROM derivation_embeddings WHERE derivation_id = $derivation_id;
21
21
 
22
- -- PREP: semantic_rank
23
- -- Exhaustive cosine rank over every vector in the workspace+scheme scope.
24
- -- Many chunk rows per entry → rank by the entry's BEST chunk (per-entry top cosine via
22
+ -- PREP: semantic_rank_candidates
23
+ -- Exhaustive cosine rank over caller-supplied address→derivation candidates.
24
+ -- Many chunk rows per resource → rank by its BEST chunk (per-resource top cosine via
25
25
  -- ROW_NUMBER), and surface that winning chunk's line span as the finding extent
26
26
  -- (Project Findings). embedding_model filter keeps cosine within one model's dimensions.
27
- WITH ranked AS (
28
- SELECT e.pathname, em.line_start, em.line_end,
27
+ WITH candidates AS (
28
+ SELECT json_extract(value, '$.key') AS key,
29
+ json_extract(value, '$.deepHash') AS deep_hash
30
+ FROM json_each($candidates)
31
+ ),
32
+ ranked AS (
33
+ SELECT c.key, em.line_start, em.line_end,
29
34
  cosine(em.vector, $query_vector) AS score,
30
- ROW_NUMBER() OVER (PARTITION BY e.id ORDER BY cosine(em.vector, $query_vector) DESC) AS rn
31
- FROM derivations d
32
- JOIN entries e ON e.deep_hash = d.deep_hash
33
- JOIN entry_embeddings em ON em.derivation_id = d.id AND em.embedding_model = $embedding_model
35
+ ROW_NUMBER() OVER (PARTITION BY c.key ORDER BY cosine(em.vector, $query_vector) DESC) AS rn
36
+ FROM candidates c
37
+ JOIN derivations d ON d.deep_hash = c.deep_hash
38
+ JOIN derivation_embeddings em ON em.derivation_id = d.id AND em.embedding_model = $embedding_model
34
39
  WHERE d.state = 'complete'
35
- AND e.workspace_id = $workspace_id
36
- AND e.scheme = $scheme
37
- AND e.id IN (SELECT value FROM json_each($entry_ids))
38
40
  )
39
- SELECT pathname, line_start, line_end FROM ranked
41
+ SELECT key, line_start, line_end FROM ranked
40
42
  WHERE rn = 1
41
43
  ORDER BY score DESC
42
44
  LIMIT $k;
43
45
 
44
- -- PREP: semantic_rank_threshold
45
- -- #209 — the <0.x> similarity-threshold form: same exhaustive cosine rank, but a cosine
46
- -- floor ($threshold, in (0,1)) replaces top-K, and $cap (-1 = unbounded) is the
47
- -- optional <0.x,N> result cap.
48
- WITH ranked AS (
49
- SELECT e.pathname, em.line_start, em.line_end,
46
+ -- PREP: semantic_rank_candidates_threshold
47
+ -- {§find-semantic-selection}: threshold the exhaustive cosine rank before the
48
+ -- shared FIND pager selects its ordered result page.
49
+ WITH candidates AS (
50
+ SELECT json_extract(value, '$.key') AS key,
51
+ json_extract(value, '$.deepHash') AS deep_hash
52
+ FROM json_each($candidates)
53
+ ),
54
+ ranked AS (
55
+ SELECT c.key, em.line_start, em.line_end,
50
56
  cosine(em.vector, $query_vector) AS score,
51
- ROW_NUMBER() OVER (PARTITION BY e.id ORDER BY cosine(em.vector, $query_vector) DESC) AS rn
52
- FROM derivations d
53
- JOIN entries e ON e.deep_hash = d.deep_hash
54
- JOIN entry_embeddings em ON em.derivation_id = d.id AND em.embedding_model = $embedding_model
57
+ ROW_NUMBER() OVER (PARTITION BY c.key ORDER BY cosine(em.vector, $query_vector) DESC) AS rn
58
+ FROM candidates c
59
+ JOIN derivations d ON d.deep_hash = c.deep_hash
60
+ JOIN derivation_embeddings em ON em.derivation_id = d.id AND em.embedding_model = $embedding_model
55
61
  WHERE d.state = 'complete'
56
- AND e.workspace_id = $workspace_id
57
- AND e.scheme = $scheme
58
- AND e.id IN (SELECT value FROM json_each($entry_ids))
59
62
  )
60
- SELECT pathname, line_start, line_end FROM ranked
63
+ SELECT key, line_start, line_end FROM ranked
61
64
  WHERE rn = 1 AND score >= $threshold
62
65
  ORDER BY score DESC
63
66
  LIMIT $cap;
64
67
 
65
- -- PREP: semantic_rank_fts
66
- -- FTS-only fallback when no embedder is installed: rank processed readable content by BM25
67
- -- relevance alone (no entry_embeddings join, no cosine), scheme-scoped, top-K. Without
68
+ -- PREP: semantic_rank_candidates_fts
69
+ -- FTS-only fallback when no embedder is installed: rank the exact READ body by BM25
70
+ -- relevance alone (no derivation_embeddings join, no cosine). Without
68
71
  -- chunk vectors there is no winning span, so the finding is the whole entry — line
69
72
  -- 1..its line count, derived from the indexed FTS content.
70
- SELECT e.pathname,
73
+ WITH candidates AS (
74
+ SELECT json_extract(value, '$.key') AS key,
75
+ json_extract(value, '$.deepHash') AS deep_hash
76
+ FROM json_each($candidates)
77
+ ),
78
+ ranked AS (
79
+ SELECT c.key,
80
+ replace(replace(f.content, char(13) || char(10), char(10)), char(13), char(10)) AS content,
81
+ bm25(derivation_fts) AS score
82
+ FROM derivation_fts f
83
+ JOIN derivations d ON d.id = f.rowid AND d.state = 'complete'
84
+ JOIN candidates c ON c.deep_hash = d.deep_hash
85
+ WHERE f.content MATCH $fts_query
86
+ )
87
+ SELECT key,
71
88
  1 AS line_start,
72
- length(f.content) - length(replace(f.content, char(10), '')) + 1 AS line_end
73
- FROM entry_fts f
74
- JOIN derivations d ON d.id = f.rowid AND d.state = 'complete'
75
- JOIN entries e ON e.deep_hash = d.deep_hash
76
- WHERE f.content MATCH $fts_query
77
- AND e.workspace_id = $workspace_id
78
- AND e.scheme = $scheme
79
- AND e.id IN (SELECT value FROM json_each($entry_ids))
80
- ORDER BY bm25(entry_fts)
89
+ CASE
90
+ WHEN length(content) = 0 THEN 0
91
+ ELSE length(content) - length(replace(content, char(10), ''))
92
+ + CASE
93
+ WHEN substr(content, -1) = char(10) THEN 0
94
+ ELSE 1
95
+ END
96
+ END AS line_end
97
+ FROM ranked
98
+ ORDER BY score
81
99
  LIMIT $k;
@@ -1,8 +1,7 @@
1
- import type { SendStatement } from "@plurnk/plurnk-grammar";
1
+ import type { SendStatement } from "@plurnk/plurnk-contracts";
2
2
  import type { PlurnkSchemeContext } from "../core/scheme-types.ts";
3
- export interface SendResult {
4
- status: number;
5
- [key: string]: unknown;
3
+ import { type SchemeResult } from "../core/results.ts";
4
+ export interface SendResult extends SchemeResult {
6
5
  }
7
6
  export default class EntrySend {
8
7
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"_entry-send.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-send.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInE,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,OAAO,SAAS;;IAc1B,OAAa,oBAAoB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAuCnJ;CACJ"}
1
+ {"version":3,"file":"_entry-send.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-send.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,WAAW,UAAW,SAAQ,YAAY;CAAG;AAEnD,MAAM,CAAC,OAAO,OAAO,SAAS;;IAa1B,OAAa,oBAAoB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA4HnJ;CACJ"}
@@ -1,18 +1,17 @@
1
1
  // Shared SEND dispatcher for entry-bearing schemes. Schemes interpret
2
- // status codes per SPEC §send-dispatch. v0 handles 410 (Gone, delete the resource)
2
+ // status codes per SPEC {§send-dispatch}. v0 handles 410 (Gone, delete the resource)
3
3
  // and 499 (Client Closed Request, cancel active subscription).
4
4
  import Owner from "../core/Owner.js";
5
- import { decodePathParens } from "../core/path-decode.js";
5
+ import { entryPathnameOf, renderAddress } from "../core/plurnk-uri.js";
6
6
  import EntryCrud from "./_entry-crud.js";
7
7
  import ChannelWrite from "../core/ChannelWrite.js";
8
+ import Results from "../core/results.js";
8
9
  export default class EntrySend {
9
10
  static #pathnameOf(statement) {
10
11
  const path = statement.target;
11
12
  if (path === null)
12
13
  return null;
13
- if (path.kind === "regex")
14
- return path.raw; // regex source — parens are syntax, never encoded
15
- return decodePathParens(path.kind === "url" ? path.pathname : path.raw); // #239 item 4
14
+ return entryPathnameOf(path);
16
15
  }
17
16
  static #fragmentOf(statement) {
18
17
  const path = statement.target;
@@ -21,47 +20,73 @@ export default class EntrySend {
21
20
  return path.fragment;
22
21
  }
23
22
  static async sendToWorkspaceEntry(statement, ctx, scheme, explicitOwnerId) {
24
- if (statement.target === null)
25
- return { status: 400, error: "directed SEND requires a path" };
23
+ const failure = (code, status, detail, fields = {}, extensions = {}) => Results.failure(`scheme:${scheme}`, code, status, detail, fields, extensions);
24
+ if (statement.target === null) {
25
+ return failure("target-required", 400, "Directed SEND requires a target path.", {}, {
26
+ recovery: "Provide the target path.",
27
+ retryable: false,
28
+ });
29
+ }
26
30
  const status = statement.signal;
27
- if (status === null)
28
- return { status: 400, error: "SEND requires a numeric status code" };
29
- // SEND[410] Gone — delete the targeted resource (SPEC §send-dispatch). With a
31
+ if (status === null) {
32
+ return failure("status-required", 400, "SEND requires a numeric status code.", {}, {
33
+ recovery: "Provide a numeric SEND status.",
34
+ retryable: false,
35
+ });
36
+ }
37
+ // SEND[410] Gone — delete the targeted resource (SPEC {§send-dispatch}). With a
30
38
  // #fragment, deletes just that channel; without, deletes the whole entry.
31
39
  if (status === 410) {
32
40
  const pathname = EntrySend.#pathnameOf(statement);
33
41
  if (pathname === null)
34
- return { status: 400 };
42
+ return failure("target-required", 400, "SEND[410] requires a target path.");
43
+ const target = renderAddress(scheme, pathname);
35
44
  const fragment = EntrySend.#fragmentOf(statement);
36
45
  if (fragment !== null) {
37
46
  const { db, workspaceId } = ctx;
38
47
  const entry = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: explicitOwnerId ?? await Owner.commonsId(db, workspaceId), scheme, pathname });
39
- if (entry === undefined)
40
- return { status: 404 };
48
+ if (entry === undefined) {
49
+ return failure("entry-not-found", 404, `No entry exists at ${target}.`, {}, { target });
50
+ }
41
51
  const deleted = await db.crud_delete_channel.get({ entry_id: entry.id, name: fragment });
42
- return { status: deleted === undefined ? 404 : 200 };
52
+ return deleted === undefined
53
+ ? failure("channel-not-found", 404, `No channel named #${fragment} exists at ${target}.`, {}, {
54
+ target,
55
+ channel: fragment,
56
+ })
57
+ : { status: 200 };
43
58
  }
44
59
  const result = await EntryCrud.deleteEntry(pathname, ctx, scheme, explicitOwnerId);
45
- return { status: result.status };
60
+ return result;
46
61
  }
47
- // SEND[499] Client Closed Request — cancel active subscription (SPEC §send-dispatch, §stream-control).
62
+ // SEND[499] Client Closed Request — cancel active subscription (SPEC {§send-dispatch}, {§stream-control}).
48
63
  // Entry-bearing schemes never have subscriptions in v0; always return 404.
49
64
  // Streaming schemes (sse / exec / etc.) override this and look up via
50
65
  // findActiveSubscription, then call their teardown using the stored handle.
51
66
  if (status === 499) {
52
67
  const pathname = EntrySend.#pathnameOf(statement);
53
68
  if (pathname === null)
54
- return { status: 400 };
69
+ return failure("target-required", 400, "SEND[499] requires a target path.");
70
+ const target = renderAddress(scheme, pathname);
55
71
  const { db, workspaceId, workerId } = ctx;
56
72
  const entry = await db.crud_find_workspace_entry.get({ workspace_id: workspaceId, owner_id: explicitOwnerId ?? await Owner.commonsId(db, workspaceId), scheme, pathname });
57
- if (entry === undefined)
58
- return { status: 404, error: "no entry at path" };
73
+ if (entry === undefined) {
74
+ return failure("entry-not-found", 404, `No entry exists at ${target}.`, {}, { target });
75
+ }
59
76
  const subscription = await ChannelWrite.findActiveSubscription(db, { workerId, entryId: entry.id });
60
- if (subscription === null)
61
- return { status: 404, error: "no active subscription to cancel" };
62
- return { status: 501, error: `entry scheme does not own subscription cancellation; subscription owned by scheme '${subscription.scheme}'` };
77
+ if (subscription === null) {
78
+ return failure("subscription-not-found", 404, `No active subscription exists at ${target}.`, {}, { target });
79
+ }
80
+ return failure("subscription-owned-elsewhere", 501, `Scheme '${subscription.scheme}' owns cancellation for this subscription.`, {}, {
81
+ target,
82
+ owningScheme: subscription.scheme,
83
+ retryable: false,
84
+ });
63
85
  }
64
- return { status: 501, error: `entry scheme does not interpret SEND status ${status}` }; // §send-dispatch-entry-schemes-501-on-non-410
86
+ return failure("status-not-implemented", 501, `The '${scheme}' entry scheme does not interpret SEND status ${status}.`, {}, {
87
+ requestedStatus: status,
88
+ retryable: false,
89
+ }); // {§send-dispatch-entry-schemes-501-on-non-410}
65
90
  }
66
91
  }
67
92
  //# sourceMappingURL=_entry-send.js.map