@plurnk/plurnk-service 1.3.12 → 1.4.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 (469) hide show
  1. package/.env.defaults +84 -77
  2. package/INSTALL.md +50 -25
  3. package/README.md +24 -10
  4. package/SPEC.md +2311 -928
  5. package/dist/Paths.d.ts +4 -1
  6. package/dist/Paths.d.ts.map +1 -1
  7. package/dist/Paths.js +23 -21
  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 +3 -3
  18. package/dist/content/index.d.ts.map +1 -1
  19. package/dist/content/index.js +1 -1
  20. package/dist/content/index.js.map +1 -1
  21. package/dist/content/line-marker.d.ts +6 -9
  22. package/dist/content/line-marker.d.ts.map +1 -1
  23. package/dist/content/line-marker.js +7 -11
  24. package/dist/content/line-marker.js.map +1 -1
  25. package/dist/content/matcher.d.ts +14 -25
  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-resolve.d.ts +8 -4
  36. package/dist/content/read-resolve.d.ts.map +1 -1
  37. package/dist/content/read-resolve.js +101 -49
  38. package/dist/content/read-resolve.js.map +1 -1
  39. package/dist/core/BranchReceipt.d.ts +7 -0
  40. package/dist/core/BranchReceipt.d.ts.map +1 -0
  41. package/dist/core/BranchReceipt.js +27 -0
  42. package/dist/core/BranchReceipt.js.map +1 -0
  43. package/dist/core/BudgetOverflow.d.ts +23 -0
  44. package/dist/core/BudgetOverflow.d.ts.map +1 -0
  45. package/dist/core/BudgetOverflow.js +61 -0
  46. package/dist/core/BudgetOverflow.js.map +1 -0
  47. package/dist/core/BudgetReadout.d.ts +8 -0
  48. package/dist/core/BudgetReadout.d.ts.map +1 -0
  49. package/dist/core/BudgetReadout.js +79 -0
  50. package/dist/core/BudgetReadout.js.map +1 -0
  51. package/dist/core/ChannelWrite.d.ts +28 -9
  52. package/dist/core/ChannelWrite.d.ts.map +1 -1
  53. package/dist/core/ChannelWrite.js +28 -21
  54. package/dist/core/ChannelWrite.js.map +1 -1
  55. package/dist/core/ChannelWrite.sql +11 -10
  56. package/dist/core/CoreSchemeServices.d.ts +10 -4
  57. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  58. package/dist/core/CoreSchemeServices.js +7 -1
  59. package/dist/core/CoreSchemeServices.js.map +1 -1
  60. package/dist/core/Dispatcher.d.ts +29 -20
  61. package/dist/core/Dispatcher.d.ts.map +1 -1
  62. package/dist/core/Dispatcher.js +1488 -599
  63. package/dist/core/Dispatcher.js.map +1 -1
  64. package/dist/core/DurableStatement.d.ts +6 -0
  65. package/dist/core/DurableStatement.d.ts.map +1 -0
  66. package/dist/core/DurableStatement.js +51 -0
  67. package/dist/core/DurableStatement.js.map +1 -0
  68. package/dist/core/Engine.d.ts +48 -20
  69. package/dist/core/Engine.d.ts.map +1 -1
  70. package/dist/core/Engine.js +1208 -789
  71. package/dist/core/Engine.js.map +1 -1
  72. package/dist/core/Engine.sql +309 -217
  73. package/dist/core/EnvFlags.js +1 -1
  74. package/dist/core/EnvFlags.js.map +1 -1
  75. package/dist/core/ErrorDetail.d.ts +6 -0
  76. package/dist/core/ErrorDetail.d.ts.map +1 -0
  77. package/dist/core/ErrorDetail.js +20 -0
  78. package/dist/core/ErrorDetail.js.map +1 -0
  79. package/dist/core/ExecutorRegistry.d.ts +14 -3
  80. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  81. package/dist/core/ExecutorRegistry.js +56 -30
  82. package/dist/core/ExecutorRegistry.js.map +1 -1
  83. package/dist/core/GitBranch.d.ts +20 -0
  84. package/dist/core/GitBranch.d.ts.map +1 -0
  85. package/dist/core/GitBranch.js +110 -0
  86. package/dist/core/GitBranch.js.map +1 -0
  87. package/dist/core/JournalTurn.d.ts +9 -0
  88. package/dist/core/JournalTurn.d.ts.map +1 -0
  89. package/dist/core/JournalTurn.js +14 -0
  90. package/dist/core/JournalTurn.js.map +1 -0
  91. package/dist/core/JournalTurn.sql +10 -0
  92. package/dist/core/LogBody.d.ts +17 -0
  93. package/dist/core/LogBody.d.ts.map +1 -0
  94. package/dist/core/LogBody.js +148 -0
  95. package/dist/core/LogBody.js.map +1 -0
  96. package/dist/core/LoopFlagsReader.d.ts +7 -0
  97. package/dist/core/LoopFlagsReader.d.ts.map +1 -0
  98. package/dist/core/LoopFlagsReader.js +33 -0
  99. package/dist/core/LoopFlagsReader.js.map +1 -0
  100. package/dist/core/LoopLifecycle.d.ts +8 -1
  101. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  102. package/dist/core/LoopLifecycle.js +55 -9
  103. package/dist/core/LoopLifecycle.js.map +1 -1
  104. package/dist/core/LoopLifecycle.sql +9 -3
  105. package/dist/core/NoticeChannel.d.ts +13 -0
  106. package/dist/core/NoticeChannel.d.ts.map +1 -0
  107. package/dist/core/NoticeChannel.js +40 -0
  108. package/dist/core/NoticeChannel.js.map +1 -0
  109. package/dist/core/Owner.d.ts +0 -1
  110. package/dist/core/Owner.d.ts.map +1 -1
  111. package/dist/core/Owner.js +2 -5
  112. package/dist/core/Owner.js.map +1 -1
  113. package/dist/core/PacketBuilder.d.ts +25 -24
  114. package/dist/core/PacketBuilder.d.ts.map +1 -1
  115. package/dist/core/PacketBuilder.js +313 -375
  116. package/dist/core/PacketBuilder.js.map +1 -1
  117. package/dist/core/ProblemLog.d.ts +26 -0
  118. package/dist/core/ProblemLog.d.ts.map +1 -0
  119. package/dist/core/ProblemLog.js +58 -0
  120. package/dist/core/ProblemLog.js.map +1 -0
  121. package/dist/core/ProposalLifecycle.d.ts +15 -21
  122. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  123. package/dist/core/ProposalLifecycle.js +291 -78
  124. package/dist/core/ProposalLifecycle.js.map +1 -1
  125. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  126. package/dist/core/ProviderInstantiate.js +51 -48
  127. package/dist/core/ProviderInstantiate.js.map +1 -1
  128. package/dist/core/SchemeRegistry.d.ts +14 -8
  129. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  130. package/dist/core/SchemeRegistry.js +189 -114
  131. package/dist/core/SchemeRegistry.js.map +1 -1
  132. package/dist/core/ServiceTeardown.d.ts +11 -0
  133. package/dist/core/ServiceTeardown.d.ts.map +1 -0
  134. package/dist/core/ServiceTeardown.js +70 -0
  135. package/dist/core/ServiceTeardown.js.map +1 -0
  136. package/dist/core/StoredPacket.d.ts +29 -0
  137. package/dist/core/StoredPacket.d.ts.map +1 -0
  138. package/dist/core/StoredPacket.js +147 -0
  139. package/dist/core/StoredPacket.js.map +1 -0
  140. package/dist/core/StrikeRail.d.ts +1 -2
  141. package/dist/core/StrikeRail.d.ts.map +1 -1
  142. package/dist/core/StrikeRail.js +25 -55
  143. package/dist/core/StrikeRail.js.map +1 -1
  144. package/dist/core/WorkerControlAddress.d.ts +17 -0
  145. package/dist/core/WorkerControlAddress.d.ts.map +1 -0
  146. package/dist/core/WorkerControlAddress.js +44 -0
  147. package/dist/core/WorkerControlAddress.js.map +1 -0
  148. package/dist/core/WorkerName.d.ts +31 -0
  149. package/dist/core/WorkerName.d.ts.map +1 -0
  150. package/dist/core/WorkerName.js +95 -0
  151. package/dist/core/WorkerName.js.map +1 -0
  152. package/dist/core/WorkerName.sql +36 -0
  153. package/dist/core/WorkspaceGate.d.ts +14 -0
  154. package/dist/core/WorkspaceGate.d.ts.map +1 -0
  155. package/dist/core/WorkspaceGate.js +155 -0
  156. package/dist/core/WorkspaceGate.js.map +1 -0
  157. package/dist/core/caps/CapsResolve.d.ts +1 -1
  158. package/dist/core/caps/CapsResolve.d.ts.map +1 -1
  159. package/dist/core/caps/CapsResolve.js.map +1 -1
  160. package/dist/core/caps/DbChannelCaps.d.ts +5 -11
  161. package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
  162. package/dist/core/caps/DbChannelCaps.js +24 -8
  163. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  164. package/dist/core/caps/DbEntryCaps.d.ts +4 -13
  165. package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
  166. package/dist/core/caps/DbEntryCaps.js +15 -6
  167. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  168. package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
  169. package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
  170. package/dist/core/caps/DbNotifyCaps.js +12 -11
  171. package/dist/core/caps/DbNotifyCaps.js.map +1 -1
  172. package/dist/core/caps/DbProjectionCaps.d.ts +5 -5
  173. package/dist/core/caps/DbProjectionCaps.d.ts.map +1 -1
  174. package/dist/core/caps/DbProjectionCaps.js +21 -4
  175. package/dist/core/caps/DbProjectionCaps.js.map +1 -1
  176. package/dist/core/caps/DbSubscriptionCaps.d.ts +4 -4
  177. package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
  178. package/dist/core/caps/DbSubscriptionCaps.js +57 -62
  179. package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
  180. package/dist/core/caps/DbTagCaps.d.ts +5 -12
  181. package/dist/core/caps/DbTagCaps.d.ts.map +1 -1
  182. package/dist/core/caps/DbTagCaps.js +14 -7
  183. package/dist/core/caps/DbTagCaps.js.map +1 -1
  184. package/dist/core/content-hash.js +1 -1
  185. package/dist/core/content-hash.js.map +1 -1
  186. package/dist/core/env-defaults.d.ts.map +1 -1
  187. package/dist/core/env-defaults.js.map +1 -1
  188. package/dist/core/fork.d.ts.map +1 -1
  189. package/dist/core/fork.js +55 -30
  190. package/dist/core/fork.js.map +1 -1
  191. package/dist/core/fork.sql +41 -27
  192. package/dist/core/git-env.d.ts +2 -0
  193. package/dist/core/git-env.d.ts.map +1 -1
  194. package/dist/core/git-env.js +13 -18
  195. package/dist/core/git-env.js.map +1 -1
  196. package/dist/core/git-iso.d.ts.map +1 -1
  197. package/dist/core/git-iso.js +9 -15
  198. package/dist/core/git-iso.js.map +1 -1
  199. package/dist/core/git-membership.d.ts +1 -1
  200. package/dist/core/git-membership.d.ts.map +1 -1
  201. package/dist/core/git-membership.js +198 -146
  202. package/dist/core/git-membership.js.map +1 -1
  203. package/dist/core/git-state.d.ts.map +1 -1
  204. package/dist/core/git-state.js +10 -11
  205. package/dist/core/git-state.js.map +1 -1
  206. package/dist/core/owner.sql +1 -1
  207. package/dist/core/packet-inject.d.ts.map +1 -1
  208. package/dist/core/packet-inject.js +7 -11
  209. package/dist/core/packet-inject.js.map +1 -1
  210. package/dist/core/packet-wire.d.ts +2 -20
  211. package/dist/core/packet-wire.d.ts.map +1 -1
  212. package/dist/core/packet-wire.js +242 -368
  213. package/dist/core/packet-wire.js.map +1 -1
  214. package/dist/core/plurnk-uri.d.ts +12 -1
  215. package/dist/core/plurnk-uri.d.ts.map +1 -1
  216. package/dist/core/plurnk-uri.js +49 -29
  217. package/dist/core/plurnk-uri.js.map +1 -1
  218. package/dist/core/results.d.ts +16 -5
  219. package/dist/core/results.d.ts.map +1 -1
  220. package/dist/core/results.js +27 -18
  221. package/dist/core/results.js.map +1 -1
  222. package/dist/core/ruler_count.d.ts +4 -0
  223. package/dist/core/ruler_count.d.ts.map +1 -0
  224. package/dist/core/ruler_count.js +7 -0
  225. package/dist/core/ruler_count.js.map +1 -0
  226. package/dist/core/scheme-types.d.ts +9 -11
  227. package/dist/core/scheme-types.d.ts.map +1 -1
  228. package/dist/core/scheme-types.js.map +1 -1
  229. package/dist/core/search-gate.d.ts.map +1 -1
  230. package/dist/core/search-gate.js +3 -11
  231. package/dist/core/search-gate.js.map +1 -1
  232. package/dist/core/teaching-corpus.d.ts +6 -0
  233. package/dist/core/teaching-corpus.d.ts.map +1 -0
  234. package/dist/core/teaching-corpus.js +23 -0
  235. package/dist/core/teaching-corpus.js.map +1 -0
  236. package/dist/core/teaching.d.ts +0 -1
  237. package/dist/core/teaching.d.ts.map +1 -1
  238. package/dist/core/teaching.js +2 -8
  239. package/dist/core/teaching.js.map +1 -1
  240. package/dist/core/token-ruler.d.ts.map +1 -1
  241. package/dist/core/token-ruler.js +3 -16
  242. package/dist/core/token-ruler.js.map +1 -1
  243. package/dist/core/turn-scheduler.d.ts +1 -1
  244. package/dist/core/turn-scheduler.d.ts.map +1 -1
  245. package/dist/core/turn-scheduler.js +1 -1
  246. package/dist/core/turn-scheduler.js.map +1 -1
  247. package/dist/core/worker-cap.d.ts +2 -4
  248. package/dist/core/worker-cap.d.ts.map +1 -1
  249. package/dist/core/worker-cap.js +13 -4
  250. package/dist/core/worker-cap.js.map +1 -1
  251. package/dist/core/{run-ops.sql → worker-ops.sql} +11 -11
  252. package/dist/core/workspace-settings.d.ts.map +1 -1
  253. package/dist/core/workspace-settings.js +17 -9
  254. package/dist/core/workspace-settings.js.map +1 -1
  255. package/dist/digest/Digest.d.ts +2 -1
  256. package/dist/digest/Digest.d.ts.map +1 -1
  257. package/dist/digest/Digest.js +337 -138
  258. package/dist/digest/Digest.js.map +1 -1
  259. package/dist/digest/digest.sql +19 -10
  260. package/dist/index.d.ts.map +1 -1
  261. package/dist/index.js +3 -5
  262. package/dist/index.js.map +1 -1
  263. package/dist/matrix/live-specimen.d.ts +9 -0
  264. package/dist/matrix/live-specimen.d.ts.map +1 -0
  265. package/dist/matrix/live-specimen.js +37 -0
  266. package/dist/matrix/live-specimen.js.map +1 -0
  267. package/dist/observe/api.d.ts +6 -0
  268. package/dist/observe/api.d.ts.map +1 -0
  269. package/dist/observe/api.js +11 -0
  270. package/dist/observe/api.js.map +1 -0
  271. package/dist/observe/init.d.ts +7 -0
  272. package/dist/observe/init.d.ts.map +1 -0
  273. package/dist/observe/init.js +159 -0
  274. package/dist/observe/init.js.map +1 -0
  275. package/dist/observe/metrics.d.ts +6 -0
  276. package/dist/observe/metrics.d.ts.map +1 -0
  277. package/dist/observe/metrics.js +15 -0
  278. package/dist/observe/metrics.js.map +1 -0
  279. package/dist/observe/spans.d.ts +4 -0
  280. package/dist/observe/spans.d.ts.map +1 -0
  281. package/dist/observe/spans.js +51 -0
  282. package/dist/observe/spans.js.map +1 -0
  283. package/dist/schemes/EffectPolicy.d.ts +1 -0
  284. package/dist/schemes/EffectPolicy.d.ts.map +1 -1
  285. package/dist/schemes/EffectPolicy.js +5 -2
  286. package/dist/schemes/EffectPolicy.js.map +1 -1
  287. package/dist/schemes/Exec.d.ts +6 -11
  288. package/dist/schemes/Exec.d.ts.map +1 -1
  289. package/dist/schemes/Exec.js +364 -247
  290. package/dist/schemes/Exec.js.map +1 -1
  291. package/dist/schemes/ExecOutputScheme.d.ts +8 -7
  292. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  293. package/dist/schemes/ExecOutputScheme.js +48 -9
  294. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  295. package/dist/schemes/File.d.ts +7 -11
  296. package/dist/schemes/File.d.ts.map +1 -1
  297. package/dist/schemes/File.js +279 -142
  298. package/dist/schemes/File.js.map +1 -1
  299. package/dist/schemes/Log.d.ts +4 -8
  300. package/dist/schemes/Log.d.ts.map +1 -1
  301. package/dist/schemes/Log.js +475 -208
  302. package/dist/schemes/Log.js.map +1 -1
  303. package/dist/schemes/Log.sql +62 -30
  304. package/dist/schemes/Prompt.d.ts +3 -2
  305. package/dist/schemes/Prompt.d.ts.map +1 -1
  306. package/dist/schemes/Prompt.js +9 -6
  307. package/dist/schemes/Prompt.js.map +1 -1
  308. package/dist/schemes/Skill.d.ts +1 -1
  309. package/dist/schemes/Skill.d.ts.map +1 -1
  310. package/dist/schemes/Skill.js +2 -3
  311. package/dist/schemes/Skill.js.map +1 -1
  312. package/dist/schemes/Worker.d.ts +8 -16
  313. package/dist/schemes/Worker.d.ts.map +1 -1
  314. package/dist/schemes/Worker.js +179 -69
  315. package/dist/schemes/Worker.js.map +1 -1
  316. package/dist/schemes/_entry-chunk.d.ts.map +1 -1
  317. package/dist/schemes/_entry-chunk.js +12 -5
  318. package/dist/schemes/_entry-chunk.js.map +1 -1
  319. package/dist/schemes/_entry-crud.d.ts +10 -9
  320. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  321. package/dist/schemes/_entry-crud.js +59 -13
  322. package/dist/schemes/_entry-crud.js.map +1 -1
  323. package/dist/schemes/_entry-crud.sql +20 -8
  324. package/dist/schemes/_entry-find.d.ts +20 -15
  325. package/dist/schemes/_entry-find.d.ts.map +1 -1
  326. package/dist/schemes/_entry-find.js +339 -174
  327. package/dist/schemes/_entry-find.js.map +1 -1
  328. package/dist/schemes/_entry-find.sql +20 -8
  329. package/dist/schemes/_entry-graph.d.ts +4 -2
  330. package/dist/schemes/_entry-graph.d.ts.map +1 -1
  331. package/dist/schemes/_entry-graph.js +55 -31
  332. package/dist/schemes/_entry-graph.js.map +1 -1
  333. package/dist/schemes/_entry-graph.sql +37 -22
  334. package/dist/schemes/_entry-manifest.d.ts +10 -15
  335. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  336. package/dist/schemes/_entry-manifest.js +50 -268
  337. package/dist/schemes/_entry-manifest.js.map +1 -1
  338. package/dist/schemes/_entry-ops.d.ts +9 -14
  339. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  340. package/dist/schemes/_entry-ops.js +149 -77
  341. package/dist/schemes/_entry-ops.js.map +1 -1
  342. package/dist/schemes/_entry-ops.sql +1 -1
  343. package/dist/schemes/_entry-semantic.d.ts +23 -8
  344. package/dist/schemes/_entry-semantic.d.ts.map +1 -1
  345. package/dist/schemes/_entry-semantic.js +141 -60
  346. package/dist/schemes/_entry-semantic.js.map +1 -1
  347. package/dist/schemes/_entry-semantic.sql +63 -45
  348. package/dist/schemes/_entry-send.d.ts +3 -4
  349. package/dist/schemes/_entry-send.d.ts.map +1 -1
  350. package/dist/schemes/_entry-send.js +48 -23
  351. package/dist/schemes/_entry-send.js.map +1 -1
  352. package/dist/schemes/_path-scope.d.ts +23 -0
  353. package/dist/schemes/_path-scope.d.ts.map +1 -0
  354. package/dist/schemes/_path-scope.js +61 -0
  355. package/dist/schemes/_path-scope.js.map +1 -0
  356. package/dist/schemes/_search-candidate.d.ts +20 -0
  357. package/dist/schemes/_search-candidate.d.ts.map +1 -0
  358. package/dist/schemes/_search-candidate.js +19 -0
  359. package/dist/schemes/_search-candidate.js.map +1 -0
  360. package/dist/schemes/_search-exclusion.d.ts +7 -0
  361. package/dist/schemes/_search-exclusion.d.ts.map +1 -0
  362. package/dist/schemes/_search-exclusion.js +23 -0
  363. package/dist/schemes/_search-exclusion.js.map +1 -0
  364. package/dist/schemes/_search-index.d.ts +6 -0
  365. package/dist/schemes/_search-index.d.ts.map +1 -0
  366. package/dist/schemes/_search-index.js +326 -0
  367. package/dist/schemes/_search-index.js.map +1 -0
  368. package/dist/schemes/cosine.js +1 -1
  369. package/dist/schemes/cosine.js.map +1 -1
  370. package/dist/schemes/exec-abort.js +3 -3
  371. package/dist/schemes/exec-abort.js.map +1 -1
  372. package/dist/schemes/exec-env.js +3 -3
  373. package/dist/schemes/exec-env.js.map +1 -1
  374. package/dist/server/BranchBatches.d.ts +48 -0
  375. package/dist/server/BranchBatches.d.ts.map +1 -0
  376. package/dist/server/BranchBatches.js +591 -0
  377. package/dist/server/BranchBatches.js.map +1 -0
  378. package/dist/server/Daemon.d.ts +36 -66
  379. package/dist/server/Daemon.d.ts.map +1 -1
  380. package/dist/server/Daemon.js +920 -446
  381. package/dist/server/Daemon.js.map +1 -1
  382. package/dist/server/DaemonModule.d.ts +31 -0
  383. package/dist/server/DaemonModule.d.ts.map +1 -0
  384. package/dist/server/DaemonModule.js +2 -0
  385. package/dist/server/DaemonModule.js.map +1 -0
  386. package/dist/server/branch-batch.sql +152 -0
  387. package/dist/server/client-input.d.ts +12 -0
  388. package/dist/server/client-input.d.ts.map +1 -1
  389. package/dist/server/client-input.js +262 -57
  390. package/dist/server/client-input.js.map +1 -1
  391. package/dist/server/dispatch-as-plurnk.d.ts +1 -1
  392. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  393. package/dist/server/dispatch-as-plurnk.js +15 -7
  394. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  395. package/dist/server/drain.sql +92 -62
  396. package/dist/server/envelope.d.ts +2 -5
  397. package/dist/server/envelope.d.ts.map +1 -1
  398. package/dist/server/envelope.js +119 -95
  399. package/dist/server/envelope.js.map +1 -1
  400. package/dist/server/envelope.sql +19 -23
  401. package/dist/server/exec-poll-backoff.js +1 -1
  402. package/dist/server/exec-poll-backoff.js.map +1 -1
  403. package/dist/server/lifecycle-recovery.sql +79 -2
  404. package/dist/server/logEntry.d.ts +3 -1
  405. package/dist/server/logEntry.d.ts.map +1 -1
  406. package/dist/server/logEntry.js +4 -2
  407. package/dist/server/logEntry.js.map +1 -1
  408. package/dist/server/logEntry.sql +1 -1
  409. package/dist/server/loop-model.d.ts.map +1 -1
  410. package/dist/server/loop-model.js +22 -9
  411. package/dist/server/loop-model.js.map +1 -1
  412. package/dist/server/loopDocs.d.ts.map +1 -1
  413. package/dist/server/loopDocs.js +5 -4
  414. package/dist/server/loopDocs.js.map +1 -1
  415. package/dist/server/seam-entry-read.sql +15 -10
  416. package/dist/server/seam-log-read.sql +2 -2
  417. package/dist/server/seam-loop.sql +1 -1
  418. package/dist/server/seam-proposal-list.sql +17 -7
  419. package/dist/service.d.ts.map +1 -1
  420. package/dist/service.js +66 -60
  421. package/dist/service.js.map +1 -1
  422. package/migrations/001_schema.sql +897 -0
  423. package/package.json +57 -26
  424. package/dist/core/PluginLoader.d.ts +0 -20
  425. package/dist/core/PluginLoader.d.ts.map +0 -1
  426. package/dist/core/PluginLoader.js +0 -142
  427. package/dist/core/PluginLoader.js.map +0 -1
  428. package/dist/core/TelemetryChannel.d.ts +0 -37
  429. package/dist/core/TelemetryChannel.d.ts.map +0 -1
  430. package/dist/core/TelemetryChannel.js +0 -80
  431. package/dist/core/TelemetryChannel.js.map +0 -1
  432. package/dist/core/path-decode.d.ts +0 -3
  433. package/dist/core/path-decode.d.ts.map +0 -1
  434. package/dist/core/path-decode.js +0 -9
  435. package/dist/core/path-decode.js.map +0 -1
  436. package/dist/core/plugin-attribution.d.ts +0 -5
  437. package/dist/core/plugin-attribution.d.ts.map +0 -1
  438. package/dist/core/plugin-attribution.js +0 -39
  439. package/dist/core/plugin-attribution.js.map +0 -1
  440. package/dist/core/world-state.d.ts +0 -10
  441. package/dist/core/world-state.d.ts.map +0 -1
  442. package/dist/core/world-state.js +0 -35
  443. package/dist/core/world-state.js.map +0 -1
  444. package/dist/core/world-state.sql +0 -35
  445. package/dist/core/zero-pin.d.ts +0 -3
  446. package/dist/core/zero-pin.d.ts.map +0 -1
  447. package/dist/core/zero-pin.js +0 -16
  448. package/dist/core/zero-pin.js.map +0 -1
  449. package/dist/server/auto.d.ts +0 -6
  450. package/dist/server/auto.d.ts.map +0 -1
  451. package/dist/server/auto.js +0 -63
  452. package/dist/server/auto.js.map +0 -1
  453. package/dist/server/clientTurn.d.ts +0 -6
  454. package/dist/server/clientTurn.d.ts.map +0 -1
  455. package/dist/server/clientTurn.js +0 -22
  456. package/dist/server/clientTurn.js.map +0 -1
  457. package/dist/server/clientTurn.sql +0 -10
  458. package/dist/server/noProposals.d.ts +0 -6
  459. package/dist/server/noProposals.d.ts.map +0 -1
  460. package/dist/server/noProposals.js +0 -37
  461. package/dist/server/noProposals.js.map +0 -1
  462. package/dist/server/version-info.d.ts +0 -14
  463. package/dist/server/version-info.d.ts.map +0 -1
  464. package/dist/server/version-info.js +0 -69
  465. package/dist/server/version-info.js.map +0 -1
  466. package/migrations/0000-00-00.01_schema.sql +0 -536
  467. package/migrations/0004_loop-provider.sql +0 -3
  468. package/migrations/0005_subscription-published-channel.sql +0 -3
  469. package/migrations/0006_loop-max-turns.sql +0 -3
@@ -13,64 +13,105 @@ import Skill from "../schemes/Skill.js";
13
13
  import File from "../schemes/File.js";
14
14
  import Worker from "../schemes/Worker.js";
15
15
  import ResolveForLoop from "./resolveForLoop.js";
16
- import { SchemeDiscovery } from "@plurnk/plurnk-schemes";
17
- import PluginAttribution from "./plugin-attribution.js";
16
+ import { Manifest, PacketSections, SchemeDiscovery, } from "@plurnk/plurnk-schemes";
18
17
  import ExecOutputScheme from "../schemes/ExecOutputScheme.js";
19
- import { readdir, readFile } from "node:fs/promises";
20
- import { resolve } from "node:path";
21
- import Paths from "../Paths.js";
22
18
  import { docsExcludeSet } from "./teaching.js";
23
- // The in-tree CORE-scheme depth (run/known/unknown/log) lives in the docs corpus (docs/)
24
- // (Paths.schemeDocs), NOT inline — the docs agent owns the prose; loaded once at module eval.
25
- // teach()/docs() prefer this over a manifest's inline `documentation` (the path that stays for
26
- // stubs + plugin schemes). Absent dir → empty map.
27
- const SCHEME_DOCS = await (async () => {
28
- try {
29
- const files = (await readdir(Paths.schemeDocs)).filter((f) => f.endsWith(".md"));
30
- const loaded = await Promise.all(files.map(async (f) => [f.slice(0, -3), await readFile(resolve(Paths.schemeDocs, f), "utf8")]));
31
- return new Map(loaded);
32
- }
33
- catch {
34
- return new Map();
35
- }
36
- })();
19
+ import Meta, { TEACHING_CORPUS, } from "@plurnk/plurnk-meta";
20
+ import { readTeachingSource } from "./teaching-corpus.js";
37
21
  export default class SchemeRegistry {
38
22
  // Handler store. Dispatcher supplies one context implementation to bundled
39
23
  // and discovered schemes alike.
40
24
  #handlers = new Map();
25
+ #readiness = new Map();
26
+ #closures = new Map();
41
27
  #coreServices;
42
- #attributions = []; // #249 — declared attribution tags of discovered external schemes
43
- // §exec — runtime-tag schemes (sh/node/…) that ALIAS the exec handler for output-entry
28
+ #packageAttributions = new Map();
29
+ #packageAttributionSources = new Map();
30
+ // {§exec} — runtime-tag schemes (sh/node/…) that ALIAS the exec handler for output-entry
44
31
  // addressing (sh:///l/t/s). Routable via get(), but NOT separately taught or doc-materialized
45
32
  // (exec is taught once); else the catalog + docs bloat by one redundant line/entry per tag.
46
33
  #runtimeSchemes = new Set();
47
- // #240 — built-in scheme names (captured at construction), reserved namespace-wide.
48
- #reserved = new Set();
49
- // `fetchWeb` (§exec-entry-sink / #455) is forwarded to the exec handler's content:null sink; default
50
- // = schemes-http's guarded WebFetcher, injectable so tests substitute the network the guard would block.
34
+ // One ownership ledger for built-ins, installed schemes, runtime output
35
+ // faces, and programmatic schemes. {§plugin-namespace-arbitration}
36
+ #claims = new Map();
37
+ #readTeaching;
38
+ #schemeDocs;
39
+ #questionsDoc;
40
+ // `fetchWeb` ({§exec-entry-sink}) is forwarded to the exec handler's content:null sink; default
41
+ // = schemes-http's checked WebFetcher, injectable so tests substitute automatic network acquisition.
51
42
  constructor(opts) {
52
- this.register("log", new Log());
53
- // #527 — "exec" is INTERNAL machinery, not an addressable scheme: the EXEC op routes here
43
+ this.#readTeaching = opts?.readTeaching ?? readTeachingSource;
44
+ this.#registerBuiltIn("log", new Log());
45
+ // {§scheme} — "exec" is internal machinery, not an addressable scheme: the EXEC op routes here
54
46
  // and the spawn-abort/idle state lives here, but the model addresses output via the tag
55
- // schemes (sh://, jq://) and process-KILLs the tag coordinate. plurnk/known/unknown retired:
56
- // the knowledgebase is worker:// (commons/~/name/plurnk), task frames are prompt://.
57
- this.register("exec", new Exec(opts?.fetchWeb));
58
- this.register("prompt", new Prompt());
59
- this.register("skill", new Skill());
60
- this.register("file", new File());
61
- this.register("worker", new Worker());
62
- // #240 — the in-tree names are RESERVED across the whole scheme namespace: a
63
- // discovered executor or external scheme claiming one fails the boot hard, never
64
- // silently shadowed. (exec stays poisoned-but-registered — the EXEC op + kill state.)
65
- this.#reserved = new Set(this.#handlers.keys());
47
+ // schemes (sh://, jq://) and process-KILLs the tag coordinate. The knowledgebase
48
+ // is worker:// (commons/~/name/plurnk), and task frames are prompt://.
49
+ this.#registerBuiltIn("exec", new Exec(opts?.fetchWeb));
50
+ this.#registerBuiltIn("prompt", new Prompt());
51
+ this.#registerBuiltIn("skill", new Skill());
52
+ this.#registerBuiltIn("file", new File());
53
+ this.#registerBuiltIn("worker", new Worker());
66
54
  }
67
55
  register(name, handler) {
68
- if (this.#handlers.has(name))
69
- throw new Error(`scheme '${name}' is already registered`);
56
+ const claim = SchemeRegistry.#programmaticClaim(name);
57
+ this.#registerClaimed(name, handler, claim);
58
+ }
59
+ #registerBuiltIn(name, handler) {
60
+ const claim = {
61
+ key: "core:@plurnk/plurnk-service",
62
+ label: "core package '@plurnk/plurnk-service'",
63
+ reserved: true,
64
+ };
65
+ this.#registerClaimed(name, handler, claim);
66
+ }
67
+ #registerClaimed(name, handler, claim, sameOwnerRescan = false) {
68
+ if (this.#assertClaim(name, claim, sameOwnerRescan) === "same")
69
+ return false;
70
+ Manifest.of(handler, name);
70
71
  const bindCore = handler.bindCore;
71
72
  if (this.#coreServices !== undefined && typeof bindCore === "function")
72
73
  bindCore.call(handler, this.#coreServices);
73
74
  this.#handlers.set(name, handler);
75
+ this.#claims.set(name, claim);
76
+ return true;
77
+ }
78
+ #assertClaim(name, incoming, sameOwnerRescan) {
79
+ const existing = this.#claims.get(name);
80
+ if (existing === undefined)
81
+ return "new";
82
+ if (sameOwnerRescan && existing.key === incoming.key)
83
+ return "same";
84
+ if (existing.reserved) {
85
+ throw new Error(`scheme name '${name}' is reserved by ${existing.label}; ${incoming.label} cannot claim it`);
86
+ }
87
+ throw new Error(`scheme name '${name}' is claimed by both ${existing.label} and ${incoming.label}`);
88
+ }
89
+ static #programmaticClaim(name) {
90
+ return {
91
+ key: `programmatic-scheme:${name}`,
92
+ label: `programmatic scheme '${name}'`,
93
+ reserved: false,
94
+ };
95
+ }
96
+ static #externalSchemeClaim(packageName) {
97
+ return {
98
+ key: `scheme-package:${packageName}`,
99
+ label: `scheme package '${packageName}'`,
100
+ reserved: false,
101
+ };
102
+ }
103
+ static #runtimeClaim(owner) {
104
+ return owner.kind === "package"
105
+ ? {
106
+ key: `executor-package:${owner.name}`,
107
+ label: `executor package '${owner.name}'`,
108
+ reserved: false,
109
+ }
110
+ : {
111
+ key: `module-runtime:${owner.name}`,
112
+ label: `daemon module runtime '${owner.name}'`,
113
+ reserved: false,
114
+ };
74
115
  }
75
116
  bindCore(services) {
76
117
  this.#coreServices = services;
@@ -80,79 +121,94 @@ export default class SchemeRegistry {
80
121
  bindCore.call(handler, services);
81
122
  }
82
123
  }
83
- // §exec / #240 — exec OUTPUT entries address by their runtime TAG as authority
124
+ // {§exec} — exec output entries address by their runtime tag as authority
84
125
  // (sh:///l/t/s). Register each discovered executor as its OWN per-tag scheme face
85
126
  // (ExecOutputScheme): READ/FIND tag-scoped via the executor's manifest, process-KILL
86
127
  // delegated to the shared Exec handler. Minted from the boot ExecutorRegistry; in-tree
87
- // names take precedence (a tag shadowing a built-in is skipped, never overrides it).
128
+ // names are reserved (a tag shadowing a built-in fails hard, never overrides it).
88
129
  registerRuntimeSchemes(executors) {
89
130
  for (const tag of executors.availableRuntimes()) {
90
131
  const entry = executors.entry(tag);
91
132
  if (entry === undefined)
92
133
  continue;
93
- this.registerRuntimeScheme(tag, entry.executor);
134
+ this.registerRuntimeScheme(tag, entry.executor, entry.namespaceOwner, undefined, true);
94
135
  }
95
136
  }
96
- // Register ONE executor tag's scheme face (the boot loop above + the #289 runtime hotload:
97
- // an MCP server connected live becomes EXEC[<server>]). The reserved/cross-family arbitration
98
- // lives HERE so both paths share it — one name, one owner across the exec/scheme families (#240):
99
- // idempotent on a tag that already has its own runtime scheme (a boot re-scan), fail-hard on a
100
- // collision with a reserved built-in or a DIFFERENT already-claimed scheme.
101
- registerRuntimeScheme(tag, executor) {
137
+ // Register one executor tag's scheme face (the boot loop above or daemon-module setup).
138
+ // Cross-family arbitration lives here so boot and module paths share one
139
+ // namespace. {§plugin-namespace-arbitration}
140
+ registerRuntimeScheme(tag, executor, owner, facet, sameOwnerRescan = false) {
102
141
  const exec = this.#handlers.get("exec");
103
142
  if (!(exec instanceof Exec))
104
143
  throw new Error("registerRuntimeScheme: the exec handler is not registered");
105
- if (this.#reserved.has(tag))
106
- throw new Error(`executor tag '${tag}' collides with a reserved built-in scheme — fail-hard (#240)`);
107
- if (this.#runtimeSchemes.has(tag))
108
- return; // idempotent — already this tag's own runtime scheme
109
- if (this.#handlers.has(tag))
110
- throw new Error(`executor tag '${tag}' collides with an already-claimed scheme '${tag}' — one name, one owner across the exec/scheme families (#240)`);
111
- this.register(tag, new ExecOutputScheme(executor, exec));
144
+ const claim = SchemeRegistry.#runtimeClaim(owner);
145
+ if (this.#assertClaim(tag, claim, sameOwnerRescan) === "same")
146
+ return;
147
+ this.#registerClaimed(tag, new ExecOutputScheme(executor, exec, facet), claim, sameOwnerRescan);
112
148
  this.#runtimeSchemes.add(tag);
113
149
  }
150
+ assertRuntimeClaim(tag, owner) {
151
+ this.#assertClaim(tag, SchemeRegistry.#runtimeClaim(owner), false);
152
+ }
114
153
  get(name) { return this.#handlers.get(name); }
115
154
  has(name) { return this.#handlers.has(name); }
116
155
  manifestFor(name) {
117
156
  const handler = this.#handlers.get(name);
118
- return handler?.manifest ?? handler?.constructor?.manifest;
157
+ return handler === undefined ? undefined : Manifest.of(handler, name);
119
158
  }
120
159
  list() { return [...this.#handlers.keys()].toSorted(); }
121
- // Process-readiness boundary for plugin-owned runtime capabilities. Discovery
122
- // alone proves only that a handler can be imported; ready() proves resources
123
- // advertised as available at boot can actually be opened.
160
+ // {§handler-lifecycle} — discovery proves importability; one successful
161
+ // ready() per object identity proves advertised resources are usable.
124
162
  async ready() {
125
163
  const handlers = new Set(this.#handlers.values());
126
164
  for (const handler of handlers) {
127
- const ready = handler.ready;
128
- if (ready !== undefined)
129
- await ready.call(handler);
165
+ let readiness = this.#readiness.get(handler);
166
+ if (readiness === undefined) {
167
+ readiness = Promise.resolve().then(async () => {
168
+ const ready = handler.ready;
169
+ if (ready !== undefined)
170
+ await ready.call(handler);
171
+ });
172
+ this.#readiness.set(handler, readiness);
173
+ }
174
+ await readiness;
130
175
  }
131
176
  }
132
- // Process-lifecycle boundary for plugin-owned pools/sockets/connections. Runtime
133
- // aliases may share a handler, so close each object identity exactly once.
177
+ // {§handler-lifecycle} — aliases may share a handler. Attempt and await every
178
+ // unique close once, then surface all failures together.
134
179
  async close() {
135
- const handlers = new Set(this.#handlers.values());
136
- await Promise.all([...handlers].map(async (handler) => {
137
- const close = handler.close;
138
- if (close !== undefined)
139
- await close.call(handler);
140
- }));
180
+ const closures = [...new Set(this.#handlers.values())].map((handler) => {
181
+ let closure = this.#closures.get(handler);
182
+ if (closure === undefined) {
183
+ closure = Promise.resolve().then(async () => {
184
+ const close = handler.close;
185
+ if (close !== undefined)
186
+ await close.call(handler);
187
+ });
188
+ this.#closures.set(handler, closure);
189
+ }
190
+ return closure;
191
+ });
192
+ const results = await Promise.allSettled(closures);
193
+ const errors = results
194
+ .filter((result) => result.status === "rejected")
195
+ .flatMap((result) => result.reason instanceof AggregateError
196
+ ? [...result.reason.errors]
197
+ : [result.reason]);
198
+ if (errors.length > 0)
199
+ throw new AggregateError(errors, "scheme handler shutdown failed");
141
200
  }
142
201
  // A scheme's default channel (manifest.defaultChannel) — the channel a fragment-less
143
- // address targets. Drives the manifest's address-keyed channels (note 4); null → file (body).
202
+ // address targets. Drives the manifest's address-keyed channels (note 4).
144
203
  defaultChannelFor(scheme) {
145
- if (scheme === null)
146
- return "body";
147
- const manifest = this.#handlers.get(scheme)?.constructor?.manifest;
148
- return manifest?.defaultChannel ?? "body";
204
+ return this.manifestFor(scheme)?.defaultChannel ?? "body";
149
205
  }
150
- // The scheme directory — the `schemes` packet section (below tools). grammar
151
- // 0.49+ teaches grammar/dialects only, not the scheme set (grammar#239), so the
206
+ // {§schemes-directory} The `schemes` packet section sits below tools. Language
207
+ // teaching covers grammar and dialects, not the installed scheme set, so the
152
208
  // service advertises what schemes exist at packet-time. Each handler that ships a
153
209
  // `manifest.example` contributes ONE terse line — its canonical usage — plus a
154
- // doc-link when it ships `manifest.documentation` (materialized at
155
- // plurnk://docs/<name>.md by loop_run, READ on demand). The verbose semantics live
210
+ // pull doc when it ships `manifest.documentation` (materialized at
211
+ // worker://plurnk/docs/<name>.md by LoopDocs, READ on demand). The verbose semantics live
156
212
  // in that pull doc, not here: terse pushes, depth pulls — exactly the exec tools
157
213
  // sheet's shape (#collectTools). Insertion order; a scheme with no example
158
214
  // (provisional, e.g. skill) is omitted. The doc's token weight rides its manifest entry.
@@ -161,46 +217,52 @@ export default class SchemeRegistry {
161
217
  const excluded = docsExcludeSet();
162
218
  for (const [name, handler] of this.#handlers) {
163
219
  if (this.#runtimeSchemes.has(name))
164
- continue; // §exec — runtime aliases route, but exec is taught once
220
+ continue; // {§exec} — runtime aliases route, but exec is taught once
165
221
  if (excluded.has(name))
166
- continue; // #240 — PLURNK_SERVICE_DOCS_EXCLUDE drops the oneliner + the doc
167
- const manifest = handler.constructor.manifest;
222
+ continue; // {§schemes-directory} — exclude drops the example and doc
223
+ const manifest = this.manifestFor(name);
168
224
  const example = manifest?.example;
169
225
  if (typeof example !== "string" || example.length === 0)
170
226
  continue;
171
- lines.push(example); // bare op — the Schemes catalog is fenced, not bulleted (#436); doc links removed (#270)
227
+ lines.push(example); // {§packet-operation-fences} — bare op, fenced rather than bulleted
172
228
  }
173
- // §PACKET Schemes — a fenced `plurnk` catalog, validatable by the same op-fence as the doc (not a bullet list).
229
+ // Scheme examples use the shared model-facing operation fence. {§packet-operation-fences}
174
230
  return lines.length > 0 ? `\`\`\`plurnk\n${lines.join("\n")}\n\`\`\`` : "";
175
231
  }
176
- // #note12 — schemes that ship a `documentation` string, for materialization at
177
- // plurnk:///docs/<name>.md. Optional + currently none in-tree; future-proofs the link.
178
- docs() {
232
+ async #requiredSchemeDocs() {
233
+ this.#schemeDocs ??= Promise.all(Object.entries(TEACHING_CORPUS.schemeDocs).map(async ([name, source]) => [name, await this.#readTeaching(source)])).then((entries) => new Map(entries));
234
+ return this.#schemeDocs;
235
+ }
236
+ // {§teaching-corpus} — exact meta-owned sources are required; manifest-owned
237
+ // documentation is the deliberately optional fallback for every other scheme.
238
+ async docs() {
239
+ const schemeDocs = await this.#requiredSchemeDocs();
179
240
  const out = [];
180
241
  const excluded = docsExcludeSet();
181
242
  for (const [name, handler] of this.#handlers) {
182
243
  if (this.#runtimeSchemes.has(name))
183
- continue; // §exec — runtime aliases share exec's doc, not their own
244
+ continue; // {§exec} — runtime aliases share exec's doc, not their own
184
245
  if (excluded.has(name))
185
- continue; // #240 — PLURNK_SERVICE_DOCS_EXCLUDE drops the doc
186
- const inline = handler.constructor.manifest?.documentation;
187
- const content = SCHEME_DOCS.get(name) ?? (typeof inline === "string" && inline.length > 0 ? inline : undefined);
246
+ continue; // {§schemes-directory} — exclude drops the doc
247
+ const inline = this.manifestFor(name)?.documentation;
248
+ const content = schemeDocs.get(name) ?? (typeof inline === "string" && inline.length > 0 ? inline : undefined);
188
249
  if (content !== undefined && content.length > 0)
189
250
  out.push({ name, content });
190
251
  }
191
252
  return out;
192
253
  }
193
- // Plugin packet control (§packet-assembly): pipe the engine's default
194
- // section list through every registered scheme that implements
195
- // transformSections, in registration order. A scheme returns whatever list it
196
- // wants — add, remove, reorder. The trusted in-process seam; the client wire
197
- // never touches the packet. In-tree + external handlers both, duck-typed.
254
+ questionsDoc() {
255
+ this.#questionsDoc ??= this.#readTeaching(TEACHING_CORPUS.questions);
256
+ return this.#questionsDoc;
257
+ }
258
+ // {§scheme-packet-transform} {§packet-plugin-transform}.
198
259
  async transformSections(sections) {
199
- let current = sections;
200
- for (const handler of this.#handlers.values()) {
260
+ let current = PacketSections.assertDrafts(sections, "core packet defaults");
261
+ for (const [name, handler] of this.#handlers) {
201
262
  const transform = handler.transformSections;
202
- if (typeof transform === "function")
203
- current = await transform.call(handler, current);
263
+ if (typeof transform !== "function")
264
+ continue;
265
+ current = PacketSections.assertDrafts(await transform.call(handler, current), `scheme '${name}' transformSections result`);
204
266
  }
205
267
  return current;
206
268
  }
@@ -212,30 +274,43 @@ export default class SchemeRegistry {
212
274
  // The service keeps only consumer policy: in-tree precedence (a name a built-in owns
213
275
  // is left as-is) and importing + registering the trusted descriptors.
214
276
  async discoverExternal(cwd = process.cwd()) {
215
- const { schemes, skipped } = await SchemeDiscovery.discover({ cwd });
277
+ const { schemes, packageAttributions, skipped } = await SchemeDiscovery.discover({ cwd });
216
278
  for (const name of skipped) {
217
279
  console.warn(`scheme discovery: '${name}' is discovered but untrusted (PLURNK_PLUGINS_TRUSTED_ONLY); not registered`);
218
280
  }
219
281
  for (const { name, packageName, exportName } of schemes) {
220
- if (this.#reserved.has(name))
221
- throw new Error(`external scheme '${name}' (${packageName}) collides with a reserved built-in — boot fail-hard (#240)`);
222
- if (this.has(name))
223
- continue; // idempotent re-scan
224
- // #473 — a multi-scheme package names each scheme's export (`plurnk.schemes[].export`);
282
+ const claim = SchemeRegistry.#externalSchemeClaim(packageName);
283
+ if (this.#assertClaim(name, claim, true) === "same")
284
+ continue;
285
+ // {§plugin-discovery} — a multi-scheme package names each scheme's export (`plurnk.schemes[].export`);
225
286
  // absent = the classic single default export. A declared export that isn't a constructor
226
287
  // fails the boot hard — a manifest naming a missing class is a misdeclaration, not a skip.
227
288
  const mod = await import(__rewriteRelativeImportExtension(packageName));
228
289
  const Handler = mod[exportName ?? "default"];
229
290
  if (typeof Handler !== "function")
230
- throw new Error(`external scheme '${name}' (${packageName}): export '${exportName ?? "default"}' is not a constructor — boot fail-hard (#473)`);
231
- this.register(name, new Handler());
232
- this.#attributions.push(...PluginAttribution.read(packageName)); // #249 — fail-hard if it claims @plurnk/
291
+ throw new Error(`external scheme '${name}' (${packageName}): export '${exportName ?? "default"}' is not a constructor`);
292
+ const handler = new Handler();
293
+ this.#registerClaimed(name, handler, claim, true);
294
+ const sources = this.#packageAttributionSources.get(packageName) ?? new Set();
295
+ sources.add(handler);
296
+ this.#packageAttributionSources.set(packageName, sources);
297
+ const attribution = packageAttributions.get(packageName);
298
+ if (attribution !== undefined)
299
+ this.#packageAttributions.set(packageName, attribution);
300
+ }
301
+ }
302
+ // {§plugin-attribution} — static declarations are always-on; each admitted
303
+ // external handler may add or omit opaque tags for this exact attempt.
304
+ attributions(context) {
305
+ const lists = [...this.#packageAttributions.values()];
306
+ for (const [packageName, sources] of this.#packageAttributionSources) {
307
+ for (const source of sources) {
308
+ lists.push(Meta.runtimeAttribution(source, context, packageName));
309
+ }
233
310
  }
311
+ return Meta.composeAttributions(...lists);
234
312
  }
235
- // #249 — declared attribution tags of the discovered external schemes (opaque; the
236
- // engine unions these across plugin families onto the generate() `attributions` wire).
237
- attributions() { return [...this.#attributions]; }
238
- // Active set under the given loop flags (SPEC §engine-rails). Delegates to
313
+ // Active set under the given loop flags (SPEC {§engine-rails}). Delegates to
239
314
  // the in-tree ResolveForLoop utility.
240
315
  resolveForLoop(flags) {
241
316
  return ResolveForLoop.resolveForLoop(this.#handlers, flags);
@@ -1 +1 @@
1
- {"version":3,"file":"SchemeRegistry.js","sourceRoot":"","sources":["../../src/core/SchemeRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchemeRegistry.js","sourceRoot":"","sources":["../../src/core/SchemeRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ type Cleanup = () => Promise<void>;
2
+ export default class ServiceTeardown {
3
+ #private;
4
+ constructor(stopDaemon: Cleanup, shutdownObservability: Cleanup, closeDatabase: Cleanup);
5
+ close(): Promise<void>;
6
+ fail(cause: unknown): Promise<never>;
7
+ request(reportFailure: (cause: unknown) => void): void;
8
+ static diagnostic(label: string, cause: unknown): string;
9
+ }
10
+ export {};
11
+ //# sourceMappingURL=ServiceTeardown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceTeardown.d.ts","sourceRoot":"","sources":["../../src/core/ServiceTeardown.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnC,MAAM,CAAC,OAAO,OAAO,eAAe;;IAOhC,YAAY,UAAU,EAAE,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAItF;IAED,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAGrB;IAEK,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAUzC;IAED,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAIrD;IAED,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAUvD;CAwBJ"}
@@ -0,0 +1,70 @@
1
+ var _a;
2
+ class ServiceTeardown {
3
+ #stopDaemon;
4
+ #shutdownObservability;
5
+ #closeDatabase;
6
+ #closing = null;
7
+ #requested = false;
8
+ constructor(stopDaemon, shutdownObservability, closeDatabase) {
9
+ this.#stopDaemon = stopDaemon;
10
+ this.#shutdownObservability = shutdownObservability;
11
+ this.#closeDatabase = closeDatabase;
12
+ }
13
+ close() {
14
+ this.#closing ??= this.#close();
15
+ return this.#closing;
16
+ }
17
+ async fail(cause) {
18
+ try {
19
+ await this.close();
20
+ }
21
+ catch (cleanupCause) {
22
+ throw new AggregateError([cause, ..._a.#causes(cleanupCause)], "service startup and shutdown failed");
23
+ }
24
+ throw cause;
25
+ }
26
+ request(reportFailure) {
27
+ if (this.#requested)
28
+ return;
29
+ this.#requested = true;
30
+ void this.close().catch(reportFailure);
31
+ }
32
+ static diagnostic(label, cause) {
33
+ const lines = [`${label}: ${_a.#message(cause)}`];
34
+ if (cause instanceof AggregateError) {
35
+ _a.#causes(cause).forEach((failure, index) => {
36
+ lines.push(` ${index + 1}. ${_a.#message(failure)}`);
37
+ });
38
+ }
39
+ else if (cause instanceof Error && cause.cause !== undefined) {
40
+ lines.push(` cause: ${_a.#message(cause.cause)}`);
41
+ }
42
+ return `${lines.join("\n")}\n`;
43
+ }
44
+ async #close() {
45
+ const failures = [];
46
+ for (const cleanup of [this.#stopDaemon, this.#shutdownObservability, this.#closeDatabase]) {
47
+ try {
48
+ await cleanup();
49
+ }
50
+ catch (cause) {
51
+ failures.push(..._a.#causes(cause));
52
+ }
53
+ }
54
+ if (failures.length === 1)
55
+ throw failures[0];
56
+ if (failures.length > 1)
57
+ throw new AggregateError(failures, "service shutdown failed");
58
+ }
59
+ static #causes(cause) {
60
+ return cause instanceof AggregateError
61
+ ? cause.errors.flatMap((failure) => _a.#causes(failure))
62
+ : [cause];
63
+ }
64
+ static #message(cause) {
65
+ return cause instanceof Error ? cause.message : String(cause);
66
+ }
67
+ }
68
+ _a = ServiceTeardown;
69
+ export default ServiceTeardown;
70
+ //# sourceMappingURL=ServiceTeardown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceTeardown.js","sourceRoot":"","sources":["../../src/core/ServiceTeardown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { type PlurnkStatement } from "@plurnk/plurnk-contracts";
2
+ import type { PacketSectionDraft } from "@plurnk/plurnk-schemes";
3
+ export interface StoredPacketSection extends PacketSectionDraft {
4
+ readonly tokens: number;
5
+ }
6
+ export type PacketAssistant = {
7
+ content: string;
8
+ ops: PlurnkStatement[];
9
+ reasoning: string | null;
10
+ };
11
+ export type RequestPacket = {
12
+ tokens: number;
13
+ sections: StoredPacketSection[];
14
+ attributions: string[];
15
+ };
16
+ export type AdmittedPacket = RequestPacket & {
17
+ assistant: PacketAssistant;
18
+ assistantRaw: unknown;
19
+ };
20
+ export type DurablePacket = RequestPacket | AdmittedPacket;
21
+ export default class StoredPacket {
22
+ #private;
23
+ static admit(request: RequestPacket, assistant: PacketAssistant, assistantRaw: unknown): AdmittedPacket;
24
+ static stringify(packet: DurablePacket): string;
25
+ static parse(raw: string | null, subject?: string): DurablePacket | null;
26
+ static isAdmitted(packet: DurablePacket): packet is AdmittedPacket;
27
+ static assert(value: unknown, subject?: string): DurablePacket;
28
+ }
29
+ //# sourceMappingURL=StoredPacket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StoredPacket.d.ts","sourceRoot":"","sources":["../../src/core/StoredPacket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,eAAe,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG;IACzC,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC;AAM3D,MAAM,CAAC,OAAO,OAAO,YAAY;;IAC7B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,GAAG,cAAc,CAQtG;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAM9C;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,SAAkB,GAAG,aAAa,GAAG,IAAI,CAahF;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,IAAI,cAAc,CAEjE;IAED,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,SAAW,GAAG,aAAa,CA4B/D;CA8EJ"}