@plurnk/plurnk-service 2.0.0 → 3.1.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 (333) hide show
  1. package/.env.defaults +27 -19
  2. package/INSTALL.md +21 -2
  3. package/README.md +4 -2
  4. package/SPEC.md +644 -467
  5. package/dist/build-info.json +1 -1
  6. package/dist/completions/_plurnk-service +13 -0
  7. package/dist/completions/plurnk-service.bash +19 -0
  8. package/dist/completions/plurnk-service.fish +93 -0
  9. package/dist/content/edit-receipt.d.ts +1 -1
  10. package/dist/content/edit-receipt.d.ts.map +1 -1
  11. package/dist/content/edit-receipt.js +1 -1
  12. package/dist/content/edit-receipt.js.map +1 -1
  13. package/dist/content/read-projector.d.ts.map +1 -1
  14. package/dist/content/read-projector.js +3 -12
  15. package/dist/content/read-projector.js.map +1 -1
  16. package/dist/core/AdministrativeLoop.d.ts +1 -1
  17. package/dist/core/AdministrativeLoop.d.ts.map +1 -1
  18. package/dist/core/AdministrativeLoop.js +2 -6
  19. package/dist/core/AdministrativeLoop.js.map +1 -1
  20. package/dist/core/AdmittedTurnExecutor.d.ts +2 -2
  21. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
  22. package/dist/core/AdmittedTurnExecutor.js +16 -24
  23. package/dist/core/AdmittedTurnExecutor.js.map +1 -1
  24. package/dist/core/BudgetReadout.d.ts +8 -2
  25. package/dist/core/BudgetReadout.d.ts.map +1 -1
  26. package/dist/core/BudgetReadout.js +48 -5
  27. package/dist/core/BudgetReadout.js.map +1 -1
  28. package/dist/core/CapabilityPolicies.d.ts +2 -4
  29. package/dist/core/CapabilityPolicies.d.ts.map +1 -1
  30. package/dist/core/CapabilityPolicies.js +3 -23
  31. package/dist/core/CapabilityPolicies.js.map +1 -1
  32. package/dist/core/CapabilityResolver.d.ts +9 -2
  33. package/dist/core/CapabilityResolver.d.ts.map +1 -1
  34. package/dist/core/CapabilityResolver.js +34 -5
  35. package/dist/core/CapabilityResolver.js.map +1 -1
  36. package/dist/core/ChannelWrite.d.ts +0 -2
  37. package/dist/core/ChannelWrite.d.ts.map +1 -1
  38. package/dist/core/ChannelWrite.js.map +1 -1
  39. package/dist/core/ClientInteractions.d.ts +3 -2
  40. package/dist/core/ClientInteractions.d.ts.map +1 -1
  41. package/dist/core/ClientInteractions.js +21 -12
  42. package/dist/core/ClientInteractions.js.map +1 -1
  43. package/dist/core/ClientInteractions.sql +8 -2
  44. package/dist/core/CoreSchemeServices.d.ts +1 -0
  45. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  46. package/dist/core/CoreSchemeServices.js +1 -0
  47. package/dist/core/CoreSchemeServices.js.map +1 -1
  48. package/dist/core/DataStatementRunner.js +1 -1
  49. package/dist/core/DataStatementRunner.js.map +1 -1
  50. package/dist/core/Dispatcher.d.ts +3 -2
  51. package/dist/core/Dispatcher.d.ts.map +1 -1
  52. package/dist/core/Dispatcher.js +55 -52
  53. package/dist/core/Dispatcher.js.map +1 -1
  54. package/dist/core/Engine.d.ts +1 -1
  55. package/dist/core/Engine.d.ts.map +1 -1
  56. package/dist/core/Engine.js +4 -6
  57. package/dist/core/Engine.js.map +1 -1
  58. package/dist/core/EnvFlags.d.ts.map +1 -1
  59. package/dist/core/EnvFlags.js +5 -4
  60. package/dist/core/EnvFlags.js.map +1 -1
  61. package/dist/core/FabricatedLog.d.ts +1 -0
  62. package/dist/core/FabricatedLog.d.ts.map +1 -1
  63. package/dist/core/FabricatedLog.js +9 -1
  64. package/dist/core/FabricatedLog.js.map +1 -1
  65. package/dist/core/HostPaths.d.ts +0 -1
  66. package/dist/core/HostPaths.d.ts.map +1 -1
  67. package/dist/core/HostPaths.js +0 -2
  68. package/dist/core/HostPaths.js.map +1 -1
  69. package/dist/core/KillHandler.d.ts.map +1 -1
  70. package/dist/core/KillHandler.js +3 -1
  71. package/dist/core/KillHandler.js.map +1 -1
  72. package/dist/core/LiveSubscription.d.ts.map +1 -1
  73. package/dist/core/LiveSubscription.js +14 -2
  74. package/dist/core/LiveSubscription.js.map +1 -1
  75. package/dist/core/LiveSubscriptions.d.ts +3 -1
  76. package/dist/core/LiveSubscriptions.d.ts.map +1 -1
  77. package/dist/core/LiveSubscriptions.js +16 -1
  78. package/dist/core/LiveSubscriptions.js.map +1 -1
  79. package/dist/core/LogBody.d.ts.map +1 -1
  80. package/dist/core/LogBody.js +3 -1
  81. package/dist/core/LogBody.js.map +1 -1
  82. package/dist/core/LogVisibility.d.ts.map +1 -1
  83. package/dist/core/LogVisibility.js +8 -17
  84. package/dist/core/LogVisibility.js.map +1 -1
  85. package/dist/core/LoopDriver.js +7 -6
  86. package/dist/core/LoopDriver.js.map +1 -1
  87. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  88. package/dist/core/LoopLifecycle.js +4 -9
  89. package/dist/core/LoopLifecycle.js.map +1 -1
  90. package/dist/core/LoopLifecycle.sql +7 -6
  91. package/dist/core/MessageResources.sql +31 -0
  92. package/dist/core/OperatorConfig.d.ts +1 -0
  93. package/dist/core/OperatorConfig.d.ts.map +1 -1
  94. package/dist/core/OperatorConfig.js +10 -2
  95. package/dist/core/OperatorConfig.js.map +1 -1
  96. package/dist/core/PacketBuilder.d.ts +5 -7
  97. package/dist/core/PacketBuilder.d.ts.map +1 -1
  98. package/dist/core/PacketBuilder.js +160 -158
  99. package/dist/core/PacketBuilder.js.map +1 -1
  100. package/dist/core/PacketBuilder.sql +20 -6
  101. package/dist/core/ProposalLifecycle.d.ts +1 -1
  102. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  103. package/dist/core/ProposalLifecycle.js +18 -20
  104. package/dist/core/ProposalLifecycle.js.map +1 -1
  105. package/dist/core/ProposalPolicies.d.ts +6 -0
  106. package/dist/core/ProposalPolicies.d.ts.map +1 -0
  107. package/dist/core/ProposalPolicies.js +28 -0
  108. package/dist/core/ProposalPolicies.js.map +1 -0
  109. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  110. package/dist/core/ProviderInstantiate.js +3 -4
  111. package/dist/core/ProviderInstantiate.js.map +1 -1
  112. package/dist/core/ReplyMetadata.d.ts +10 -0
  113. package/dist/core/ReplyMetadata.d.ts.map +1 -0
  114. package/dist/core/ReplyMetadata.js +20 -0
  115. package/dist/core/ReplyMetadata.js.map +1 -0
  116. package/dist/core/ResourceSelector.js +2 -2
  117. package/dist/core/ResourceSelector.js.map +1 -1
  118. package/dist/core/ResourceTransfers.js +3 -3
  119. package/dist/core/ResourceTransfers.js.map +1 -1
  120. package/dist/core/RuntimeWorker.sql +1 -2
  121. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  122. package/dist/core/SchemeRegistry.js +4 -5
  123. package/dist/core/SchemeRegistry.js.map +1 -1
  124. package/dist/core/ServiceHelp.d.ts +6 -0
  125. package/dist/core/ServiceHelp.d.ts.map +1 -0
  126. package/dist/core/ServiceHelp.js +35 -0
  127. package/dist/core/ServiceHelp.js.map +1 -0
  128. package/dist/core/StoredPacket.d.ts +1 -0
  129. package/dist/core/StoredPacket.d.ts.map +1 -1
  130. package/dist/core/StoredPacket.js +4 -1
  131. package/dist/core/StoredPacket.js.map +1 -1
  132. package/dist/core/StrikeRail.d.ts.map +1 -1
  133. package/dist/core/StrikeRail.js +2 -2
  134. package/dist/core/StrikeRail.js.map +1 -1
  135. package/dist/core/TokenCalibration.d.ts +2 -2
  136. package/dist/core/TokenCalibration.d.ts.map +1 -1
  137. package/dist/core/TokenCalibration.js +12 -16
  138. package/dist/core/TokenCalibration.js.map +1 -1
  139. package/dist/core/TokenCalibration.sql +29 -6
  140. package/dist/core/ToolInputSchema.d.ts +1 -0
  141. package/dist/core/ToolInputSchema.d.ts.map +1 -1
  142. package/dist/core/ToolInputSchema.js +8 -2
  143. package/dist/core/ToolInputSchema.js.map +1 -1
  144. package/dist/core/ToolResources.d.ts +1 -0
  145. package/dist/core/ToolResources.d.ts.map +1 -1
  146. package/dist/core/ToolResources.js +7 -1
  147. package/dist/core/ToolResources.js.map +1 -1
  148. package/dist/core/TurnDispositionHandler.d.ts +1 -2
  149. package/dist/core/TurnDispositionHandler.d.ts.map +1 -1
  150. package/dist/core/TurnDispositionHandler.js +31 -33
  151. package/dist/core/TurnDispositionHandler.js.map +1 -1
  152. package/dist/core/TurnMaterialization.d.ts.map +1 -1
  153. package/dist/core/TurnMaterialization.js +12 -2
  154. package/dist/core/TurnMaterialization.js.map +1 -1
  155. package/dist/core/TurnOps.d.ts +5 -1
  156. package/dist/core/TurnOps.d.ts.map +1 -1
  157. package/dist/core/TurnOps.js +29 -2
  158. package/dist/core/TurnOps.js.map +1 -1
  159. package/dist/core/TurnRunner.d.ts.map +1 -1
  160. package/dist/core/TurnRunner.js +184 -103
  161. package/dist/core/TurnRunner.js.map +1 -1
  162. package/dist/core/TurnSources.sql +2 -2
  163. package/dist/core/WorkerControlHandler.d.ts.map +1 -1
  164. package/dist/core/WorkerControlHandler.js +1 -8
  165. package/dist/core/WorkerControlHandler.js.map +1 -1
  166. package/dist/core/WorkerName.d.ts +1 -0
  167. package/dist/core/WorkerName.d.ts.map +1 -1
  168. package/dist/core/WorkerName.js +2 -0
  169. package/dist/core/WorkerName.js.map +1 -1
  170. package/dist/core/WorkerName.sql +2 -2
  171. package/dist/core/WorkerOwners.d.ts +13 -0
  172. package/dist/core/WorkerOwners.d.ts.map +1 -0
  173. package/dist/core/WorkerOwners.js +44 -0
  174. package/dist/core/WorkerOwners.js.map +1 -0
  175. package/dist/core/WorkerOwners.sql +55 -0
  176. package/dist/core/env-catalog.d.ts +3 -0
  177. package/dist/core/env-catalog.d.ts.map +1 -1
  178. package/dist/core/env-catalog.js +44 -9
  179. package/dist/core/env-catalog.js.map +1 -1
  180. package/dist/core/fork.sql +3 -4
  181. package/dist/core/packet-inject.js +0 -2
  182. package/dist/core/packet-inject.js.map +1 -1
  183. package/dist/core/packet-wire.d.ts +9 -11
  184. package/dist/core/packet-wire.d.ts.map +1 -1
  185. package/dist/core/packet-wire.js +103 -126
  186. package/dist/core/packet-wire.js.map +1 -1
  187. package/dist/core/plurnk-uri.d.ts +1 -1
  188. package/dist/core/plurnk-uri.d.ts.map +1 -1
  189. package/dist/core/plurnk-uri.js +4 -4
  190. package/dist/core/plurnk-uri.js.map +1 -1
  191. package/dist/core/recap-lines.d.ts +4 -0
  192. package/dist/core/recap-lines.d.ts.map +1 -0
  193. package/dist/core/recap-lines.js +11 -0
  194. package/dist/core/recap-lines.js.map +1 -0
  195. package/dist/core/scheme-types.d.ts +2 -1
  196. package/dist/core/scheme-types.d.ts.map +1 -1
  197. package/dist/core/sql-functions.d.ts +2 -0
  198. package/dist/core/sql-functions.d.ts.map +1 -0
  199. package/dist/core/sql-functions.js +5 -0
  200. package/dist/core/sql-functions.js.map +1 -0
  201. package/dist/core/turn-scheduler.d.ts.map +1 -1
  202. package/dist/core/turn-scheduler.js +1 -1
  203. package/dist/core/turn-scheduler.js.map +1 -1
  204. package/dist/core/types.d.ts +0 -1
  205. package/dist/core/types.d.ts.map +1 -1
  206. package/dist/core/unregistered-scheme.d.ts +1 -3
  207. package/dist/core/unregistered-scheme.d.ts.map +1 -1
  208. package/dist/core/unregistered-scheme.js +3 -11
  209. package/dist/core/unregistered-scheme.js.map +1 -1
  210. package/dist/evidence/EvidenceReader.d.ts.map +1 -1
  211. package/dist/evidence/EvidenceReader.js +18 -2
  212. package/dist/evidence/EvidenceReader.js.map +1 -1
  213. package/dist/evidence/digest.sql +2 -2
  214. package/dist/man/plurnk-service.1 +488 -0
  215. package/dist/schemes/EffectPolicy.d.ts.map +1 -1
  216. package/dist/schemes/EffectPolicy.js +1 -10
  217. package/dist/schemes/EffectPolicy.js.map +1 -1
  218. package/dist/schemes/Env.d.ts +26 -0
  219. package/dist/schemes/Env.d.ts.map +1 -0
  220. package/dist/schemes/Env.js +133 -0
  221. package/dist/schemes/Env.js.map +1 -0
  222. package/dist/schemes/Exec.d.ts.map +1 -1
  223. package/dist/schemes/Exec.js +30 -37
  224. package/dist/schemes/Exec.js.map +1 -1
  225. package/dist/schemes/ExecOutputScheme.d.ts +3 -2
  226. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  227. package/dist/schemes/ExecOutputScheme.js +9 -0
  228. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  229. package/dist/schemes/File.d.ts.map +1 -1
  230. package/dist/schemes/File.js +10 -16
  231. package/dist/schemes/File.js.map +1 -1
  232. package/dist/schemes/Log.d.ts.map +1 -1
  233. package/dist/schemes/Log.js +33 -10
  234. package/dist/schemes/Log.js.map +1 -1
  235. package/dist/schemes/Log.sql +9 -0
  236. package/dist/schemes/QuestionTool.d.ts.map +1 -1
  237. package/dist/schemes/QuestionTool.js +1 -3
  238. package/dist/schemes/QuestionTool.js.map +1 -1
  239. package/dist/schemes/Worker.d.ts.map +1 -1
  240. package/dist/schemes/Worker.js +6 -8
  241. package/dist/schemes/Worker.js.map +1 -1
  242. package/dist/schemes/_entry-find.d.ts +1 -1
  243. package/dist/schemes/_entry-find.d.ts.map +1 -1
  244. package/dist/schemes/_entry-find.js +16 -9
  245. package/dist/schemes/_entry-find.js.map +1 -1
  246. package/dist/schemes/_entry-fts.d.ts.map +1 -1
  247. package/dist/schemes/_entry-fts.js +3 -9
  248. package/dist/schemes/_entry-fts.js.map +1 -1
  249. package/dist/schemes/_entry-manifest.js +3 -3
  250. package/dist/schemes/_entry-manifest.js.map +1 -1
  251. package/dist/schemes/_entry-ops.js +1 -1
  252. package/dist/schemes/_entry-ops.js.map +1 -1
  253. package/dist/schemes/exec-abort.js +2 -2
  254. package/dist/schemes/exec-abort.js.map +1 -1
  255. package/dist/server/ConfigurationDiagnostics.d.ts +1 -0
  256. package/dist/server/ConfigurationDiagnostics.d.ts.map +1 -1
  257. package/dist/server/ConfigurationDiagnostics.js +9 -0
  258. package/dist/server/ConfigurationDiagnostics.js.map +1 -1
  259. package/dist/server/Daemon.d.ts +13 -8
  260. package/dist/server/Daemon.d.ts.map +1 -1
  261. package/dist/server/Daemon.js +57 -53
  262. package/dist/server/Daemon.js.map +1 -1
  263. package/dist/server/DrainSupervisor.d.ts +2 -4
  264. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  265. package/dist/server/DrainSupervisor.js +5 -12
  266. package/dist/server/DrainSupervisor.js.map +1 -1
  267. package/dist/server/EnvFunctionality.d.ts +6 -6
  268. package/dist/server/EnvFunctionality.d.ts.map +1 -1
  269. package/dist/server/EnvFunctionality.js +7 -6
  270. package/dist/server/EnvFunctionality.js.map +1 -1
  271. package/dist/server/Functionality.d.ts.map +1 -1
  272. package/dist/server/Functionality.js +42 -13
  273. package/dist/server/Functionality.js.map +1 -1
  274. package/dist/server/FunctionalityManager.d.ts +3 -4
  275. package/dist/server/FunctionalityManager.d.ts.map +1 -1
  276. package/dist/server/FunctionalityManager.js +17 -9
  277. package/dist/server/FunctionalityManager.js.map +1 -1
  278. package/dist/server/HttpListener.d.ts.map +1 -1
  279. package/dist/server/HttpListener.js +9 -3
  280. package/dist/server/HttpListener.js.map +1 -1
  281. package/dist/server/MembersFunctionality.d.ts +2 -5
  282. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  283. package/dist/server/MembersFunctionality.js +5 -3
  284. package/dist/server/MembersFunctionality.js.map +1 -1
  285. package/dist/server/WorkspaceStorage.d.ts +0 -1
  286. package/dist/server/WorkspaceStorage.d.ts.map +1 -1
  287. package/dist/server/WorkspaceStorage.js +1 -24
  288. package/dist/server/WorkspaceStorage.js.map +1 -1
  289. package/dist/server/client-input.d.ts +1 -2
  290. package/dist/server/client-input.d.ts.map +1 -1
  291. package/dist/server/client-input.js +13 -15
  292. package/dist/server/client-input.js.map +1 -1
  293. package/dist/server/dispatch-as-plurnk.js +1 -1
  294. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  295. package/dist/server/drain.sql +16 -15
  296. package/dist/server/envelope.d.ts +2 -1
  297. package/dist/server/envelope.d.ts.map +1 -1
  298. package/dist/server/envelope.js +7 -17
  299. package/dist/server/envelope.js.map +1 -1
  300. package/dist/server/envelope.sql +5 -5
  301. package/dist/server/seam-proposal-list.sql +6 -4
  302. package/dist/server/workspace-storage.sql +0 -5
  303. package/dist/service.d.ts.map +1 -1
  304. package/dist/service.js +28 -64
  305. package/dist/service.js.map +1 -1
  306. package/docs/env.md +22 -0
  307. package/migrations/003_loops.sql +2 -2
  308. package/migrations/006_log.sql +1 -1
  309. package/migrations/016_selection_statements.sql +1 -0
  310. package/migrations/017_skills_module.sql +1 -0
  311. package/migrations/018_worker_owners.sql +103 -0
  312. package/migrations/019_interactive_owners.sql +7 -0
  313. package/migrations/020_log_projection.sql +144 -0
  314. package/migrations/021_packet_roles.sql +86 -0
  315. package/migrations/022_message_completion.sql +24 -0
  316. package/package.json +41 -43
  317. package/dist/core/LegacyHome.d.ts +0 -10
  318. package/dist/core/LegacyHome.d.ts.map +0 -1
  319. package/dist/core/LegacyHome.js +0 -170
  320. package/dist/core/LegacyHome.js.map +0 -1
  321. package/dist/core/LoopPolicies.d.ts +0 -7
  322. package/dist/core/LoopPolicies.d.ts.map +0 -1
  323. package/dist/core/LoopPolicies.js +0 -42
  324. package/dist/core/LoopPolicies.js.map +0 -1
  325. package/dist/core/LoopPolicyReader.d.ts +0 -7
  326. package/dist/core/LoopPolicyReader.d.ts.map +0 -1
  327. package/dist/core/LoopPolicyReader.js +0 -33
  328. package/dist/core/LoopPolicyReader.js.map +0 -1
  329. package/dist/core/LoopPolicyReader.sql +0 -6
  330. package/dist/index.d.ts +0 -14
  331. package/dist/index.d.ts.map +0 -1
  332. package/dist/index.js +0 -21
  333. package/dist/index.js.map +0 -1
@@ -0,0 +1,488 @@
1
+ .TH PLURNK-SERVICE 1 "2026-10-11" "plurnk-service 3.1.0" "User Commands"
2
+ .SH NAME
3
+ plurnk-service \- persistent agent runtime
4
+ .SH SYNOPSIS
5
+ .nf
6
+ plurnk-service [options] [start|migrate]
7
+ plurnk-service [options] config [edit|defaults|check]
8
+ plurnk-service [options] share [<file.db>] [<folder>] [--workspace=<id>] [--requiem]
9
+ plurnk-service [options] requiem <file.db> <folder>
10
+ .fi
11
+ .SH DESCRIPTION
12
+ Runs the Plurnk daemon or performs a local administrative command.
13
+ The terminal client is plurnk(1).
14
+ .SH OPTIONS AND COMMANDS
15
+ .TP
16
+ .B --service-db-path
17
+ Database path; empty = $XDG_DATA_HOME/plurnk/plurnk.db (~/.local/share
18
+ by default). Module operational state: $XDG_STATE_HOME/plurnk
19
+ (~/.local/state/plurnk by default).
20
+ (PLURNK_SERVICE_DB_PATH=)
21
+ .TP
22
+ .B --service-state-root
23
+ A private daemon's root ({§state-root}): empty = the XDG homes; an
24
+ absolute path (a leading ~/ expands) roots data, state, cache and
25
+ runtime under it as <root>/{data,state,cache,runtime}/plurnk.
26
+ Configuration and the shared Agent Skills root never move;
27
+ PLURNK_SERVICE_DB_PATH still wins.
28
+ (PLURNK_SERVICE_STATE_ROOT=)
29
+ .TP
30
+ .B --service-share-folder
31
+ Where `share` writes when no folder is named: each share is a stamped
32
+ child folder. A leading ~/ expands; empty =
33
+ $XDG_STATE_HOME/plurnk/shares (~/.local/state/plurnk/shares by default).
34
+ (PLURNK_SERVICE_SHARE_FOLDER=)
35
+ .TP
36
+ .B --service-sqlite-readers
37
+ Read-only database Workers beside the one writer Worker (database
38
+ Workers = 1 + readers); 0 = every read shares the writer. Non-negative
39
+ integer. Blank = sqlrite's own default.
40
+ (PLURNK_SERVICE_SQLITE_READERS=0)
41
+ .TP
42
+ .B --service-capabilities
43
+ CapabilityPolicy JSON: deny removes matching demands; only admits only
44
+ matches. Workspace policy may narrow this ceiling, never widen it.
45
+ (PLURNK_SERVICE_CAPABILITIES={})
46
+ .TP
47
+ .B --service-proposals
48
+ Proposal settlement: review asks the worker's owner; accept or reject
49
+ settles in core. Review without a capable owner rejects. Disconnect
50
+ alone never removes that capability.
51
+ (PLURNK_SERVICE_PROPOSALS=review)
52
+ .TP
53
+ .B --service-file-create-scope
54
+ New filesystem files: none | root | namespace (also outside root).
55
+ Existing-member writes unchanged.
56
+ (PLURNK_SERVICE_FILE_CREATE_SCOPE=root)
57
+ .TP
58
+ .B --service-members-model-scope
59
+ Model-added membership: none | root | namespace. Workspaces may narrow
60
+ it.
61
+ (PLURNK_SERVICE_MEMBERS_MODEL_SCOPE=namespace)
62
+ .TP
63
+ .B --members-enabled
64
+ Enable declared membership rules by default; per-alias _ENABLED
65
+ overrides this.
66
+ (PLURNK_MEMBERS_ENABLED=1)
67
+ .TP
68
+ .B --service-members-sample
69
+ Matched paths a members definition lists as its sample; the rest are
70
+ counted.
71
+ (PLURNK_SERVICE_MEMBERS_SAMPLE=20)
72
+ .TP
73
+ .B --service-git-allowed
74
+ Git membership, status, and branch integration: 1 = permitted; 0 =
75
+ denied service-wide.
76
+ (PLURNK_SERVICE_GIT_ALLOWED=1)
77
+ .TP
78
+ .B --service-git-auto
79
+ Include the repository containing project_root as members: 1 = yes; 0 =
80
+ explicit members only.
81
+ (PLURNK_SERVICE_GIT_AUTO=1)
82
+ .TP
83
+ .B --service-git-output-max-bytes
84
+ Maximum stdout/stderr bytes accepted from one native Git subprocess.
85
+ (PLURNK_SERVICE_GIT_OUTPUT_MAX_BYTES=67108864)
86
+ .TP
87
+ .B --service-file-materialize-max-bytes
88
+ Maximum bytes per workspace-file snapshot, 1..104857600. Larger sources
89
+ return 413 on READ/EDIT.
90
+ (PLURNK_SERVICE_FILE_MATERIALIZE_MAX_BYTES=104857600)
91
+ .TP
92
+ .B --service-max-turns
93
+ Opt-in model-call ceiling shared by the worker tree, including BARE and
94
+ resumes; -1 = uncapped. Runtime (_plurnk) ancestry supplies no ceiling.
95
+ Clients may tighten the model tree's limit.
96
+ (PLURNK_SERVICE_MAX_TURNS=-1)
97
+ .TP
98
+ .B --service-max-commands
99
+ Actions per emission; -1 = unlimited. Final disposition remains; excess
100
+ actions report an error.
101
+ (PLURNK_SERVICE_MAX_COMMANDS=-1)
102
+ .TP
103
+ .B --service-workspace-workers-max-active
104
+ Concurrent live workers per workspace; -1 = unlimited. Excess spawns
105
+ return 508, not a queue.
106
+ (PLURNK_SERVICE_WORKSPACE_WORKERS_MAX_ACTIVE=-1)
107
+ .TP
108
+ .B --service-loop-timeout
109
+ Active execution allowance per task, positive ms; WAIT pauses it, wakes
110
+ retain it. Exhaustion: 504.
111
+ (PLURNK_SERVICE_LOOP_TIMEOUT=86400000)
112
+ .TP
113
+ .B --service-live-timeout
114
+ Live/demo whole-specimen deadline, ms; includes all prompts and cancels
115
+ before cleanup.
116
+ (PLURNK_SERVICE_LIVE_TIMEOUT=600000)
117
+ .TP
118
+ .B --service-stop-timeout-ms
119
+ End-to-end shutdown budget, positive ms; includes database and listener
120
+ cleanup.
121
+ (PLURNK_SERVICE_STOP_TIMEOUT_MS=30000)
122
+ .TP
123
+ .B --service-provider-recovery
124
+ Provider recovery window, ms; 0 = no reissue. Expiry parks workers with
125
+ a reviewer; without one the loop concludes. BARE returns the provider
126
+ failure.
127
+ (PLURNK_SERVICE_PROVIDER_RECOVERY=900000)
128
+ .TP
129
+ .B --service-provider-recovery-backoff
130
+ First recovery delay, ms; doubles on failure up to
131
+ PROVIDER_RECOVERY_BACKOFF_MAX below.
132
+ (PLURNK_SERVICE_PROVIDER_RECOVERY_BACKOFF=5000)
133
+ .TP
134
+ .B --service-provider-recovery-backoff-max
135
+ Ceiling of that doubling delay, ms.
136
+ (PLURNK_SERVICE_PROVIDER_RECOVERY_BACKOFF_MAX=60000)
137
+ .TP
138
+ .B --service-max-strikes
139
+ Consecutive turn-contract strike threshold.
140
+ (PLURNK_SERVICE_MAX_STRIKES=3)
141
+ .TP
142
+ .B --service-emission-attempts
143
+ Completed responses allowed to produce an admissible turn against the
144
+ same packet.
145
+ (PLURNK_SERVICE_EMISSION_ATTEMPTS=3)
146
+ .TP
147
+ .B --service-min-cycles
148
+ Minimum repetitions before cycle detection fires.
149
+ (PLURNK_SERVICE_MIN_CYCLES=3)
150
+ .TP
151
+ .B --service-max-cycle-period
152
+ Maximum repeating period examined by cycle detection, turns.
153
+ (PLURNK_SERVICE_MAX_CYCLE_PERIOD=4)
154
+ .TP
155
+ .B --service-error-detail-limit
156
+ Maximum characters of runtime diagnostics exposed in model-facing
157
+ errors.
158
+ (PLURNK_SERVICE_ERROR_DETAIL_LIMIT=512)
159
+ .TP
160
+ .B --service-workspace-warm-ms
161
+ Idle workspace Functionality grace, ms; 0 = cool immediately; -1 = no
162
+ time limit.
163
+ (PLURNK_SERVICE_WORKSPACE_WARM_MS=900000)
164
+ .TP
165
+ .B --service-workspace-warm-max
166
+ Retained idle workspace snapshots; 0 = none; -1 = unlimited. Active work
167
+ is exempt.
168
+ (PLURNK_SERVICE_WORKSPACE_WARM_MAX=2)
169
+ .TP
170
+ .B --service-proposal-timeout-ms
171
+ Proposal wait, positive ms; empty = wait indefinitely. Expiry cancels
172
+ the proposal.
173
+ (PLURNK_SERVICE_PROPOSAL_TIMEOUT_MS=)
174
+ .TP
175
+ .B --service-exec-hold
176
+ Comma-separated runtime or runtime:effect names that hold the next turn
177
+ while executing; empty = none.
178
+ (PLURNK_SERVICE_EXEC_HOLD=)
179
+ .TP
180
+ .B --service-exec-hold-ms
181
+ Maximum turn hold, ms; expiry lets the loop continue while the stream
182
+ remains live.
183
+ (PLURNK_SERVICE_EXEC_HOLD_MS=300000)
184
+ .TP
185
+ .B --service-exec-concurrency
186
+ Concurrent EXEC producers per workspace; excess executions wait FIFO; -1
187
+ = unlimited.
188
+ (PLURNK_SERVICE_EXEC_CONCURRENCY=12)
189
+ .TP
190
+ .B --service-exec-input-timeout-ms
191
+ Live input delivery deadline, positive ms, including queued writes;
192
+ expiry retires input, not the process.
193
+ (PLURNK_SERVICE_EXEC_INPUT_TIMEOUT_MS=10000)
194
+ .TP
195
+ .B --service-exec-probe-timeout-ms
196
+ Deadline for one runtime's availability probe at boot, positive ms;
197
+ expiry reports it unavailable.
198
+ (PLURNK_SERVICE_EXEC_PROBE_TIMEOUT_MS=3000)
199
+ .TP
200
+ .B --service-exec-scratch
201
+ Directory a non-file execution source (`sh (log:///…)`) is written to
202
+ for its run, created 0700 on first use ({§exec-scratch-directory}).
203
+ Empty = $XDG_RUNTIME_DIR/plurnk, else the platform temporary directory.
204
+ An executor in another filesystem namespace (a container that mounts
205
+ only the repository) must see the same directory: point this at one it
206
+ mounts.
207
+ (PLURNK_SERVICE_EXEC_SCRATCH=)
208
+ .TP
209
+ .B --service-effect-host
210
+ What an operation that runs code or changes the world does: propose = it
211
+ needs a settlement; auto = it runs ungated. This covers a subprocess and
212
+ an outbound POST, PUT or DELETE alike.
213
+ (PLURNK_SERVICE_EFFECT_HOST=propose)
214
+ .TP
215
+ .B --service-effect-read
216
+ The same for an operation that only observes external state.
217
+ (PLURNK_SERVICE_EFFECT_READ=auto)
218
+ .TP
219
+ .B --service-effect-pure
220
+ The same for an operation with no observable effect.
221
+ (PLURNK_SERVICE_EFFECT_PURE=auto)
222
+ .TP
223
+ .B --service-optimistic-wait-ms
224
+ Brief settlement wait for new streams/completing siblings, ms; 0 = off;
225
+ quiescence ends it early.
226
+ (PLURNK_SERVICE_OPTIMISTIC_WAIT_MS=5000)
227
+ .TP
228
+ .B --service-wait-sec
229
+ Maximum park before reassessing live work, positive seconds; WAIT
230
+ [seconds] overrides one park.
231
+ (PLURNK_SERVICE_WAIT_SEC=300)
232
+ .TP
233
+ .B --service-exec-env-inherit
234
+ Ambient environment an EXEC subprocess may inherit from the host: exact
235
+ names, or one trailing-* prefix glob. This is a CEILING — a worker or a
236
+ heading modifier narrows it, nothing widens it. plurnk's own secrets
237
+ (PLURNK_* and every provider credential name) are stripped beneath it
238
+ unconditionally and are not governed by this knob. The shipped list is
239
+ what a shell, git, node and python need to run at all. An operator who
240
+ wants a tool's credential reachable by model-written commands adds it by
241
+ name.
242
+ (PLURNK_SERVICE_EXEC_ENV_INHERIT=PATH,HOME,USER,LOGNAME,SHELL,PWD,TMPDIR,TERM,TZ,LANG,LC_*,PAGER,GIT_PAGER,NO_COLOR,CI)
243
+ .TP
244
+ .B --service-exec-env-exclude
245
+ Names removed after INHERIT, same shapes; narrows without rewriting the
246
+ list above.
247
+ (PLURNK_SERVICE_EXEC_ENV_EXCLUDE=)
248
+ .TP
249
+ .B --service-exec-kill-grace-ms
250
+ Grace after a termination signal, ms; then SIGKILL the surviving process
251
+ group.
252
+ (PLURNK_SERVICE_EXEC_KILL_GRACE_MS=2000)
253
+ .TP
254
+ .B --service-line-anchor-context-lines
255
+ Minimum neighbors hashed on each side of an editable line anchor;
256
+ repeated handles widen context.
257
+ (PLURNK_SERVICE_LINE_ANCHOR_CONTEXT_LINES=2)
258
+ .TP
259
+ .B --service-edit-receipt-context-lines
260
+ Surrounding and changed lines shown at each EDIT boundary; overlapping
261
+ windows coalesce.
262
+ (PLURNK_SERVICE_EDIT_RECEIPT_CONTEXT_LINES=4)
263
+ .TP
264
+ .B --service-edit-receipt-removed-lines
265
+ Removed lines a pure deletion's receipt carries so it can be undone; a
266
+ longer span is cut and counted.
267
+ (PLURNK_SERVICE_EDIT_RECEIPT_REMOVED_LINES=40)
268
+ .TP
269
+ .B --service-git-status-paths
270
+ Paths named per class in the packet's git status; the rest are counted.
271
+ (PLURNK_SERVICE_GIT_STATUS_PATHS=8)
272
+ .TP
273
+ .B --service-budget-pressure
274
+ Above this share of the budget, measured before adding either, the
275
+ Context gauge names its largest rows and a packet within its budget
276
+ carries the budget_pressure notice ({§context-pressure-notice}).
277
+ (PLURNK_SERVICE_BUDGET_PRESSURE=80%)
278
+ .TP
279
+ .B --service-budget-largest-items
280
+ Heaviest retained log rows the pressured Context gauge names, as {path,
281
+ tokens}; 0 names none.
282
+ (PLURNK_SERVICE_BUDGET_LARGEST_ITEMS=5)
283
+ .TP
284
+ .B --service-preview-lines
285
+ First page of everything that comes back unasked in size: a READ or FIND
286
+ without a scope, a stream's delivery, a peer worker's message, a receipt
287
+ the model did not author ({§markerless-first-page}). Lines of text,
288
+ bytes of a byte view, results of a FIND; explicit scopes stay exact.
289
+ (PLURNK_SERVICE_PREVIEW_LINES=100)
290
+ .TP
291
+ .B --service-preview-chars
292
+ Independent bound on the same page, Unicode code points; CRLF counts as
293
+ one separator.
294
+ (PLURNK_SERVICE_PREVIEW_CHARS=16000)
295
+ .TP
296
+ .B --service-emission-history
297
+ Assistant replay ({§emission-history}): none, latest, or all eligible
298
+ turns from this loop, each as the NOTEs it wrote, in the model's voice;
299
+ every other operation is omitted. The context wall may omit the whole
300
+ section; source evidence never changes.
301
+ (PLURNK_SERVICE_EMISSION_HISTORY=all)
302
+ .TP
303
+ .B --service-reasoning-rows
304
+ Optional reasoning memory ({§reasoning-row}): 1 adds the turn's preview
305
+ before its emission or results, only when room remains after all
306
+ requested results and diagnostics. Otherwise omit it silently. 0
307
+ disables it.
308
+ (PLURNK_SERVICE_REASONING_ROWS=0)
309
+ .TP
310
+ .B --service-catalog-summary-chars
311
+ Code points of an entry's prose summary the catalog shows whole.
312
+ (PLURNK_SERVICE_CATALOG_SUMMARY_CHARS=256)
313
+ .TP
314
+ .B --service-log-read-page
315
+ Log entries one client read returns when it names no limit.
316
+ (PLURNK_SERVICE_LOG_READ_PAGE=100)
317
+ .TP
318
+ .B --service-log-read-max
319
+ Ceiling of one client log read, whatever limit it names.
320
+ (PLURNK_SERVICE_LOG_READ_MAX=1000)
321
+ .TP
322
+ .B --service-prompts-page
323
+ Root-conversation prompts one listing returns when it names no limit.
324
+ (PLURNK_SERVICE_PROMPTS_PAGE=100)
325
+ .TP
326
+ .B --service-model-catalog-page
327
+ Models one catalog page lists when the query names no limit.
328
+ (PLURNK_SERVICE_MODEL_CATALOG_PAGE=50)
329
+ .TP
330
+ .B --service-files-items
331
+ Turn-0 surveys: -1 = whole surveys (each fits the budget or lands as its
332
+ size); N > 0 caps file-map rows; 0 = off. Workspace settings.filesItems
333
+ overrides this default; other surveys stay whole.
334
+ (PLURNK_SERVICE_FILES_ITEMS=-1)
335
+ .TP
336
+ .B --service-docs-exclude
337
+ Scheme names omitted from discoverable references, comma-separated;
338
+ empty = none. Executable docs instead follow tool enablement. Extension
339
+ trust lives in plurnk-meta's defaults.
340
+ (PLURNK_SERVICE_DOCS_EXCLUDE=plurnk,file,exec)
341
+ .TP
342
+ .B --service-roots
343
+ Skills, plugin and standalone MCP configuration roots, comma-separated,
344
+ nearest first: project (the workspace project's .agents), plurnk
345
+ ($XDG_CONFIG_HOME/plurnk), global (~/.agents).
346
+ (PLURNK_SERVICE_ROOTS=project,plurnk,global)
347
+ .TP
348
+ .B --service-search-exclude
349
+ Comma-separated globs excluded from derivation, not READ. No slash =
350
+ basename; slash = pathname.
351
+ (PLURNK_SERVICE_SEARCH_EXCLUDE=*.min.*,*.map,package-lock.json,npm-shrinkwrap.json,packages.lock.json,yarn.lock,pnpm-lock.yaml,bun.lockb,Cargo.lock,poetry.lock,uv.lock,Pipfile.lock,Gemfile.lock,composer.lock,go.sum,flake.lock,gradle.lockfile,*/dist/*,dist/*,*/build/*,build/*,*/.next/*,.next/*,*/node_modules/*,node_modules/*,*/vendor/*,vendor/*,*/coverage/*,coverage/*,*/.vuepress/*,.vuepress/*,*/.nuxt/*,.nuxt/*)
352
+ .TP
353
+ .B --service-search-max-bytes
354
+ Bodies larger than this many bytes are not parsed or full-text indexed
355
+ (READ is unaffected); empty = unbounded.
356
+ (PLURNK_SERVICE_SEARCH_MAX_BYTES=)
357
+ .TP
358
+ .B --service-derive-concurrency
359
+ Concurrent parser derivations: empty = sqrt(available cores); -1 = all
360
+ cores; positive N = exact cap.
361
+ (PLURNK_SERVICE_DERIVE_CONCURRENCY=)
362
+ .TP
363
+ .B --service-derive-store-batch
364
+ Maximum symbol/reference rows per indexing SQLite statement.
365
+ (PLURNK_SERVICE_DERIVE_STORE_BATCH=1024)
366
+ .TP
367
+ .B --service-derive-progress-heartbeat-ms
368
+ Progress heartbeat, ms; starts, failures, and completion are immediate;
369
+ no-op passes stay silent.
370
+ (PLURNK_SERVICE_DERIVE_PROGRESS_HEARTBEAT_MS=15000)
371
+ .TP
372
+ .B --service-retain-packet-turns
373
+ Packet compositions kept per loop, newest first; -1 = every packet,
374
+ forever.
375
+ (PLURNK_SERVICE_RETAIN_PACKET_TURNS=-1)
376
+ .TP
377
+ .B --service-retain-packet-ms
378
+ Packet compositions kept by age, ms since the turn completed; -1 = no
379
+ age limit. Thirty days: no worker reads its own packets back that late,
380
+ and a daemon left running for months stops growing.
381
+ (PLURNK_SERVICE_RETAIN_PACKET_MS=2592000000)
382
+ .TP
383
+ .B --service-retain-response-turns
384
+ Model response bodies kept per loop, newest first; -1 = every body,
385
+ forever. The call's evidence, admission and accounting always stay.
386
+ (PLURNK_SERVICE_RETAIN_RESPONSE_TURNS=-1)
387
+ .TP
388
+ .B --service-retain-response-ms
389
+ Model response bodies kept by age, ms since the turn completed; -1 = no
390
+ age limit. Thirty days, as above.
391
+ (PLURNK_SERVICE_RETAIN_RESPONSE_MS=2592000000)
392
+ .TP
393
+ .B --service-collect-packet-items
394
+ Collect packet items no turn's composition references (1), or keep them
395
+ (0).
396
+ (PLURNK_SERVICE_COLLECT_PACKET_ITEMS=1)
397
+ .TP
398
+ .B --service-collect-derivations
399
+ Collect derivations no channel, turn source, or log row cites (1), or
400
+ keep them (0).
401
+ (PLURNK_SERVICE_COLLECT_DERIVATIONS=1)
402
+ .TP
403
+ .B --service-collect-contents
404
+ Collect stored bodies no channel holds and no derivation indexes (1), or
405
+ keep them (0) ({§content-store}).
406
+ (PLURNK_SERVICE_COLLECT_CONTENTS=1)
407
+ .TP
408
+ .B --service-retention-interval-ms
409
+ Retention cadence while the daemon runs, ms; 0 = at shutdown only.
410
+ (PLURNK_SERVICE_RETENTION_INTERVAL_MS=3600000)
411
+ .TP
412
+ .B --service-auto-vacuum
413
+ SQLite auto-vacuum mode the daemon keeps its file in
414
+ ({§db-space-reclamation}): incremental = retention passes return free
415
+ pages to the OS; none = the file only grows, and freed pages are reused.
416
+ A change takes effect at the next start through one VACUUM, which
417
+ rewrites the whole file (needs free disk about the file's size and
418
+ blocks the daemon for its duration).
419
+ (PLURNK_SERVICE_AUTO_VACUUM=incremental)
420
+ .TP
421
+ .B --service-reclaim-min-free-bytes
422
+ Free space, bytes, below which a retention pass leaves free pages for
423
+ SQLite to reuse instead of returning them; 0 = return every free page
424
+ each pass.
425
+ (PLURNK_SERVICE_RECLAIM_MIN_FREE_BYTES=0)
426
+ .TP
427
+ .B --host
428
+ Where the daemon listens, and so where a local client dials: one line
429
+ moves both.
430
+ (PLURNK_HOST=127.0.0.1)
431
+ .TP
432
+ .B --port
433
+ The daemon's TCP port, shared by all client interfaces.
434
+ (PLURNK_PORT=1066)
435
+ .TP
436
+ .B --env-file=<path>
437
+ layer env from <path> (repeatable; later wins; errors if
438
+ missing)
439
+ .TP
440
+ .B --env-file-if-exists=<path>
441
+ layer env from <path> if present (repeatable; later
442
+ wins)
443
+ .TP
444
+ .B --config=<path>
445
+ layer additional env from
446
+ <path>
447
+ .TP
448
+ .B config defaults
449
+ print every installed package's annotated
450
+ \&.env.defaults
451
+ .TP
452
+ .B config check
453
+ validate configuration without contacting a
454
+ provider
455
+ .TP
456
+ .B share
457
+ share a consistent copy of the database as a digest <folder> (default
458
+ database: the service's; default folder: a stamped child of
459
+ PLURNK_SERVICE_SHARE_FOLDER); --workspace=<id> limits it to one
460
+ workspace; --requiem adds the forensic interview (calls a
461
+ model)
462
+ .TP
463
+ .B requiem
464
+ add the forensic interview to a digest <folder> of <file.db> (calls a
465
+ model)
466
+ .TP
467
+ .B -v, --version
468
+ show executable
469
+ provenance
470
+ .TP
471
+ .B -h, --help
472
+ show this
473
+ help
474
+ .SH CONFIGURATION
475
+ Run plurnk-service config defaults for the installed configuration catalog,
476
+ or plurnk-service config check to validate configuration
477
+ without contacting a provider.
478
+ The package's INSTALL.md describes the configuration cascade
479
+ and resource scopes.
480
+ .SH FILES
481
+ .TP
482
+ .I $XDG_CONFIG_HOME/plurnk/.env
483
+ Operator configuration; ~/.config/plurnk/.env when XDG_CONFIG_HOME is unset.
484
+ .TP
485
+ .I plurnk.service
486
+ Optional systemd user unit shipped in the package; installation is manual.
487
+ .SH SEE ALSO
488
+ plurnk(1)
@@ -1 +1 @@
1
- {"version":3,"file":"EffectPolicy.d.ts","sourceRoot":"","sources":["../../src/schemes/EffectPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AA+B5C,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE/C;IAED,MAAM,CAAC,qBAAqB,IAAI,IAAI,CAEnC;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAGxC;CACJ"}
1
+ {"version":3,"file":"EffectPolicy.d.ts","sourceRoot":"","sources":["../../src/schemes/EffectPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAsB5C,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE/C;IAED,MAAM,CAAC,qBAAqB,IAAI,IAAI,CAEnC;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAExC;CACJ"}
@@ -1,4 +1,4 @@
1
- import { ConfigurationError, Knob } from "@plurnk/plurnk-meta";
1
+ import { Knob } from "@plurnk/plurnk-meta";
2
2
  // Service-owned policy: maps an executor-declared `effect` to the proposal
3
3
  // lifecycle. The executor declares the FACT (does this invocation mutate the
4
4
  // host?); the service decides the POLICY (does it need a human gate?).
@@ -18,14 +18,6 @@ const KNOBS = Object.freeze({
18
18
  read: "PLURNK_SERVICE_EFFECT_READ",
19
19
  pure: "PLURNK_SERVICE_EFFECT_PURE",
20
20
  });
21
- // Refuses the retired composite knob, naming its successors.
22
- const shedRetiredComposite = () => {
23
- const composite = "PLURNK_SERVICE_EFFECT_POLICY";
24
- const stale = process.env[composite];
25
- if (stale !== undefined && stale.length > 0) {
26
- throw new ConfigurationError(composite, `${composite} is retired: state ${Object.values(KNOBS).join(", ")} instead, one effect each.`);
27
- }
28
- };
29
21
  export default class EffectPolicy {
30
22
  static isEffect(value) {
31
23
  return value === "pure" || value === "read" || value === "host";
@@ -35,7 +27,6 @@ export default class EffectPolicy {
35
27
  EffectPolicy.decide(effect);
36
28
  }
37
29
  static decide(effect) {
38
- shedRetiredComposite();
39
30
  return Knob.choice(KNOBS[effect], POLICIES);
40
31
  }
41
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EffectPolicy.js","sourceRoot":"","sources":["../../src/schemes/EffectPolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAI/D,2EAA2E;AAC3E,6EAA6E;AAC7E,uEAAuE;AACvE,EAAE;AACF,6EAA6E;AAC7E,iFAAiF;AACjF,4EAA4E;AAC5E,0EAA0E;AAC1E,wBAAwB;AACxB,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,iFAAiF;AACjF,MAAM,QAAQ,GAA0B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAC5D,MAAM,KAAK,GAAqC,MAAM,CAAC,MAAM,CAAC;IAC1D,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,4BAA4B;CACrC,CAAC,CAAC;AAEH,6DAA6D;AAC7D,MAAM,oBAAoB,GAAG,GAAS,EAAE;IACpC,MAAM,SAAS,GAAG,8BAA8B,CAAC;IACjD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,kBAAkB,CAAC,SAAS,EAAE,GAAG,SAAS,sBAAsB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC3I,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,QAAQ,CAAC,KAAc;QAC1B,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,qBAAqB;QACxB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAa;YAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,MAAc;QACxB,oBAAoB,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;CACJ"}
1
+ {"version":3,"file":"EffectPolicy.js","sourceRoot":"","sources":["../../src/schemes/EffectPolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAI3C,2EAA2E;AAC3E,6EAA6E;AAC7E,uEAAuE;AACvE,EAAE;AACF,6EAA6E;AAC7E,iFAAiF;AACjF,4EAA4E;AAC5E,0EAA0E;AAC1E,wBAAwB;AACxB,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,iFAAiF;AACjF,MAAM,QAAQ,GAA0B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAC5D,MAAM,KAAK,GAAqC,MAAM,CAAC,MAAM,CAAC;IAC1D,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,4BAA4B;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,QAAQ,CAAC,KAAc;QAC1B,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,qBAAqB;QACxB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAa;YAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,MAAc;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;CACJ"}
@@ -0,0 +1,26 @@
1
+ import type { FindStatement, KillStatement } from "@plurnk/plurnk-contracts";
2
+ import { type EditBatchResult, type RepresentationPreparationRequest, type RepresentationPreparationResult, type ResolvedEditStatement, type RuntimeSchemeFacet, type SchemeCtx, type SchemeResult } from "@plurnk/plurnk-schemes";
3
+ import type { EnvRecord } from "../server/EnvFunctionality.ts";
4
+ export interface EnvRegistry {
5
+ readonly env: NodeJS.ProcessEnv;
6
+ readonly record: Readonly<Record<string, EnvRecord>>;
7
+ }
8
+ export type EnvResolve = (workspaceId: number, workerId: number) => Promise<EnvRegistry>;
9
+ export type EnvWriteVerb = "add" | "remove" | "disable";
10
+ export interface EnvWriteIdentity {
11
+ readonly workspaceId: number;
12
+ readonly workerId: number;
13
+ readonly scope: "worker";
14
+ }
15
+ export type EnvInvoke = (verb: EnvWriteVerb, params: unknown, identity: EnvWriteIdentity) => Promise<unknown>;
16
+ export default class EnvScheme implements RuntimeSchemeFacet {
17
+ #private;
18
+ readonly manifest: NonNullable<RuntimeSchemeFacet["manifest"]>;
19
+ constructor(resolve: EnvResolve, invoke: EnvInvoke);
20
+ claims(pathname: string): boolean;
21
+ prepareRepresentation(request: RepresentationPreparationRequest, ctx: SchemeCtx): Promise<RepresentationPreparationResult>;
22
+ prepareFind(statement: FindStatement, ctx: SchemeCtx): Promise<SchemeResult>;
23
+ editBatch(statements: readonly ResolvedEditStatement[], ctx: SchemeCtx): Promise<EditBatchResult>;
24
+ kill(statement: KillStatement, ctx: SchemeCtx): Promise<SchemeResult>;
25
+ }
26
+ //# sourceMappingURL=Env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Env.d.ts","sourceRoot":"","sources":["../../src/schemes/Env.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAc,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAEH,KAAK,eAAe,EACpB,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,YAAY,EACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;CACxD;AACD,MAAM,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AACzF,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AACxD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC5B;AACD,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAa9G,MAAM,CAAC,OAAO,OAAO,SAAU,YAAW,kBAAkB;;IACxD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAE5D;IAIF,YAAY,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAGjD;IAGD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEhC;IA2CK,qBAAqB,CAAC,OAAO,EAAE,gCAAgC,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAU/H;IAIK,WAAW,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAejF;IAGK,SAAS,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CActG;IAIK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAU1E;CACJ"}