@plurnk/plurnk-service 1.16.4 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (636) hide show
  1. package/.env.defaults +122 -246
  2. package/INSTALL.md +84 -138
  3. package/README.md +9 -5
  4. package/SPEC.md +1710 -1015
  5. package/dist/Paths.d.ts +2 -0
  6. package/dist/Paths.d.ts.map +1 -1
  7. package/dist/Paths.js +2 -0
  8. package/dist/Paths.js.map +1 -1
  9. package/dist/build-info.d.ts.map +1 -1
  10. package/dist/build-info.js +7 -1
  11. package/dist/build-info.js.map +1 -1
  12. package/dist/build-info.json +1 -1
  13. package/dist/content/body-preview.d.ts +8 -0
  14. package/dist/content/body-preview.d.ts.map +1 -0
  15. package/dist/content/body-preview.js +39 -0
  16. package/dist/content/body-preview.js.map +1 -0
  17. package/dist/content/byte-view.d.ts +1 -4
  18. package/dist/content/byte-view.d.ts.map +1 -1
  19. package/dist/content/byte-view.js.map +1 -1
  20. package/dist/content/edit-collision.d.ts.map +1 -1
  21. package/dist/content/edit-collision.js +3 -4
  22. package/dist/content/edit-collision.js.map +1 -1
  23. package/dist/content/line-anchors.d.ts +2 -2
  24. package/dist/content/line-anchors.d.ts.map +1 -1
  25. package/dist/content/line-anchors.js +4 -3
  26. package/dist/content/line-anchors.js.map +1 -1
  27. package/dist/content/line-selection.d.ts +9 -0
  28. package/dist/content/line-selection.d.ts.map +1 -0
  29. package/dist/content/line-selection.js +29 -0
  30. package/dist/content/line-selection.js.map +1 -0
  31. package/dist/content/matcher.d.ts +0 -1
  32. package/dist/content/matcher.d.ts.map +1 -1
  33. package/dist/content/matcher.js +2 -3
  34. package/dist/content/matcher.js.map +1 -1
  35. package/dist/content/pattern-edits.d.ts +39 -0
  36. package/dist/content/pattern-edits.d.ts.map +1 -0
  37. package/dist/content/pattern-edits.js +121 -0
  38. package/dist/content/pattern-edits.js.map +1 -0
  39. package/dist/content/read-projector.d.ts +18 -9
  40. package/dist/content/read-projector.d.ts.map +1 -1
  41. package/dist/content/read-projector.js +132 -35
  42. package/dist/content/read-projector.js.map +1 -1
  43. package/dist/content/read-resolve.d.ts +3 -1
  44. package/dist/content/read-resolve.d.ts.map +1 -1
  45. package/dist/content/read-resolve.js +39 -7
  46. package/dist/content/read-resolve.js.map +1 -1
  47. package/dist/core/AdmittedTurnExecutor.d.ts +3 -5
  48. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
  49. package/dist/core/AdmittedTurnExecutor.js +91 -83
  50. package/dist/core/AdmittedTurnExecutor.js.map +1 -1
  51. package/dist/core/BareBatchRunner.d.ts +6 -1
  52. package/dist/core/BareBatchRunner.d.ts.map +1 -1
  53. package/dist/core/BareBatchRunner.js +20 -5
  54. package/dist/core/BareBatchRunner.js.map +1 -1
  55. package/dist/core/BudgetReadout.d.ts +2 -3
  56. package/dist/core/BudgetReadout.d.ts.map +1 -1
  57. package/dist/core/BudgetReadout.js +23 -32
  58. package/dist/core/BudgetReadout.js.map +1 -1
  59. package/dist/core/CapabilityPolicies.d.ts +3 -8
  60. package/dist/core/CapabilityPolicies.d.ts.map +1 -1
  61. package/dist/core/CapabilityPolicies.js +2 -28
  62. package/dist/core/CapabilityPolicies.js.map +1 -1
  63. package/dist/core/CapabilityResolver.d.ts +10 -10
  64. package/dist/core/CapabilityResolver.d.ts.map +1 -1
  65. package/dist/core/CapabilityResolver.js +87 -65
  66. package/dist/core/CapabilityResolver.js.map +1 -1
  67. package/dist/core/ChannelWrite.d.ts +14 -11
  68. package/dist/core/ChannelWrite.d.ts.map +1 -1
  69. package/dist/core/ChannelWrite.js +11 -12
  70. package/dist/core/ChannelWrite.js.map +1 -1
  71. package/dist/core/ChannelWrite.sql +99 -9
  72. package/dist/core/ClientInteractions.d.ts.map +1 -1
  73. package/dist/core/ClientInteractions.js +7 -0
  74. package/dist/core/ClientInteractions.js.map +1 -1
  75. package/dist/core/CoreSchemeServices.d.ts +13 -10
  76. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  77. package/dist/core/CoreSchemeServices.js +13 -5
  78. package/dist/core/CoreSchemeServices.js.map +1 -1
  79. package/dist/core/DataStatementRunner.d.ts +2 -2
  80. package/dist/core/DataStatementRunner.d.ts.map +1 -1
  81. package/dist/core/DataStatementRunner.js +36 -39
  82. package/dist/core/DataStatementRunner.js.map +1 -1
  83. package/dist/core/Dispatcher.d.ts +19 -26
  84. package/dist/core/Dispatcher.d.ts.map +1 -1
  85. package/dist/core/Dispatcher.js +369 -219
  86. package/dist/core/Dispatcher.js.map +1 -1
  87. package/dist/core/Dispatcher.sql +66 -0
  88. package/dist/core/DurableStatement.d.ts.map +1 -1
  89. package/dist/core/DurableStatement.js +2 -1
  90. package/dist/core/DurableStatement.js.map +1 -1
  91. package/dist/core/EditMutations.d.ts +14 -18
  92. package/dist/core/EditMutations.d.ts.map +1 -1
  93. package/dist/core/EditMutations.js +211 -280
  94. package/dist/core/EditMutations.js.map +1 -1
  95. package/dist/core/EditMutations.sql +15 -0
  96. package/dist/core/EditSequence.d.ts +13 -0
  97. package/dist/core/EditSequence.d.ts.map +1 -0
  98. package/dist/core/EditSequence.js +73 -0
  99. package/dist/core/EditSequence.js.map +1 -0
  100. package/dist/core/Engine.d.ts +17 -23
  101. package/dist/core/Engine.d.ts.map +1 -1
  102. package/dist/core/Engine.js +73 -163
  103. package/dist/core/Engine.js.map +1 -1
  104. package/dist/core/Engine.sql +0 -724
  105. package/dist/core/EntryAddressBinding.d.ts +7 -17
  106. package/dist/core/EntryAddressBinding.d.ts.map +1 -1
  107. package/dist/core/EntryAddressBinding.js +12 -72
  108. package/dist/core/EntryAddressBinding.js.map +1 -1
  109. package/dist/core/ExecutionOutputs.d.ts +9 -0
  110. package/dist/core/ExecutionOutputs.d.ts.map +1 -0
  111. package/dist/core/ExecutionOutputs.js +36 -0
  112. package/dist/core/ExecutionOutputs.js.map +1 -0
  113. package/dist/core/ExecutionOutputs.sql +13 -0
  114. package/dist/core/ExecutorRegistry.d.ts +7 -5
  115. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  116. package/dist/core/ExecutorRegistry.js +36 -32
  117. package/dist/core/ExecutorRegistry.js.map +1 -1
  118. package/dist/core/HostPaths.d.ts +1 -0
  119. package/dist/core/HostPaths.d.ts.map +1 -1
  120. package/dist/core/HostPaths.js +4 -0
  121. package/dist/core/HostPaths.js.map +1 -1
  122. package/dist/core/InferenceCall.d.ts.map +1 -1
  123. package/dist/core/InferenceCall.js +1 -2
  124. package/dist/core/InferenceCall.js.map +1 -1
  125. package/dist/core/InferenceCall.sql +29 -0
  126. package/dist/core/KillHandler.d.ts +1 -0
  127. package/dist/core/KillHandler.d.ts.map +1 -1
  128. package/dist/core/KillHandler.js +24 -21
  129. package/dist/core/KillHandler.js.map +1 -1
  130. package/dist/core/LogBody.d.ts +8 -1
  131. package/dist/core/LogBody.d.ts.map +1 -1
  132. package/dist/core/LogBody.js +42 -11
  133. package/dist/core/LogBody.js.map +1 -1
  134. package/dist/core/LogEntryProjection.d.ts +1 -0
  135. package/dist/core/LogEntryProjection.d.ts.map +1 -1
  136. package/dist/core/LogEntryProjection.js +18 -10
  137. package/dist/core/LogEntryProjection.js.map +1 -1
  138. package/dist/core/LogVisibility.d.ts +1 -0
  139. package/dist/core/LogVisibility.d.ts.map +1 -1
  140. package/dist/core/LogVisibility.js +3 -0
  141. package/dist/core/LogVisibility.js.map +1 -1
  142. package/dist/core/LogWriter.d.ts +2 -3
  143. package/dist/core/LogWriter.d.ts.map +1 -1
  144. package/dist/core/LogWriter.js +25 -32
  145. package/dist/core/LogWriter.js.map +1 -1
  146. package/dist/core/LogWriter.sql +23 -0
  147. package/dist/core/LoopDriver.d.ts +11 -8
  148. package/dist/core/LoopDriver.d.ts.map +1 -1
  149. package/dist/core/LoopDriver.js +163 -189
  150. package/dist/core/LoopDriver.js.map +1 -1
  151. package/dist/core/LoopDriver.sql +11 -0
  152. package/dist/core/LoopLifecycle.d.ts +32 -2
  153. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  154. package/dist/core/LoopLifecycle.js +88 -4
  155. package/dist/core/LoopLifecycle.js.map +1 -1
  156. package/dist/core/LoopLifecycle.sql +145 -28
  157. package/dist/core/LoopPolicyReader.sql +6 -0
  158. package/dist/core/MembershipMaterialization.d.ts.map +1 -1
  159. package/dist/core/MembershipMaterialization.js +6 -28
  160. package/dist/core/MembershipMaterialization.js.map +1 -1
  161. package/dist/core/ModelCall.sql +70 -0
  162. package/dist/core/MutationEffects.d.ts +5 -3
  163. package/dist/core/MutationEffects.d.ts.map +1 -1
  164. package/dist/core/MutationEffects.js +10 -28
  165. package/dist/core/MutationEffects.js.map +1 -1
  166. package/dist/core/NativeContent.d.ts +6 -0
  167. package/dist/core/NativeContent.d.ts.map +1 -0
  168. package/dist/core/NativeContent.js +16 -0
  169. package/dist/core/NativeContent.js.map +1 -0
  170. package/dist/core/NativeContent.sql +6 -0
  171. package/dist/core/NoticeChannel.js +1 -1
  172. package/dist/core/NoticeChannel.js.map +1 -1
  173. package/dist/core/OperatorConfig.js +5 -5
  174. package/dist/core/OperatorConfig.js.map +1 -1
  175. package/dist/core/PacketBuilder.d.ts +8 -5
  176. package/dist/core/PacketBuilder.d.ts.map +1 -1
  177. package/dist/core/PacketBuilder.js +117 -81
  178. package/dist/core/PacketBuilder.js.map +1 -1
  179. package/dist/core/PacketBuilder.sql +146 -0
  180. package/dist/core/PatternSelection.d.ts +28 -0
  181. package/dist/core/PatternSelection.d.ts.map +1 -0
  182. package/dist/core/PatternSelection.js +42 -0
  183. package/dist/core/PatternSelection.js.map +1 -0
  184. package/dist/core/ProblemLog.d.ts.map +1 -1
  185. package/dist/core/ProblemLog.js +0 -1
  186. package/dist/core/ProblemLog.js.map +1 -1
  187. package/dist/core/PromptFrames.d.ts +12 -0
  188. package/dist/core/PromptFrames.d.ts.map +1 -0
  189. package/dist/core/PromptFrames.js +28 -0
  190. package/dist/core/PromptFrames.js.map +1 -0
  191. package/dist/core/ProposalLifecycle.d.ts +0 -1
  192. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  193. package/dist/core/ProposalLifecycle.js +20 -19
  194. package/dist/core/ProposalLifecycle.js.map +1 -1
  195. package/dist/core/ProposalLifecycle.sql +33 -0
  196. package/dist/core/ProviderInstantiate.d.ts +1 -1
  197. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  198. package/dist/core/ProviderInstantiate.js +7 -14
  199. package/dist/core/ProviderInstantiate.js.map +1 -1
  200. package/dist/core/ReasoningView.d.ts +9 -0
  201. package/dist/core/ReasoningView.d.ts.map +1 -0
  202. package/dist/core/ReasoningView.js +47 -0
  203. package/dist/core/ReasoningView.js.map +1 -0
  204. package/dist/core/ResourceBindings.d.ts +16 -0
  205. package/dist/core/ResourceBindings.d.ts.map +1 -0
  206. package/dist/core/ResourceBindings.js +45 -0
  207. package/dist/core/ResourceBindings.js.map +1 -0
  208. package/dist/core/ResourceMutations.d.ts +5 -8
  209. package/dist/core/ResourceMutations.d.ts.map +1 -1
  210. package/dist/core/ResourceMutations.js +6 -7
  211. package/dist/core/ResourceMutations.js.map +1 -1
  212. package/dist/core/ResourceSelector.d.ts +2 -2
  213. package/dist/core/ResourceSelector.d.ts.map +1 -1
  214. package/dist/core/ResourceSelector.js +122 -62
  215. package/dist/core/ResourceSelector.js.map +1 -1
  216. package/dist/core/ResourceTransfers.d.ts +4 -2
  217. package/dist/core/ResourceTransfers.d.ts.map +1 -1
  218. package/dist/core/ResourceTransfers.js +95 -26
  219. package/dist/core/ResourceTransfers.js.map +1 -1
  220. package/dist/core/RuntimeWorker.d.ts +5 -0
  221. package/dist/core/RuntimeWorker.d.ts.map +1 -0
  222. package/dist/core/RuntimeWorker.js +10 -0
  223. package/dist/core/RuntimeWorker.js.map +1 -0
  224. package/dist/core/RuntimeWorker.sql +5 -0
  225. package/dist/core/SchemeRegistry.d.ts +12 -16
  226. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  227. package/dist/core/SchemeRegistry.js +58 -84
  228. package/dist/core/SchemeRegistry.js.map +1 -1
  229. package/dist/core/StoredPacket.d.ts +6 -1
  230. package/dist/core/StoredPacket.d.ts.map +1 -1
  231. package/dist/core/StoredPacket.js +30 -10
  232. package/dist/core/StoredPacket.js.map +1 -1
  233. package/dist/core/StrikeRail.d.ts +9 -6
  234. package/dist/core/StrikeRail.d.ts.map +1 -1
  235. package/dist/core/StrikeRail.js +60 -113
  236. package/dist/core/StrikeRail.js.map +1 -1
  237. package/dist/core/StrikeRail.sql +12 -0
  238. package/dist/core/TerminalResult.d.ts +1 -1
  239. package/dist/core/TerminalResult.d.ts.map +1 -1
  240. package/dist/core/TerminalResult.js +2 -2
  241. package/dist/core/TerminalResult.js.map +1 -1
  242. package/dist/core/TokenCalibration.d.ts +1 -6
  243. package/dist/core/TokenCalibration.d.ts.map +1 -1
  244. package/dist/core/TokenCalibration.js +13 -9
  245. package/dist/core/TokenCalibration.js.map +1 -1
  246. package/dist/core/TokenCalibration.sql +15 -0
  247. package/dist/core/ToolInputSchema.d.ts +6 -0
  248. package/dist/core/ToolInputSchema.d.ts.map +1 -0
  249. package/dist/core/ToolInputSchema.js +43 -0
  250. package/dist/core/ToolInputSchema.js.map +1 -0
  251. package/dist/core/ToolResources.d.ts.map +1 -1
  252. package/dist/core/ToolResources.js +76 -52
  253. package/dist/core/ToolResources.js.map +1 -1
  254. package/dist/core/Turn.d.ts +5 -2
  255. package/dist/core/Turn.d.ts.map +1 -1
  256. package/dist/core/Turn.js +13 -11
  257. package/dist/core/Turn.js.map +1 -1
  258. package/dist/core/Turn.sql +25 -39
  259. package/dist/core/{SendBroadcastHandler.d.ts → TurnDispositionHandler.d.ts} +25 -17
  260. package/dist/core/TurnDispositionHandler.d.ts.map +1 -0
  261. package/dist/core/TurnDispositionHandler.js +198 -0
  262. package/dist/core/TurnDispositionHandler.js.map +1 -0
  263. package/dist/core/TurnMaterialization.d.ts +2 -3
  264. package/dist/core/TurnMaterialization.d.ts.map +1 -1
  265. package/dist/core/TurnMaterialization.js +40 -15
  266. package/dist/core/TurnMaterialization.js.map +1 -1
  267. package/dist/core/TurnMaterialization.sql +44 -0
  268. package/dist/core/TurnOps.d.ts.map +1 -1
  269. package/dist/core/TurnOps.js +8 -64
  270. package/dist/core/TurnOps.js.map +1 -1
  271. package/dist/core/TurnRunner.d.ts +9 -12
  272. package/dist/core/TurnRunner.d.ts.map +1 -1
  273. package/dist/core/TurnRunner.js +232 -408
  274. package/dist/core/TurnRunner.js.map +1 -1
  275. package/dist/core/TurnRunner.sql +74 -0
  276. package/dist/core/TurnSources.sql +39 -0
  277. package/dist/core/WorkerControlAddress.d.ts +1 -0
  278. package/dist/core/WorkerControlAddress.d.ts.map +1 -1
  279. package/dist/core/WorkerControlAddress.js +5 -0
  280. package/dist/core/WorkerControlAddress.js.map +1 -1
  281. package/dist/core/WorkerControlHandler.d.ts +1 -3
  282. package/dist/core/WorkerControlHandler.d.ts.map +1 -1
  283. package/dist/core/WorkerControlHandler.js +41 -48
  284. package/dist/core/WorkerControlHandler.js.map +1 -1
  285. package/dist/core/WorkerName.d.ts +8 -6
  286. package/dist/core/WorkerName.d.ts.map +1 -1
  287. package/dist/core/WorkerName.js +33 -24
  288. package/dist/core/WorkerName.js.map +1 -1
  289. package/dist/core/WorkerName.sql +7 -10
  290. package/dist/core/WorkspaceGate.d.ts +1 -1
  291. package/dist/core/WorkspaceGate.d.ts.map +1 -1
  292. package/dist/core/WorkspaceGate.js +29 -6
  293. package/dist/core/WorkspaceGate.js.map +1 -1
  294. package/dist/core/ambient.sql +236 -0
  295. package/dist/core/attachments.d.ts +2 -1
  296. package/dist/core/attachments.d.ts.map +1 -1
  297. package/dist/core/attachments.js +5 -4
  298. package/dist/core/attachments.js.map +1 -1
  299. package/dist/core/caps/CapsResolve.d.ts +2 -3
  300. package/dist/core/caps/CapsResolve.d.ts.map +1 -1
  301. package/dist/core/caps/CapsResolve.js +5 -5
  302. package/dist/core/caps/CapsResolve.js.map +1 -1
  303. package/dist/core/caps/DbChannelCaps.d.ts +1 -1
  304. package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
  305. package/dist/core/caps/DbChannelCaps.js +4 -6
  306. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  307. package/dist/core/caps/DbEntryCaps.d.ts +2 -1
  308. package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
  309. package/dist/core/caps/DbEntryCaps.js +11 -17
  310. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  311. package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
  312. package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
  313. package/dist/core/caps/DbNotifyCaps.js +3 -5
  314. package/dist/core/caps/DbNotifyCaps.js.map +1 -1
  315. package/dist/core/caps/DbProjectionCaps.js +1 -1
  316. package/dist/core/caps/DbProjectionCaps.js.map +1 -1
  317. package/dist/core/caps/DbSubscriptionCaps.d.ts +1 -1
  318. package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
  319. package/dist/core/caps/DbSubscriptionCaps.js +5 -7
  320. package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
  321. package/dist/core/caps/SchemeCtxImpl.d.ts +0 -2
  322. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  323. package/dist/core/caps/SchemeCtxImpl.js +4 -20
  324. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  325. package/dist/core/env-defaults.d.ts.map +1 -1
  326. package/dist/core/env-defaults.js +4 -2
  327. package/dist/core/env-defaults.js.map +1 -1
  328. package/dist/core/file-materialization.d.ts +4 -1
  329. package/dist/core/file-materialization.d.ts.map +1 -1
  330. package/dist/core/file-materialization.js +14 -0
  331. package/dist/core/file-materialization.js.map +1 -1
  332. package/dist/core/fork.d.ts +1 -6
  333. package/dist/core/fork.d.ts.map +1 -1
  334. package/dist/core/fork.js +9 -153
  335. package/dist/core/fork.js.map +1 -1
  336. package/dist/core/fork.sql +162 -185
  337. package/dist/core/git-env.d.ts +1 -0
  338. package/dist/core/git-env.d.ts.map +1 -1
  339. package/dist/core/git-env.js +39 -2
  340. package/dist/core/git-env.js.map +1 -1
  341. package/dist/core/git-membership.d.ts.map +1 -1
  342. package/dist/core/git-membership.js +64 -48
  343. package/dist/core/git-membership.js.map +1 -1
  344. package/dist/core/git-state.d.ts.map +1 -1
  345. package/dist/core/git-state.js +25 -19
  346. package/dist/core/git-state.js.map +1 -1
  347. package/dist/core/glob_match.d.ts +4 -0
  348. package/dist/core/glob_match.d.ts.map +1 -0
  349. package/dist/core/glob_match.js +7 -0
  350. package/dist/core/glob_match.js.map +1 -0
  351. package/dist/core/maintenance.sql +6 -0
  352. package/dist/core/mutation-types.d.ts +7 -28
  353. package/dist/core/mutation-types.d.ts.map +1 -1
  354. package/dist/core/packet-inject.d.ts.map +1 -1
  355. package/dist/core/packet-inject.js +2 -3
  356. package/dist/core/packet-inject.js.map +1 -1
  357. package/dist/core/packet-wire.d.ts +8 -6
  358. package/dist/core/packet-wire.d.ts.map +1 -1
  359. package/dist/core/packet-wire.js +131 -163
  360. package/dist/core/packet-wire.js.map +1 -1
  361. package/dist/core/plurnk-uri.d.ts +1 -1
  362. package/dist/core/plurnk-uri.d.ts.map +1 -1
  363. package/dist/core/plurnk-uri.js +5 -12
  364. package/dist/core/plurnk-uri.js.map +1 -1
  365. package/dist/core/scheme-types.d.ts +3 -3
  366. package/dist/core/scheme-types.d.ts.map +1 -1
  367. package/dist/core/scheme-types.js.map +1 -1
  368. package/dist/core/sha256.d.ts +4 -0
  369. package/dist/core/sha256.d.ts.map +1 -0
  370. package/dist/core/sha256.js +6 -0
  371. package/dist/core/sha256.js.map +1 -0
  372. package/dist/core/teaching.js +1 -1
  373. package/dist/core/teaching.js.map +1 -1
  374. package/dist/core/turn-scheduler.d.ts.map +1 -1
  375. package/dist/core/turn-scheduler.js +5 -18
  376. package/dist/core/turn-scheduler.js.map +1 -1
  377. package/dist/core/turn-signals.d.ts +0 -6
  378. package/dist/core/turn-signals.d.ts.map +1 -1
  379. package/dist/core/turn-signals.js +1 -7
  380. package/dist/core/turn-signals.js.map +1 -1
  381. package/dist/core/worker-ops.sql +15 -22
  382. package/dist/core/workspace-settings.d.ts.map +1 -1
  383. package/dist/core/workspace-settings.js +18 -2
  384. package/dist/core/workspace-settings.js.map +1 -1
  385. package/dist/core/workspace-settings.sql +6 -0
  386. package/dist/digest/Digest.d.ts.map +1 -1
  387. package/dist/digest/Digest.js +27 -90
  388. package/dist/digest/Digest.js.map +1 -1
  389. package/dist/digest/DigestRender.d.ts.map +1 -1
  390. package/dist/digest/DigestRender.js +14 -54
  391. package/dist/digest/DigestRender.js.map +1 -1
  392. package/dist/digest/digest-rows.d.ts +10 -32
  393. package/dist/digest/digest-rows.d.ts.map +1 -1
  394. package/dist/digest/digest.sql +43 -18
  395. package/dist/schemes/Exec.d.ts +6 -12
  396. package/dist/schemes/Exec.d.ts.map +1 -1
  397. package/dist/schemes/Exec.js +256 -188
  398. package/dist/schemes/Exec.js.map +1 -1
  399. package/dist/schemes/ExecOutputScheme.d.ts +8 -6
  400. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  401. package/dist/schemes/ExecOutputScheme.js +33 -61
  402. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  403. package/dist/schemes/ExecutionInput.d.ts +12 -0
  404. package/dist/schemes/ExecutionInput.d.ts.map +1 -0
  405. package/dist/schemes/ExecutionInput.js +94 -0
  406. package/dist/schemes/ExecutionInput.js.map +1 -0
  407. package/dist/schemes/File.d.ts +5 -2
  408. package/dist/schemes/File.d.ts.map +1 -1
  409. package/dist/schemes/File.js +62 -92
  410. package/dist/schemes/File.js.map +1 -1
  411. package/dist/schemes/Log.d.ts.map +1 -1
  412. package/dist/schemes/Log.js +84 -79
  413. package/dist/schemes/Log.js.map +1 -1
  414. package/dist/schemes/Log.sql +183 -15
  415. package/dist/schemes/Prompt.d.ts.map +1 -1
  416. package/dist/schemes/Prompt.js +3 -12
  417. package/dist/schemes/Prompt.js.map +1 -1
  418. package/dist/schemes/QuestionTool.d.ts +5 -0
  419. package/dist/schemes/QuestionTool.d.ts.map +1 -1
  420. package/dist/schemes/QuestionTool.js +6 -14
  421. package/dist/schemes/QuestionTool.js.map +1 -1
  422. package/dist/schemes/Skill.d.ts +12 -7
  423. package/dist/schemes/Skill.d.ts.map +1 -1
  424. package/dist/schemes/Skill.js +149 -21
  425. package/dist/schemes/Skill.js.map +1 -1
  426. package/dist/schemes/TurnSource.d.ts +12 -0
  427. package/dist/schemes/TurnSource.d.ts.map +1 -0
  428. package/dist/schemes/TurnSource.js +116 -0
  429. package/dist/schemes/TurnSource.js.map +1 -0
  430. package/dist/schemes/Worker.d.ts +3 -3
  431. package/dist/schemes/Worker.d.ts.map +1 -1
  432. package/dist/schemes/Worker.js +61 -208
  433. package/dist/schemes/Worker.js.map +1 -1
  434. package/dist/schemes/_entry-crud.d.ts +12 -15
  435. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  436. package/dist/schemes/_entry-crud.js +63 -63
  437. package/dist/schemes/_entry-crud.js.map +1 -1
  438. package/dist/schemes/_entry-crud.sql +142 -46
  439. package/dist/schemes/_entry-find.d.ts +1 -3
  440. package/dist/schemes/_entry-find.d.ts.map +1 -1
  441. package/dist/schemes/_entry-find.js +111 -112
  442. package/dist/schemes/_entry-find.js.map +1 -1
  443. package/dist/schemes/_entry-find.sql +22 -14
  444. package/dist/schemes/_entry-fts.d.ts +14 -0
  445. package/dist/schemes/_entry-fts.d.ts.map +1 -0
  446. package/dist/schemes/_entry-fts.js +82 -0
  447. package/dist/schemes/_entry-fts.js.map +1 -0
  448. package/dist/schemes/_entry-fts.sql +31 -0
  449. package/dist/schemes/_entry-graph.d.ts.map +1 -1
  450. package/dist/schemes/_entry-graph.js +6 -14
  451. package/dist/schemes/_entry-graph.js.map +1 -1
  452. package/dist/schemes/_entry-graph.sql +29 -44
  453. package/dist/schemes/_entry-manifest.d.ts +2 -1
  454. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  455. package/dist/schemes/_entry-manifest.js +15 -12
  456. package/dist/schemes/_entry-manifest.js.map +1 -1
  457. package/dist/schemes/_entry-manifest.sql +26 -0
  458. package/dist/schemes/_entry-ops.d.ts +3 -5
  459. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  460. package/dist/schemes/_entry-ops.js +30 -43
  461. package/dist/schemes/_entry-ops.js.map +1 -1
  462. package/dist/schemes/_entry-ops.sql +5 -6
  463. package/dist/schemes/_entry-readable.d.ts +8 -0
  464. package/dist/schemes/_entry-readable.d.ts.map +1 -0
  465. package/dist/schemes/_entry-readable.js +38 -0
  466. package/dist/schemes/_entry-readable.js.map +1 -0
  467. package/dist/schemes/_entry-send.d.ts +1 -1
  468. package/dist/schemes/_entry-send.d.ts.map +1 -1
  469. package/dist/schemes/_entry-send.js +3 -3
  470. package/dist/schemes/_entry-send.js.map +1 -1
  471. package/dist/schemes/_search-index.d.ts +1 -3
  472. package/dist/schemes/_search-index.d.ts.map +1 -1
  473. package/dist/schemes/_search-index.js +79 -110
  474. package/dist/schemes/_search-index.js.map +1 -1
  475. package/dist/schemes/_search-index.sql +30 -0
  476. package/dist/schemes/exec-runtime.d.ts +1 -1
  477. package/dist/schemes/exec-runtime.d.ts.map +1 -1
  478. package/dist/schemes/exec-runtime.js.map +1 -1
  479. package/dist/server/ClientReads.d.ts +2 -2
  480. package/dist/server/ClientReads.d.ts.map +1 -1
  481. package/dist/server/ClientReads.js +5 -8
  482. package/dist/server/ClientReads.js.map +1 -1
  483. package/dist/server/Daemon.d.ts +14 -21
  484. package/dist/server/Daemon.d.ts.map +1 -1
  485. package/dist/server/Daemon.js +135 -156
  486. package/dist/server/Daemon.js.map +1 -1
  487. package/dist/server/DaemonModule.d.ts +23 -21
  488. package/dist/server/DaemonModule.d.ts.map +1 -1
  489. package/dist/server/DrainSupervisor.d.ts +8 -21
  490. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  491. package/dist/server/DrainSupervisor.js +278 -306
  492. package/dist/server/DrainSupervisor.js.map +1 -1
  493. package/dist/server/Functionality.d.ts +11 -12
  494. package/dist/server/Functionality.d.ts.map +1 -1
  495. package/dist/server/Functionality.js +129 -101
  496. package/dist/server/Functionality.js.map +1 -1
  497. package/dist/server/FunctionalityManager.d.ts +3 -5
  498. package/dist/server/FunctionalityManager.d.ts.map +1 -1
  499. package/dist/server/FunctionalityManager.js +20 -58
  500. package/dist/server/FunctionalityManager.js.map +1 -1
  501. package/dist/server/MembersFunctionality.d.ts +5 -4
  502. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  503. package/dist/server/MembersFunctionality.js +24 -37
  504. package/dist/server/MembersFunctionality.js.map +1 -1
  505. package/dist/server/PlurnkSkill.d.ts +11 -0
  506. package/dist/server/PlurnkSkill.d.ts.map +1 -0
  507. package/dist/server/PlurnkSkill.js +41 -0
  508. package/dist/server/PlurnkSkill.js.map +1 -0
  509. package/dist/server/Retention.d.ts +22 -0
  510. package/dist/server/Retention.d.ts.map +1 -0
  511. package/dist/server/Retention.js +54 -0
  512. package/dist/server/Retention.js.map +1 -0
  513. package/dist/server/Retention.sql +36 -0
  514. package/dist/server/ServiceModules.d.ts +5 -0
  515. package/dist/server/ServiceModules.d.ts.map +1 -0
  516. package/dist/server/ServiceModules.js +10 -0
  517. package/dist/server/ServiceModules.js.map +1 -0
  518. package/dist/server/SkillsFunctionality.d.ts +14 -19
  519. package/dist/server/SkillsFunctionality.d.ts.map +1 -1
  520. package/dist/server/SkillsFunctionality.js +97 -104
  521. package/dist/server/SkillsFunctionality.js.map +1 -1
  522. package/dist/server/WorkerModelResolver.d.ts +4 -0
  523. package/dist/server/WorkerModelResolver.d.ts.map +1 -1
  524. package/dist/server/WorkerModelResolver.js +72 -39
  525. package/dist/server/WorkerModelResolver.js.map +1 -1
  526. package/dist/server/WorkspaceCapabilities.d.ts +21 -0
  527. package/dist/server/WorkspaceCapabilities.d.ts.map +1 -0
  528. package/dist/server/{WorkerCapabilities.js → WorkspaceCapabilities.js} +40 -40
  529. package/dist/server/WorkspaceCapabilities.js.map +1 -0
  530. package/dist/server/WorkspaceResidency.d.ts +36 -0
  531. package/dist/server/WorkspaceResidency.d.ts.map +1 -0
  532. package/dist/server/WorkspaceResidency.js +199 -0
  533. package/dist/server/WorkspaceResidency.js.map +1 -0
  534. package/dist/server/client-input.d.ts +1 -4
  535. package/dist/server/client-input.d.ts.map +1 -1
  536. package/dist/server/client-input.js +4 -45
  537. package/dist/server/client-input.js.map +1 -1
  538. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  539. package/dist/server/dispatch-as-plurnk.js +4 -22
  540. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  541. package/dist/server/drain.sql +65 -42
  542. package/dist/server/envelope.d.ts +8 -0
  543. package/dist/server/envelope.d.ts.map +1 -1
  544. package/dist/server/envelope.js +9 -7
  545. package/dist/server/envelope.js.map +1 -1
  546. package/dist/server/envelope.sql +49 -13
  547. package/dist/server/lifecycle-recovery.sql +14 -17
  548. package/dist/server/logEntry.d.ts +1 -1
  549. package/dist/server/logEntry.d.ts.map +1 -1
  550. package/dist/server/logEntry.js +4 -1
  551. package/dist/server/logEntry.js.map +1 -1
  552. package/dist/server/logEntry.sql +25 -1
  553. package/dist/server/loopDocs.d.ts +2 -2
  554. package/dist/server/loopDocs.d.ts.map +1 -1
  555. package/dist/server/loopDocs.js +38 -31
  556. package/dist/server/loopDocs.js.map +1 -1
  557. package/dist/server/loopDocs.sql +1 -3
  558. package/dist/server/model-catalog.d.ts.map +1 -1
  559. package/dist/server/model-catalog.js +2 -1
  560. package/dist/server/model-catalog.js.map +1 -1
  561. package/dist/server/model-route.d.ts +1 -1
  562. package/dist/server/model-route.d.ts.map +1 -1
  563. package/dist/server/model-route.js +4 -2
  564. package/dist/server/model-route.js.map +1 -1
  565. package/dist/server/seam-entry-read.sql +3 -4
  566. package/dist/server/seam-loop.sql +2 -9
  567. package/dist/server/workspace-capabilities.sql +19 -0
  568. package/dist/service.d.ts.map +1 -1
  569. package/dist/service.js +5 -17
  570. package/dist/service.js.map +1 -1
  571. package/docs/members.md +83 -0
  572. package/docs/skills.md +50 -0
  573. package/migrations/001_workspaces.sql +53 -0
  574. package/migrations/002_workers.sql +183 -0
  575. package/migrations/003_loops.sql +326 -0
  576. package/migrations/004_inference.sql +360 -0
  577. package/migrations/005_entries.sql +207 -0
  578. package/migrations/006_log.sql +578 -0
  579. package/migrations/007_subscriptions.sql +175 -0
  580. package/migrations/008_interactions.sql +29 -0
  581. package/package.json +33 -40
  582. package/digest-sql/channel-dispositions/dispositions.sql +0 -15
  583. package/digest-sql/channel-state/state.sql +0 -6
  584. package/digest-sql/curation/curation.sql +0 -6
  585. package/digest-sql/derivations/derivations.sql +0 -4
  586. package/digest-sql/embeddings/embeddings.sql +0 -4
  587. package/digest-sql/entry-dispositions/dispositions.sql +0 -15
  588. package/digest-sql/entry-state/state.sql +0 -6
  589. package/digest-sql/token-counts/token-counts.sql +0 -2
  590. package/dist/core/EmbeddingCall.d.ts +0 -23
  591. package/dist/core/EmbeddingCall.d.ts.map +0 -1
  592. package/dist/core/EmbeddingCall.js +0 -149
  593. package/dist/core/EmbeddingCall.js.map +0 -1
  594. package/dist/core/OverflowTurn.d.ts +0 -11
  595. package/dist/core/OverflowTurn.d.ts.map +0 -1
  596. package/dist/core/OverflowTurn.js +0 -80
  597. package/dist/core/OverflowTurn.js.map +0 -1
  598. package/dist/core/Owner.d.ts +0 -8
  599. package/dist/core/Owner.d.ts.map +0 -1
  600. package/dist/core/Owner.js +0 -46
  601. package/dist/core/Owner.js.map +0 -1
  602. package/dist/core/SendBroadcastHandler.d.ts.map +0 -1
  603. package/dist/core/SendBroadcastHandler.js +0 -159
  604. package/dist/core/SendBroadcastHandler.js.map +0 -1
  605. package/dist/core/VectorPump.d.ts +0 -28
  606. package/dist/core/VectorPump.d.ts.map +0 -1
  607. package/dist/core/VectorPump.js +0 -130
  608. package/dist/core/VectorPump.js.map +0 -1
  609. package/dist/core/owner.sql +0 -11
  610. package/dist/core/worker-settings.d.ts +0 -10
  611. package/dist/core/worker-settings.d.ts.map +0 -1
  612. package/dist/core/worker-settings.js +0 -53
  613. package/dist/core/worker-settings.js.map +0 -1
  614. package/dist/schemes/_entry-chunk.d.ts +0 -14
  615. package/dist/schemes/_entry-chunk.d.ts.map +0 -1
  616. package/dist/schemes/_entry-chunk.js +0 -165
  617. package/dist/schemes/_entry-chunk.js.map +0 -1
  618. package/dist/schemes/_entry-semantic.d.ts +0 -63
  619. package/dist/schemes/_entry-semantic.d.ts.map +0 -1
  620. package/dist/schemes/_entry-semantic.js +0 -299
  621. package/dist/schemes/_entry-semantic.js.map +0 -1
  622. package/dist/schemes/_entry-semantic.sql +0 -99
  623. package/dist/schemes/cosine.d.ts +0 -4
  624. package/dist/schemes/cosine.d.ts.map +0 -1
  625. package/dist/schemes/cosine.js +0 -9
  626. package/dist/schemes/cosine.js.map +0 -1
  627. package/dist/server/WorkerCapabilities.d.ts +0 -21
  628. package/dist/server/WorkerCapabilities.d.ts.map +0 -1
  629. package/dist/server/WorkerCapabilities.js.map +0 -1
  630. package/dist/server/WorkerResidency.d.ts +0 -40
  631. package/dist/server/WorkerResidency.d.ts.map +0 -1
  632. package/dist/server/WorkerResidency.js +0 -283
  633. package/dist/server/WorkerResidency.js.map +0 -1
  634. package/dist/server/seam-log-read.sql +0 -21
  635. package/dist/server/worker-capabilities.sql +0 -28
  636. package/migrations/001_schema.sql +0 -2207
@@ -2,7 +2,7 @@
2
2
  -- coordinate; KILL mutates only the active projection.
3
3
 
4
4
  -- PREP: log_read_by_coordinate
5
- SELECT le.origin, le.op, le.scheme, le.pathname, le.status_rx,
5
+ SELECT le.id, le.origin, le.op, le.scheme, le.pathname, le.status_rx, le.folded,
6
6
  le.tx, le.mimetype_tx, le.rx, le.mimetype_rx, le.attrs
7
7
  FROM active_log_entries le
8
8
  JOIN turns t ON t.id = le.turn_id
@@ -11,7 +11,7 @@ WHERE l.worker_id = $worker_id AND l.sequence = $loop_seq AND t.sequence = $turn
11
11
 
12
12
  -- PREP: log_id_by_coordinate
13
13
  -- Resolve a concrete active log:/// coordinate within the worker.
14
- SELECT le.id, le.origin, le.op, le.attrs FROM active_log_entries le
14
+ SELECT le.id, le.origin, le.op, le.attrs, le.tx FROM active_log_entries le
15
15
  JOIN turns t ON t.id = le.turn_id
16
16
  JOIN loops l ON l.id = t.loop_id
17
17
  WHERE l.worker_id = $worker_id
@@ -25,7 +25,7 @@ WHERE l.worker_id = $worker_id
25
25
  -- coordinate tree. TypeScript appends the canonical projected OP and applies
26
26
  -- the authoritative shell-glob match.
27
27
  SELECT le.id, (l.sequence || '/' || t.sequence || '/' || le.sequence) AS coordinate,
28
- le.origin, le.op, le.attrs
28
+ le.origin, le.op, le.attrs, le.tx
29
29
  FROM active_log_entries le
30
30
  JOIN turns t ON t.id = le.turn_id
31
31
  JOIN loops l ON l.id = t.loop_id
@@ -51,7 +51,12 @@ SELECT
51
51
  le.rx,
52
52
  le.mimetype_rx,
53
53
  le.attrs,
54
- le.folded
54
+ le.folded,
55
+ CASE WHEN json_valid(le.rx) THEN (json_type(le.rx, '$.nativeContentHash') = 'text'
56
+ AND ((SELECT packet FROM turns WHERE id = $turn_id) IS NULL OR EXISTS (
57
+ SELECT 1 FROM json_each((SELECT packet FROM turns WHERE id = $turn_id), '$.attachments') part
58
+ WHERE json_extract(part.value, '$.coordinate') = (l.sequence || '/' || t.sequence || '/' || le.sequence)
59
+ ))) ELSE 0 END AS native_active
55
60
  FROM active_log_entries le
56
61
  JOIN turns t ON t.id = le.turn_id
57
62
  JOIN loops l ON l.id = t.loop_id
@@ -63,15 +68,21 @@ UPDATE log_entry_projections SET folded = $folded
63
68
  WHERE log_entry_id = $id AND active = 1 AND json(folded) != json($folded)
64
69
  RETURNING log_entry_id AS id;
65
70
 
66
- -- PREP: log_set_projection_by_id
67
- -- Direct core-scheme calls use the same collision-checked projection transition
68
- -- as the dispatcher's atomic curation event, without manufacturing an op row.
71
+ -- PREP: log_apply_projection_plan
72
+ -- {§log-curation-direct}: a direct core-scheme curation lands its whole plan or none of it. Every
73
+ -- target's precondition is counted once, before any row changes; one stale target means zero rows.
74
+ -- The same collision-checked transition as the dispatcher's atomic curation event, without an op row.
69
75
  UPDATE log_entry_projections
70
- SET active = $active_after,
71
- folded = $folded_after
72
- WHERE log_entry_id = $id
73
- AND active = $active_before
74
- AND json(folded) = json($folded_before)
76
+ SET active = json_extract(plan.value, '$.activeAfter'),
77
+ folded = json_extract(plan.value, '$.foldedAfter')
78
+ FROM json_each($targets) AS plan
79
+ WHERE log_entry_projections.log_entry_id = json_extract(plan.value, '$.id')
80
+ AND (
81
+ SELECT COUNT(*) FROM json_each($targets) AS t
82
+ JOIN log_entry_projections p ON p.log_entry_id = json_extract(t.value, '$.id')
83
+ AND p.active = json_extract(t.value, '$.activeBefore')
84
+ AND json(p.folded) = json(json_extract(t.value, '$.foldedBefore'))
85
+ ) = json_array_length($targets)
75
86
  RETURNING log_entry_id AS id;
76
87
 
77
88
  -- PREP: log_find_candidates
@@ -80,7 +91,7 @@ RETURNING log_entry_id AS id;
80
91
  -- fields Log's rx projection renders (FIND must match exactly what READ shows). Coordinate-ordered.
81
92
  SELECT
82
93
  (l.sequence || '/' || t.sequence || '/' || le.sequence) AS coordinate,
83
- le.origin, le.op, le.tx, le.mimetype_tx, le.rx, le.mimetype_rx, le.weight, le.deep_hash, le.attrs
94
+ le.origin, le.op, le.tx, le.mimetype_tx, le.rx, le.mimetype_rx, le.weight, le.deep_hash, le.attrs, le.folded
84
95
  FROM active_log_entries le
85
96
  JOIN turns t ON t.id = le.turn_id
86
97
  JOIN loops l ON l.id = t.loop_id
@@ -109,7 +120,7 @@ SELECT
109
120
  le.deep_hash,
110
121
  d.disposition AS deep_disposition,
111
122
  d.reason AS deep_reason,
112
- le.attrs
123
+ le.attrs, le.folded
113
124
  FROM active_log_entries le
114
125
  LEFT JOIN derivations d ON d.deep_hash = le.deep_hash
115
126
  JOIN workers w ON w.id = le.worker_id
@@ -119,4 +130,161 @@ WHERE w.workspace_id = $workspace_id
119
130
  ORDER BY le.id;
120
131
 
121
132
  -- PREP: log_set_deep_hash
122
- UPDATE log_entries SET deep_hash = $deep_hash WHERE id = $log_entry_id;
133
+ UPDATE log_entries SET deep_hash = $deep_hash
134
+ WHERE id = $log_entry_id AND EXISTS (
135
+ SELECT 1 FROM log_entry_projections
136
+ WHERE log_entry_id = $log_entry_id AND active = 1 AND json(folded) = json($folded)
137
+ );
138
+
139
+ -- INIT: log_entries_initialize_projection
140
+ DROP TRIGGER IF EXISTS log_entries_initialize_projection;
141
+ CREATE TRIGGER log_entries_initialize_projection
142
+ AFTER INSERT ON log_entries
143
+ BEGIN
144
+ INSERT INTO log_entry_projections (log_entry_id, active, folded)
145
+ VALUES (NEW.id, 1, '[]');
146
+ END;
147
+
148
+ -- INIT: log_entry_projections_invalidate_derivation
149
+ -- {§log-readable-projection} — derived artifacts describe the active body.
150
+ DROP TRIGGER IF EXISTS log_entry_projections_invalidate_derivation;
151
+ CREATE TRIGGER log_entry_projections_invalidate_derivation
152
+ AFTER UPDATE OF folded, active ON log_entry_projections
153
+ WHEN OLD.active != NEW.active OR json(OLD.folded) != json(NEW.folded)
154
+ BEGIN
155
+ UPDATE log_entries SET deep_hash = NULL WHERE id = NEW.log_entry_id;
156
+ END;
157
+
158
+ -- INIT: log_entries_apply_curation
159
+ -- One outer INSERT owns the whole landed curation event: exact selected rows,
160
+ -- their before/after projection, and the resulting current
161
+ -- state. Trigger failure rolls the operation row and all effects back together.
162
+ -- The private plan is erased before INSERT returns.
163
+ -- {§log-kill-scope} — a log KILL either retires a row whole (active 1→0, visibility untouched)
164
+ -- or folds a span of its body (active stays 1, visibility changes).
165
+ DROP TRIGGER IF EXISTS log_entries_apply_curation;
166
+ CREATE TRIGGER log_entries_apply_curation
167
+ AFTER INSERT ON log_entries
168
+ WHEN NEW.op = 'KILL'
169
+ AND NEW.status_rx < 400
170
+ AND NEW.scheme = 'log'
171
+ AND json_type(NEW.attrs, '$.__plurnk_curation') = 'object'
172
+ BEGIN
173
+ SELECT CASE WHEN
174
+ COALESCE(json_type(NEW.attrs, '$.__plurnk_curation.targets'), '') != 'array'
175
+ OR json_array_length(NEW.attrs, '$.__plurnk_curation.targets') = 0
176
+ OR EXISTS (
177
+ SELECT 1
178
+ FROM json_each(NEW.attrs, '$.__plurnk_curation.targets') selected
179
+ WHERE selected.type != 'object'
180
+ OR COALESCE(json_type(selected.value, '$.id'), '') != 'integer'
181
+ OR json_extract(selected.value, '$.id') <= 0
182
+ OR COALESCE(json_type(selected.value, '$.activeBefore'), '') != 'integer'
183
+ OR json_extract(selected.value, '$.activeBefore') NOT IN (0, 1)
184
+ OR COALESCE(json_type(selected.value, '$.activeAfter'), '') != 'integer'
185
+ OR json_extract(selected.value, '$.activeAfter') NOT IN (0, 1)
186
+ OR COALESCE(json_type(selected.value, '$.foldedBefore'), '') != 'array'
187
+ OR COALESCE(json_type(selected.value, '$.foldedAfter'), '') != 'array'
188
+ OR EXISTS (
189
+ SELECT 1 FROM json_each(selected.value) field
190
+ WHERE field.key NOT IN ('id', 'activeBefore', 'activeAfter', 'foldedBefore', 'foldedAfter')
191
+ )
192
+ OR EXISTS (
193
+ SELECT 1
194
+ FROM (
195
+ SELECT 'before' AS side, range.key, range.value, range.type
196
+ FROM json_each(json_extract(selected.value, '$.foldedBefore')) range
197
+ UNION ALL
198
+ SELECT 'after' AS side, range.key, range.value, range.type
199
+ FROM json_each(json_extract(selected.value, '$.foldedAfter')) range
200
+ ) range
201
+ WHERE range.type != 'array'
202
+ OR json_array_length(range.value) != 2
203
+ OR COALESCE(json_type(range.value, '$[0]'), '') != 'integer'
204
+ OR COALESCE(json_type(range.value, '$[1]'), '') != 'integer'
205
+ OR json_extract(range.value, '$[0]') < 1
206
+ OR (
207
+ json_extract(range.value, '$[1]') != -1
208
+ AND json_extract(range.value, '$[1]') < json_extract(range.value, '$[0]')
209
+ )
210
+ OR EXISTS (
211
+ SELECT 1
212
+ FROM json_each(
213
+ CASE range.side
214
+ WHEN 'before' THEN json_extract(selected.value, '$.foldedBefore')
215
+ ELSE json_extract(selected.value, '$.foldedAfter')
216
+ END
217
+ ) previous
218
+ WHERE previous.key = range.key - 1
219
+ AND (
220
+ json_extract(previous.value, '$[1]') = -1
221
+ OR json_extract(range.value, '$[0]') <= json_extract(previous.value, '$[1]') + 1
222
+ )
223
+ )
224
+ )
225
+ )
226
+ OR (
227
+ SELECT COUNT(*) FROM json_each(NEW.attrs, '$.__plurnk_curation.targets')
228
+ ) != (
229
+ SELECT COUNT(DISTINCT json_extract(value, '$.id'))
230
+ FROM json_each(NEW.attrs, '$.__plurnk_curation.targets')
231
+ )
232
+ OR EXISTS (
233
+ SELECT 1
234
+ FROM json_each(NEW.attrs, '$.__plurnk_curation.targets') selected
235
+ LEFT JOIN log_entries target ON target.id = json_extract(selected.value, '$.id')
236
+ LEFT JOIN log_entry_projections projection ON projection.log_entry_id = target.id
237
+ WHERE target.id IS NULL
238
+ OR projection.log_entry_id IS NULL
239
+ OR target.worker_id != NEW.worker_id
240
+ OR target.id = NEW.id
241
+ OR projection.active != json_extract(selected.value, '$.activeBefore')
242
+ OR json(projection.folded) != json(json_extract(selected.value, '$.foldedBefore'))
243
+ OR NOT (
244
+ json_extract(selected.value, '$.activeBefore') = 1
245
+ AND (
246
+ json_extract(selected.value, '$.activeAfter') = 1
247
+ OR json(json_extract(selected.value, '$.foldedBefore')) = json(json_extract(selected.value, '$.foldedAfter'))
248
+ )
249
+ )
250
+ )
251
+ THEN RAISE(ABORT, 'invalid private log curation payload') END;
252
+
253
+ INSERT INTO log_curation_effects (
254
+ operation_log_entry_id,
255
+ target_log_entry_id,
256
+ active_before,
257
+ active_after,
258
+ folded_before,
259
+ folded_after
260
+ )
261
+ SELECT
262
+ NEW.id,
263
+ target.id,
264
+ json_extract(selected.value, '$.activeBefore'),
265
+ json_extract(selected.value, '$.activeAfter'),
266
+ json_extract(selected.value, '$.foldedBefore'),
267
+ json_extract(selected.value, '$.foldedAfter')
268
+ FROM json_each(NEW.attrs, '$.__plurnk_curation.targets') selected
269
+ JOIN log_entries target ON target.id = json_extract(selected.value, '$.id');
270
+
271
+ UPDATE log_entry_projections
272
+ SET active = (
273
+ SELECT json_extract(selected.value, '$.activeAfter')
274
+ FROM json_each(NEW.attrs, '$.__plurnk_curation.targets') selected
275
+ WHERE json_extract(selected.value, '$.id') = log_entry_projections.log_entry_id
276
+ ),
277
+ folded = (
278
+ SELECT json_extract(selected.value, '$.foldedAfter')
279
+ FROM json_each(NEW.attrs, '$.__plurnk_curation.targets') selected
280
+ WHERE json_extract(selected.value, '$.id') = log_entry_projections.log_entry_id
281
+ )
282
+ WHERE log_entry_id IN (
283
+ SELECT json_extract(value, '$.id')
284
+ FROM json_each(NEW.attrs, '$.__plurnk_curation.targets')
285
+ );
286
+
287
+ UPDATE log_entries
288
+ SET attrs = json_remove(attrs, '$.__plurnk_curation')
289
+ WHERE id = NEW.id;
290
+ END;
@@ -1 +1 @@
1
- {"version":3,"file":"Prompt.d.ts","sourceRoot":"","sources":["../../src/schemes/Prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChJ,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAU9D,MAAM,CAAC,OAAO,OAAO,MAAO,YAAW,aAAa;IAChD,MAAM,CAAC,QAAQ,EAAE,cAAc,CAa7B;IAII,SAAS,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAGtG;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAE7E;CACJ"}
1
+ {"version":3,"file":"Prompt.d.ts","sourceRoot":"","sources":["../../src/schemes/Prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChJ,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D,MAAM,CAAC,OAAO,OAAO,MAAO,YAAW,aAAa;IAChD,MAAM,CAAC,QAAQ,EAAE,cAAc,CAW7B;IAGI,SAAS,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAGtG;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAE7E;CACJ"}
@@ -1,28 +1,19 @@
1
1
  import LineAnchors from "../content/line-anchors.js";
2
- // {§prompt-self-only} — prompt:// carries the worker's own task frames: each loop's prompt at
3
- // prompt:///<loopSeq>/<turnSeq>, owned by the worker via owner_id — the address carries only the
4
- // loop coordinate, so no worker identity ever rides a pathname or a packet. SELF-ONLY by
5
- // construction: packets are per-worker and every cross-worker prompt flow (parent→child inject,
6
- // the drain's orphan promotion) is engine-mediated, so the face takes no authority slot — a
7
- // worker only ever addresses its own frames. Engine-authored (writableBy excludes the model);
8
- // prompt-target log rows remain ordinary curatable memory.
2
+ // {§prompt-address}: immutable-to-model task frames at literal workspace addresses.
9
3
  export default class Prompt {
10
4
  static manifest = {
11
5
  name: "prompt",
6
+ authority: "resource",
12
7
  channels: { body: "text/markdown" },
13
8
  defaultChannel: "body",
14
9
  category: "data",
15
- entryOwner: "worker",
16
- inherit: "snapshot",
17
10
  writableBy: ["client", "_plurnk"],
18
11
  volatile: false,
19
12
  modelVisible: true,
20
13
  folderScopes: true,
21
14
  textEditScopes: true,
22
- example: "### READ0 (prompt:///1/1)",
23
15
  };
24
- // Engine and client prompt writers persist the frame owner-keyed to the
25
- // worker it addresses. The actionless prompt log row is written separately.
16
+ // The actionless prompt log row is written separately from its source entry.
26
17
  async editBatch(statements, ctx) {
27
18
  LineAnchors.assertResolved(statements);
28
19
  return ctx.entries.operations.editBatch(statements);
@@ -1 +1 @@
1
- {"version":3,"file":"Prompt.js","sourceRoot":"","sources":["../../src/schemes/Prompt.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAErD,8FAA8F;AAC9F,iGAAiG;AACjG,yFAAyF;AACzF,gGAAgG;AAChG,4FAA4F;AAC5F,8FAA8F;AAC9F,2DAA2D;AAC3D,MAAM,CAAC,OAAO,OAAO,MAAM;IACvB,MAAM,CAAC,QAAQ,GAAmB;QAC9B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;QACnC,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;QACjC,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,2BAA2B;KACvC,CAAC;IAEF,wEAAwE;IACxE,4EAA4E;IAC5E,KAAK,CAAC,SAAS,CAAC,UAA4C,EAAE,GAAc;QACxE,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACvC,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAc;QAC/C,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;CACJ"}
1
+ {"version":3,"file":"Prompt.js","sourceRoot":"","sources":["../../src/schemes/Prompt.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAErD,oFAAoF;AACpF,MAAM,CAAC,OAAO,OAAO,MAAM;IACvB,MAAM,CAAC,QAAQ,GAAmB;QAC9B,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;QACnC,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;QACjC,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;KACvB,CAAC;IAEF,6EAA6E;IAC7E,KAAK,CAAC,SAAS,CAAC,UAA4C,EAAE,GAAc;QACxE,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACvC,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAc;QAC/C,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;CACJ"}
@@ -5,6 +5,11 @@ export declare const questionRuntimeDecl: {
5
5
  glyph: string;
6
6
  summary: string;
7
7
  invocation: {
8
+ target: {
9
+ role: string;
10
+ kind: "literal";
11
+ required: false;
12
+ };
8
13
  body: {
9
14
  role: string;
10
15
  required: true;
@@ -1 +1 @@
1
- {"version":3,"file":"QuestionTool.d.ts","sourceRoot":"","sources":["../../src/schemes/QuestionTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAW,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAe,MAAM,sBAAsB,CAAC;AAcxH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;CAgBT,CAAC;AAExB,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IAClD,IAAa,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,CAE3C;IAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAEpD;IAEQ,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE9C;IAEc,KAAK,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAEnD;IAEc,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAqD7F;CACJ"}
1
+ {"version":3,"file":"QuestionTool.d.ts","sourceRoot":"","sources":["../../src/schemes/QuestionTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAW,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAe,MAAM,sBAAsB,CAAC;AAcxH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;CAiBT,CAAC;AAExB,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IAClD,IAAa,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,CAE3C;IAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAEpD;IAEQ,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE9C;IAEc,KAAK,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAEnD;IAEc,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CA4C7F;CACJ"}
@@ -14,6 +14,7 @@ export const questionRuntimeDecl = {
14
14
  glyph: "❓",
15
15
  summary: "Ask the user to answer a question.",
16
16
  invocation: {
17
+ target: { role: "label", kind: "literal", required: false },
17
18
  body: { role: "MCP2 form-elicitation object", required: true },
18
19
  example: { body: QUESTION_BODY_EXAMPLE },
19
20
  },
@@ -24,7 +25,7 @@ export const questionRuntimeDecl = {
24
25
  | \`message\` | The question shown to the user (non-empty string). |
25
26
  | \`requestedSchema\` | JSON Schema object the user's answer must satisfy; \`enum\`/enumNames/oneOf/array/boolean/string/number forms supported. |
26
27
 
27
- The tool pauses its loop until the user answers. The result is \`{ "action": "accept", "content": <answer> }\` or \`{ "action": "cancel" }\`.`,
28
+ An optional target is a label, not a recipient. The result is \`{ "action": "accept", "content": <answer> }\` or \`{ "action": "cancel" }\`; a waiting loop resumes when the answer arrives.`,
28
29
  };
29
30
  export default class QuestionTool extends BaseExecutor {
30
31
  get traits() {
@@ -56,8 +57,7 @@ export default class QuestionTool extends BaseExecutor {
56
57
  return Results.failure("executor:question", "invalid-body", 400, "The question body must carry a non-empty message and a requestedSchema object.", {}, { recovery: "Use the MCP2 form-elicitation shape: { message, requestedSchema }.", retryable: false });
57
58
  }
58
59
  signal.throwIfAborted();
59
- // The contracts-owned wire is the exact shape MCP2 MRTR elicitation
60
- // already produces; the executor owns only the mapping from the body.
60
+ // The interaction schema describes the answer, not this executor's output.
61
61
  const request = Validator.assertClientInteractionRequest({
62
62
  toolName: "question",
63
63
  arguments: { message: r.message, requestedSchema: r.requestedSchema },
@@ -65,17 +65,9 @@ export default class QuestionTool extends BaseExecutor {
65
65
  responseSchema: r.requestedSchema,
66
66
  });
67
67
  const resolution = await interact(request);
68
- // The resolution payload IS the standard ElicitResult — return it
69
- // verbatim when well-formed; otherwise wrap it as the accepted content.
70
- const payload = resolution.status === "resolved" ? resolution.payload : undefined;
71
- const result = payload !== null && typeof payload === "object"
72
- && (payload.action === "accept"
73
- || payload.action === "decline"
74
- || payload.action === "cancel")
75
- ? payload
76
- : resolution.status === "cancelled"
77
- ? { action: "cancel" }
78
- : { action: "accept", content: payload ?? {} };
68
+ const result = resolution.status === "cancelled"
69
+ ? { action: "cancel" }
70
+ : { action: "accept", content: resolution.payload };
79
71
  write("results", `${JSON.stringify(result, null, 2)}\n`, "application/json");
80
72
  setState("results", "closed");
81
73
  return { status: 200, attrs: { action: result.action } };
@@ -1 +1 @@
1
- {"version":3,"file":"QuestionTool.js","sourceRoot":"","sources":["../../src/schemes/QuestionTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QuestionTool.js","sourceRoot":"","sources":["../../src/schemes/QuestionTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,+EAA+E;AAC/E,8EAA8E;AAC9E,8EAA8E;AAC9E,gEAAgE;AAChE,kEAAkE;AAClE,2EAA2E;AAC3E,yEAAyE;AACzE,oEAAoE;AAEpE,MAAM,qBAAqB,GAAG,uLAAuL,CAAC;AAEtN,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,oCAAoC;IAC7C,UAAU,EAAE;QACR,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC3D,IAAI,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9D,OAAO,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;KAC3C;IACD,OAAO,EAAE;;;;;;;6LAOgL;CACtK,CAAC;AAExB,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IAClD,IAAa,MAAM;QACf,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,CAAC;IACzD,CAAC;IAEQ,MAAM,CAAC,OAAsB;QAClC,OAAO,MAAM,CAAC;IAClB,CAAC;IAEQ,KAAK,CAAC,KAAK;QAChB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACrD,CAAC;IAEQ,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAY;QACpE,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACL,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC/B,OAAO,OAAO,CAAC,OAAO,CAClB,mBAAmB,EACnB,cAAc,EACd,GAAG,EACH,sCAAsC,EACtC,EAAE,EACF,EAAE,QAAQ,EAAE,oEAAoE,EAAE,SAAS,EAAE,KAAK,EAAE,CACvG,CAAC;QACN,CAAC;QACD,MAAM,CAAC,GAAG,MAAiE,CAAC;QAC5E,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;eAChC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;eACvD,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,IAAI,CAAC,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YACzE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC/B,OAAO,OAAO,CAAC,OAAO,CAClB,mBAAmB,EACnB,cAAc,EACd,GAAG,EACH,gFAAgF,EAChF,EAAE,EACF,EAAE,QAAQ,EAAE,oEAAoE,EAAE,SAAS,EAAE,KAAK,EAAE,CACvG,CAAC;QACN,CAAC;QACD,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,2EAA2E;QAC3E,MAAM,OAAO,GAAG,SAAS,CAAC,8BAA8B,CAAC;YACrD,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,eAAe,EAAE;YACrE,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,cAAc,EAAE,CAAC,CAAC,eAA0C;SAC/D,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,KAAK,WAAW;YAC5C,CAAC,CAAC,EAAE,MAAM,EAAE,QAAiB,EAAE;YAC/B,CAAC,CAAC,EAAE,MAAM,EAAE,QAAiB,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;QACjE,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAC7E,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC9B,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;IAC7D,CAAC;CACJ"}
@@ -1,10 +1,15 @@
1
- import type { EntryEditResult, EntryFindResult, ResolvedEditStatement, SchemeCtx, SchemeHandler, SchemeManifest, SchemeResult } from "@plurnk/plurnk-schemes";
2
- import type { FindStatement, SendStatement } from "@plurnk/plurnk-contracts";
3
- export default class Skill implements SchemeHandler {
1
+ import { type SkillTree } from "@plurnk/plurnk-agent-skills";
2
+ import { type FindStatement, type ParsedPath } from "@plurnk/plurnk-contracts";
3
+ import { type ByteSource, type EntryAddress, type EntryCoordinate, type RepresentationPreparationRequest, type RepresentationPreparationResult, type SchemeHandler, type SchemeManifest } from "@plurnk/plurnk-schemes";
4
+ import { CoreSchemeAdapterBase, type CoreSchemeCallContext } from "../core/CoreSchemeServices.ts";
5
+ import { type FindResult } from "./_entry-find.ts";
6
+ export default class Skill extends CoreSchemeAdapterBase implements SchemeHandler {
7
+ #private;
4
8
  static manifest: SchemeManifest;
5
- editBatch(statements: readonly ResolvedEditStatement[], ctx: SchemeCtx): Promise<EntryEditResult>;
6
- edit(statement: ResolvedEditStatement, ctx: SchemeCtx): Promise<EntryEditResult>;
7
- send(statement: SendStatement, ctx: SchemeCtx): Promise<SchemeResult>;
8
- find(statement: FindStatement, ctx: SchemeCtx): Promise<EntryFindResult>;
9
+ constructor(trees: (workspaceId: number) => ReadonlyMap<string, SkillTree>);
10
+ resolveEntryAddress(target: ParsedPath, ctx: CoreSchemeCallContext): Promise<EntryAddress | null>;
11
+ byteSource({ authority, pathname }: EntryCoordinate, ctx: CoreSchemeCallContext): ByteSource;
12
+ prepareRepresentation(request: RepresentationPreparationRequest, ctx: CoreSchemeCallContext): Promise<RepresentationPreparationResult>;
13
+ find(statement: FindStatement, ctx: CoreSchemeCallContext): Promise<FindResult>;
9
14
  }
10
15
  //# sourceMappingURL=Skill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Skill.d.ts","sourceRoot":"","sources":["../../src/schemes/Skill.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC9J,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG7E,MAAM,CAAC,OAAO,OAAO,KAAM,YAAW,aAAa;IAC/C,MAAM,CAAC,QAAQ,EAAE,cAAc,CAY7B;IAEI,SAAS,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAGtG;IAEK,IAAI,CAAC,SAAS,EAAE,qBAAqB,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAErF;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAE1E;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAE7E;CACJ"}
1
+ {"version":3,"file":"Skill.d.ts","sourceRoot":"","sources":["../../src/schemes/Skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAc,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3F,OAAO,EAEH,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,aAAa,EAClB,KAAK,cAAc,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAOlG,OAAkB,EAAmB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI/E,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,qBAAsB,YAAW,aAAa;;IAC7E,MAAM,CAAC,QAAQ,EAAE,cAAc,CAU7B;IAIF,YAAY,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EAGzE;IAEK,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAItG;IAED,UAAU,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,qBAAqB,GAAG,UAAU,CAG3F;IA+DD,qBAAqB,CAAC,OAAO,EAAE,gCAAgC,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAErI;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CA6CpF;CACJ"}
@@ -1,35 +1,163 @@
1
- // PROVISIONAL: this handler delegates to the shared entry operation surface,
2
- // but its scheme-specific semantics are not yet designed. It is a generic
3
- // model-writable data scheme, NOT the Agent Skills feature — that surface is
4
- // worker://~/_plurnk/skills/ ({§skills-functionality}). Its future (rename or
5
- // retirement) is a separate design ruling.
6
- import LineAnchors from "../content/line-anchors.js";
7
- export default class Skill {
1
+ var _a;
2
+ import { SkillResourceError } from "@plurnk/plurnk-agent-skills";
3
+ import { PathSyntax } from "@plurnk/plurnk-contracts";
4
+ import { MimetypeInputLimitError } from "@plurnk/plurnk-mimetypes";
5
+ import { GeneratedByteSource, } from "@plurnk/plurnk-schemes";
6
+ import { CoreSchemeAdapterBase } from "../core/CoreSchemeServices.js";
7
+ import { entryCoordinateOf } from "../core/plurnk-uri.js";
8
+ import FileMaterialization from "../core/file-materialization.js";
9
+ import MimetypeBinary from "../content/mimetype-binary.js";
10
+ import Results from "../core/results.js";
11
+ import EntryCrud from "./_entry-crud.js";
12
+ import EntryFind, { emptyFindFields } from "./_entry-find.js";
13
+ import { pathScope, pathScopeMatches } from "./_path-scope.js";
14
+ // {§skills-resources} The resource tree is truth; entries are demand-loaded projections.
15
+ class Skill extends CoreSchemeAdapterBase {
8
16
  static manifest = {
9
17
  name: "skill",
10
- channels: { body: "text/markdown" },
18
+ authority: "resource",
19
+ channels: {},
11
20
  defaultChannel: "body",
12
21
  category: "data",
13
- entryOwner: "worker",
14
- inherit: "snapshot",
15
- writableBy: ["model", "client"],
22
+ writableBy: ["_plurnk", "plugin"],
16
23
  volatile: false,
17
- modelVisible: true,
18
24
  folderScopes: true,
19
- textEditScopes: true,
25
+ modelVisible: true,
20
26
  };
21
- async editBatch(statements, ctx) {
22
- LineAnchors.assertResolved(statements);
23
- return ctx.entries.operations.editBatch(statements);
27
+ #trees;
28
+ constructor(trees) {
29
+ super();
30
+ this.#trees = trees;
31
+ }
32
+ async resolveEntryAddress(target, ctx) {
33
+ const address = entryCoordinateOf(target, "resource");
34
+ const trees = this.#trees(ctx.workspaceId);
35
+ return PathSyntax.hasGlob(address.authority) || trees.has(address.authority) ? address : null;
36
+ }
37
+ byteSource({ authority, pathname }, ctx) {
38
+ return this.#trees(ctx.workspaceId).get(authority)?.resource(pathname.replace(/^\//u, ""))
39
+ ?? new GeneratedByteSource(async () => null);
40
+ }
41
+ static #refusal(cause, address) {
42
+ const target = `skill://${address.authority}${address.pathname}`;
43
+ if (cause?.code === "ENOENT") {
44
+ return Results.failure("scheme:skill", "entry-not-found", 404, `No skill resource exists at ${target}.`, {}, { target });
45
+ }
46
+ if (cause instanceof SkillResourceError) {
47
+ const outside = cause.code === "SKILL_PATH_OUTSIDE_ROOT";
48
+ return Results.failure("scheme:skill", outside ? "resource-outside-root" : "resource-invalid", outside ? 403 : 400, cause.message, {}, { target });
49
+ }
50
+ throw cause;
51
+ }
52
+ async #materialize(address, core) {
53
+ try {
54
+ const source = this.byteSource(address, core);
55
+ const size = await source.size();
56
+ if (size === null)
57
+ return _a.#refusal({ code: "ENOENT" }, address);
58
+ const mimetypes = core.mimetypes;
59
+ if (mimetypes === undefined)
60
+ throw new Error("Skill requires the configured mimetype registry.");
61
+ const mimetype = await FileMaterialization.detectSourceMimetype(address.pathname, source, mimetypes);
62
+ let content = "";
63
+ let outputMimetype = mimetype;
64
+ let attributes = {};
65
+ if (await MimetypeBinary.isBinaryMimetype(mimetype, mimetypes)) {
66
+ let metadata = { mimetype };
67
+ try {
68
+ const projected = await mimetypes.projectReadableStream(_a.#chunks(source, size), mimetype);
69
+ if (projected !== null) {
70
+ content = projected.content;
71
+ outputMimetype = "text/markdown";
72
+ metadata = { mimetype: projected.sourceMimetype, facts: projected.facts };
73
+ }
74
+ }
75
+ catch (cause) {
76
+ if (!(cause instanceof MimetypeInputLimitError))
77
+ throw cause;
78
+ metadata = { mimetype, maximumBytes: cause.maximumBytes, observedBytes: cause.observedBytes };
79
+ }
80
+ attributes = { sourceProjection: metadata };
81
+ }
82
+ else {
83
+ const materialization = FileMaterialization.classify(size);
84
+ if (materialization.disposition === "input-limit") {
85
+ const rejection = FileMaterialization.rejection(`skill://${address.authority}${address.pathname}`, materialization);
86
+ return Results.failure("scheme:skill", rejection.code, rejection.status, rejection.detail, {}, rejection.extensions);
87
+ }
88
+ content = new TextDecoder().decode(await source.read(1, size));
89
+ }
90
+ const written = await EntryCrud.writeEntry(address, {
91
+ channels: { body: { content, mimetype: outputMimetype } },
92
+ attributes,
93
+ }, core, "skill");
94
+ return written.status >= 400 ? written : { status: 200 };
95
+ }
96
+ catch (cause) {
97
+ return _a.#refusal(cause, address);
98
+ }
24
99
  }
25
- async edit(statement, ctx) {
26
- return this.editBatch([statement], ctx);
100
+ static async *#chunks(source, size) {
101
+ for (let start = 1; start <= size; start += 65536) {
102
+ yield await source.read(start, Math.min(start + 65535, size));
103
+ }
27
104
  }
28
- async send(statement, ctx) {
29
- return ctx.entries.operations.send(statement);
105
+ prepareRepresentation(request, ctx) {
106
+ return this.#materialize(request, this.coreContext(ctx));
30
107
  }
31
108
  async find(statement, ctx) {
32
- return ctx.entries.operations.find(statement);
109
+ const core = this.coreContext(ctx);
110
+ if (statement.target === null)
111
+ return { ...emptyFindFields(), ...Results.failure("scheme:skill", "target-required", 400, "FIND requires a skill resource target.") };
112
+ const coordinate = entryCoordinateOf(statement.target, "resource");
113
+ const authorityScope = pathScope(coordinate.authority, false);
114
+ const scope = pathScope(coordinate.pathname, true);
115
+ const inScope = (pathname) => scope.kind === "glob" && scope.shallowPrefix !== null
116
+ ? pathname.startsWith(scope.shallowPrefix)
117
+ : pathScopeMatches(scope, pathname);
118
+ const trees = this.#trees(core.workspaceId);
119
+ const available = new Set();
120
+ for (const [authority, tree] of trees) {
121
+ if (!pathScopeMatches(authorityScope, authority))
122
+ continue;
123
+ try {
124
+ const paths = scope.kind === "exact"
125
+ ? [scope.pathname.replace(/^\//u, "")]
126
+ : await tree.list();
127
+ for (const relative of paths) {
128
+ const pathname = `/${relative}`;
129
+ // A shallow FIND also needs deeper names for its folder summaries.
130
+ if (!inScope(pathname))
131
+ continue;
132
+ const prepared = await this.#materialize({ authority, pathname }, core);
133
+ if (prepared.status === 404)
134
+ continue;
135
+ if (prepared.status !== 200)
136
+ return { ...emptyFindFields(), ...prepared };
137
+ available.add(`${authority}\0${pathname}`);
138
+ }
139
+ }
140
+ catch (cause) {
141
+ return { ...emptyFindFields(), ..._a.#refusal(cause, { authority, pathname: coordinate.pathname }) };
142
+ }
143
+ }
144
+ const cached = await core.db.find_workspace_entry_candidate_ids.all({
145
+ workspace_id: core.workspaceId, scheme: "skill",
146
+ authority: null, scope_prefix: null, channel: "body",
147
+ });
148
+ for (const address of cached) {
149
+ if (!trees.has(address.authority)
150
+ || (pathScopeMatches(authorityScope, address.authority)
151
+ && inScope(address.pathname)
152
+ && !available.has(`${address.authority}\0${address.pathname}`))) {
153
+ await EntryCrud.deleteEntry(address, core, "skill");
154
+ }
155
+ }
156
+ return EntryFind.findWorkspaceEntries(statement, core, _a.manifest, {
157
+ bytes: (pathname, authority) => this.byteSource({ authority, pathname }, core),
158
+ });
33
159
  }
34
160
  }
161
+ _a = Skill;
162
+ export default Skill;
35
163
  //# sourceMappingURL=Skill.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Skill.js","sourceRoot":"","sources":["../../src/schemes/Skill.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,0EAA0E;AAC1E,6EAA6E;AAC7E,8EAA8E;AAC9E,2CAA2C;AAI3C,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAErD,MAAM,CAAC,OAAO,OAAO,KAAK;IACtB,MAAM,CAAC,QAAQ,GAAmB;QAC9B,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;QACnC,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC/B,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;KACvB,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,UAA4C,EAAE,GAAc;QACxE,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACvC,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAgC,EAAE,GAAc;QACvD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAc;QAC/C,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAc;QAC/C,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;CACJ"}
1
+ {"version":3,"file":"Skill.js","sourceRoot":"","sources":["../../src/schemes/Skill.ts"],"names":[],"mappings":"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"}