@plurnk/plurnk-service 1.16.5 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (661) hide show
  1. package/.env.defaults +140 -246
  2. package/INSTALL.md +84 -138
  3. package/README.md +10 -6
  4. package/SPEC.md +2468 -1694
  5. package/dist/Paths.d.ts +2 -0
  6. package/dist/Paths.d.ts.map +1 -1
  7. package/dist/Paths.js +2 -0
  8. package/dist/Paths.js.map +1 -1
  9. package/dist/build-info.d.ts.map +1 -1
  10. package/dist/build-info.js +7 -1
  11. package/dist/build-info.js.map +1 -1
  12. package/dist/build-info.json +1 -1
  13. package/dist/content/body-preview.d.ts +8 -0
  14. package/dist/content/body-preview.d.ts.map +1 -0
  15. package/dist/content/body-preview.js +39 -0
  16. package/dist/content/body-preview.js.map +1 -0
  17. package/dist/content/byte-view.d.ts +1 -4
  18. package/dist/content/byte-view.d.ts.map +1 -1
  19. package/dist/content/byte-view.js.map +1 -1
  20. package/dist/content/edit-collision.d.ts.map +1 -1
  21. package/dist/content/edit-collision.js +3 -4
  22. package/dist/content/edit-collision.js.map +1 -1
  23. package/dist/content/line-anchors.d.ts +2 -2
  24. package/dist/content/line-anchors.d.ts.map +1 -1
  25. package/dist/content/line-anchors.js +4 -3
  26. package/dist/content/line-anchors.js.map +1 -1
  27. package/dist/content/line-selection.d.ts +9 -0
  28. package/dist/content/line-selection.d.ts.map +1 -0
  29. package/dist/content/line-selection.js +29 -0
  30. package/dist/content/line-selection.js.map +1 -0
  31. package/dist/content/matcher.d.ts +0 -1
  32. package/dist/content/matcher.d.ts.map +1 -1
  33. package/dist/content/matcher.js +2 -3
  34. package/dist/content/matcher.js.map +1 -1
  35. package/dist/content/pattern-edits.d.ts +39 -0
  36. package/dist/content/pattern-edits.d.ts.map +1 -0
  37. package/dist/content/pattern-edits.js +121 -0
  38. package/dist/content/pattern-edits.js.map +1 -0
  39. package/dist/content/read-projector.d.ts +18 -9
  40. package/dist/content/read-projector.d.ts.map +1 -1
  41. package/dist/content/read-projector.js +132 -35
  42. package/dist/content/read-projector.js.map +1 -1
  43. package/dist/content/read-resolve.d.ts +4 -1
  44. package/dist/content/read-resolve.d.ts.map +1 -1
  45. package/dist/content/read-resolve.js +42 -7
  46. package/dist/content/read-resolve.js.map +1 -1
  47. package/dist/core/AdmittedTurnExecutor.d.ts +2 -5
  48. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
  49. package/dist/core/AdmittedTurnExecutor.js +96 -88
  50. package/dist/core/AdmittedTurnExecutor.js.map +1 -1
  51. package/dist/core/BareBatchRunner.d.ts +6 -1
  52. package/dist/core/BareBatchRunner.d.ts.map +1 -1
  53. package/dist/core/BareBatchRunner.js +20 -5
  54. package/dist/core/BareBatchRunner.js.map +1 -1
  55. package/dist/core/BudgetReadout.d.ts +2 -3
  56. package/dist/core/BudgetReadout.d.ts.map +1 -1
  57. package/dist/core/BudgetReadout.js +23 -32
  58. package/dist/core/BudgetReadout.js.map +1 -1
  59. package/dist/core/CapabilityPolicies.d.ts +3 -8
  60. package/dist/core/CapabilityPolicies.d.ts.map +1 -1
  61. package/dist/core/CapabilityPolicies.js +2 -28
  62. package/dist/core/CapabilityPolicies.js.map +1 -1
  63. package/dist/core/CapabilityResolver.d.ts +10 -10
  64. package/dist/core/CapabilityResolver.d.ts.map +1 -1
  65. package/dist/core/CapabilityResolver.js +122 -93
  66. package/dist/core/CapabilityResolver.js.map +1 -1
  67. package/dist/core/ChannelWrite.d.ts +15 -11
  68. package/dist/core/ChannelWrite.d.ts.map +1 -1
  69. package/dist/core/ChannelWrite.js +12 -13
  70. package/dist/core/ChannelWrite.js.map +1 -1
  71. package/dist/core/ChannelWrite.sql +99 -9
  72. package/dist/core/ClientInteractions.d.ts.map +1 -1
  73. package/dist/core/ClientInteractions.js +7 -0
  74. package/dist/core/ClientInteractions.js.map +1 -1
  75. package/dist/core/CoreSchemeServices.d.ts +13 -10
  76. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  77. package/dist/core/CoreSchemeServices.js +13 -5
  78. package/dist/core/CoreSchemeServices.js.map +1 -1
  79. package/dist/core/DataStatementRunner.d.ts +2 -2
  80. package/dist/core/DataStatementRunner.d.ts.map +1 -1
  81. package/dist/core/DataStatementRunner.js +208 -161
  82. package/dist/core/DataStatementRunner.js.map +1 -1
  83. package/dist/core/Dispatcher.d.ts +24 -26
  84. package/dist/core/Dispatcher.d.ts.map +1 -1
  85. package/dist/core/Dispatcher.js +381 -232
  86. package/dist/core/Dispatcher.js.map +1 -1
  87. package/dist/core/Dispatcher.sql +66 -0
  88. package/dist/core/DurableStatement.d.ts.map +1 -1
  89. package/dist/core/DurableStatement.js +2 -1
  90. package/dist/core/DurableStatement.js.map +1 -1
  91. package/dist/core/EditMutations.d.ts +14 -18
  92. package/dist/core/EditMutations.d.ts.map +1 -1
  93. package/dist/core/EditMutations.js +211 -280
  94. package/dist/core/EditMutations.js.map +1 -1
  95. package/dist/core/EditMutations.sql +15 -0
  96. package/dist/core/EditSequence.d.ts +13 -0
  97. package/dist/core/EditSequence.d.ts.map +1 -0
  98. package/dist/core/EditSequence.js +73 -0
  99. package/dist/core/EditSequence.js.map +1 -0
  100. package/dist/core/Engine.d.ts +17 -23
  101. package/dist/core/Engine.d.ts.map +1 -1
  102. package/dist/core/Engine.js +74 -164
  103. package/dist/core/Engine.js.map +1 -1
  104. package/dist/core/Engine.sql +0 -724
  105. package/dist/core/EntryAddressBinding.d.ts +7 -17
  106. package/dist/core/EntryAddressBinding.d.ts.map +1 -1
  107. package/dist/core/EntryAddressBinding.js +12 -72
  108. package/dist/core/EntryAddressBinding.js.map +1 -1
  109. package/dist/core/ExecutionOutputs.d.ts +9 -0
  110. package/dist/core/ExecutionOutputs.d.ts.map +1 -0
  111. package/dist/core/ExecutionOutputs.js +36 -0
  112. package/dist/core/ExecutionOutputs.js.map +1 -0
  113. package/dist/core/ExecutionOutputs.sql +21 -0
  114. package/dist/core/ExecutorRegistry.d.ts +11 -5
  115. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  116. package/dist/core/ExecutorRegistry.js +37 -32
  117. package/dist/core/ExecutorRegistry.js.map +1 -1
  118. package/dist/core/HostPaths.d.ts +1 -0
  119. package/dist/core/HostPaths.d.ts.map +1 -1
  120. package/dist/core/HostPaths.js +4 -0
  121. package/dist/core/HostPaths.js.map +1 -1
  122. package/dist/core/InferenceCall.d.ts.map +1 -1
  123. package/dist/core/InferenceCall.js +1 -2
  124. package/dist/core/InferenceCall.js.map +1 -1
  125. package/dist/core/InferenceCall.sql +29 -0
  126. package/dist/core/KillHandler.d.ts +1 -0
  127. package/dist/core/KillHandler.d.ts.map +1 -1
  128. package/dist/core/KillHandler.js +24 -21
  129. package/dist/core/KillHandler.js.map +1 -1
  130. package/dist/core/LogBody.d.ts +8 -1
  131. package/dist/core/LogBody.d.ts.map +1 -1
  132. package/dist/core/LogBody.js +44 -12
  133. package/dist/core/LogBody.js.map +1 -1
  134. package/dist/core/LogEntryProjection.d.ts +1 -0
  135. package/dist/core/LogEntryProjection.d.ts.map +1 -1
  136. package/dist/core/LogEntryProjection.js +12 -10
  137. package/dist/core/LogEntryProjection.js.map +1 -1
  138. package/dist/core/LogVisibility.d.ts +1 -0
  139. package/dist/core/LogVisibility.d.ts.map +1 -1
  140. package/dist/core/LogVisibility.js +3 -0
  141. package/dist/core/LogVisibility.js.map +1 -1
  142. package/dist/core/LogWriter.d.ts +2 -3
  143. package/dist/core/LogWriter.d.ts.map +1 -1
  144. package/dist/core/LogWriter.js +31 -36
  145. package/dist/core/LogWriter.js.map +1 -1
  146. package/dist/core/LogWriter.sql +23 -0
  147. package/dist/core/LoopDriver.d.ts +11 -8
  148. package/dist/core/LoopDriver.d.ts.map +1 -1
  149. package/dist/core/LoopDriver.js +161 -189
  150. package/dist/core/LoopDriver.js.map +1 -1
  151. package/dist/core/LoopDriver.sql +11 -0
  152. package/dist/core/LoopLifecycle.d.ts +32 -2
  153. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  154. package/dist/core/LoopLifecycle.js +88 -4
  155. package/dist/core/LoopLifecycle.js.map +1 -1
  156. package/dist/core/LoopLifecycle.sql +145 -28
  157. package/dist/core/LoopPolicyReader.sql +6 -0
  158. package/dist/core/MembershipMaterialization.d.ts.map +1 -1
  159. package/dist/core/MembershipMaterialization.js +6 -28
  160. package/dist/core/MembershipMaterialization.js.map +1 -1
  161. package/dist/core/ModelCall.d.ts.map +1 -1
  162. package/dist/core/ModelCall.js +2 -6
  163. package/dist/core/ModelCall.js.map +1 -1
  164. package/dist/core/ModelCall.sql +41 -0
  165. package/dist/core/MutationEffects.d.ts +5 -3
  166. package/dist/core/MutationEffects.d.ts.map +1 -1
  167. package/dist/core/MutationEffects.js +10 -28
  168. package/dist/core/MutationEffects.js.map +1 -1
  169. package/dist/core/NativeContent.d.ts +6 -0
  170. package/dist/core/NativeContent.d.ts.map +1 -0
  171. package/dist/core/NativeContent.js +16 -0
  172. package/dist/core/NativeContent.js.map +1 -0
  173. package/dist/core/NativeContent.sql +6 -0
  174. package/dist/core/NoticeChannel.js +1 -1
  175. package/dist/core/NoticeChannel.js.map +1 -1
  176. package/dist/core/OperatorConfig.js +5 -5
  177. package/dist/core/OperatorConfig.js.map +1 -1
  178. package/dist/core/PacketBuilder.d.ts +8 -5
  179. package/dist/core/PacketBuilder.d.ts.map +1 -1
  180. package/dist/core/PacketBuilder.js +117 -81
  181. package/dist/core/PacketBuilder.js.map +1 -1
  182. package/dist/core/PacketBuilder.sql +146 -0
  183. package/dist/core/PatternSelection.d.ts +28 -0
  184. package/dist/core/PatternSelection.d.ts.map +1 -0
  185. package/dist/core/PatternSelection.js +42 -0
  186. package/dist/core/PatternSelection.js.map +1 -0
  187. package/dist/core/ProblemLog.d.ts.map +1 -1
  188. package/dist/core/ProblemLog.js +0 -1
  189. package/dist/core/ProblemLog.js.map +1 -1
  190. package/dist/core/PromptFrames.d.ts +12 -0
  191. package/dist/core/PromptFrames.d.ts.map +1 -0
  192. package/dist/core/PromptFrames.js +28 -0
  193. package/dist/core/PromptFrames.js.map +1 -0
  194. package/dist/core/ProposalLifecycle.d.ts +0 -1
  195. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  196. package/dist/core/ProposalLifecycle.js +26 -23
  197. package/dist/core/ProposalLifecycle.js.map +1 -1
  198. package/dist/core/ProposalLifecycle.sql +33 -0
  199. package/dist/core/ProviderInstantiate.d.ts +1 -1
  200. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  201. package/dist/core/ProviderInstantiate.js +7 -14
  202. package/dist/core/ProviderInstantiate.js.map +1 -1
  203. package/dist/core/ReasoningView.d.ts +9 -0
  204. package/dist/core/ReasoningView.d.ts.map +1 -0
  205. package/dist/core/ReasoningView.js +47 -0
  206. package/dist/core/ReasoningView.js.map +1 -0
  207. package/dist/core/ResourceBindings.d.ts +16 -0
  208. package/dist/core/ResourceBindings.d.ts.map +1 -0
  209. package/dist/core/ResourceBindings.js +45 -0
  210. package/dist/core/ResourceBindings.js.map +1 -0
  211. package/dist/core/ResourceMutations.d.ts +5 -8
  212. package/dist/core/ResourceMutations.d.ts.map +1 -1
  213. package/dist/core/ResourceMutations.js +6 -7
  214. package/dist/core/ResourceMutations.js.map +1 -1
  215. package/dist/core/ResourceSelector.d.ts +2 -2
  216. package/dist/core/ResourceSelector.d.ts.map +1 -1
  217. package/dist/core/ResourceSelector.js +122 -62
  218. package/dist/core/ResourceSelector.js.map +1 -1
  219. package/dist/core/ResourceTransfers.d.ts +4 -2
  220. package/dist/core/ResourceTransfers.d.ts.map +1 -1
  221. package/dist/core/ResourceTransfers.js +95 -26
  222. package/dist/core/ResourceTransfers.js.map +1 -1
  223. package/dist/core/RuntimeWorker.d.ts +5 -0
  224. package/dist/core/RuntimeWorker.d.ts.map +1 -0
  225. package/dist/core/RuntimeWorker.js +15 -0
  226. package/dist/core/RuntimeWorker.js.map +1 -0
  227. package/dist/core/RuntimeWorker.sql +11 -0
  228. package/dist/core/SchemeRegistry.d.ts +12 -16
  229. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  230. package/dist/core/SchemeRegistry.js +59 -85
  231. package/dist/core/SchemeRegistry.js.map +1 -1
  232. package/dist/core/StoredPacket.d.ts +6 -1
  233. package/dist/core/StoredPacket.d.ts.map +1 -1
  234. package/dist/core/StoredPacket.js +30 -10
  235. package/dist/core/StoredPacket.js.map +1 -1
  236. package/dist/core/StrikeRail.d.ts +11 -8
  237. package/dist/core/StrikeRail.d.ts.map +1 -1
  238. package/dist/core/StrikeRail.js +63 -114
  239. package/dist/core/StrikeRail.js.map +1 -1
  240. package/dist/core/StrikeRail.sql +12 -0
  241. package/dist/core/TerminalResult.d.ts +1 -1
  242. package/dist/core/TerminalResult.d.ts.map +1 -1
  243. package/dist/core/TerminalResult.js +2 -2
  244. package/dist/core/TerminalResult.js.map +1 -1
  245. package/dist/core/TokenCalibration.d.ts +1 -6
  246. package/dist/core/TokenCalibration.d.ts.map +1 -1
  247. package/dist/core/TokenCalibration.js +13 -9
  248. package/dist/core/TokenCalibration.js.map +1 -1
  249. package/dist/core/TokenCalibration.sql +15 -0
  250. package/dist/core/ToolInputSchema.d.ts +6 -0
  251. package/dist/core/ToolInputSchema.d.ts.map +1 -0
  252. package/dist/core/ToolInputSchema.js +43 -0
  253. package/dist/core/ToolInputSchema.js.map +1 -0
  254. package/dist/core/ToolResources.d.ts.map +1 -1
  255. package/dist/core/ToolResources.js +77 -51
  256. package/dist/core/ToolResources.js.map +1 -1
  257. package/dist/core/Turn.d.ts +5 -2
  258. package/dist/core/Turn.d.ts.map +1 -1
  259. package/dist/core/Turn.js +13 -11
  260. package/dist/core/Turn.js.map +1 -1
  261. package/dist/core/Turn.sql +25 -39
  262. package/dist/core/{SendBroadcastHandler.d.ts → TurnDispositionHandler.d.ts} +24 -18
  263. package/dist/core/TurnDispositionHandler.d.ts.map +1 -0
  264. package/dist/core/TurnDispositionHandler.js +206 -0
  265. package/dist/core/TurnDispositionHandler.js.map +1 -0
  266. package/dist/core/TurnMaterialization.d.ts +2 -3
  267. package/dist/core/TurnMaterialization.d.ts.map +1 -1
  268. package/dist/core/TurnMaterialization.js +47 -24
  269. package/dist/core/TurnMaterialization.js.map +1 -1
  270. package/dist/core/TurnMaterialization.sql +44 -0
  271. package/dist/core/TurnOps.d.ts.map +1 -1
  272. package/dist/core/TurnOps.js +8 -64
  273. package/dist/core/TurnOps.js.map +1 -1
  274. package/dist/core/TurnRunner.d.ts +8 -15
  275. package/dist/core/TurnRunner.d.ts.map +1 -1
  276. package/dist/core/TurnRunner.js +1175 -1317
  277. package/dist/core/TurnRunner.js.map +1 -1
  278. package/dist/core/TurnRunner.sql +74 -0
  279. package/dist/core/TurnSources.sql +39 -0
  280. package/dist/core/WorkerControlAddress.d.ts +1 -0
  281. package/dist/core/WorkerControlAddress.d.ts.map +1 -1
  282. package/dist/core/WorkerControlAddress.js +5 -0
  283. package/dist/core/WorkerControlAddress.js.map +1 -1
  284. package/dist/core/WorkerControlHandler.d.ts +1 -3
  285. package/dist/core/WorkerControlHandler.d.ts.map +1 -1
  286. package/dist/core/WorkerControlHandler.js +64 -48
  287. package/dist/core/WorkerControlHandler.js.map +1 -1
  288. package/dist/core/WorkerName.d.ts +11 -12
  289. package/dist/core/WorkerName.d.ts.map +1 -1
  290. package/dist/core/WorkerName.js +40 -47
  291. package/dist/core/WorkerName.js.map +1 -1
  292. package/dist/core/WorkerName.sql +7 -10
  293. package/dist/core/WorkspaceGate.d.ts +1 -1
  294. package/dist/core/WorkspaceGate.d.ts.map +1 -1
  295. package/dist/core/WorkspaceGate.js +33 -10
  296. package/dist/core/WorkspaceGate.js.map +1 -1
  297. package/dist/core/ambient.sql +236 -0
  298. package/dist/core/attachments.d.ts +2 -1
  299. package/dist/core/attachments.d.ts.map +1 -1
  300. package/dist/core/attachments.js +5 -4
  301. package/dist/core/attachments.js.map +1 -1
  302. package/dist/core/caps/CapsResolve.d.ts +2 -3
  303. package/dist/core/caps/CapsResolve.d.ts.map +1 -1
  304. package/dist/core/caps/CapsResolve.js +5 -5
  305. package/dist/core/caps/CapsResolve.js.map +1 -1
  306. package/dist/core/caps/DbChannelCaps.d.ts +1 -1
  307. package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
  308. package/dist/core/caps/DbChannelCaps.js +4 -6
  309. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  310. package/dist/core/caps/DbEntryCaps.d.ts +2 -1
  311. package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
  312. package/dist/core/caps/DbEntryCaps.js +11 -17
  313. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  314. package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
  315. package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
  316. package/dist/core/caps/DbNotifyCaps.js +3 -5
  317. package/dist/core/caps/DbNotifyCaps.js.map +1 -1
  318. package/dist/core/caps/DbProjectionCaps.js +1 -1
  319. package/dist/core/caps/DbProjectionCaps.js.map +1 -1
  320. package/dist/core/caps/DbSubscriptionCaps.d.ts +1 -1
  321. package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
  322. package/dist/core/caps/DbSubscriptionCaps.js +5 -7
  323. package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
  324. package/dist/core/caps/SchemeCtxImpl.d.ts +0 -2
  325. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  326. package/dist/core/caps/SchemeCtxImpl.js +4 -20
  327. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  328. package/dist/core/env-catalog.d.ts +28 -0
  329. package/dist/core/env-catalog.d.ts.map +1 -0
  330. package/dist/core/env-catalog.js +99 -0
  331. package/dist/core/env-catalog.js.map +1 -0
  332. package/dist/core/env-defaults.d.ts.map +1 -1
  333. package/dist/core/env-defaults.js +4 -2
  334. package/dist/core/env-defaults.js.map +1 -1
  335. package/dist/core/file-materialization.d.ts +4 -1
  336. package/dist/core/file-materialization.d.ts.map +1 -1
  337. package/dist/core/file-materialization.js +15 -1
  338. package/dist/core/file-materialization.js.map +1 -1
  339. package/dist/core/fork.d.ts +1 -6
  340. package/dist/core/fork.d.ts.map +1 -1
  341. package/dist/core/fork.js +9 -153
  342. package/dist/core/fork.js.map +1 -1
  343. package/dist/core/fork.sql +162 -185
  344. package/dist/core/git-env.d.ts +1 -0
  345. package/dist/core/git-env.d.ts.map +1 -1
  346. package/dist/core/git-env.js +39 -2
  347. package/dist/core/git-env.js.map +1 -1
  348. package/dist/core/git-membership.d.ts.map +1 -1
  349. package/dist/core/git-membership.js +64 -48
  350. package/dist/core/git-membership.js.map +1 -1
  351. package/dist/core/git-state.d.ts.map +1 -1
  352. package/dist/core/git-state.js +26 -20
  353. package/dist/core/git-state.js.map +1 -1
  354. package/dist/core/glob_match.d.ts +4 -0
  355. package/dist/core/glob_match.d.ts.map +1 -0
  356. package/dist/core/glob_match.js +7 -0
  357. package/dist/core/glob_match.js.map +1 -0
  358. package/dist/core/maintenance.sql +6 -0
  359. package/dist/core/mutation-types.d.ts +7 -28
  360. package/dist/core/mutation-types.d.ts.map +1 -1
  361. package/dist/core/operation-target-groups.d.ts.map +1 -1
  362. package/dist/core/operation-target-groups.js +2 -1
  363. package/dist/core/operation-target-groups.js.map +1 -1
  364. package/dist/core/packet-inject.d.ts.map +1 -1
  365. package/dist/core/packet-inject.js +2 -3
  366. package/dist/core/packet-inject.js.map +1 -1
  367. package/dist/core/packet-wire.d.ts +8 -6
  368. package/dist/core/packet-wire.d.ts.map +1 -1
  369. package/dist/core/packet-wire.js +381 -388
  370. package/dist/core/packet-wire.js.map +1 -1
  371. package/dist/core/plurnk-uri.d.ts +1 -1
  372. package/dist/core/plurnk-uri.d.ts.map +1 -1
  373. package/dist/core/plurnk-uri.js +5 -12
  374. package/dist/core/plurnk-uri.js.map +1 -1
  375. package/dist/core/scheme-types.d.ts +3 -3
  376. package/dist/core/scheme-types.d.ts.map +1 -1
  377. package/dist/core/scheme-types.js.map +1 -1
  378. package/dist/core/sha256.d.ts +4 -0
  379. package/dist/core/sha256.d.ts.map +1 -0
  380. package/dist/core/sha256.js +6 -0
  381. package/dist/core/sha256.js.map +1 -0
  382. package/dist/core/teaching.js +1 -1
  383. package/dist/core/teaching.js.map +1 -1
  384. package/dist/core/turn-scheduler.d.ts.map +1 -1
  385. package/dist/core/turn-scheduler.js +5 -18
  386. package/dist/core/turn-scheduler.js.map +1 -1
  387. package/dist/core/turn-signals.d.ts +0 -6
  388. package/dist/core/turn-signals.d.ts.map +1 -1
  389. package/dist/core/turn-signals.js +1 -7
  390. package/dist/core/turn-signals.js.map +1 -1
  391. package/dist/core/worker-ops.sql +15 -22
  392. package/dist/core/workspace-settings.d.ts.map +1 -1
  393. package/dist/core/workspace-settings.js +18 -2
  394. package/dist/core/workspace-settings.js.map +1 -1
  395. package/dist/core/workspace-settings.sql +6 -0
  396. package/dist/digest/Digest.d.ts.map +1 -1
  397. package/dist/digest/Digest.js +30 -91
  398. package/dist/digest/Digest.js.map +1 -1
  399. package/dist/digest/DigestRender.d.ts +1 -0
  400. package/dist/digest/DigestRender.d.ts.map +1 -1
  401. package/dist/digest/DigestRender.js +58 -62
  402. package/dist/digest/DigestRender.js.map +1 -1
  403. package/dist/digest/digest-rows.d.ts +16 -32
  404. package/dist/digest/digest-rows.d.ts.map +1 -1
  405. package/dist/digest/digest.sql +54 -20
  406. package/dist/schemes/Exec.d.ts +6 -12
  407. package/dist/schemes/Exec.d.ts.map +1 -1
  408. package/dist/schemes/Exec.js +318 -215
  409. package/dist/schemes/Exec.js.map +1 -1
  410. package/dist/schemes/ExecOutputScheme.d.ts +8 -6
  411. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  412. package/dist/schemes/ExecOutputScheme.js +33 -61
  413. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  414. package/dist/schemes/ExecScheduler.js +2 -2
  415. package/dist/schemes/ExecScheduler.js.map +1 -1
  416. package/dist/schemes/ExecutionInput.d.ts +12 -0
  417. package/dist/schemes/ExecutionInput.d.ts.map +1 -0
  418. package/dist/schemes/ExecutionInput.js +94 -0
  419. package/dist/schemes/ExecutionInput.js.map +1 -0
  420. package/dist/schemes/File.d.ts +5 -2
  421. package/dist/schemes/File.d.ts.map +1 -1
  422. package/dist/schemes/File.js +62 -91
  423. package/dist/schemes/File.js.map +1 -1
  424. package/dist/schemes/Log.d.ts.map +1 -1
  425. package/dist/schemes/Log.js +84 -79
  426. package/dist/schemes/Log.js.map +1 -1
  427. package/dist/schemes/Log.sql +183 -15
  428. package/dist/schemes/Prompt.d.ts.map +1 -1
  429. package/dist/schemes/Prompt.js +3 -12
  430. package/dist/schemes/Prompt.js.map +1 -1
  431. package/dist/schemes/QuestionTool.d.ts +5 -0
  432. package/dist/schemes/QuestionTool.d.ts.map +1 -1
  433. package/dist/schemes/QuestionTool.js +7 -15
  434. package/dist/schemes/QuestionTool.js.map +1 -1
  435. package/dist/schemes/Skill.d.ts +12 -7
  436. package/dist/schemes/Skill.d.ts.map +1 -1
  437. package/dist/schemes/Skill.js +149 -21
  438. package/dist/schemes/Skill.js.map +1 -1
  439. package/dist/schemes/TurnSource.d.ts +12 -0
  440. package/dist/schemes/TurnSource.d.ts.map +1 -0
  441. package/dist/schemes/TurnSource.js +117 -0
  442. package/dist/schemes/TurnSource.js.map +1 -0
  443. package/dist/schemes/Worker.d.ts +3 -3
  444. package/dist/schemes/Worker.d.ts.map +1 -1
  445. package/dist/schemes/Worker.js +61 -208
  446. package/dist/schemes/Worker.js.map +1 -1
  447. package/dist/schemes/_entry-crud.d.ts +12 -15
  448. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  449. package/dist/schemes/_entry-crud.js +63 -63
  450. package/dist/schemes/_entry-crud.js.map +1 -1
  451. package/dist/schemes/_entry-crud.sql +159 -45
  452. package/dist/schemes/_entry-find.d.ts +1 -3
  453. package/dist/schemes/_entry-find.d.ts.map +1 -1
  454. package/dist/schemes/_entry-find.js +111 -112
  455. package/dist/schemes/_entry-find.js.map +1 -1
  456. package/dist/schemes/_entry-find.sql +22 -14
  457. package/dist/schemes/_entry-fts.d.ts +14 -0
  458. package/dist/schemes/_entry-fts.d.ts.map +1 -0
  459. package/dist/schemes/_entry-fts.js +82 -0
  460. package/dist/schemes/_entry-fts.js.map +1 -0
  461. package/dist/schemes/_entry-fts.sql +31 -0
  462. package/dist/schemes/_entry-graph.d.ts.map +1 -1
  463. package/dist/schemes/_entry-graph.js +6 -14
  464. package/dist/schemes/_entry-graph.js.map +1 -1
  465. package/dist/schemes/_entry-graph.sql +29 -44
  466. package/dist/schemes/_entry-manifest.d.ts +2 -1
  467. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  468. package/dist/schemes/_entry-manifest.js +20 -26
  469. package/dist/schemes/_entry-manifest.js.map +1 -1
  470. package/dist/schemes/_entry-manifest.sql +26 -0
  471. package/dist/schemes/_entry-ops.d.ts +3 -5
  472. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  473. package/dist/schemes/_entry-ops.js +30 -43
  474. package/dist/schemes/_entry-ops.js.map +1 -1
  475. package/dist/schemes/_entry-ops.sql +5 -6
  476. package/dist/schemes/_entry-readable.d.ts +8 -0
  477. package/dist/schemes/_entry-readable.d.ts.map +1 -0
  478. package/dist/schemes/_entry-readable.js +38 -0
  479. package/dist/schemes/_entry-readable.js.map +1 -0
  480. package/dist/schemes/_entry-send.d.ts +1 -1
  481. package/dist/schemes/_entry-send.d.ts.map +1 -1
  482. package/dist/schemes/_entry-send.js +3 -3
  483. package/dist/schemes/_entry-send.js.map +1 -1
  484. package/dist/schemes/_search-index.d.ts +5 -3
  485. package/dist/schemes/_search-index.d.ts.map +1 -1
  486. package/dist/schemes/_search-index.js +169 -160
  487. package/dist/schemes/_search-index.js.map +1 -1
  488. package/dist/schemes/_search-index.sql +47 -0
  489. package/dist/schemes/exec-abort.js +1 -1
  490. package/dist/schemes/exec-abort.js.map +1 -1
  491. package/dist/schemes/exec-env.d.ts +3 -0
  492. package/dist/schemes/exec-env.d.ts.map +1 -1
  493. package/dist/schemes/exec-env.js +66 -15
  494. package/dist/schemes/exec-env.js.map +1 -1
  495. package/dist/schemes/exec-runtime.d.ts +1 -1
  496. package/dist/schemes/exec-runtime.d.ts.map +1 -1
  497. package/dist/schemes/exec-runtime.js +1 -1
  498. package/dist/schemes/exec-runtime.js.map +1 -1
  499. package/dist/server/ClientReads.d.ts +2 -2
  500. package/dist/server/ClientReads.d.ts.map +1 -1
  501. package/dist/server/ClientReads.js +7 -9
  502. package/dist/server/ClientReads.js.map +1 -1
  503. package/dist/server/Daemon.d.ts +15 -21
  504. package/dist/server/Daemon.d.ts.map +1 -1
  505. package/dist/server/Daemon.js +165 -168
  506. package/dist/server/Daemon.js.map +1 -1
  507. package/dist/server/DaemonModule.d.ts +29 -22
  508. package/dist/server/DaemonModule.d.ts.map +1 -1
  509. package/dist/server/DrainSupervisor.d.ts +8 -21
  510. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  511. package/dist/server/DrainSupervisor.js +278 -306
  512. package/dist/server/DrainSupervisor.js.map +1 -1
  513. package/dist/server/EnvFunctionality.d.ts +43 -0
  514. package/dist/server/EnvFunctionality.d.ts.map +1 -0
  515. package/dist/server/EnvFunctionality.js +194 -0
  516. package/dist/server/EnvFunctionality.js.map +1 -0
  517. package/dist/server/Functionality.d.ts +12 -11
  518. package/dist/server/Functionality.d.ts.map +1 -1
  519. package/dist/server/Functionality.js +279 -142
  520. package/dist/server/Functionality.js.map +1 -1
  521. package/dist/server/FunctionalityManager.d.ts +5 -5
  522. package/dist/server/FunctionalityManager.d.ts.map +1 -1
  523. package/dist/server/FunctionalityManager.js +29 -57
  524. package/dist/server/FunctionalityManager.js.map +1 -1
  525. package/dist/server/MembersFunctionality.d.ts +5 -4
  526. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  527. package/dist/server/MembersFunctionality.js +24 -38
  528. package/dist/server/MembersFunctionality.js.map +1 -1
  529. package/dist/server/PlurnkSkill.d.ts +11 -0
  530. package/dist/server/PlurnkSkill.d.ts.map +1 -0
  531. package/dist/server/PlurnkSkill.js +41 -0
  532. package/dist/server/PlurnkSkill.js.map +1 -0
  533. package/dist/server/Retention.d.ts +25 -0
  534. package/dist/server/Retention.d.ts.map +1 -0
  535. package/dist/server/Retention.js +57 -0
  536. package/dist/server/Retention.js.map +1 -0
  537. package/dist/server/Retention.sql +59 -0
  538. package/dist/server/ServiceModules.d.ts +5 -0
  539. package/dist/server/ServiceModules.d.ts.map +1 -0
  540. package/dist/server/ServiceModules.js +10 -0
  541. package/dist/server/ServiceModules.js.map +1 -0
  542. package/dist/server/SkillsFunctionality.d.ts +14 -19
  543. package/dist/server/SkillsFunctionality.d.ts.map +1 -1
  544. package/dist/server/SkillsFunctionality.js +102 -106
  545. package/dist/server/SkillsFunctionality.js.map +1 -1
  546. package/dist/server/WorkerModelResolver.d.ts +4 -0
  547. package/dist/server/WorkerModelResolver.d.ts.map +1 -1
  548. package/dist/server/WorkerModelResolver.js +72 -39
  549. package/dist/server/WorkerModelResolver.js.map +1 -1
  550. package/dist/server/WorkspaceCapabilities.d.ts +21 -0
  551. package/dist/server/WorkspaceCapabilities.d.ts.map +1 -0
  552. package/dist/server/{WorkerCapabilities.js → WorkspaceCapabilities.js} +40 -40
  553. package/dist/server/WorkspaceCapabilities.js.map +1 -0
  554. package/dist/server/WorkspaceResidency.d.ts +38 -0
  555. package/dist/server/WorkspaceResidency.d.ts.map +1 -0
  556. package/dist/server/WorkspaceResidency.js +226 -0
  557. package/dist/server/WorkspaceResidency.js.map +1 -0
  558. package/dist/server/client-input.d.ts +1 -4
  559. package/dist/server/client-input.d.ts.map +1 -1
  560. package/dist/server/client-input.js +5 -46
  561. package/dist/server/client-input.js.map +1 -1
  562. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  563. package/dist/server/dispatch-as-plurnk.js +4 -22
  564. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  565. package/dist/server/drain.sql +66 -43
  566. package/dist/server/envelope.d.ts +8 -1
  567. package/dist/server/envelope.d.ts.map +1 -1
  568. package/dist/server/envelope.js +9 -19
  569. package/dist/server/envelope.js.map +1 -1
  570. package/dist/server/envelope.sql +49 -13
  571. package/dist/server/lifecycle-recovery.sql +18 -20
  572. package/dist/server/logEntry.d.ts +1 -1
  573. package/dist/server/logEntry.d.ts.map +1 -1
  574. package/dist/server/logEntry.js +4 -1
  575. package/dist/server/logEntry.js.map +1 -1
  576. package/dist/server/logEntry.sql +25 -1
  577. package/dist/server/loopDocs.d.ts +2 -2
  578. package/dist/server/loopDocs.d.ts.map +1 -1
  579. package/dist/server/loopDocs.js +38 -31
  580. package/dist/server/loopDocs.js.map +1 -1
  581. package/dist/server/loopDocs.sql +1 -3
  582. package/dist/server/model-catalog.d.ts.map +1 -1
  583. package/dist/server/model-catalog.js +2 -1
  584. package/dist/server/model-catalog.js.map +1 -1
  585. package/dist/server/model-route.d.ts +1 -1
  586. package/dist/server/model-route.d.ts.map +1 -1
  587. package/dist/server/model-route.js +4 -2
  588. package/dist/server/model-route.js.map +1 -1
  589. package/dist/server/seam-entry-read.sql +3 -4
  590. package/dist/server/seam-loop.sql +2 -9
  591. package/dist/server/workspace-capabilities.sql +64 -0
  592. package/dist/service.d.ts.map +1 -1
  593. package/dist/service.js +21 -18
  594. package/dist/service.js.map +1 -1
  595. package/docs/env.md +55 -0
  596. package/docs/members.md +83 -0
  597. package/docs/skills.md +50 -0
  598. package/migrations/001_workspaces.sql +53 -0
  599. package/migrations/002_workers.sql +198 -0
  600. package/migrations/003_loops.sql +326 -0
  601. package/migrations/004_inference.sql +401 -0
  602. package/migrations/005_entries.sql +215 -0
  603. package/migrations/006_log.sql +581 -0
  604. package/migrations/007_subscriptions.sql +175 -0
  605. package/migrations/008_interactions.sql +29 -0
  606. package/package.json +44 -41
  607. package/digest-sql/channel-dispositions/dispositions.sql +0 -15
  608. package/digest-sql/channel-state/state.sql +0 -6
  609. package/digest-sql/curation/curation.sql +0 -6
  610. package/digest-sql/derivations/derivations.sql +0 -4
  611. package/digest-sql/embeddings/embeddings.sql +0 -4
  612. package/digest-sql/entry-dispositions/dispositions.sql +0 -15
  613. package/digest-sql/entry-state/state.sql +0 -6
  614. package/digest-sql/token-counts/token-counts.sql +0 -2
  615. package/dist/core/EmbeddingCall.d.ts +0 -23
  616. package/dist/core/EmbeddingCall.d.ts.map +0 -1
  617. package/dist/core/EmbeddingCall.js +0 -149
  618. package/dist/core/EmbeddingCall.js.map +0 -1
  619. package/dist/core/OverflowTurn.d.ts +0 -11
  620. package/dist/core/OverflowTurn.d.ts.map +0 -1
  621. package/dist/core/OverflowTurn.js +0 -80
  622. package/dist/core/OverflowTurn.js.map +0 -1
  623. package/dist/core/Owner.d.ts +0 -8
  624. package/dist/core/Owner.d.ts.map +0 -1
  625. package/dist/core/Owner.js +0 -46
  626. package/dist/core/Owner.js.map +0 -1
  627. package/dist/core/SendBroadcastHandler.d.ts.map +0 -1
  628. package/dist/core/SendBroadcastHandler.js +0 -159
  629. package/dist/core/SendBroadcastHandler.js.map +0 -1
  630. package/dist/core/VectorPump.d.ts +0 -28
  631. package/dist/core/VectorPump.d.ts.map +0 -1
  632. package/dist/core/VectorPump.js +0 -130
  633. package/dist/core/VectorPump.js.map +0 -1
  634. package/dist/core/owner.sql +0 -11
  635. package/dist/core/worker-settings.d.ts +0 -10
  636. package/dist/core/worker-settings.d.ts.map +0 -1
  637. package/dist/core/worker-settings.js +0 -53
  638. package/dist/core/worker-settings.js.map +0 -1
  639. package/dist/schemes/_entry-chunk.d.ts +0 -14
  640. package/dist/schemes/_entry-chunk.d.ts.map +0 -1
  641. package/dist/schemes/_entry-chunk.js +0 -165
  642. package/dist/schemes/_entry-chunk.js.map +0 -1
  643. package/dist/schemes/_entry-semantic.d.ts +0 -63
  644. package/dist/schemes/_entry-semantic.d.ts.map +0 -1
  645. package/dist/schemes/_entry-semantic.js +0 -299
  646. package/dist/schemes/_entry-semantic.js.map +0 -1
  647. package/dist/schemes/_entry-semantic.sql +0 -99
  648. package/dist/schemes/cosine.d.ts +0 -4
  649. package/dist/schemes/cosine.d.ts.map +0 -1
  650. package/dist/schemes/cosine.js +0 -9
  651. package/dist/schemes/cosine.js.map +0 -1
  652. package/dist/server/WorkerCapabilities.d.ts +0 -21
  653. package/dist/server/WorkerCapabilities.d.ts.map +0 -1
  654. package/dist/server/WorkerCapabilities.js.map +0 -1
  655. package/dist/server/WorkerResidency.d.ts +0 -40
  656. package/dist/server/WorkerResidency.d.ts.map +0 -1
  657. package/dist/server/WorkerResidency.js +0 -283
  658. package/dist/server/WorkerResidency.js.map +0 -1
  659. package/dist/server/seam-log-read.sql +0 -21
  660. package/dist/server/worker-capabilities.sql +0 -28
  661. package/migrations/001_schema.sql +0 -2207
package/docs/env.md ADDED
@@ -0,0 +1,55 @@
1
+ # env
2
+
3
+ Every command you run receives a composed environment, never the host's. The
4
+ ambient names are what the operator's ceiling admits; your own entries sit above
5
+ them, and both are yours to shape. `list` shows exactly what your next command
6
+ will see, each value with its origin.
7
+
8
+ ## Your entries
9
+
10
+ `add` sets one variable for every command you run from now on. The name is the
11
+ alias, `{ "value": "…" }` the definition, used verbatim: no interpolation, no
12
+ escapes. It persists until you `remove` it. This is a registry, not a prefix —
13
+ `CARGO_TARGET_DIR=/tmp/x cargo build` sets a value for one command; `add` sets
14
+ it for all of them.
15
+
16
+ `disable` withdraws a name from your commands while keeping the entry listed;
17
+ `enable` restores it. For an ambient name that is how `CI=1` goes away for you
18
+ alone, without the operator changing anything. `remove` forgets your own entry;
19
+ an ambient name of the same alias reappears, disabled, so removal never quietly
20
+ changes what your next command sees.
21
+
22
+ Your entries are yours: another worker's commands do not see them. A worker
23
+ you spawn starts with a copy of them — `list` shows those as inherited from
24
+ you — and its changes never reach yours.
25
+
26
+ ## For one command, or for one child
27
+
28
+ The heading's `[metadata]` takes `env`. On a command fence it is that run's
29
+ environment, over your entries, and it is gone when the run ends:
30
+
31
+ ````sh [{"env": {"RUST_LOG": "debug"}}]
32
+ cargo test
33
+ ````
34
+
35
+ On `WORK` and `FORK` it is the child's starting environment: the child gets a
36
+ copy of your entries first, then each name here becomes its own, so you hand
37
+ down your registry and override what one child needs in the same line:
38
+
39
+ ````WORK (worker://builder) [{"env": {"CARGO_TARGET_DIR": "/tmp/builder"}}]
40
+ Build the crate and report the warnings.
41
+ ````
42
+
43
+ ## Names you cannot set
44
+
45
+ `PLURNK_*` and provider credential names are plurnk's own and never reach a
46
+ command, so `add` refuses them and tells you why.
47
+
48
+ ## Finding a name
49
+
50
+ `discover` is this installation's configuration catalog: every knob an installed
51
+ package declares, with the declaring package as its provenance and its own
52
+ comment as the summary. It is not a permissions list — you may set any name —
53
+ it tells you which names have a consumer, and it is how you learn the name of a
54
+ value only the operator can supply. Refer to such a value by its name; you never
55
+ need to see it.
@@ -0,0 +1,83 @@
1
+ # members
2
+
3
+ Membership is the only door to the project's files. A project file is exactly
4
+ one of three things to this workspace: **tracked by git**, **added** by a
5
+ definition, or **invisible**. Nothing is a member because it exists on disk or
6
+ because git happens not to ignore it. What you can `READ`, `FIND`, and `EDIT`
7
+ is `(tracked ∪ include) − exclude`, and the catalog at turn 0 shows exactly
8
+ that set.
9
+
10
+ ## What makes a file visible
11
+
12
+ | A file is a member because | How it got there |
13
+ | --- | --- |
14
+ | git tracks it | it was committed or staged (`git ls-files`), refreshed every turn |
15
+ | a definition includes it | an enabled `members` definition — a gitignore-style glob such as `docs/**` |
16
+ | plurnk created it | a file your accepted `EDIT`, `COPY`, or `MOVE` wrote gets an exact creation record; it is a member without any `git add` |
17
+
18
+ An exclusion (`!glob`) wins over every inclusion. A model definition never
19
+ includes a path the repository ignores.
20
+
21
+ ## What you may change here
22
+
23
+ Your `add` is admitted against the operator's ceiling
24
+ `PLURNK_SERVICE_MEMBERS_MODEL_SCOPE`, narrowed by the workspace:
25
+
26
+ | Scope | A model definition may include |
27
+ | --- | --- |
28
+ | `none` | nothing — every `add` from the model is refused `403 model-scope` |
29
+ | `root` | paths inside the project root |
30
+ | `namespace` (shipped default) | those plus canonical `../` paths outside the root |
31
+
32
+ The scope refuses an `add` you author from a turn; a client's `/members add`
33
+ and the operator's `PLURNK_MEMBERS_<ALIAS>=<glob>` definitions are not bound
34
+ by it. `discover` always works: a path answers why it is or is not visible; a
35
+ glob previews what `add` would resolve to.
36
+
37
+ ## When a file you need is not a member
38
+
39
+ Ask first: `members (discover)` with `{"query": "build/report.json"}`
40
+ says `tracked`, `included by …`, `a creation record`, `excluded by …`,
41
+ `ignored`, `untracked`, or `absent`.
42
+
43
+ - **Untracked and you are allowed to add** (`root` or `namespace`): add a
44
+ definition and it is a member from the next turn.
45
+
46
+ ````members (add) <!-- include the generated reports -->
47
+ {"alias": "reports", "definition": {"glob": "build/*.json"}}
48
+ ````
49
+
50
+ - **Untracked and the scope is `none`** (an operator narrowed it): the refusal
51
+ names the recovery, and it is not a trick — make git track the file. Staging
52
+ is enough; no commit is needed, and membership refreshes at your next turn.
53
+
54
+ ````sh <!-- git tracks it, so it becomes a member -->
55
+ git add build/report.json
56
+ ````
57
+
58
+ Or ask the user to add it (`/members add`) or to raise the scope. Do not
59
+ loop on `add`; the scope will not change mid-turn.
60
+
61
+ - **Ignored by the repository**: no model definition can include it, and
62
+ `git add` refuses it too. Only a client or operator definition covers an
63
+ ignored path; say so and ask.
64
+
65
+ - **Excluded by `!glob`**: an exclusion is deliberate; ask the user before
66
+ working around it.
67
+
68
+ ## Files you create
69
+
70
+ An `EDIT` to a path that does not exist creates it when the file-creation
71
+ scope admits it (`PLURNK_SERVICE_FILE_CREATE_SCOPE`, shipped `root`: inside
72
+ the project root only). The new file is a member immediately through its
73
+ creation record — you never need `git add` for your own creations. Deleting
74
+ it (`KILL`) retires the record.
75
+
76
+ ## Definitions belong to the workspace
77
+
78
+ `list` shows every definition with its origin (`service` from the operator's
79
+ environment, `workspace` from an `add`) and whether it is enabled. `enable` and
80
+ `disable` flip one shared alias; `remove` deletes a workspace-added definition
81
+ (service definitions can only be disabled). Changes apply to every worker.
82
+ Each enabled definition is projected as
83
+ `worker:///_plurnk/members/<alias>.md` showing what its glob resolved to.
package/docs/skills.md ADDED
@@ -0,0 +1,50 @@
1
+ # skills
2
+
3
+ An Agent Skill is a directory holding a `SKILL.md` (standard `name` and
4
+ `description` frontmatter, then instructions) and optionally references,
5
+ scripts, and assets beside it. Skills are how a project or a user hands you
6
+ procedures and tools without pasting them into every conversation. Enabled
7
+ skills appear in the turn-0 catalog as `skill://<name>/SKILL.md`; nothing is
8
+ injected until you `READ` it.
9
+
10
+ ## Where skills come from
11
+
12
+ | Scope | Root | Who put it there |
13
+ | --- | --- | --- |
14
+ | `project` | `<project root>/.agents/skills/<name>/` | the repository (often committed) |
15
+ | `global` | `~/.agents/skills/<name>/` | the user, for every project |
16
+ | `service` | a tree the service itself provides | plurnk (for example the `plurnk` skill: its own configuration and model reference) |
17
+
18
+ A `project` skill shadows a `global` one of the same name, which shadows a
19
+ `service` one. Every installed skill is a service-origin definition, enabled
20
+ by default; a disabled skill is invisible to you but still listed for the
21
+ client.
22
+
23
+ ## Read before you install
24
+
25
+ The instructions are the skill: `READ (skill://<name>/SKILL.md)` for the
26
+ procedure, `FIND (skill://<name>/**)` for its files, and
27
+ `runtime (skill://<name>/scripts/<program>)` to run one of its scripts
28
+ under the ordinary proposal policy. Skill resources are read-only; you do not
29
+ `EDIT` an installed skill.
30
+
31
+ Reach for `discover` when the task names a capability no enabled skill
32
+ provides: `{"query": "..."}` searches the standard registry and returns one
33
+ candidate per hit with its exact `owner/repo` source; `{"source": "owner/repo"}`
34
+ lists the skills one package contains. Discovery never installs anything.
35
+
36
+ ## Installing
37
+
38
+ `add` installs a skill through the standard installer and enables it:
39
+
40
+ ````skills (add) <!-- from a discover candidate -->
41
+ {"alias": "sql-formatter", "definition": {"name": "sql-formatter", "scope": "project", "source": "example/skills"}}
42
+ ````
43
+
44
+ The alias must equal the skill's `name`; `source` is required unless the
45
+ directory already exists; `scope: "project"` needs a project root and writes
46
+ under `.agents/skills`. Installation is a host effect, so it proposes and runs
47
+ only on acceptance. A skill that fails to install or has invalid frontmatter is
48
+ listed `unavailable` with its exact Problem — one bad skill never disables the
49
+ family. `remove` uninstalls the workspace-added skill; service skills can only
50
+ be disabled.
@@ -0,0 +1,53 @@
1
+ -- MIGRATE: 1 workspaces
2
+ -- Chapter 1 of the schema baseline ({§db-schema-baseline}): The workspace: identity, module state, membership constraints.
3
+ -- Version numbers order the chapters on a fresh database; they are not history. A shape
4
+ -- change edits the chapter in place; existing development databases are recreated.
5
+
6
+ -- workspaces
7
+ -- project_root: workspace pointer. NULL = headless (no disk side-effects);
8
+ -- non-null = absolute path to the client's source tree, supplied at
9
+ -- workspace.create or workspace.set_root.
10
+ CREATE TABLE IF NOT EXISTS workspaces (
11
+ id INTEGER NOT NULL PRIMARY KEY,
12
+ version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
13
+ name TEXT NOT NULL UNIQUE CHECK (length(name) > 0),
14
+ created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
15
+ project_root TEXT,
16
+ -- {§operator-config} validated client workspace settings; each field composes
17
+ -- with operator configuration at its owning use site.
18
+ settings TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(settings))
19
+ ) STRICT;
20
+
21
+ CREATE INDEX IF NOT EXISTS workspaces_created_at ON workspaces (created_at);
22
+
23
+ -- {§module-workspace-state}: one provider-validated snapshot per workspace.
24
+ CREATE TABLE IF NOT EXISTS workspace_module_state (
25
+ workspace_id INTEGER NOT NULL,
26
+ namespace_owner TEXT NOT NULL CHECK (length(namespace_owner) > 0),
27
+ state TEXT NOT NULL CHECK (json_valid(state)),
28
+ updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
29
+ PRIMARY KEY (workspace_id, namespace_owner),
30
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE
31
+ ) STRICT;
32
+
33
+ -- workspace_constraints
34
+ -- SPEC {§membership} constraint overlay — explicit policy and the inspectable
35
+ -- exact pick produced by accepted file creation share one representation.
36
+ -- Per (workspace, effect, glob/target): `pick` (members git misses, resolved by a
37
+ -- targeted client-dictated scan), `hide` (drop git-tracked matches), `view` (member
38
+ -- for read; File.edit rejects the write). git-absent, `pick` rows are the sole substrate
39
+ -- source. Composed at membership resolution; node:path.matchesGlob.
40
+ CREATE TABLE IF NOT EXISTS workspace_constraints (
41
+ workspace_id INTEGER NOT NULL,
42
+ -- include admits files git misses; exclude removes members — the members family's lexicon
43
+ -- ({§members-projection}). An inclusion is a pattern scan; a creation record is one exact path.
44
+ effect TEXT NOT NULL CHECK (effect IN ('include', 'exclude')),
45
+ glob TEXT NOT NULL,
46
+ -- create: the exact record of a file Plurnk wrote ({§fs-create-record}); members: a
47
+ -- human-authored definition projected by the members family; model: a definition the model
48
+ -- proposed under the members scope — never admitted past the repository's ignore rules.
49
+ source TEXT NOT NULL CHECK (source IN ('create', 'members', 'model')),
50
+ CHECK (source IN ('members', 'model') OR effect = 'include'),
51
+ PRIMARY KEY (workspace_id, effect, glob),
52
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE
53
+ ) STRICT, WITHOUT ROWID;
@@ -0,0 +1,198 @@
1
+ -- MIGRATE: 2 workers
2
+ -- Chapter 2 of the schema baseline ({§db-schema-baseline}): Workers over a workspace, their model routes, and the ambient event feed their siblings observe.
3
+ -- Version numbers order the chapters on a fresh database; they are not history. A shape
4
+ -- change edits the chapter in place; existing development databases are recreated.
5
+
6
+ -- model_routes — the immutable resolved model route ({§worker-model-selection}). One row per
7
+ -- complete resolved tuple; append-only. Alias is provenance plus a tuning scope,
8
+ -- not route identity, and is absent on a direct provider/model selection.
9
+ CREATE TABLE IF NOT EXISTS model_routes (
10
+ id INTEGER NOT NULL PRIMARY KEY,
11
+ alias TEXT CHECK (alias IS NULL OR length(alias) > 0),
12
+ provider TEXT NOT NULL CHECK (length(provider) > 0),
13
+ model TEXT NOT NULL CHECK (length(model) > 0),
14
+ base_url TEXT CHECK (base_url IS NULL OR length(base_url) > 0),
15
+ created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
16
+ ) STRICT;
17
+
18
+ CREATE UNIQUE INDEX IF NOT EXISTS model_routes_identity
19
+ ON model_routes (coalesce(alias, ''), provider, model, coalesce(base_url, ''));
20
+
21
+ -- workers
22
+ CREATE TABLE IF NOT EXISTS workers (
23
+ id INTEGER NOT NULL PRIMARY KEY,
24
+ version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
25
+ workspace_id INTEGER NOT NULL,
26
+ -- {§loop-wake-identity}: completion events, not packet/log curation state.
27
+ wake_revision INTEGER NOT NULL DEFAULT 0 CHECK (wake_revision >= 0),
28
+ name TEXT NOT NULL CHECK (length(name) > 0),
29
+ created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
30
+ -- {§worker-provider-identity}: provider affinity must not collide when
31
+ -- independent databases reuse local integer ids.
32
+ provider_identity TEXT NOT NULL DEFAULT (lower(hex(randomblob(16))))
33
+ CHECK (length(provider_identity) = 32 AND provider_identity NOT GLOB '*[^0-9a-f]*'),
34
+ -- {§worker-model-selection}: the worker's durable resolved model, NULL for non-model
35
+ -- workers or a deliberately modelless unresolved worker. spawn_model_route_id is the
36
+ -- persistent spawn override; NULL means "use my model."
37
+ model_route_id INTEGER REFERENCES model_routes(id),
38
+ spawn_model_route_id INTEGER REFERENCES model_routes(id),
39
+ -- {§worker-reasoning-policy}: nullable only while the worker has no model;
40
+ -- once selected, model and reasoning policy form one durable generation policy.
41
+ reasoning_policy TEXT CHECK (reasoning_policy IS NULL OR length(reasoning_policy) > 0),
42
+ -- {§worker-reasoning-source}: whether reasoning_policy was chosen (worker.reasoning.set)
43
+ -- or seeded from the alias configuration; a default never masquerades as a choice.
44
+ reasoning_source TEXT NOT NULL DEFAULT 'default' CHECK (reasoning_source IN ('default', 'explicit')),
45
+ -- workers fork via parent_worker_id; workspaces carry no parent — {§machine-processes-no-fork-workspace}
46
+ parent_worker_id INTEGER CHECK (parent_worker_id IS NULL OR parent_worker_id != id),
47
+ origin TEXT NOT NULL DEFAULT 'client' CHECK (origin IN ('model', 'client', '_plurnk')),
48
+ -- {§methods-model-worker}: durable identity for the workspace's stable
49
+ -- default conversation; separate from its literal name.
50
+ default_conversation INTEGER NOT NULL DEFAULT 0 CHECK (default_conversation IN (0, 1)),
51
+ -- {§worker-causal-admission}: cancellation retires unread arrivals without rewriting history.
52
+ cancelled_through_sequence INTEGER NOT NULL DEFAULT 0 CHECK (cancelled_through_sequence >= 0),
53
+ -- The Problem the latest cancellation delivered to this worker's live loops; writing it is
54
+ -- the cancellation ({§worker-cancel-trigger}). NULL until the worker's scope is first cancelled.
55
+ cancellation TEXT CHECK (cancellation IS NULL OR (json_valid(cancellation) AND json_extract(cancellation, '$.status') = 499)),
56
+ -- {§env-delta-log-pull}: monotonic observation progress, not a private world snapshot.
57
+ -- Creation captures the workspace high-water; a fork instead copies its
58
+ -- parent's cursor and records the closed event boundary of its snapshot.
59
+ ambient_event_cursor INTEGER CHECK (ambient_event_cursor IS NULL OR ambient_event_cursor >= 0),
60
+ fork_event_boundary INTEGER CHECK (fork_event_boundary IS NULL OR fork_event_boundary >= 0),
61
+ CHECK (fork_event_boundary IS NULL OR parent_worker_id IS NOT NULL),
62
+ CHECK (default_conversation = 0 OR (origin = 'model' AND parent_worker_id IS NULL)),
63
+ CHECK ((model_route_id IS NULL) = (reasoning_policy IS NULL)),
64
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
65
+ FOREIGN KEY (parent_worker_id) REFERENCES workers(id) ON DELETE CASCADE
66
+ ) STRICT;
67
+
68
+ CREATE INDEX IF NOT EXISTS workers_workspace_id_created_at ON workers (workspace_id, created_at);
69
+
70
+ CREATE INDEX IF NOT EXISTS workers_parent_worker_id ON workers (parent_worker_id);
71
+
72
+ CREATE UNIQUE INDEX IF NOT EXISTS workers_provider_identity ON workers (provider_identity);
73
+
74
+ CREATE UNIQUE INDEX IF NOT EXISTS workers_workspace_default_conversation
75
+ ON workers (workspace_id) WHERE default_conversation = 1;
76
+
77
+ -- {§worker-scheme-spawn}: a retained name cannot be rebound to another actor.
78
+ CREATE UNIQUE INDEX IF NOT EXISTS workers_workspace_name ON workers (workspace_id, name);
79
+
80
+ -- {§db-fk-indexes} Foreign-key check paths: without these, updating or replacing a route scans every worker.
81
+ CREATE INDEX IF NOT EXISTS workers_model_route_id ON workers (model_route_id) WHERE model_route_id IS NOT NULL;
82
+
83
+ CREATE INDEX IF NOT EXISTS workers_spawn_model_route_id ON workers (spawn_model_route_id) WHERE spawn_model_route_id IS NOT NULL;
84
+
85
+ CREATE TRIGGER IF NOT EXISTS workers_provider_identity_immutable
86
+ BEFORE UPDATE OF provider_identity ON workers
87
+ WHEN NEW.provider_identity != OLD.provider_identity
88
+ BEGIN
89
+ SELECT RAISE(ABORT, 'workers.provider_identity is immutable');
90
+ END;
91
+
92
+ CREATE TRIGGER IF NOT EXISTS workers_fork_event_boundary_immutable
93
+ BEFORE UPDATE OF fork_event_boundary ON workers
94
+ WHEN NEW.fork_event_boundary IS NOT OLD.fork_event_boundary
95
+ BEGIN
96
+ SELECT RAISE(ABORT, 'workers.fork_event_boundary is immutable');
97
+ END;
98
+
99
+ -- {§env-delta-log-pull}: one append-only occurrence journal gives every
100
+ -- producer a shared monotonic order. Audience is structural: direct parent,
101
+ -- explicit workspace broadcast, or their union. The event snapshots exactly
102
+ -- what an observer row needs because source-log curation cannot erase history.
103
+ -- source_record_id is forensic identity for the originating log/loop row, not a
104
+ -- foreign key: model log curation must not erase an already-recorded occurrence.
105
+ CREATE TABLE IF NOT EXISTS ambient_events (
106
+ id INTEGER NOT NULL PRIMARY KEY,
107
+ workspace_id INTEGER NOT NULL,
108
+ producer_worker_id INTEGER NOT NULL,
109
+ target_parent_worker_id INTEGER,
110
+ workspace_broadcast INTEGER NOT NULL DEFAULT 0 CHECK (workspace_broadcast IN (0, 1)),
111
+ kind TEXT NOT NULL CHECK (kind IN ('activity', 'loop_termination')),
112
+ source_record_id INTEGER NOT NULL CHECK (source_record_id >= 1),
113
+ at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
114
+ source TEXT,
115
+ op TEXT NOT NULL,
116
+ signal TEXT CHECK (signal IS NULL OR json_valid(signal)),
117
+ scheme TEXT,
118
+ username TEXT,
119
+ password TEXT,
120
+ hostname TEXT,
121
+ port INTEGER CHECK (port IS NULL OR (port BETWEEN 0 AND 65535)),
122
+ pathname TEXT,
123
+ query TEXT,
124
+ fragment TEXT,
125
+ line_marker TEXT CHECK (line_marker IS NULL OR json_valid(line_marker)),
126
+ tx TEXT NOT NULL,
127
+ mimetype_tx TEXT NOT NULL CHECK (length(mimetype_tx) > 0),
128
+ rx TEXT NOT NULL,
129
+ mimetype_rx TEXT NOT NULL CHECK (length(mimetype_rx) > 0),
130
+ status_rx INTEGER NOT NULL CHECK (status_rx BETWEEN 100 AND 599),
131
+ state TEXT NOT NULL CHECK (state IN ('resolved', 'failed', 'cancelled')),
132
+ outcome TEXT,
133
+ attrs TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(attrs)),
134
+ terminated_by TEXT CHECK (terminated_by IS NULL OR terminated_by = 'cancel'),
135
+ CHECK (target_parent_worker_id IS NOT NULL OR workspace_broadcast = 1),
136
+ CHECK (
137
+ (kind = 'activity' AND terminated_by IS NULL)
138
+ OR
139
+ (kind = 'loop_termination'
140
+ AND op = 'SEND'
141
+ -- {§env-delta-child-termination}: a message from the concluded child;
142
+ -- `source` names the actor and its READ address (#567, operator 2026-09-07).
143
+ AND scheme IS NULL
144
+ AND pathname IS NULL
145
+ AND json_valid(rx)
146
+ AND json_type(rx) = 'object'
147
+ AND json_type(rx, '$.status') = 'integer'
148
+ AND json_extract(rx, '$.status') = status_rx)
149
+ ),
150
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
151
+ FOREIGN KEY (producer_worker_id) REFERENCES workers(id) ON DELETE CASCADE,
152
+ FOREIGN KEY (target_parent_worker_id) REFERENCES workers(id) ON DELETE CASCADE
153
+ ) STRICT;
154
+
155
+ CREATE INDEX IF NOT EXISTS ambient_events_workspace_id_id
156
+ ON ambient_events (workspace_id, id);
157
+
158
+ -- {§db-index-owners} Producer deletion's foreign-key check walks its events by producer; no registry statement selects by it.
159
+ CREATE INDEX IF NOT EXISTS ambient_events_producer_kind_id
160
+ ON ambient_events (producer_worker_id, kind, id);
161
+
162
+ CREATE INDEX IF NOT EXISTS ambient_events_parent_id
163
+ ON ambient_events (target_parent_worker_id, id)
164
+ WHERE target_parent_worker_id IS NOT NULL;
165
+
166
+ CREATE UNIQUE INDEX IF NOT EXISTS ambient_events_source_identity
167
+ ON ambient_events (producer_worker_id, kind, source_record_id);
168
+
169
+ CREATE TRIGGER IF NOT EXISTS ambient_events_structural_audience
170
+ BEFORE INSERT ON ambient_events
171
+ WHEN NOT EXISTS (
172
+ SELECT 1
173
+ FROM workers producer
174
+ WHERE producer.id = NEW.producer_worker_id
175
+ AND producer.workspace_id = NEW.workspace_id
176
+ AND (
177
+ NEW.target_parent_worker_id IS NULL
178
+ OR NEW.target_parent_worker_id = producer.parent_worker_id
179
+ )
180
+ )
181
+ BEGIN
182
+ SELECT RAISE(ABORT, 'ambient event audience must be the producer direct parent in the same workspace');
183
+ END;
184
+
185
+ -- {§module-workspace-state}: the same provider-validated snapshot, owned by a WORKER rather
186
+ -- than a workspace. A family declares which scope its definitions belong to; `env` is the first
187
+ -- worker-scoped one, because an environment is context (how this worker works) rather than
188
+ -- capability (what exists in this workspace). A sibling table rather than a nullable column on
189
+ -- workspace_module_state: the foreign key is real, so a worker's definitions die with it, and
190
+ -- every identity component stays NOT NULL ({§entry-identity-no-null}).
191
+ CREATE TABLE IF NOT EXISTS worker_module_state (
192
+ worker_id INTEGER NOT NULL,
193
+ namespace_owner TEXT NOT NULL CHECK (length(namespace_owner) > 0),
194
+ state TEXT NOT NULL CHECK (json_valid(state)),
195
+ updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
196
+ PRIMARY KEY (worker_id, namespace_owner),
197
+ FOREIGN KEY (worker_id) REFERENCES workers(id) ON DELETE CASCADE
198
+ ) STRICT;