@plurnk/plurnk-service 4.2.1 → 4.3.1

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 (448) hide show
  1. package/INSTALL.md +7 -2
  2. package/README.md +3 -1
  3. package/SPEC.md +1988 -1408
  4. package/dist/build-info.d.ts.map +1 -1
  5. package/dist/build-info.js +25 -3
  6. package/dist/build-info.js.map +1 -1
  7. package/dist/build-info.json +1 -1
  8. package/dist/completions/_plurnk-service +1 -1
  9. package/dist/completions/plurnk-service.bash +1 -1
  10. package/dist/completions/plurnk-service.fish +1 -0
  11. package/dist/content/body-preview.js.map +1 -1
  12. package/dist/content/byte-view.d.ts.map +1 -1
  13. package/dist/content/byte-view.js +3 -2
  14. package/dist/content/byte-view.js.map +1 -1
  15. package/dist/content/edit-collision.d.ts +2 -1
  16. package/dist/content/edit-collision.d.ts.map +1 -1
  17. package/dist/content/edit-collision.js.map +1 -1
  18. package/dist/content/edit-receipt.d.ts.map +1 -1
  19. package/dist/content/edit-receipt.js +28 -23
  20. package/dist/content/edit-receipt.js.map +1 -1
  21. package/dist/content/edited-span.js +1 -1
  22. package/dist/content/edited-span.js.map +1 -1
  23. package/dist/content/line-anchors.d.ts +3 -2
  24. package/dist/content/line-anchors.d.ts.map +1 -1
  25. package/dist/content/line-anchors.js +33 -19
  26. package/dist/content/line-anchors.js.map +1 -1
  27. package/dist/content/line-selection.js.map +1 -1
  28. package/dist/content/pattern-edits.js +1 -1
  29. package/dist/content/pattern-edits.js.map +1 -1
  30. package/dist/content/read-projector.d.ts +1 -1
  31. package/dist/content/read-projector.d.ts.map +1 -1
  32. package/dist/content/read-projector.js +10 -8
  33. package/dist/content/read-projector.js.map +1 -1
  34. package/dist/content/read-resolve.d.ts.map +1 -1
  35. package/dist/content/read-resolve.js +6 -5
  36. package/dist/content/read-resolve.js.map +1 -1
  37. package/dist/core/AdmittedTurnExecutor.d.ts +4 -4
  38. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
  39. package/dist/core/AdmittedTurnExecutor.js +20 -18
  40. package/dist/core/AdmittedTurnExecutor.js.map +1 -1
  41. package/dist/core/AmbientMembers.d.ts +1 -1
  42. package/dist/core/AmbientMembers.d.ts.map +1 -1
  43. package/dist/core/AmbientMembers.js +5 -2
  44. package/dist/core/AmbientMembers.js.map +1 -1
  45. package/dist/core/BareBatchRunner.d.ts +1 -1
  46. package/dist/core/BareBatchRunner.d.ts.map +1 -1
  47. package/dist/core/BareBatchRunner.js +2 -2
  48. package/dist/core/BareBatchRunner.js.map +1 -1
  49. package/dist/core/CapabilityPolicies.js.map +1 -1
  50. package/dist/core/CapabilityResolver.d.ts +1 -2
  51. package/dist/core/CapabilityResolver.d.ts.map +1 -1
  52. package/dist/core/CapabilityResolver.js +11 -7
  53. package/dist/core/CapabilityResolver.js.map +1 -1
  54. package/dist/core/ChannelWrite.d.ts +2 -2
  55. package/dist/core/ChannelWrite.d.ts.map +1 -1
  56. package/dist/core/ChannelWrite.js.map +1 -1
  57. package/dist/core/ChannelWrite.sql +27 -0
  58. package/dist/core/ClientInteractions.js.map +1 -1
  59. package/dist/core/ContextFit.js +1 -1
  60. package/dist/core/ContextFit.js.map +1 -1
  61. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  62. package/dist/core/CoreSchemeServices.js +4 -4
  63. package/dist/core/CoreSchemeServices.js.map +1 -1
  64. package/dist/core/DataStatementRunner.d.ts.map +1 -1
  65. package/dist/core/DataStatementRunner.js +15 -15
  66. package/dist/core/DataStatementRunner.js.map +1 -1
  67. package/dist/core/Dispatcher.d.ts +29 -5
  68. package/dist/core/Dispatcher.d.ts.map +1 -1
  69. package/dist/core/Dispatcher.js +210 -130
  70. package/dist/core/Dispatcher.js.map +1 -1
  71. package/dist/core/EditMutations.d.ts.map +1 -1
  72. package/dist/core/EditMutations.js +12 -6
  73. package/dist/core/EditMutations.js.map +1 -1
  74. package/dist/core/EditSequence.js.map +1 -1
  75. package/dist/core/Engine.d.ts +15 -7
  76. package/dist/core/Engine.d.ts.map +1 -1
  77. package/dist/core/Engine.js +32 -7
  78. package/dist/core/Engine.js.map +1 -1
  79. package/dist/core/ExecutionOutputs.js.map +1 -1
  80. package/dist/core/ExecutorRegistry.d.ts +1 -2
  81. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  82. package/dist/core/ExecutorRegistry.js +2 -2
  83. package/dist/core/ExecutorRegistry.js.map +1 -1
  84. package/dist/core/FileAddress.js.map +1 -1
  85. package/dist/core/FilePublication.d.ts.map +1 -1
  86. package/dist/core/FilePublication.js +6 -3
  87. package/dist/core/FilePublication.js.map +1 -1
  88. package/dist/core/FileSnapshot.d.ts.map +1 -1
  89. package/dist/core/FileSnapshot.js +8 -5
  90. package/dist/core/FileSnapshot.js.map +1 -1
  91. package/dist/core/KillHandler.d.ts.map +1 -1
  92. package/dist/core/KillHandler.js +7 -0
  93. package/dist/core/KillHandler.js.map +1 -1
  94. package/dist/core/LiveSubscription.d.ts +1 -0
  95. package/dist/core/LiveSubscription.d.ts.map +1 -1
  96. package/dist/core/LiveSubscription.js +3 -2
  97. package/dist/core/LiveSubscription.js.map +1 -1
  98. package/dist/core/LiveSubscriptions.d.ts +4 -1
  99. package/dist/core/LiveSubscriptions.d.ts.map +1 -1
  100. package/dist/core/LiveSubscriptions.js +42 -1
  101. package/dist/core/LiveSubscriptions.js.map +1 -1
  102. package/dist/core/LogBody.d.ts.map +1 -1
  103. package/dist/core/LogBody.js +22 -19
  104. package/dist/core/LogBody.js.map +1 -1
  105. package/dist/core/LogVisibility.d.ts +1 -1
  106. package/dist/core/LogVisibility.d.ts.map +1 -1
  107. package/dist/core/LogVisibility.js +4 -6
  108. package/dist/core/LogVisibility.js.map +1 -1
  109. package/dist/core/LogWriter.d.ts.map +1 -1
  110. package/dist/core/LogWriter.js +6 -9
  111. package/dist/core/LogWriter.js.map +1 -1
  112. package/dist/core/LoopDriver.d.ts +4 -4
  113. package/dist/core/LoopDriver.d.ts.map +1 -1
  114. package/dist/core/LoopDriver.js +4 -5
  115. package/dist/core/LoopDriver.js.map +1 -1
  116. package/dist/core/LoopLifecycle.d.ts +2 -0
  117. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  118. package/dist/core/LoopLifecycle.js +13 -3
  119. package/dist/core/LoopLifecycle.js.map +1 -1
  120. package/dist/core/LoopLifecycle.sql +4 -4
  121. package/dist/core/LoopOutcome.d.ts.map +1 -1
  122. package/dist/core/LoopOutcome.js +2 -2
  123. package/dist/core/LoopOutcome.js.map +1 -1
  124. package/dist/core/MembershipMaterialization.d.ts.map +1 -1
  125. package/dist/core/MembershipMaterialization.js +29 -29
  126. package/dist/core/MembershipMaterialization.js.map +1 -1
  127. package/dist/core/MessageResources.d.ts +5 -1
  128. package/dist/core/MessageResources.d.ts.map +1 -1
  129. package/dist/core/MessageResources.js +12 -0
  130. package/dist/core/MessageResources.js.map +1 -1
  131. package/dist/core/MessageResources.sql +26 -0
  132. package/dist/core/MutationEffects.d.ts +1 -0
  133. package/dist/core/MutationEffects.d.ts.map +1 -1
  134. package/dist/core/MutationEffects.js +14 -10
  135. package/dist/core/MutationEffects.js.map +1 -1
  136. package/dist/core/OperationHistory.d.ts.map +1 -1
  137. package/dist/core/OperationHistory.js +4 -3
  138. package/dist/core/OperationHistory.js.map +1 -1
  139. package/dist/core/OperatorConfig.d.ts.map +1 -1
  140. package/dist/core/OperatorConfig.js +3 -2
  141. package/dist/core/OperatorConfig.js.map +1 -1
  142. package/dist/core/PacketBuilder.d.ts +3 -7
  143. package/dist/core/PacketBuilder.d.ts.map +1 -1
  144. package/dist/core/PacketBuilder.js +40 -31
  145. package/dist/core/PacketBuilder.js.map +1 -1
  146. package/dist/core/PacketBuilder.sql +11 -0
  147. package/dist/core/ProblemLog.d.ts +2 -5
  148. package/dist/core/ProblemLog.d.ts.map +1 -1
  149. package/dist/core/ProblemLog.js +2 -3
  150. package/dist/core/ProblemLog.js.map +1 -1
  151. package/dist/core/ProposalLifecycle.d.ts +12 -11
  152. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  153. package/dist/core/ProposalLifecycle.js +92 -84
  154. package/dist/core/ProposalLifecycle.js.map +1 -1
  155. package/dist/core/ReasoningEvent.d.ts +2 -0
  156. package/dist/core/ReasoningEvent.d.ts.map +1 -1
  157. package/dist/core/ReplyMetadata.d.ts.map +1 -1
  158. package/dist/core/ReplyMetadata.js +4 -3
  159. package/dist/core/ReplyMetadata.js.map +1 -1
  160. package/dist/core/ResourceBindings.d.ts +2 -2
  161. package/dist/core/ResourceBindings.d.ts.map +1 -1
  162. package/dist/core/ResourceBindings.js.map +1 -1
  163. package/dist/core/ResourceMutations.d.ts +1 -1
  164. package/dist/core/ResourceMutations.d.ts.map +1 -1
  165. package/dist/core/ResourceMutations.js +1 -2
  166. package/dist/core/ResourceMutations.js.map +1 -1
  167. package/dist/core/ResourceSelector.js +2 -2
  168. package/dist/core/ResourceSelector.js.map +1 -1
  169. package/dist/core/ResourceTransfers.d.ts.map +1 -1
  170. package/dist/core/ResourceTransfers.js +162 -120
  171. package/dist/core/ResourceTransfers.js.map +1 -1
  172. package/dist/core/SchemeRegistry.d.ts +6 -5
  173. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  174. package/dist/core/SchemeRegistry.js +32 -26
  175. package/dist/core/SchemeRegistry.js.map +1 -1
  176. package/dist/core/ServiceHelp.d.ts.map +1 -1
  177. package/dist/core/ServiceHelp.js +2 -1
  178. package/dist/core/ServiceHelp.js.map +1 -1
  179. package/dist/core/StoredPacket.d.ts.map +1 -1
  180. package/dist/core/StoredPacket.js +26 -19
  181. package/dist/core/StoredPacket.js.map +1 -1
  182. package/dist/core/StrikeRail.d.ts +1 -2
  183. package/dist/core/StrikeRail.d.ts.map +1 -1
  184. package/dist/core/StrikeRail.js +4 -4
  185. package/dist/core/StrikeRail.js.map +1 -1
  186. package/dist/core/TerminalResult.d.ts +0 -2
  187. package/dist/core/TerminalResult.d.ts.map +1 -1
  188. package/dist/core/TerminalResult.js +0 -18
  189. package/dist/core/TerminalResult.js.map +1 -1
  190. package/dist/core/TokenCalibration.d.ts +4 -2
  191. package/dist/core/TokenCalibration.d.ts.map +1 -1
  192. package/dist/core/TokenCalibration.js +30 -13
  193. package/dist/core/TokenCalibration.js.map +1 -1
  194. package/dist/core/TokenCalibration.sql +7 -17
  195. package/dist/core/ToolResources.d.ts +2 -1
  196. package/dist/core/ToolResources.d.ts.map +1 -1
  197. package/dist/core/ToolResources.js +10 -34
  198. package/dist/core/ToolResources.js.map +1 -1
  199. package/dist/core/TurnDispositionHandler.d.ts +1 -1
  200. package/dist/core/TurnDispositionHandler.d.ts.map +1 -1
  201. package/dist/core/TurnDispositionHandler.js +7 -3
  202. package/dist/core/TurnDispositionHandler.js.map +1 -1
  203. package/dist/core/TurnMaterialization.d.ts.map +1 -1
  204. package/dist/core/TurnMaterialization.js +3 -2
  205. package/dist/core/TurnMaterialization.js.map +1 -1
  206. package/dist/core/TurnRunner.d.ts +13 -12
  207. package/dist/core/TurnRunner.d.ts.map +1 -1
  208. package/dist/core/TurnRunner.js +198 -230
  209. package/dist/core/TurnRunner.js.map +1 -1
  210. package/dist/core/TurnRunner.sql +3 -3
  211. package/dist/core/WorkerOwners.js.map +1 -1
  212. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  213. package/dist/core/caps/DbMessageCaps.d.ts +3 -3
  214. package/dist/core/caps/DbMessageCaps.d.ts.map +1 -1
  215. package/dist/core/caps/DbProjectionCaps.js +1 -1
  216. package/dist/core/caps/DbProjectionCaps.js.map +1 -1
  217. package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
  218. package/dist/core/caps/DbSubscriptionCaps.js +1 -0
  219. package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
  220. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  221. package/dist/core/caps/SchemeCtxImpl.js +4 -1
  222. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  223. package/dist/core/env-catalog.js.map +1 -1
  224. package/dist/core/env-defaults.d.ts.map +1 -1
  225. package/dist/core/env-defaults.js +5 -3
  226. package/dist/core/env-defaults.js.map +1 -1
  227. package/dist/core/file-creation-policy.d.ts.map +1 -1
  228. package/dist/core/file-creation-policy.js +2 -1
  229. package/dist/core/file-creation-policy.js.map +1 -1
  230. package/dist/core/file-materialization.d.ts.map +1 -1
  231. package/dist/core/file-materialization.js +9 -11
  232. package/dist/core/file-materialization.js.map +1 -1
  233. package/dist/core/git-env.d.ts +1 -0
  234. package/dist/core/git-env.d.ts.map +1 -1
  235. package/dist/core/git-env.js +34 -3
  236. package/dist/core/git-env.js.map +1 -1
  237. package/dist/core/git-membership.d.ts +5 -0
  238. package/dist/core/git-membership.d.ts.map +1 -1
  239. package/dist/core/git-membership.js +55 -21
  240. package/dist/core/git-membership.js.map +1 -1
  241. package/dist/core/git-state.d.ts.map +1 -1
  242. package/dist/core/git-state.js +1 -0
  243. package/dist/core/git-state.js.map +1 -1
  244. package/dist/core/packet-wire.d.ts +26 -27
  245. package/dist/core/packet-wire.d.ts.map +1 -1
  246. package/dist/core/packet-wire.js +154 -132
  247. package/dist/core/packet-wire.js.map +1 -1
  248. package/dist/core/results.d.ts +9 -4
  249. package/dist/core/results.d.ts.map +1 -1
  250. package/dist/core/results.js +14 -1
  251. package/dist/core/results.js.map +1 -1
  252. package/dist/core/runtime-floor.d.ts +8 -0
  253. package/dist/core/runtime-floor.d.ts.map +1 -0
  254. package/dist/core/runtime-floor.js +40 -0
  255. package/dist/core/runtime-floor.js.map +1 -0
  256. package/dist/core/runtime-guard.d.ts +2 -0
  257. package/dist/core/runtime-guard.d.ts.map +1 -0
  258. package/dist/core/runtime-guard.js +5 -0
  259. package/dist/core/runtime-guard.js.map +1 -0
  260. package/dist/core/sqlite-synchronous.d.ts +1 -1
  261. package/dist/core/sqlite-synchronous.d.ts.map +1 -1
  262. package/dist/core/sqlite-synchronous.js.map +1 -1
  263. package/dist/core/statement-primary.d.ts +2 -2
  264. package/dist/core/statement-primary.d.ts.map +1 -1
  265. package/dist/core/statement-primary.js.map +1 -1
  266. package/dist/core/workspace-settings.js +1 -1
  267. package/dist/core/workspace-settings.js.map +1 -1
  268. package/dist/evidence/EvidenceReader.d.ts.map +1 -1
  269. package/dist/evidence/EvidenceReader.js +20 -6
  270. package/dist/evidence/EvidenceReader.js.map +1 -1
  271. package/dist/launch/Launch.d.ts +1 -0
  272. package/dist/launch/Launch.d.ts.map +1 -1
  273. package/dist/launch/Launch.js +28 -12
  274. package/dist/launch/Launch.js.map +1 -1
  275. package/dist/man/plurnk-service.1 +6 -2
  276. package/dist/schemes/EffectPolicy.js +1 -1
  277. package/dist/schemes/EffectPolicy.js.map +1 -1
  278. package/dist/schemes/Env.d.ts +1 -1
  279. package/dist/schemes/Env.d.ts.map +1 -1
  280. package/dist/schemes/Env.js +7 -1
  281. package/dist/schemes/Env.js.map +1 -1
  282. package/dist/schemes/Exec.d.ts +10 -12
  283. package/dist/schemes/Exec.d.ts.map +1 -1
  284. package/dist/schemes/Exec.js +337 -437
  285. package/dist/schemes/Exec.js.map +1 -1
  286. package/dist/schemes/ExecOutputScheme.d.ts +4 -6
  287. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  288. package/dist/schemes/ExecOutputScheme.js +17 -17
  289. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  290. package/dist/schemes/ExecScheduler.d.ts.map +1 -1
  291. package/dist/schemes/ExecScheduler.js +1 -2
  292. package/dist/schemes/ExecScheduler.js.map +1 -1
  293. package/dist/schemes/ExecutionInput.js +3 -3
  294. package/dist/schemes/ExecutionInput.js.map +1 -1
  295. package/dist/schemes/File.d.ts +3 -18
  296. package/dist/schemes/File.d.ts.map +1 -1
  297. package/dist/schemes/File.js +136 -79
  298. package/dist/schemes/File.js.map +1 -1
  299. package/dist/schemes/Log.d.ts.map +1 -1
  300. package/dist/schemes/Log.js +193 -161
  301. package/dist/schemes/Log.js.map +1 -1
  302. package/dist/schemes/QuestionTool.d.ts.map +1 -1
  303. package/dist/schemes/QuestionTool.js +6 -8
  304. package/dist/schemes/QuestionTool.js.map +1 -1
  305. package/dist/schemes/ResourceTreeScheme.d.ts.map +1 -1
  306. package/dist/schemes/ResourceTreeScheme.js +2 -2
  307. package/dist/schemes/ResourceTreeScheme.js.map +1 -1
  308. package/dist/schemes/TurnSource.js +3 -3
  309. package/dist/schemes/TurnSource.js.map +1 -1
  310. package/dist/schemes/Worker.js.map +1 -1
  311. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  312. package/dist/schemes/_entry-crud.js +4 -2
  313. package/dist/schemes/_entry-crud.js.map +1 -1
  314. package/dist/schemes/_entry-find.d.ts.map +1 -1
  315. package/dist/schemes/_entry-find.js +187 -139
  316. package/dist/schemes/_entry-find.js.map +1 -1
  317. package/dist/schemes/_entry-manifest.js +1 -1
  318. package/dist/schemes/_entry-manifest.js.map +1 -1
  319. package/dist/schemes/_entry-ops.js.map +1 -1
  320. package/dist/schemes/_search-index.js.map +1 -1
  321. package/dist/schemes/exec-entry-sink.d.ts +30 -0
  322. package/dist/schemes/exec-entry-sink.d.ts.map +1 -0
  323. package/dist/schemes/exec-entry-sink.js +238 -0
  324. package/dist/schemes/exec-entry-sink.js.map +1 -0
  325. package/dist/schemes/exec-lifetime.d.ts.map +1 -1
  326. package/dist/schemes/exec-lifetime.js +5 -2
  327. package/dist/schemes/exec-lifetime.js.map +1 -1
  328. package/dist/server/ClientOperations.d.ts +45 -0
  329. package/dist/server/ClientOperations.d.ts.map +1 -0
  330. package/dist/server/ClientOperations.js +192 -0
  331. package/dist/server/ClientOperations.js.map +1 -0
  332. package/dist/server/ClientReads.d.ts +13 -5
  333. package/dist/server/ClientReads.d.ts.map +1 -1
  334. package/dist/server/ClientReads.js +108 -21
  335. package/dist/server/ClientReads.js.map +1 -1
  336. package/dist/server/Credentials.js +2 -2
  337. package/dist/server/Credentials.js.map +1 -1
  338. package/dist/server/Daemon.d.ts +40 -28
  339. package/dist/server/Daemon.d.ts.map +1 -1
  340. package/dist/server/Daemon.js +255 -839
  341. package/dist/server/Daemon.js.map +1 -1
  342. package/dist/server/DaemonLock.d.ts +2 -0
  343. package/dist/server/DaemonLock.d.ts.map +1 -1
  344. package/dist/server/DaemonLock.js +10 -1
  345. package/dist/server/DaemonLock.js.map +1 -1
  346. package/dist/server/DaemonModules.d.ts +39 -0
  347. package/dist/server/DaemonModules.d.ts.map +1 -0
  348. package/dist/server/DaemonModules.js +219 -0
  349. package/dist/server/DaemonModules.js.map +1 -0
  350. package/dist/server/DrainSupervisor.d.ts +4 -2
  351. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  352. package/dist/server/DrainSupervisor.js +318 -290
  353. package/dist/server/DrainSupervisor.js.map +1 -1
  354. package/dist/server/EnvFunctionality.d.ts +10 -7
  355. package/dist/server/EnvFunctionality.d.ts.map +1 -1
  356. package/dist/server/EnvFunctionality.js +6 -5
  357. package/dist/server/EnvFunctionality.js.map +1 -1
  358. package/dist/server/Functionality.d.ts +8 -6
  359. package/dist/server/Functionality.d.ts.map +1 -1
  360. package/dist/server/Functionality.js +110 -32
  361. package/dist/server/Functionality.js.map +1 -1
  362. package/dist/server/FunctionalityManager.d.ts.map +1 -1
  363. package/dist/server/FunctionalityManager.js +16 -2
  364. package/dist/server/FunctionalityManager.js.map +1 -1
  365. package/dist/server/HttpListener.d.ts.map +1 -1
  366. package/dist/server/HttpListener.js +28 -8
  367. package/dist/server/HttpListener.js.map +1 -1
  368. package/dist/server/MembersFunctionality.d.ts +19 -7
  369. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  370. package/dist/server/MembersFunctionality.js +30 -16
  371. package/dist/server/MembersFunctionality.js.map +1 -1
  372. package/dist/server/MessageDelivery.d.ts +43 -0
  373. package/dist/server/MessageDelivery.d.ts.map +1 -0
  374. package/dist/server/MessageDelivery.js +186 -0
  375. package/dist/server/MessageDelivery.js.map +1 -0
  376. package/dist/server/ModuleHost.d.ts +3 -3
  377. package/dist/server/ModuleHost.d.ts.map +1 -1
  378. package/dist/server/Places.d.ts +19 -0
  379. package/dist/server/Places.d.ts.map +1 -0
  380. package/dist/server/Places.js +76 -0
  381. package/dist/server/Places.js.map +1 -0
  382. package/dist/server/PluginSources.d.ts.map +1 -1
  383. package/dist/server/PluginSources.js +2 -1
  384. package/dist/server/PluginSources.js.map +1 -1
  385. package/dist/server/PlurnkSkill.d.ts.map +1 -1
  386. package/dist/server/PlurnkSkill.js +5 -4
  387. package/dist/server/PlurnkSkill.js.map +1 -1
  388. package/dist/server/Rollback.d.ts.map +1 -1
  389. package/dist/server/Rollback.js +2 -1
  390. package/dist/server/Rollback.js.map +1 -1
  391. package/dist/server/WorkerModels.d.ts +87 -0
  392. package/dist/server/WorkerModels.d.ts.map +1 -0
  393. package/dist/server/WorkerModels.js +540 -0
  394. package/dist/server/WorkerModels.js.map +1 -0
  395. package/dist/server/WorkerOverview.d.ts +22 -0
  396. package/dist/server/WorkerOverview.d.ts.map +1 -0
  397. package/dist/server/WorkerOverview.js +42 -0
  398. package/dist/server/WorkerOverview.js.map +1 -0
  399. package/dist/server/WorkspacePlugins.d.ts +1 -1
  400. package/dist/server/WorkspacePlugins.d.ts.map +1 -1
  401. package/dist/server/WorkspacePlugins.js +0 -1
  402. package/dist/server/WorkspacePlugins.js.map +1 -1
  403. package/dist/server/WorkspaceResidency.d.ts +3 -3
  404. package/dist/server/WorkspaceResidency.d.ts.map +1 -1
  405. package/dist/server/WorkspaceResidency.js.map +1 -1
  406. package/dist/server/client-input.d.ts +2 -2
  407. package/dist/server/client-input.d.ts.map +1 -1
  408. package/dist/server/client-input.js +19 -12
  409. package/dist/server/client-input.js.map +1 -1
  410. package/dist/server/envelope.d.ts +4 -1
  411. package/dist/server/envelope.d.ts.map +1 -1
  412. package/dist/server/envelope.js +7 -3
  413. package/dist/server/envelope.js.map +1 -1
  414. package/dist/server/envelope.sql +10 -6
  415. package/dist/server/logEntry.d.ts +38 -1
  416. package/dist/server/logEntry.d.ts.map +1 -1
  417. package/dist/server/logEntry.js +9 -9
  418. package/dist/server/logEntry.js.map +1 -1
  419. package/dist/server/logEntry.sql +4 -2
  420. package/dist/server/loopDocs.d.ts.map +1 -1
  421. package/dist/server/loopDocs.js +11 -2
  422. package/dist/server/loopDocs.js.map +1 -1
  423. package/dist/server/module-discovery.d.ts +2 -3
  424. package/dist/server/module-discovery.d.ts.map +1 -1
  425. package/dist/server/module-discovery.js +6 -6
  426. package/dist/server/module-discovery.js.map +1 -1
  427. package/dist/server/places.sql +83 -0
  428. package/dist/server/seam-loop.sql +8 -0
  429. package/dist/server/worker-overview.sql +57 -0
  430. package/dist/service.d.ts +1 -0
  431. package/dist/service.d.ts.map +1 -1
  432. package/dist/service.js +35 -9
  433. package/dist/service.js.map +1 -1
  434. package/docs/members.md +11 -21
  435. package/migrations/033_hidden_places.sql +10 -0
  436. package/package.json +52 -61
  437. package/dist/core/ToolInputSchema.d.ts +0 -7
  438. package/dist/core/ToolInputSchema.d.ts.map +0 -1
  439. package/dist/core/ToolInputSchema.js +0 -65
  440. package/dist/core/ToolInputSchema.js.map +0 -1
  441. package/dist/observe/init.d.ts +0 -8
  442. package/dist/observe/init.d.ts.map +0 -1
  443. package/dist/observe/init.js +0 -163
  444. package/dist/observe/init.js.map +0 -1
  445. package/dist/server/WorkerModelResolver.d.ts +0 -20
  446. package/dist/server/WorkerModelResolver.d.ts.map +0 -1
  447. package/dist/server/WorkerModelResolver.js +0 -200
  448. package/dist/server/WorkerModelResolver.js.map +0 -1
@@ -6,10 +6,8 @@ export default class LogEntry {
6
6
  // "" is the actionless-row sentinel for "no statement" (error and
7
7
  // actionless source rows store tx="");
8
8
  // JSON.parse("") throws, so an empty string is no-value → null, like NULL itself.
9
- if (v === null || v === undefined || v === "")
9
+ if (v === null || v === "")
10
10
  return null;
11
- if (typeof v !== "string")
12
- return v;
13
11
  return JSON.parse(v);
14
12
  }
15
13
  static async fetchLogEntry(db, id) {
@@ -23,6 +21,7 @@ export default class LogEntry {
23
21
  return {
24
22
  id: row.id,
25
23
  worker_id: row.worker_id,
24
+ worker_name: row.worker_name,
26
25
  loop_id: row.loop_id,
27
26
  loop_seq: row.loop_seq,
28
27
  turn_id: row.turn_id,
@@ -50,12 +49,13 @@ export default class LogEntry {
50
49
  weight: row.weight,
51
50
  attrs: LogEntry.#parseJsonOrNull(row.attrs),
52
51
  state: row.state,
53
- ...(typeof row.reasoning === "string" ? { reasoning: row.reasoning } : {}),
54
- ...(typeof row.reasoning === "string" && typeof row.reasoning_model_call_id === "number"
55
- ? { reasoning_model_call_id: row.reasoning_model_call_id, reasoning_request_sequence: row.reasoning_request_sequence }
56
- : {}),
57
- ...(typeof row.invocation === "string" ? { invocation: row.invocation } : {}),
58
- ...(typeof row.answering === "string" ? { answering: row.answering } : {}),
52
+ ...(row.reasoning === null ? {} : {
53
+ reasoning: row.reasoning,
54
+ ...(row.reasoning_model_call_id === null ? {} : { reasoning_model_call_id: row.reasoning_model_call_id }),
55
+ ...(row.reasoning_request_sequence === null ? {} : { reasoning_request_sequence: row.reasoning_request_sequence }),
56
+ }),
57
+ ...(row.invocation === null ? {} : { invocation: row.invocation }),
58
+ ...(row.answering === null ? {} : { answering: row.answering }),
59
59
  };
60
60
  }
61
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logEntry.js","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logEntry.js","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  -- PREP: log_entry_by_id
5
5
  -- loop_seq / turn_seq are the loop+turn ordinals (the logical coordinate clients
6
6
  -- render, e.g. 01/02/03) — distinct from the loop_id/turn_id DB keys ({§methods-log-coordinate}).
7
- SELECT le.*, l.sequence AS loop_seq, t.sequence AS turn_seq,
7
+ SELECT le.*, w.name AS worker_name, l.sequence AS loop_seq, t.sequence AS turn_seq,
8
8
  CASE
9
9
  WHEN le.origin = 'model'
10
10
  AND le.op IS NOT NULL
@@ -56,6 +56,7 @@ SELECT le.*, l.sequence AS loop_seq, t.sequence AS turn_seq,
56
56
  AND (sender.worker_id = le.worker_id OR le.inherited_history = 1)
57
57
  LIMIT 1) AS answering
58
58
  FROM log_entries le
59
+ JOIN workers w ON w.id = le.worker_id
59
60
  JOIN loops l ON l.id = le.loop_id
60
61
  JOIN turns t ON t.id = le.turn_id
61
62
  WHERE le.id = $id;
@@ -63,7 +64,7 @@ WHERE le.id = $id;
63
64
  -- PREP: log_entries_recent
64
65
  -- {§methods-log-read}: the newest rows a client asks for, hydrated exactly as log_entry_by_id
65
66
  -- hydrates one — a page is one statement, never one statement per row.
66
- SELECT le.*, l.sequence AS loop_seq, t.sequence AS turn_seq,
67
+ SELECT le.*, w.name AS worker_name, l.sequence AS loop_seq, t.sequence AS turn_seq,
67
68
  CASE
68
69
  WHEN le.origin = 'model'
69
70
  AND le.op IS NOT NULL
@@ -115,6 +116,7 @@ SELECT le.*, l.sequence AS loop_seq, t.sequence AS turn_seq,
115
116
  AND (sender.worker_id = le.worker_id OR le.inherited_history = 1)
116
117
  LIMIT 1) AS answering
117
118
  FROM log_entries le
119
+ JOIN workers w ON w.id = le.worker_id
118
120
  JOIN loops l ON l.id = le.loop_id
119
121
  JOIN turns t ON t.id = le.turn_id
120
122
  WHERE le.worker_id = $worker_id
@@ -1 +1 @@
1
- {"version":3,"file":"loopDocs.d.ts","sourceRoot":"","sources":["../../src/server/loopDocs.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAWxC,MAAM,CAAC,OAAO,OAAO,QAAQ;;IAQzB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAE9C;IAsCD,OAAa,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnF;CAkEJ"}
1
+ {"version":3,"file":"loopDocs.d.ts","sourceRoot":"","sources":["../../src/server/loopDocs.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAWxC,MAAM,CAAC,OAAO,OAAO,QAAQ;;IAQzB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAE9C;IAsCD,OAAa,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnF;CAyEJ"}
@@ -1,8 +1,9 @@
1
1
  // Worker documentation projections of the shared workspace environment.
2
2
  // Reconcile on reader demand and after workspace Functionality changes. Two private sets run through
3
3
  // an ordinary `_plurnk` turn in the addressed worker ({§actor-boundary-doc-injection}):
4
- // 1. the project AGENTS.md at worker:///_plurnk/AGENTS.md — Engine.runTurn foists
5
- // its READ at turn 0 ({§turn0-agents-stunt});
4
+ // 1. the project AGENTS.md at worker:///_plurnk/AGENTS.md and AGENTS.local.md at
5
+ // worker:///_plurnk/AGENTS.local.md — Engine.runTurn foists their READs at turn 0
6
+ // ({§turn0-agents-stunt}, {§turn0-local-instructions});
6
7
  // 2. the exact current scheme and executable-tool reference set under
7
8
  // worker:///_plurnk/plurnk/ and worker:///_plurnk/tools/ — discovered by the
8
9
  // turn-0 FIND surveys ({§schemes-self-doc-materialization},
@@ -92,6 +93,14 @@ export default class LoopDocs {
92
93
  const desired = new Map((await engine.referenceEntries(workspaceId)).map(({ pathname, content }) => [pathname, content]));
93
94
  if (agentsContent !== null)
94
95
  desired.set(generatedPathname("/AGENTS.md"), agentsContent);
96
+ // {§turn0-local-instructions} — the root AGENTS.local.md, read whatever its git status (the convention ignores
97
+ // it); only an exclusion hides it.
98
+ const localContent = workspace?.project_root === null || workspace?.project_root === undefined
99
+ || await GitMembership.exclusionOf(db, workspaceId, "AGENTS.local.md") !== null
100
+ ? null
101
+ : await readFile(join(workspace.project_root, "AGENTS.local.md"), "utf8").catch(() => null);
102
+ if (localContent !== null)
103
+ desired.set(generatedPathname("/AGENTS.local.md"), localContent);
95
104
  // #346 — nested AGENTS.md honor the standard's closest-file scope:
96
105
  // each materializes at _plurnk/instructions/<subtree>/AGENTS.md with its
97
106
  // path preserved. No foisted READ and no teaching (operator-ruled):
@@ -1 +1 @@
1
- {"version":3,"file":"loopDocs.js","sourceRoot":"","sources":["../../src/server/loopDocs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loopDocs.js","sourceRoot":"","sources":["../../src/server/loopDocs.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,7 @@ import { ConfigurationError } from "@plurnk/plurnk-meta";
2
2
  import type { PluginReport } from "@plurnk/plurnk-agent-plugins";
3
3
  import type { DaemonModule } from "@plurnk/plurnk-modules";
4
4
  import type { HostSetupSeam } from "./ModuleHost.ts";
5
- import HostPaths from "../core/HostPaths.ts";
6
- import type { ApplicationPort } from "@plurnk/plurnk-contracts/port";
5
+ import type HostPaths from "../core/HostPaths.ts";
7
6
  export declare const discoverDaemonModules: (options?: {
8
7
  cwd?: string;
9
8
  hostPaths?: HostPaths;
@@ -14,7 +13,7 @@ export declare const discoverDaemonModules: (options?: {
14
13
  registered?: ReadonlySet<string>;
15
14
  }) => Promise<{
16
15
  readonly modules: ReadonlyArray<{
17
- readonly module: DaemonModule<HostSetupSeam, ApplicationPort>;
16
+ readonly module: DaemonModule<HostSetupSeam>;
18
17
  readonly owner: string;
19
18
  }>;
20
19
  readonly skipped: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"module-discovery.d.ts","sourceRoot":"","sources":["../../src/server/module-discovery.ts"],"names":[],"mappings":"AAGA,OAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAG7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AA0DrE,eAAO,MAAM,qBAAqB,aACrB;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,KACvI,OAAO,CAAC;IAEP,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3H,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAG1C,QAAQ,CAAC,mBAAmB,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;CAC/G,CA8DA,CAAC"}
1
+ {"version":3,"file":"module-discovery.d.ts","sourceRoot":"","sources":["../../src/server/module-discovery.ts"],"names":[],"mappings":"AAIA,OAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AA4DlD,eAAO,MAAM,qBAAqB,aACrB;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,KACvI,OAAO,CAAC;IAEP,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1G,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAG1C,QAAQ,CAAC,mBAAmB,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;CAC/G,CA4DA,CAAC"}
@@ -6,11 +6,11 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
6
6
  }
7
7
  return path;
8
8
  };
9
+ import { errnoCode, isRecord } from "@plurnk/plurnk-contracts";
9
10
  import { createRequire } from "node:module";
10
11
  import { basename, join } from "node:path";
11
12
  import { pathToFileURL } from "node:url";
12
13
  import Meta, { ConfigurationError } from "@plurnk/plurnk-meta";
13
- import HostPaths from "../core/HostPaths.js";
14
14
  import PluginSources from "./PluginSources.js";
15
15
  import EnvDefaults from "../core/env-defaults.js";
16
16
  const assertDaemonModule = (value, packageName, source) => {
@@ -21,7 +21,7 @@ const assertDaemonModule = (value, packageName, source) => {
21
21
  throw new TypeError(`module package '${packageName}' ${detail}.`);
22
22
  }
23
23
  for (const member of ["setup", "start", "stop", "close"]) {
24
- const hook = value[member];
24
+ const hook = isRecord(value) ? value[member] : undefined;
25
25
  if (hook !== undefined && typeof hook !== "function") {
26
26
  throw new TypeError(`module package '${packageName}' lifecycle member '${member}' must be a function when present.`);
27
27
  }
@@ -92,7 +92,7 @@ export const discoverDaemonModules = async (options = {}) => {
92
92
  await EnvDefaults.nativeFile(candidate.dir, manifest.packageName);
93
93
  }
94
94
  const imported = await import(__rewriteRelativeImportExtension(pathToFileURL(manifest.module).href));
95
- const exported = imported.default;
95
+ const exported = isRecord(imported) ? imported.default : undefined;
96
96
  if (exported === undefined) {
97
97
  throw new Error(`module package '${manifest.packageName}' exports no default DaemonModule at '${manifest.module}'.`);
98
98
  }
@@ -103,13 +103,13 @@ export const discoverDaemonModules = async (options = {}) => {
103
103
  if (exported.length !== 0) {
104
104
  throw new TypeError(`module package '${manifest.packageName}' DaemonModule factory must accept no arguments.`);
105
105
  }
106
- const created = await exported();
106
+ const created = await Reflect.apply(exported, undefined, []);
107
107
  modules.push({ module: assertDaemonModule(created, manifest.packageName, "factory"), owner: manifest.packageName });
108
108
  }
109
109
  catch (cause) {
110
110
  const owner = `module:${manifest.packageName}`;
111
- if (cause.code === "ERR_MODULE_NOT_FOUND") {
112
- configurationErrors.push({ owner, cause: new ConfigurationError(manifest.manifestPath, `${manifest.packageName}: ${cause.message}`, { cause }) });
111
+ if (errnoCode(cause) === "ERR_MODULE_NOT_FOUND") {
112
+ configurationErrors.push({ owner, cause: new ConfigurationError(manifest.manifestPath, `${manifest.packageName}: ${cause instanceof Error ? cause.message : String(cause)}`, { cause }) });
113
113
  continue;
114
114
  }
115
115
  if (!(cause instanceof ConfigurationError))
@@ -1 +1 @@
1
- {"version":3,"file":"module-discovery.js","sourceRoot":"","sources":["../../src/server/module-discovery.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,EAAE,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI/D,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAYlD,MAAM,kBAAkB,GAAG,CACvB,KAAc,EACd,WAAmB,EACnB,MAA4B,EACgB,EAAE;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,KAAK,SAAS;YAC/B,CAAC,CAAC,4CAA4C;YAC9C,CAAC,CAAC,0DAA0D,CAAC;QACjE,MAAM,IAAI,SAAS,CAAC,mBAAmB,WAAW,KAAK,MAAM,GAAG,CAAC,CAAC;IACtE,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAU,EAAE,CAAC;QAChE,MAAM,IAAI,GAAI,KAAiC,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;YACnD,MAAM,IAAI,SAAS,CACf,mBAAmB,WAAW,uBAAuB,MAAM,oCAAoC,CAClG,CAAC;QACN,CAAC;IACL,CAAC;IACD,OAAO,KAAqD,CAAC;AACjE,CAAC,CAAC;AAEF,iGAAiG;AACjG,kGAAkG;AAClG,mCAAmC;AACnC,MAAM,WAAW,GAAG,KAAK,EAAE,QAAoE,EAAE,WAAmB,EAAE,KAAa,EAAmB,EAAE;IACpJ,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/F,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,kBAAkB,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,WAAW,oBAAoB,KAAK,iDAAiD,CAAC,CAAC;IAClJ,CAAC;IACD,IAAI,CAAC;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,kBAAkB,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,WAAW,oBAAoB,KAAK,mDAAmD,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/J,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,EAAE,GAAW,EAAkC,EAAE;IACvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACxD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACpE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC;AACxJ,CAAC,CAAC;AAEF,6FAA6F;AAC7F,mFAAmF;AACnF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACtC,OAAO,GAAkI,EAAE,EAS5I,EAAE;IACD,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC;QACrC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC;QAC/D,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW;KACjE,CAAC,CAAC;IACH,MAAM,IAAI,GAAG;QACT,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAC5E,CAAC;IACF,MAAM,OAAO,GAAqG,EAAE,CAAC;IACrH,MAAM,mBAAmB,GAA0E,OAAO,CAAC,mBAAmB;SACzH,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACtD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,QAA+B,CAAC;QACpC,IAAI,CAAC;YACD,QAAQ,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC;gBAAE,MAAM,KAAK,CAAC;YACxD,mBAAmB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,SAAS;QACb,CAAC;QACD,IAAI,QAAQ,KAAK,IAAI;YAAE,SAAS;QAChC,IAAI,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,IAAI;YAAE,SAAS;QACrE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACnC,SAAS;QACb,CAAC;QACD,IAAI,CAAC;YACD,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7D,MAAM,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,MAAM,kCAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAEhE,CAAC;YACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;YAClC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,CAAC,WAAW,yCAAyC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;YACzH,CAAC;YACD,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;gBACpH,SAAS;YACb,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,SAAS,CACf,mBAAmB,QAAQ,CAAC,WAAW,kDAAkD,CAC5F,CAAC;YACN,CAAC;YACD,MAAM,OAAO,GAAG,MAAO,QAA6C,EAAE,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACxH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,UAAU,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAK,KAA+B,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBACnE,mBAAmB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,kBAAkB,CAAC,QAAQ,CAAC,YAAY,EACjF,GAAG,QAAQ,CAAC,WAAW,KAAM,KAAe,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC1E,SAAS;YACb,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC;gBAAE,MAAM,KAAK,CAAC;YACxD,mBAAmB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAC/E,CAAC,CAAC"}
1
+ {"version":3,"file":"module-discovery.js","sourceRoot":"","sources":["../../src/server/module-discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ -- {§place-hiding} A hidden workspace or worker leaves the directories and the overview; every row stays. A worker's
2
+ -- hide marks it and every worker beneath it with the worker that hid it (`hidden_by`): one group, which returns whole.
3
+
4
+ -- INIT: loops_unhide_place
5
+ -- Nothing runs out of sight: a live loop starting on a worker brings back the group its worker belongs to, and the
6
+ -- workspace it runs in. A fork's copied history is never live, so it brings nothing back.
7
+ DROP TRIGGER IF EXISTS loops_unhide_place;
8
+ CREATE TRIGGER loops_unhide_place
9
+ AFTER INSERT ON loops
10
+ WHEN NEW.status IN (100, 102, 202)
11
+ BEGIN
12
+ UPDATE workers SET hidden_at = NULL, hidden_by = NULL
13
+ WHERE hidden_by = (SELECT hidden_by FROM workers WHERE id = NEW.worker_id);
14
+ UPDATE workspaces SET hidden_at = NULL
15
+ WHERE hidden_at IS NOT NULL AND id = (SELECT workspace_id FROM workers WHERE id = NEW.worker_id);
16
+ END;
17
+
18
+ -- INIT: workers_join_hidden_group
19
+ -- A worker created beneath a hidden worker joins its group.
20
+ DROP TRIGGER IF EXISTS workers_join_hidden_group;
21
+ CREATE TRIGGER workers_join_hidden_group
22
+ AFTER INSERT ON workers
23
+ WHEN EXISTS (SELECT 1 FROM workers WHERE id = NEW.parent_worker_id AND hidden_at IS NOT NULL)
24
+ BEGIN
25
+ UPDATE workers
26
+ SET hidden_at = (SELECT hidden_at FROM workers WHERE id = NEW.parent_worker_id),
27
+ hidden_by = (SELECT hidden_by FROM workers WHERE id = NEW.parent_worker_id)
28
+ WHERE id = NEW.id;
29
+ END;
30
+
31
+ -- PREP: place_scope
32
+ -- The workers a hide covers, a worker and every worker beneath it or every worker of a workspace, each with its live
33
+ -- loops ({§worker-lifecycle-live}) and open streams.
34
+ WITH RECURSIVE scope(id) AS (
35
+ SELECT id FROM workers WHERE workspace_id = $workspace_id AND ($worker_id IS NULL OR id = $worker_id)
36
+ UNION
37
+ SELECT w.id FROM workers w JOIN scope ON w.parent_worker_id = scope.id
38
+ )
39
+ SELECT scope.id AS workerId,
40
+ (SELECT COUNT(*) FROM loops l WHERE l.worker_id = scope.id AND l.status IN (100, 102, 202)) AS loops,
41
+ (SELECT COUNT(*) FROM subscriptions s WHERE s.worker_id = scope.id AND s.closed_at IS NULL) AS streams
42
+ FROM scope;
43
+
44
+ -- PREP: place_workspace_mark
45
+ SELECT hidden_at FROM workspaces WHERE id = $workspace_id;
46
+
47
+ -- PREP: place_workspace_hide
48
+ -- Refused while any of its workers holds a live loop or an open stream; a second hide keeps the first mark.
49
+ UPDATE workspaces SET hidden_at = COALESCE(hidden_at, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
50
+ WHERE id = $workspace_id
51
+ AND NOT EXISTS (SELECT 1 FROM loops l JOIN workers w ON w.id = l.worker_id
52
+ WHERE w.workspace_id = $workspace_id AND l.status IN (100, 102, 202))
53
+ AND NOT EXISTS (SELECT 1 FROM subscriptions s JOIN workers w ON w.id = s.worker_id
54
+ WHERE w.workspace_id = $workspace_id AND s.closed_at IS NULL)
55
+ RETURNING hidden_at;
56
+
57
+ -- PREP: place_workspace_show
58
+ UPDATE workspaces SET hidden_at = NULL
59
+ WHERE id = $workspace_id AND hidden_at IS NOT NULL
60
+ RETURNING id;
61
+
62
+ -- PREP: place_worker_mark
63
+ SELECT hidden_at FROM workers WHERE id = $worker_id AND workspace_id = $workspace_id;
64
+
65
+ -- PREP: place_worker_hide
66
+ -- Refused while any worker of the subtree holds a live loop or an open stream. Groups already hidden inside the
67
+ -- subtree join this one.
68
+ WITH RECURSIVE subtree(id) AS (
69
+ SELECT id FROM workers WHERE id = $worker_id AND workspace_id = $workspace_id
70
+ UNION
71
+ SELECT w.id FROM workers w JOIN subtree ON w.parent_worker_id = subtree.id
72
+ )
73
+ UPDATE workers SET hidden_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now'), hidden_by = $worker_id
74
+ WHERE id IN (SELECT id FROM subtree)
75
+ AND NOT EXISTS (SELECT 1 FROM loops WHERE worker_id IN (SELECT id FROM subtree) AND status IN (100, 102, 202))
76
+ AND NOT EXISTS (SELECT 1 FROM subscriptions WHERE worker_id IN (SELECT id FROM subtree) AND closed_at IS NULL)
77
+ RETURNING id, hidden_at;
78
+
79
+ -- PREP: place_worker_show
80
+ -- Showing any worker of a group shows the group.
81
+ UPDATE workers SET hidden_at = NULL, hidden_by = NULL
82
+ WHERE hidden_by = (SELECT hidden_by FROM workers WHERE id = $worker_id AND workspace_id = $workspace_id)
83
+ RETURNING id;
@@ -1,5 +1,13 @@
1
1
  -- ApplicationPort runLoop queries. SPEC {§methods-loop-run}.
2
2
 
3
+ -- PREP: application_latest_packet_loop
4
+ -- {§methods-worker-gauge}: the loop holding the worker's latest packet, the one whose gauge the worker reported last.
5
+ SELECT turns.loop_id AS id FROM turns
6
+ JOIN loops ON loops.id = turns.loop_id
7
+ WHERE loops.worker_id = $worker_id AND turns.packet IS NOT NULL
8
+ ORDER BY turns.id DESC
9
+ LIMIT 1;
10
+
3
11
  -- PREP: application_list_worker_loops
4
12
  -- {§methods-worker-loops}: durable lifecycle projection for exterior adapters. {§worker-obligations}: a loop is
5
13
  -- opened by its first message's operation, named in the sender's own log.
@@ -0,0 +1,57 @@
1
+ -- ApplicationPort readWorkerOverview queries. SPEC {§methods-worker-overview}.
2
+
3
+ -- PREP: overview_places
4
+ -- {§application-worker-overview}: the places in scope, each with its loops' observations for its lifecycle
5
+ -- ({§application-worker-observation}) and its latest finished reply ({§worker-finished-reply}), without the reply's words.
6
+ -- {§place-hiding} A hidden worker is out of scope, and in the daemon's scope so is every worker of a hidden workspace.
7
+ SELECT w.id, w.workspace_id AS workspaceId, w.name, w.parent_worker_id AS parentWorkerId,
8
+ CASE WHEN w.fork_event_boundary IS NOT NULL THEN 'fork'
9
+ WHEN w.parent_worker_id IS NOT NULL THEN 'work'
10
+ ELSE 'root' END AS kind,
11
+ (SELECT json_group_array(json_object('status', l.status, 'sequence', l.sequence, 'terminatedAt', l.terminated_at))
12
+ FROM work_loops l WHERE l.worker_id = w.id) AS loopObservations,
13
+ reply.id AS replyId,
14
+ reply.at AS replyAt,
15
+ COALESCE(
16
+ CASE WHEN reply.mimetype_rx = 'application/json' AND json_valid(reply.rx)
17
+ THEN json_extract(reply.rx, '$.completion') END,
18
+ (SELECT MIN(c.status) FROM message_completions c WHERE c.response_id = reply.id)
19
+ ) AS replyCompletion,
20
+ CASE WHEN reply.id IS NULL THEN NULL
21
+ ELSE printf('%d/%d/%d', reply_loop.sequence, reply_turn.sequence, reply.sequence) END AS replyCoordinate
22
+ FROM workers w
23
+ LEFT JOIN log_entries reply ON reply.id = (
24
+ SELECT le.id FROM log_entries le
25
+ WHERE le.worker_id = w.id
26
+ AND le.op = 'SEND' AND le.origin = 'model' AND le.inherited_history = 0
27
+ AND le.state = 'resolved' AND le.status_rx < 400
28
+ AND COALESCE(
29
+ CASE WHEN le.mimetype_rx = 'application/json' AND json_valid(le.rx)
30
+ THEN json_extract(le.rx, '$.completion') END,
31
+ (SELECT MIN(c.status) FROM message_completions c WHERE c.response_id = le.id)
32
+ ) IN (200, 499)
33
+ ORDER BY le.id DESC
34
+ LIMIT 1)
35
+ LEFT JOIN loops reply_loop ON reply_loop.id = reply.loop_id
36
+ LEFT JOIN turns reply_turn ON reply_turn.id = reply.turn_id
37
+ WHERE w.origin = 'model'
38
+ AND w.hidden_at IS NULL
39
+ AND (w.workspace_id = $workspace_id
40
+ OR ($workspace_id IS NULL AND (SELECT ws.hidden_at FROM workspaces ws WHERE ws.id = w.workspace_id) IS NULL));
41
+
42
+ -- PREP: overview_reply_words
43
+ -- {§list-excerpt}: the words of the replies the overview holds, $ids a JSON array of their log rows.
44
+ SELECT le.id,
45
+ CASE WHEN json_valid(le.tx) THEN
46
+ COALESCE(json_extract(le.tx, '$.body.raw'),
47
+ CASE WHEN json_type(le.tx, '$.body') = 'text' THEN json_extract(le.tx, '$.body') END)
48
+ END AS words
49
+ FROM log_entries le
50
+ WHERE le.id IN (SELECT value FROM json_each($ids));
51
+
52
+ -- PREP: overview_workspaces
53
+ -- {§application-worker-overview}: the workspaces the held places belong to, $ids a JSON array of their ids.
54
+ SELECT id, name, project_root AS projectRoot
55
+ FROM workspaces
56
+ WHERE id IN (SELECT value FROM json_each($ids))
57
+ ORDER BY id;
package/dist/service.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env node
2
+ import "./core/runtime-guard.ts";
2
3
  export default class Service {
3
4
  #private;
4
5
  static main(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";AAuCA,MAAM,CAAC,OAAO,OAAO,OAAO;;IA4UxB,OAAa,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAqHjC;CACJ"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";AAGA,OAAO,yBAAyB,CAAC;AAyCjC,MAAM,CAAC,OAAO,OAAO,OAAO;;IAuVxB,OAAa,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAwHjC;CACJ"}
package/dist/service.js CHANGED
@@ -1,12 +1,16 @@
1
1
  #!/usr/bin/env node
2
+ // oxlint-disable-next-line import/no-unassigned-import -- {§service-runtime-floor}: it must evaluate before every later import
3
+ import "./core/runtime-guard.js";
2
4
  import { parseArgs } from "node:util";
3
5
  import { spawn } from "node:child_process";
4
6
  import { existsSync, mkdirSync } from "node:fs";
5
7
  import { readFile } from "node:fs/promises";
8
+ import { setTimeout as sleep } from "node:timers/promises";
6
9
  import { isIPv6 } from "node:net";
7
10
  import { fileURLToPath } from "node:url";
8
11
  import { dirname, resolve } from "node:path";
9
12
  import SqlRite from "@possumtech/sqlrite";
13
+ import { errnoCode } from "@plurnk/plurnk-contracts";
10
14
  import { sqlFunctionPaths } from "./core/sql-functions.js";
11
15
  import { sqliteSynchronous } from "./core/sqlite-synchronous.js";
12
16
  import Daemon from "./server/Daemon.js";
@@ -26,11 +30,11 @@ import { workspacePaths } from "./server/AgentRoots.js";
26
30
  import { formatBuildInfo, getBuildInfo } from "./build-info.js";
27
31
  import ServiceTeardown from "./core/ServiceTeardown.js";
28
32
  import Paths from "./Paths.js";
29
- import { startObservability, validateObservabilityConfiguration } from "./observe/init.js";
30
- import { Digest } from "@plurnk/plurnk-digest";
33
+ import { Digest, Share } from "@plurnk/plurnk-digest";
31
34
  import EvidenceReader from "@plurnk/plurnk-service/evidence";
32
35
  import ProviderInstantiate from "./core/ProviderInstantiate.js";
33
- import { Share } from "@plurnk/plurnk-digest";
36
+ // How often `stop` looks for the signalled process to be gone.
37
+ const STOP_POLL_MS = 100;
34
38
  // The `plurnk-service` executable: launches the daemon (start) or applies the schema baseline.
35
39
  // Not the user-facing client — that is the separate `plurnk` project.
36
40
  export default class Service {
@@ -121,7 +125,6 @@ export default class Service {
121
125
  ];
122
126
  if (causes.length > 0)
123
127
  throw new Error(causes.map(({ message }) => message).join("\n"), { cause: causes[0] });
124
- validateObservabilityConfiguration();
125
128
  }
126
129
  static async #ensureOperatorConfig() {
127
130
  if (Service.#hostPaths.invalidXdg.length > 0) {
@@ -230,15 +233,13 @@ export default class Service {
230
233
  const listener = await HttpListener.bind({ host, port });
231
234
  let db = null;
232
235
  let daemon = null;
233
- let observability = null;
234
- const teardown = new ServiceTeardown(async (deadline) => { await daemon?.stop(deadline); }, ["observability shutdown", async () => { await observability?.shutdown(); }], ["database close", async () => { await db?.close(); }], ["HTTP listener close", async () => { await listener.close(); }]);
236
+ const teardown = new ServiceTeardown(async (deadline) => { await daemon?.stop(deadline); }, ["database close", async () => { await db?.close(); }], ["HTTP listener close", async () => { await listener.close(); }]);
235
237
  try {
236
238
  // {§startup-admission-order}: after listener ownership, persistence
237
239
  // and its exclusive owner precede capability activation.
238
240
  db = await Service.#openDb(dbPath, true);
239
- // {§observability-boundary} — config is normalized before any SDK
240
- // implementation loads; teardown already owns the admitted DB.
241
- observability = await configuration.capture("observability", () => startObservability());
241
+ // {§observability-boundary} — the SDK is the plurnk-otel module's, discovered and set up with every
242
+ // other module ({§otel-module}); the service loads none.
242
243
  daemon = new Daemon({ db, dbPath, nodeModulesPath: Service.#installedNodeModules(), hostPaths: Service.#hostPaths, http: listener, configuration });
243
244
  // {§module-discovery} — the service composes no module: the daemon discovers every one,
244
245
  // and the socket never closes or rebinds between admission and readiness.
@@ -277,6 +278,26 @@ export default class Service {
277
278
  await teardown.fail(cause);
278
279
  }
279
280
  }
281
+ // {§service-stop} SIGTERM to the process that holds the configured database, then wait for it to
282
+ // exit: its own shutdown is bounded by PLURNK_SERVICE_STOP_TIMEOUT_MS ({§crash-only-stop}).
283
+ static async #stop() {
284
+ const dbPath = Service.#hostPaths.configuredDatabasePath();
285
+ const pid = await DaemonLock.owner(dbPath);
286
+ if (pid === null) {
287
+ process.stderr.write(`plurnk-service: not running (${dbPath})\n`);
288
+ return;
289
+ }
290
+ try {
291
+ process.kill(pid, "SIGTERM");
292
+ }
293
+ catch (cause) {
294
+ if (errnoCode(cause) !== "ESRCH")
295
+ throw cause;
296
+ }
297
+ while (DaemonLock.alive(pid))
298
+ await sleep(STOP_POLL_MS);
299
+ process.stderr.write(`plurnk-service: stopped pid ${pid} (${dbPath})\n`);
300
+ }
280
301
  static async #configStatus() {
281
302
  const diagnostics = Service.#configuration;
282
303
  const aliases = await diagnostics.capture("model-aliases", () => parseAliasesFromEnv());
@@ -414,6 +435,11 @@ export default class Service {
414
435
  await Service.#ensureOperatorConfig();
415
436
  handler = command === "start" ? Service.#start : Service.#migrate;
416
437
  }
438
+ else if (command === "stop") {
439
+ if (positionals.length > 1)
440
+ Service.#die(64, `unexpected arguments: ${positionals.slice(1).join(" ")}`);
441
+ handler = Service.#stop;
442
+ }
417
443
  else if (command === "config") {
418
444
  if (positionals.length > 2)
419
445
  Service.#die(64, `unexpected arguments: ${positionals.slice(2).join(" ")}`);