@plurnk/plurnk-service 3.3.0 → 4.0.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 (298) hide show
  1. package/.env.defaults +1 -1
  2. package/INSTALL.md +6 -0
  3. package/README.md +2 -2
  4. package/SPEC.md +380 -159
  5. package/dist/build-info.json +1 -1
  6. package/dist/completions/_plurnk-service +1 -1
  7. package/dist/completions/plurnk-service.bash +1 -1
  8. package/dist/completions/plurnk-service.fish +2 -0
  9. package/dist/content/read-projector.js +1 -1
  10. package/dist/content/read-projector.js.map +1 -1
  11. package/dist/core/AdministrativeLoop.d.ts +1 -1
  12. package/dist/core/AdministrativeLoop.d.ts.map +1 -1
  13. package/dist/core/AdministrativeLoop.js +4 -1
  14. package/dist/core/AdministrativeLoop.js.map +1 -1
  15. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
  16. package/dist/core/AdmittedTurnExecutor.js +8 -0
  17. package/dist/core/AdmittedTurnExecutor.js.map +1 -1
  18. package/dist/core/BareBatchRunner.js +2 -1
  19. package/dist/core/BareBatchRunner.js.map +1 -1
  20. package/dist/core/ChannelWrite.d.ts +10 -0
  21. package/dist/core/ChannelWrite.d.ts.map +1 -1
  22. package/dist/core/ChannelWrite.js +10 -0
  23. package/dist/core/ChannelWrite.js.map +1 -1
  24. package/dist/core/ChannelWrite.sql +14 -2
  25. package/dist/core/ClientInteractions.d.ts.map +1 -1
  26. package/dist/core/ClientInteractions.js +2 -1
  27. package/dist/core/ClientInteractions.js.map +1 -1
  28. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  29. package/dist/core/CoreSchemeServices.js +5 -0
  30. package/dist/core/CoreSchemeServices.js.map +1 -1
  31. package/dist/core/DataStatementRunner.js +4 -6
  32. package/dist/core/DataStatementRunner.js.map +1 -1
  33. package/dist/core/Dispatcher.d.ts +3 -7
  34. package/dist/core/Dispatcher.d.ts.map +1 -1
  35. package/dist/core/Dispatcher.js +46 -68
  36. package/dist/core/Dispatcher.js.map +1 -1
  37. package/dist/core/Dispatcher.sql +2 -2
  38. package/dist/core/EditMutations.js +1 -0
  39. package/dist/core/EditMutations.js.map +1 -1
  40. package/dist/core/Engine.d.ts +8 -14
  41. package/dist/core/Engine.d.ts.map +1 -1
  42. package/dist/core/Engine.js +22 -24
  43. package/dist/core/Engine.js.map +1 -1
  44. package/dist/core/Engine.sql +6 -6
  45. package/dist/core/ExecutorRegistry.d.ts +0 -5
  46. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  47. package/dist/core/ExecutorRegistry.js +10 -18
  48. package/dist/core/ExecutorRegistry.js.map +1 -1
  49. package/dist/core/FileAddress.js +1 -1
  50. package/dist/core/FileAddress.js.map +1 -1
  51. package/dist/core/FilePublication.js +10 -74
  52. package/dist/core/FilePublication.js.map +1 -1
  53. package/dist/core/FileSnapshot.js +36 -100
  54. package/dist/core/FileSnapshot.js.map +1 -1
  55. package/dist/core/HostPaths.d.ts +1 -0
  56. package/dist/core/HostPaths.d.ts.map +1 -1
  57. package/dist/core/HostPaths.js +11 -1
  58. package/dist/core/HostPaths.js.map +1 -1
  59. package/dist/core/KillHandler.js +3 -1
  60. package/dist/core/KillHandler.js.map +1 -1
  61. package/dist/core/LiveSubscription.js +1 -1
  62. package/dist/core/LiveSubscription.js.map +1 -1
  63. package/dist/core/LogBody.js +1 -1
  64. package/dist/core/LogBody.js.map +1 -1
  65. package/dist/core/LogWriter.js +1 -1
  66. package/dist/core/LogWriter.js.map +1 -1
  67. package/dist/core/LoopDriver.d.ts +3 -3
  68. package/dist/core/LoopDriver.d.ts.map +1 -1
  69. package/dist/core/LoopDriver.js +15 -13
  70. package/dist/core/LoopDriver.js.map +1 -1
  71. package/dist/core/LoopLifecycle.d.ts +5 -0
  72. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  73. package/dist/core/LoopLifecycle.js +14 -1
  74. package/dist/core/LoopLifecycle.js.map +1 -1
  75. package/dist/core/LoopLifecycle.sql +8 -0
  76. package/dist/core/MembershipMaterialization.js +2 -2
  77. package/dist/core/MembershipMaterialization.js.map +1 -1
  78. package/dist/core/MessageResources.d.ts +3 -0
  79. package/dist/core/MessageResources.d.ts.map +1 -1
  80. package/dist/core/MessageResources.js +15 -1
  81. package/dist/core/MessageResources.js.map +1 -1
  82. package/dist/core/OperatorConfig.d.ts +1 -2
  83. package/dist/core/OperatorConfig.d.ts.map +1 -1
  84. package/dist/core/OperatorConfig.js +26 -92
  85. package/dist/core/OperatorConfig.js.map +1 -1
  86. package/dist/core/PacketBuilder.js +6 -6
  87. package/dist/core/PacketBuilder.js.map +1 -1
  88. package/dist/core/PacketBuilder.sql +7 -8
  89. package/dist/core/ProblemLog.d.ts +1 -0
  90. package/dist/core/ProblemLog.d.ts.map +1 -1
  91. package/dist/core/ProblemLog.js +2 -2
  92. package/dist/core/ProblemLog.js.map +1 -1
  93. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  94. package/dist/core/ProposalLifecycle.js +13 -8
  95. package/dist/core/ProposalLifecycle.js.map +1 -1
  96. package/dist/core/ProposalPolicies.d.ts +4 -1
  97. package/dist/core/ProposalPolicies.d.ts.map +1 -1
  98. package/dist/core/ProposalPolicies.js +5 -2
  99. package/dist/core/ProposalPolicies.js.map +1 -1
  100. package/dist/core/ResourceMutations.js +2 -0
  101. package/dist/core/ResourceMutations.js.map +1 -1
  102. package/dist/core/ResourceSelector.js +1 -1
  103. package/dist/core/ResourceSelector.js.map +1 -1
  104. package/dist/core/SchemeRegistry.js +1 -1
  105. package/dist/core/SchemeRegistry.js.map +1 -1
  106. package/dist/core/ServiceHelp.js +1 -1
  107. package/dist/core/ServiceHelp.js.map +1 -1
  108. package/dist/core/ServiceTeardown.js +9 -12
  109. package/dist/core/ServiceTeardown.js.map +1 -1
  110. package/dist/core/StrikeRail.d.ts +2 -1
  111. package/dist/core/StrikeRail.d.ts.map +1 -1
  112. package/dist/core/StrikeRail.js +11 -6
  113. package/dist/core/StrikeRail.js.map +1 -1
  114. package/dist/core/TerminalResult.js +1 -1
  115. package/dist/core/TerminalResult.js.map +1 -1
  116. package/dist/core/TurnDispositionHandler.js +3 -2
  117. package/dist/core/TurnDispositionHandler.js.map +1 -1
  118. package/dist/core/TurnMaterialization.js +6 -4
  119. package/dist/core/TurnMaterialization.js.map +1 -1
  120. package/dist/core/TurnMaterialization.sql +1 -1
  121. package/dist/core/TurnOps.js +1 -0
  122. package/dist/core/TurnOps.js.map +1 -1
  123. package/dist/core/TurnRunner.d.ts +4 -2
  124. package/dist/core/TurnRunner.d.ts.map +1 -1
  125. package/dist/core/TurnRunner.js +63 -51
  126. package/dist/core/TurnRunner.js.map +1 -1
  127. package/dist/core/WorkerControlHandler.d.ts +2 -0
  128. package/dist/core/WorkerControlHandler.d.ts.map +1 -1
  129. package/dist/core/WorkerControlHandler.js +48 -16
  130. package/dist/core/WorkerControlHandler.js.map +1 -1
  131. package/dist/core/WorkerName.d.ts +0 -4
  132. package/dist/core/WorkerName.d.ts.map +1 -1
  133. package/dist/core/WorkerName.js +5 -30
  134. package/dist/core/WorkerName.js.map +1 -1
  135. package/dist/core/WorkerName.sql +4 -20
  136. package/dist/core/WorkerOwners.d.ts +1 -0
  137. package/dist/core/WorkerOwners.d.ts.map +1 -1
  138. package/dist/core/WorkerOwners.js +6 -0
  139. package/dist/core/WorkerOwners.js.map +1 -1
  140. package/dist/core/WorkerOwners.sql +7 -0
  141. package/dist/core/WorkspaceGate.d.ts +3 -1
  142. package/dist/core/WorkspaceGate.d.ts.map +1 -1
  143. package/dist/core/WorkspaceGate.js +59 -10
  144. package/dist/core/WorkspaceGate.js.map +1 -1
  145. package/dist/core/caps/SchemeCtxImpl.d.ts +2 -0
  146. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  147. package/dist/core/caps/SchemeCtxImpl.js +12 -0
  148. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  149. package/dist/core/env-catalog.js +1 -1
  150. package/dist/core/env-catalog.js.map +1 -1
  151. package/dist/core/fork.js +1 -1
  152. package/dist/core/fork.js.map +1 -1
  153. package/dist/core/fork.sql +5 -4
  154. package/dist/core/mutation-types.js +4 -1
  155. package/dist/core/mutation-types.js.map +1 -1
  156. package/dist/core/namespace.js +1 -1
  157. package/dist/core/namespace.js.map +1 -1
  158. package/dist/core/packet-wire.d.ts +1 -1
  159. package/dist/core/packet-wire.d.ts.map +1 -1
  160. package/dist/core/packet-wire.js +19 -14
  161. package/dist/core/packet-wire.js.map +1 -1
  162. package/dist/core/scheme-types.d.ts +4 -0
  163. package/dist/core/scheme-types.d.ts.map +1 -1
  164. package/dist/core/turn-signals.d.ts +4 -0
  165. package/dist/core/turn-signals.d.ts.map +1 -1
  166. package/dist/core/turn-signals.js +1 -0
  167. package/dist/core/turn-signals.js.map +1 -1
  168. package/dist/core/workspace-settings.js +1 -1
  169. package/dist/core/workspace-settings.js.map +1 -1
  170. package/dist/evidence/EvidenceReader.js +5 -5
  171. package/dist/evidence/EvidenceReader.js.map +1 -1
  172. package/dist/man/plurnk-service.1 +24 -3
  173. package/dist/schemes/Env.d.ts +7 -3
  174. package/dist/schemes/Env.d.ts.map +1 -1
  175. package/dist/schemes/Env.js +12 -6
  176. package/dist/schemes/Env.js.map +1 -1
  177. package/dist/schemes/Exec.d.ts.map +1 -1
  178. package/dist/schemes/Exec.js +33 -25
  179. package/dist/schemes/Exec.js.map +1 -1
  180. package/dist/schemes/ExecOutputScheme.js +3 -3
  181. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  182. package/dist/schemes/ExecutionInput.js +1 -1
  183. package/dist/schemes/ExecutionInput.js.map +1 -1
  184. package/dist/schemes/File.js +15 -18
  185. package/dist/schemes/File.js.map +1 -1
  186. package/dist/schemes/Log.d.ts.map +1 -1
  187. package/dist/schemes/Log.js +19 -4
  188. package/dist/schemes/Log.js.map +1 -1
  189. package/dist/schemes/ResourceTreeScheme.js +2 -5
  190. package/dist/schemes/ResourceTreeScheme.js.map +1 -1
  191. package/dist/schemes/TurnSource.js +1 -1
  192. package/dist/schemes/TurnSource.js.map +1 -1
  193. package/dist/schemes/Worker.d.ts.map +1 -1
  194. package/dist/schemes/Worker.js +10 -3
  195. package/dist/schemes/Worker.js.map +1 -1
  196. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  197. package/dist/schemes/_entry-crud.js +2 -4
  198. package/dist/schemes/_entry-crud.js.map +1 -1
  199. package/dist/schemes/_entry-crud.sql +5 -3
  200. package/dist/schemes/_entry-find.js +3 -3
  201. package/dist/schemes/_entry-find.js.map +1 -1
  202. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  203. package/dist/schemes/_entry-manifest.js +3 -3
  204. package/dist/schemes/_entry-manifest.js.map +1 -1
  205. package/dist/schemes/_entry-manifest.sql +2 -0
  206. package/dist/schemes/_entry-ops.js +1 -1
  207. package/dist/schemes/_entry-ops.js.map +1 -1
  208. package/dist/schemes/_entry-send.js +1 -1
  209. package/dist/schemes/_entry-send.js.map +1 -1
  210. package/dist/server/ClientReads.d.ts +1 -0
  211. package/dist/server/ClientReads.d.ts.map +1 -1
  212. package/dist/server/ClientReads.js +7 -2
  213. package/dist/server/ClientReads.js.map +1 -1
  214. package/dist/server/Credentials.d.ts +48 -0
  215. package/dist/server/Credentials.d.ts.map +1 -0
  216. package/dist/server/Credentials.js +203 -0
  217. package/dist/server/Credentials.js.map +1 -0
  218. package/dist/server/Daemon.d.ts +40 -41
  219. package/dist/server/Daemon.d.ts.map +1 -1
  220. package/dist/server/Daemon.js +272 -206
  221. package/dist/server/Daemon.js.map +1 -1
  222. package/dist/server/DrainSupervisor.d.ts +5 -2
  223. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  224. package/dist/server/DrainSupervisor.js +27 -31
  225. package/dist/server/DrainSupervisor.js.map +1 -1
  226. package/dist/server/EnvFunctionality.d.ts.map +1 -1
  227. package/dist/server/EnvFunctionality.js +2 -1
  228. package/dist/server/EnvFunctionality.js.map +1 -1
  229. package/dist/server/Functionality.d.ts +4 -2
  230. package/dist/server/Functionality.d.ts.map +1 -1
  231. package/dist/server/Functionality.js +110 -51
  232. package/dist/server/Functionality.js.map +1 -1
  233. package/dist/server/FunctionalityManager.js +1 -1
  234. package/dist/server/FunctionalityManager.js.map +1 -1
  235. package/dist/server/HttpListener.d.ts +1 -1
  236. package/dist/server/HttpListener.d.ts.map +1 -1
  237. package/dist/server/HttpListener.js.map +1 -1
  238. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  239. package/dist/server/MembersFunctionality.js +4 -2
  240. package/dist/server/MembersFunctionality.js.map +1 -1
  241. package/dist/server/ModuleHost.d.ts +2 -1
  242. package/dist/server/ModuleHost.d.ts.map +1 -1
  243. package/dist/server/PlurnkSkill.js +4 -7
  244. package/dist/server/PlurnkSkill.js.map +1 -1
  245. package/dist/server/Rollback.js +1 -1
  246. package/dist/server/Rollback.js.map +1 -1
  247. package/dist/server/WorkerModelResolver.js +1 -0
  248. package/dist/server/WorkerModelResolver.js.map +1 -1
  249. package/dist/server/WorkerReferences.d.ts +14 -0
  250. package/dist/server/WorkerReferences.d.ts.map +1 -0
  251. package/dist/server/WorkerReferences.js +24 -0
  252. package/dist/server/WorkerReferences.js.map +1 -0
  253. package/dist/server/WorkerReferences.sql +31 -0
  254. package/dist/server/WorkspaceCapabilities.d.ts +2 -0
  255. package/dist/server/WorkspaceCapabilities.d.ts.map +1 -1
  256. package/dist/server/WorkspaceCapabilities.js +35 -18
  257. package/dist/server/WorkspaceCapabilities.js.map +1 -1
  258. package/dist/server/WorkspacePlugins.js +1 -0
  259. package/dist/server/WorkspacePlugins.js.map +1 -1
  260. package/dist/server/WorkspaceResidency.d.ts +3 -1
  261. package/dist/server/WorkspaceResidency.d.ts.map +1 -1
  262. package/dist/server/WorkspaceResidency.js +12 -5
  263. package/dist/server/WorkspaceResidency.js.map +1 -1
  264. package/dist/server/client-input.d.ts +2 -0
  265. package/dist/server/client-input.d.ts.map +1 -1
  266. package/dist/server/client-input.js +28 -0
  267. package/dist/server/client-input.js.map +1 -1
  268. package/dist/server/drain.sql +37 -40
  269. package/dist/server/envelope.d.ts +5 -9
  270. package/dist/server/envelope.d.ts.map +1 -1
  271. package/dist/server/envelope.js +21 -84
  272. package/dist/server/envelope.js.map +1 -1
  273. package/dist/server/envelope.sql +17 -17
  274. package/dist/server/lifecycle-recovery.sql +5 -15
  275. package/dist/server/logEntry.d.ts.map +1 -1
  276. package/dist/server/logEntry.js +6 -0
  277. package/dist/server/logEntry.js.map +1 -1
  278. package/dist/server/logEntry.sql +94 -6
  279. package/dist/server/module-discovery.d.ts +1 -1
  280. package/dist/server/module-discovery.d.ts.map +1 -1
  281. package/dist/server/module-discovery.js +1 -0
  282. package/dist/server/module-discovery.js.map +1 -1
  283. package/dist/server/seam-loop.sql +15 -7
  284. package/dist/server/seam-proposal-list.sql +10 -4
  285. package/dist/service.d.ts.map +1 -1
  286. package/dist/service.js +7 -1
  287. package/dist/service.js.map +1 -1
  288. package/docs/members.md +6 -4
  289. package/migrations/002_workers.sql +2 -2
  290. package/migrations/006_log.sql +1 -1
  291. package/migrations/018_worker_owners.sql +1 -1
  292. package/migrations/029_default_worker.sql +9 -0
  293. package/migrations/030_client_workers.sql +105 -0
  294. package/migrations/031_message_openers.sql +83 -0
  295. package/migrations/032_worker_references.sql +29 -0
  296. package/package.json +23 -22
  297. package/plurnk.nginx.conf +71 -0
  298. package/plurnk.service +2 -0
@@ -3,12 +3,15 @@
3
3
  -- them with its live resolution owners before projecting a stopped world; neither
4
4
  -- Daemon nor an interface module reconstructs authority from this persistence shape.
5
5
  SELECT le.id AS logEntryId, r.workspace_id AS workspaceId,
6
- le.worker_id AS workerId, le.loop_id AS loopId, le.turn_id AS turnId,
6
+ le.worker_id AS workerId, r.name AS worker, le.loop_id AS loopId, le.turn_id AS turnId,
7
+ l.sequence AS loopSeq, t.sequence AS turnSeq, le.sequence,
7
8
  le.op, le.signal, le.scheme, le.hostname, le.port, le.pathname, le.query,
8
- le.rx, le.attrs, r.owner, o.tools AS owner_tools, o.interactive AS owner_interactive, t.kind AS turn_kind
9
+ le.rx, le.attrs, r.owner, o.tools AS owner_tools, o.interactive AS owner_interactive, t.kind AS turn_kind,
10
+ t.producer AS turn_producer
9
11
  FROM log_entries le
10
12
  JOIN workers r ON r.id = le.worker_id
11
13
  JOIN worker_owners o ON o.workspace_id = r.workspace_id AND o.address = r.owner
14
+ JOIN loops l ON l.id = le.loop_id
12
15
  JOIN turns t ON t.id = le.turn_id
13
16
  WHERE r.workspace_id = $workspace_id AND le.state = 'proposed'
14
17
  ORDER BY le.id;
@@ -17,11 +20,14 @@ ORDER BY le.id;
17
20
  -- Same durable input as proposal_list_pending, selected by proposal identity for
18
21
  -- the live path. Both paths enter ProposalLifecycle's one projection function.
19
22
  SELECT le.id AS logEntryId, r.workspace_id AS workspaceId,
20
- le.worker_id AS workerId, le.loop_id AS loopId, le.turn_id AS turnId,
23
+ le.worker_id AS workerId, r.name AS worker, le.loop_id AS loopId, le.turn_id AS turnId,
24
+ l.sequence AS loopSeq, t.sequence AS turnSeq, le.sequence,
21
25
  le.op, le.signal, le.scheme, le.hostname, le.port, le.pathname, le.query,
22
- le.rx, le.attrs, r.owner, o.tools AS owner_tools, o.interactive AS owner_interactive, t.kind AS turn_kind
26
+ le.rx, le.attrs, r.owner, o.tools AS owner_tools, o.interactive AS owner_interactive, t.kind AS turn_kind,
27
+ t.producer AS turn_producer
23
28
  FROM log_entries le
24
29
  JOIN workers r ON r.id = le.worker_id
25
30
  JOIN worker_owners o ON o.workspace_id = r.workspace_id AND o.address = r.owner
31
+ JOIN loops l ON l.id = le.loop_id
26
32
  JOIN turns t ON t.id = le.turn_id
27
33
  WHERE le.id = $log_entry_id AND le.state = 'proposed';
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";AAuCA,MAAM,CAAC,OAAO,OAAO,OAAO;;IAsUxB,OAAa,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAqHjC;CACJ"}
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"}
package/dist/service.js CHANGED
@@ -246,6 +246,12 @@ export default class Service {
246
246
  const aguiAddr = listener.httpAddress();
247
247
  for (const notice of configuration.notices())
248
248
  process.stderr.write(`plurnk-service: ${notice.message}\n`);
249
+ // {§credential-authority} — the posture, and where a tool running as the operator finds the secret.
250
+ process.stderr.write(daemon.credentials.operatorSecret === null
251
+ ? "plurnk-service: authentication off (PLURNK_AUTH=0): every request is anonymous\n"
252
+ : daemon.secretFile === null
253
+ ? "plurnk-service: authentication on; PLURNK_SECRET is the configured operator secret\n"
254
+ : `plurnk-service: authentication on; the operator secret minted for this boot is in ${daemon.secretFile}\n`);
249
255
  const invalidModel = route === null && Boolean(process.env.PLURNK_MODEL);
250
256
  if (route === null && !invalidModel) {
251
257
  process.stderr.write(`plurnk-service: no model configured — choose a profile in ${Service.#hostPaths.configFile}; `
@@ -441,7 +447,7 @@ export default class Service {
441
447
  const folder = typeof positionals[2] === "string" ? positionals[2] : Service.#hostPaths.shareFolder();
442
448
  const provider = values.requiem === true ? await ProviderInstantiate.loadActiveProvider() : undefined;
443
449
  if (provider === null)
444
- throw new Error("requiem: no active provider - set PLURNK_MODEL; a requiem needs a witness to testify");
450
+ throw new Error("no active provider - set PLURNK_MODEL; a requiem needs a witness to testify");
445
451
  const shared = await Share.write({ openEvidence: EvidenceReader.open,
446
452
  dbPath, folder, requiem: provider,
447
453
  ...(typeof workspace === "string" ? { workspaceId: Number(workspace) } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/docs/members.md CHANGED
@@ -47,8 +47,8 @@ candidate: its `provenance.kind` is the verdict and its `summary` the reason.
47
47
  | `ignored` | `` not a member — the repository ignores it; a client or operator definition can include it, a model definition cannot `` |
48
48
  | `absent` | `` absent — no such file under the project root `` |
49
49
 
50
- - **Untracked, scope `root` or `namespace`**: a definition makes it a member
51
- from the next turn.
50
+ - **Untracked, scope `root` or `namespace`**: an accepted `add` makes it a member
51
+ before the next operation.
52
52
 
53
53
  ```members (add) <!-- include the generated reports; each glob is one definition -->
54
54
  {"files": ["build/*.json"]}
@@ -72,8 +72,10 @@ candidate: its `provenance.kind` is the verdict and its `summary` the reason.
72
72
  definition cannot lift it; only the user can.
73
73
 
74
74
  - **Outside the project root** (`../notes.md`, or an absolute path beyond the
75
- root): no model definition reaches it; only a members definition under the
76
- operator's namespace scope admits it. File operands beginning with `~/`
75
+ root): a model definition can admit it under `namespace` scope, but not
76
+ `root` or `none`; client and operator definitions are not bound by the model's
77
+ scope. Ignore rules and exclusions still apply as described above.
78
+ File operands beginning with `~/`
77
79
  resolve from the daemon user's home; `./~/` names a literal project
78
80
  directory. Members globs remain project-relative, not home shorthand.
79
81
  A command runs on the host from the project root, and its output is a stream
@@ -43,8 +43,8 @@ CREATE TABLE IF NOT EXISTS workers (
43
43
  -- workers fork via parent_worker_id; workspaces carry no parent — {§machine-processes-no-fork-workspace}
44
44
  parent_worker_id INTEGER CHECK (parent_worker_id IS NULL OR parent_worker_id != id),
45
45
  origin TEXT NOT NULL DEFAULT 'client' CHECK (origin IN ('model', 'client', '_plurnk')),
46
- -- {§methods-model-worker}: durable identity for the workspace's stable
47
- -- default conversation; separate from its literal name.
46
+ -- At most one root model worker per workspace carries this flag; it is
47
+ -- separate from the worker's literal name.
48
48
  default_conversation INTEGER NOT NULL DEFAULT 0 CHECK (default_conversation IN (0, 1)),
49
49
  -- {§worker-causal-admission}: cancellation retires unread arrivals without rewriting history.
50
50
  cancelled_through_sequence INTEGER NOT NULL DEFAULT 0 CHECK (cancelled_through_sequence >= 0),
@@ -144,7 +144,7 @@ WHERE NOT EXISTS (
144
144
  WHERE w.workspace_id = m.workspace_id AND answer.value = m.path
145
145
  );
146
146
 
147
- -- {§message-reply-delivery}: notify the sender and the assigned conversation.
147
+ -- {§message-reply-delivery}: notify the sender and the assigned worker.
148
148
  -- UNION prevents duplicate delivery when both roles belong to the same worker.
149
149
  -- {§loop-answer}: a child's answer to the very task its parent delegated is NOT delivered here;
150
150
  -- the parent receives it once, as the child's termination row, which carries that answer at
@@ -57,7 +57,7 @@ END;
57
57
  CREATE INDEX workers_owner ON workers (workspace_id, owner);
58
58
 
59
59
  -- {§a2a-worker-ownership} Released A2A contexts were roots. Retained causal
60
- -- message identities distinguish them from ordinary model conversations.
60
+ -- message identities distinguish them from ordinary root model workers.
61
61
  CREATE TEMP TABLE a2a_context_parents AS
62
62
  SELECT DISTINCT context.id, context.workspace_id
63
63
  FROM workers context
@@ -0,0 +1,9 @@
1
+ -- MIGRATE: 29 default worker
2
+ -- Released in 4.0.0 and frozen ({§db-migrations}).
3
+ -- The column that marks a workspace's one flagged root model worker takes the worker vocabulary.
4
+ -- Renaming it rewrites its CHECK and the partial index in place; the index then takes its name.
5
+ ALTER TABLE workers RENAME COLUMN default_conversation TO default_worker;
6
+
7
+ DROP INDEX workers_workspace_default_conversation;
8
+ CREATE UNIQUE INDEX workers_workspace_default_worker
9
+ ON workers (workspace_id) WHERE default_worker = 1;
@@ -0,0 +1,105 @@
1
+ -- MIGRATE: 30 client workers
2
+ -- Released in 4.0.0 and frozen ({§db-migrations}).
3
+ -- {§connection-lifecycle} A worker is a model's identity: a person's client operations are the workspace's and
4
+ -- journal in its runtime worker. Each client worker's history moves there, and the emptied worker goes.
5
+ -- Rows keep their identity; only their worker, and their loop's place in that worker's numbering, change.
6
+
7
+ -- The runtime worker of every workspace that holds a client worker.
8
+ INSERT INTO workers (workspace_id, name, origin)
9
+ SELECT DISTINCT client.workspace_id, '_plurnk', '_plurnk'
10
+ FROM workers client
11
+ WHERE client.origin = 'client'
12
+ AND NOT EXISTS (SELECT 1 FROM workers runtime WHERE runtime.workspace_id = client.workspace_id AND runtime.origin = '_plurnk');
13
+
14
+ -- {§actor-boundary-client-operations} The person who owned a client worker acted in each of its loops.
15
+ CREATE TEMP TABLE rehomed_workers AS
16
+ SELECT client.id AS client_id, runtime.id AS runtime_id,
17
+ CASE WHEN client.owner = '_plurnk' THEN NULL ELSE client.owner END AS person
18
+ FROM workers client
19
+ JOIN workers runtime ON runtime.workspace_id = client.workspace_id AND runtime.origin = '_plurnk'
20
+ WHERE client.origin = 'client';
21
+
22
+ -- Each client loop follows the runtime worker's own loops, in the order the loops ran.
23
+ CREATE TEMP TABLE rehomed_loops AS
24
+ SELECT l.id AS loop_id, l.worker_id AS client_id, l.sequence AS client_sequence, moved.runtime_id,
25
+ (SELECT coalesce(max(own.sequence), 0) FROM loops own WHERE own.worker_id = moved.runtime_id)
26
+ + row_number() OVER (PARTITION BY moved.runtime_id ORDER BY l.id) AS sequence,
27
+ moved.person
28
+ FROM loops l
29
+ JOIN rehomed_workers moved ON moved.client_id = l.worker_id;
30
+
31
+ UPDATE loops
32
+ SET worker_id = moved.runtime_id,
33
+ sequence = moved.sequence,
34
+ prompt_source = coalesce(loops.prompt_source, moved.person)
35
+ FROM rehomed_loops moved
36
+ WHERE moved.loop_id = loops.id;
37
+
38
+ -- The two identity guards are redeclared verbatim once their rows have moved.
39
+ DROP TRIGGER log_entries_immutable_core;
40
+
41
+ UPDATE log_entries SET worker_id = moved.runtime_id
42
+ FROM rehomed_workers moved
43
+ WHERE moved.client_id = log_entries.worker_id;
44
+
45
+ CREATE TRIGGER log_entries_immutable_core
46
+ BEFORE UPDATE OF
47
+ worker_id, loop_id, turn_id, sequence, at, origin, source, inherited_history, model_call_id,
48
+ op, signal,
49
+ scheme, username, password, hostname,
50
+ port, pathname, query, fragment,
51
+ lineMarker, tx, mimetype_tx, mimetype_rx, initial_folded
52
+ ON log_entries
53
+ BEGIN
54
+ SELECT RAISE(ABORT, 'log_entries core fields are immutable; only lifecycle outcome and derived attachments may change');
55
+ END;
56
+
57
+ -- An execution's source names its row by log coordinate, so it takes its loop's new number.
58
+ DROP TRIGGER subscriptions_identity_update;
59
+
60
+ UPDATE subscriptions
61
+ SET worker_id = moved.runtime_id,
62
+ source = coalesce(
63
+ 'log:///' || (
64
+ SELECT l.sequence FROM rehomed_loops l
65
+ WHERE l.client_id = moved.client_id
66
+ AND l.client_sequence = CAST(substr(subscriptions.source, 8, instr(substr(subscriptions.source, 8), '/') - 1) AS INTEGER)
67
+ ) || substr(subscriptions.source, 7 + instr(substr(subscriptions.source, 8), '/')),
68
+ subscriptions.source)
69
+ FROM rehomed_workers moved
70
+ WHERE moved.client_id = subscriptions.worker_id;
71
+
72
+ CREATE TRIGGER subscriptions_identity_update
73
+ BEFORE UPDATE OF worker_id, entry_id, scheme, source ON subscriptions
74
+ WHEN NEW.entry_id != OLD.entry_id OR NEW.scheme != OLD.scheme OR NEW.source IS NOT OLD.source
75
+ OR (NEW.worker_id IS NOT OLD.worker_id AND NOT (NEW.worker_id IS NULL AND NEW.closed_at IS NOT NULL))
76
+ BEGIN
77
+ SELECT RAISE(ABORT, 'subscription identity is immutable');
78
+ END;
79
+
80
+ UPDATE ambient_events SET producer_worker_id = moved.runtime_id
81
+ FROM rehomed_workers moved
82
+ WHERE moved.client_id = ambient_events.producer_worker_id;
83
+
84
+ UPDATE ambient_events SET recipient_worker_id = moved.runtime_id
85
+ FROM rehomed_workers moved
86
+ WHERE moved.client_id = ambient_events.recipient_worker_id;
87
+
88
+ UPDATE client_interactions SET worker_id = moved.runtime_id
89
+ FROM rehomed_workers moved
90
+ WHERE moved.client_id = client_interactions.worker_id;
91
+
92
+ -- A worker a client worker parented is a root worker, owned as before, as a person's WORK starts one now.
93
+ UPDATE workers SET parent_worker_id = NULL
94
+ WHERE parent_worker_id IN (SELECT client_id FROM rehomed_workers);
95
+
96
+ -- {§env-scheme} A person's environment is the runtime worker's; overrides several persons kept have no one owner.
97
+ DELETE FROM worker_module_state WHERE worker_id IN (SELECT client_id FROM rehomed_workers);
98
+
99
+ DELETE FROM workers WHERE id IN (SELECT client_id FROM rehomed_workers);
100
+
101
+ DROP TABLE rehomed_loops;
102
+ DROP TABLE rehomed_workers;
103
+
104
+ -- No worker carries the default flag any longer.
105
+ DROP INDEX workers_workspace_default_worker;
@@ -0,0 +1,83 @@
1
+ -- MIGRATE: 31 message openers
2
+ -- Released in 4.0.0 and frozen ({§db-migrations}).
3
+ -- {§worker-obligations} A message a worker's own operation sends records that operation, by the row it writes:
4
+ -- its turn and its sequence there. The message's obligation then holds that worker by identity, its reply
5
+ -- reaches that worker, and a child's answer to its first message is its conclusion. A message a person, a
6
+ -- client or the daemon sends names no opener. Messages that predate the record name none either, so they hold
7
+ -- no worker and route no reply.
8
+ ALTER TABLE loop_messages ADD COLUMN opened_turn_id INTEGER REFERENCES turns(id) ON DELETE SET NULL;
9
+ ALTER TABLE loop_messages ADD COLUMN opened_sequence INTEGER CHECK (opened_sequence IS NULL OR opened_sequence >= 1);
10
+
11
+ -- {§methods-invocation}: the delivery that discharges a message finds it from either side.
12
+ CREATE INDEX loop_messages_opener ON loop_messages (opened_turn_id, opened_sequence) WHERE opened_turn_id IS NOT NULL;
13
+ CREATE INDEX message_completions_response ON message_completions (response_id);
14
+
15
+ DROP VIEW IF EXISTS delivered_message_replies;
16
+ DROP VIEW IF EXISTS message_reply_deliveries;
17
+ DROP VIEW IF EXISTS delegated_task_answers;
18
+ DROP VIEW IF EXISTS loop_obligations;
19
+ DROP VIEW IF EXISTS worker_obligations;
20
+
21
+ -- The worker whose own operation sent each message.
22
+ CREATE VIEW message_senders AS
23
+ SELECT m.id AS message_id, sender.worker_id AS sender_worker_id
24
+ FROM loop_messages m
25
+ JOIN turns opened ON opened.id = m.opened_turn_id
26
+ JOIN loops sender ON sender.id = opened.loop_id;
27
+
28
+ CREATE VIEW worker_obligations AS
29
+ SELECT w.id AS worker_id,
30
+ EXISTS (
31
+ SELECT 1 FROM subscriptions s
32
+ WHERE s.worker_id = w.id AND s.closed_at IS NULL AND s.detached = 0
33
+ ) AS streams,
34
+ EXISTS (
35
+ SELECT 1 FROM workers c JOIN loops l ON l.worker_id = c.id
36
+ WHERE c.parent_worker_id = w.id AND l.status IN (100, 102, 202)
37
+ ) AS workers,
38
+ EXISTS (
39
+ SELECT 1 FROM message_senders s
40
+ JOIN loop_messages m ON m.id = s.message_id
41
+ JOIN loops l ON l.id = m.loop_id
42
+ WHERE s.sender_worker_id = w.id
43
+ AND l.status IN (100, 102, 202)
44
+ AND NOT EXISTS (SELECT 1 FROM message_completions c WHERE c.message_id = m.id)
45
+ ) AS messages
46
+ FROM workers w;
47
+
48
+ CREATE VIEW loop_obligations AS
49
+ SELECT l.id AS loop_id, held.streams, held.workers, held.messages
50
+ FROM loops l JOIN worker_obligations held ON held.worker_id = l.worker_id;
51
+
52
+ -- {§message-reply-delivery}: a reply reaches the message's own worker and the worker that sent it.
53
+ CREATE VIEW message_reply_deliveries AS
54
+ SELECT DISTINCT r.id AS source_record_id, r.loop_id, m.workspace_id,
55
+ r.worker_id AS producer_worker_id, m.worker_id AS recipient_worker_id
56
+ FROM log_responses r
57
+ JOIN workers producer ON producer.id = r.worker_id
58
+ JOIN json_each(r.rx, '$.answers') answer
59
+ JOIN message_sources m ON m.path = answer.value AND m.workspace_id = producer.workspace_id
60
+ UNION
61
+ SELECT r.id, r.loop_id, m.workspace_id, r.worker_id, s.sender_worker_id
62
+ FROM log_responses r
63
+ JOIN workers producer ON producer.id = r.worker_id
64
+ JOIN json_each(r.rx, '$.answers') answer
65
+ JOIN message_sources m ON m.path = answer.value AND m.workspace_id = producer.workspace_id
66
+ JOIN message_senders s ON s.message_id = m.id;
67
+
68
+ -- {§worker-scheme-collect}: a child's answer to the first message its parent sent is its conclusion, not a reply.
69
+ CREATE VIEW delegated_task_answers AS
70
+ SELECT r.id AS source_record_id, producer.parent_worker_id AS recipient_worker_id
71
+ FROM log_responses r
72
+ JOIN workers producer ON producer.id = r.worker_id
73
+ JOIN json_each(r.rx, '$.answers') answer
74
+ JOIN message_sources m ON m.path = answer.value AND m.workspace_id = producer.workspace_id
75
+ JOIN message_senders s ON s.message_id = m.id
76
+ WHERE m.loop_id = r.loop_id AND m.ordinal = 1 AND s.sender_worker_id = producer.parent_worker_id;
77
+
78
+ CREATE VIEW delivered_message_replies AS
79
+ SELECT d.* FROM message_reply_deliveries d
80
+ WHERE NOT EXISTS (
81
+ SELECT 1 FROM delegated_task_answers t
82
+ WHERE t.source_record_id = d.source_record_id AND t.recipient_worker_id = d.recipient_worker_id
83
+ );
@@ -0,0 +1,29 @@
1
+ -- MIGRATE: 32 worker references
2
+ -- Released in 4.0.0 and frozen ({§db-migrations}).
3
+ -- {§worker-external-reference} Protocol adapters own the opaque key; core owns its durable target.
4
+ CREATE TABLE worker_references (
5
+ namespace TEXT NOT NULL CHECK (length(namespace) > 0),
6
+ reference TEXT NOT NULL,
7
+ worker_id INTEGER NOT NULL REFERENCES workers(id) ON DELETE CASCADE,
8
+ PRIMARY KEY (namespace, reference)
9
+ ) STRICT, WITHOUT ROWID;
10
+
11
+ CREATE INDEX worker_references_worker ON worker_references (worker_id);
12
+
13
+ CREATE TRIGGER worker_reference_identity
14
+ BEFORE UPDATE ON worker_references
15
+ BEGIN
16
+ SELECT RAISE(ABORT, 'worker reference is immutable');
17
+ END;
18
+
19
+ CREATE TRIGGER worker_reference_model
20
+ BEFORE INSERT ON worker_references
21
+ WHEN EXISTS (SELECT 1 FROM workers WHERE id = NEW.worker_id AND origin != 'model')
22
+ BEGIN
23
+ SELECT RAISE(ABORT, 'worker reference requires a model worker');
24
+ END;
25
+
26
+ CREATE VIEW worker_reference_allocations AS
27
+ SELECT r.namespace, r.reference, s.name AS workspace_name, w.name AS worker_name
28
+ FROM worker_references r JOIN workers w ON w.id = r.worker_id
29
+ JOIN workspaces s ON s.id = w.workspace_id;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-service",
3
- "version": "3.3.0",
3
+ "version": "4.0.0",
4
4
  "description": "Plurnk agent runtime — the server / engine / core. Implements the @plurnk/plurnk-contracts contract.",
5
5
  "keywords": [
6
6
  "plurnk",
@@ -38,6 +38,7 @@
38
38
  "README.md",
39
39
  "INSTALL.md",
40
40
  "plurnk.service",
41
+ "plurnk.nginx.conf",
41
42
  "SPEC.md"
42
43
  ],
43
44
  "publishConfig": {
@@ -72,7 +73,7 @@
72
73
  "build:global:uninstall": "npm uninstall -g @plurnk/plurnk-service",
73
74
  "build:local:install": "node --conditions=plurnk-dev scripts/install-sandbox.mjs install",
74
75
  "build:local:uninstall": "node --conditions=plurnk-dev scripts/install-sandbox.mjs uninstall",
75
- "test:installation": "node --conditions=plurnk-dev scripts/test-installation.mjs",
76
+ "test:installation": "node scripts/test-installation.mjs",
76
77
  "deps:audit": "node --conditions=plurnk-dev scripts/deps-audit.ts",
77
78
  "release:check": "npm run deps:audit && npm run test:installation",
78
79
  "prepublishOnly": "npm run deps:audit && npm run test:installation",
@@ -88,22 +89,22 @@
88
89
  "@opentelemetry/resources": "^2.12.0",
89
90
  "@opentelemetry/sdk-metrics": "^2.12.0",
90
91
  "@opentelemetry/sdk-trace-base": "^2.12.0",
91
- "@plurnk/plurnk-a2a": "3.1.1",
92
- "@plurnk/plurnk-agui": "3.1.0",
93
- "@plurnk/plurnk-contracts": "3.3.0",
94
- "@plurnk/plurnk-parser": "3.0.3",
95
- "@plurnk/plurnk-schedule": "3.0.2",
96
- "@plurnk/plurnk-skills": "3.0.1",
97
- "@plurnk/plurnk-execs": "3.2.0",
98
- "@plurnk/plurnk-execs-common": "2.0.2",
99
- "@plurnk/plurnk-execs-jq": "2.0.2",
100
- "@plurnk/plurnk-execs-sqlite": "2.0.2",
101
- "@plurnk/plurnk-hooks": "2.0.1",
102
- "@plurnk/plurnk-mcp": "3.1.0",
92
+ "@plurnk/plurnk-a2a": "4.0.0",
93
+ "@plurnk/plurnk-agui": "4.0.0",
94
+ "@plurnk/plurnk-contracts": "4.0.0",
95
+ "@plurnk/plurnk-parser": "4.0.0",
96
+ "@plurnk/plurnk-schedule": "3.0.3",
97
+ "@plurnk/plurnk-skills": "3.0.2",
98
+ "@plurnk/plurnk-execs": "4.0.0",
99
+ "@plurnk/plurnk-execs-common": "3.0.0",
100
+ "@plurnk/plurnk-execs-jq": "2.0.3",
101
+ "@plurnk/plurnk-execs-sqlite": "2.0.3",
102
+ "@plurnk/plurnk-hooks": "2.0.2",
103
+ "@plurnk/plurnk-mcp": "3.2.0",
103
104
  "@plurnk/plurnk-meta": "2.1.1",
104
105
  "@plurnk/plurnk-agent-plugins": "2.0.0",
105
- "@plurnk/plurnk-agent-skills": "2.0.1",
106
- "@plurnk/plurnk-mimetypes": "3.0.2",
106
+ "@plurnk/plurnk-agent-skills": "2.0.2",
107
+ "@plurnk/plurnk-mimetypes": "3.0.3",
107
108
  "@plurnk/plurnk-mimetypes-application-ipynb": "2.0.1",
108
109
  "@plurnk/plurnk-mimetypes-application-json": "2.0.1",
109
110
  "@plurnk/plurnk-mimetypes-application-jsonl": "2.0.1",
@@ -145,15 +146,15 @@
145
146
  "@plurnk/plurnk-mimetypes-text-markdown": "2.0.1",
146
147
  "@plurnk/plurnk-mimetypes-text-plain": "2.0.1",
147
148
  "@plurnk/plurnk-models": "3.0.1",
148
- "@plurnk/plurnk-modules": "3.2.0",
149
- "@plurnk/plurnk-providers": "3.0.2",
150
- "@plurnk/plurnk-schemes": "3.2.0",
151
- "@plurnk/plurnk-schemes-http": "2.0.1",
149
+ "@plurnk/plurnk-modules": "4.0.0",
150
+ "@plurnk/plurnk-providers": "3.0.3",
151
+ "@plurnk/plurnk-schemes": "3.2.1",
152
+ "@plurnk/plurnk-schemes-http": "2.0.2",
152
153
  "@possumtech/sqlrite": "^6.6.1",
153
154
  "diff": "^9.0.0",
154
155
  "glob": "^13.0.6",
155
156
  "minimatch": "^10.2.6",
156
- "@plurnk/plurnk-digest": "3.2.0"
157
+ "@plurnk/plurnk-digest": "3.2.1"
157
158
  },
158
159
  "devDependencies": {
159
160
  "@a2a-js/sdk": "1.3.0",
@@ -171,5 +172,5 @@
171
172
  "url": "git+https://github.com/plurnk/plurnk-service.git",
172
173
  "directory": "plurnk-core"
173
174
  },
174
- "gitHead": "1dcf640b6bad0f5972443dd59354a5fc094acf46"
175
+ "gitHead": "9f92ceac0af7bdb64e57ebc73c0288bb0f36b720"
175
176
  }
@@ -0,0 +1,71 @@
1
+ # plurnk-service behind nginx: an example to adapt, never installed by the package.
2
+ # The daemon answers whoever reaches it at whatever address they used and refuses nobody for it.
3
+ # TLS, security headers, sign-in throttling and network allow-lists belong here, in front of it.
4
+ #
5
+ # Install: cp "$(npm root -g)/@plurnk/plurnk-service/plurnk.nginx.conf" /etc/nginx/conf.d/plurnk.conf
6
+ # replace plurnk.example.com and the certificate paths, then: nginx -t && systemctl reload nginx
7
+ # Certificates: certbot --nginx -d plurnk.example.com, or any certificate you hold.
8
+ # The daemon: keep it on loopback (the default PLURNK_HOST=127.0.0.1) so nginx is the one way in, and
9
+ # tell it the public origin, which it cannot see through the TLS in front of it:
10
+ # PLURNK_AGUI_ISSUER=https://plurnk.example.com in ~/.config/plurnk/.env, and
11
+ # PLURNK_A2A_ENDPOINT_URL=https://plurnk.example.com/a2a when PLURNK_A2A_EXPOSE=1.
12
+ # nginx older than 1.25.1: drop `http2 on;` and write `listen 443 ssl http2;` instead.
13
+
14
+ # Sign-in throttling, per real client address: the daemon behind nginx sees only nginx's.
15
+ limit_req_zone $binary_remote_addr zone=plurnk_signin:10m rate=10r/m;
16
+
17
+ server {
18
+ listen 80;
19
+ listen [::]:80;
20
+ server_name plurnk.example.com;
21
+ return 301 https://$host$request_uri;
22
+ }
23
+
24
+ server {
25
+ listen 443 ssl;
26
+ listen [::]:443 ssl;
27
+ http2 on;
28
+ server_name plurnk.example.com;
29
+
30
+ ssl_certificate /etc/letsencrypt/live/plurnk.example.com/fullchain.pem;
31
+ ssl_certificate_key /etc/letsencrypt/live/plurnk.example.com/privkey.pem;
32
+ ssl_protocols TLSv1.2 TLSv1.3;
33
+ ssl_prefer_server_ciphers off;
34
+ ssl_session_timeout 1d;
35
+ ssl_session_cache shared:plurnk_tls:10m;
36
+ ssl_session_tickets off;
37
+
38
+ add_header Strict-Transport-Security "max-age=63072000" always;
39
+ add_header X-Content-Type-Options nosniff always;
40
+ proxy_hide_header X-Frame-Options;
41
+ add_header X-Frame-Options DENY always;
42
+ add_header Referrer-Policy same-origin always;
43
+
44
+ # Optional: admit only your own networks.
45
+ # allow 192.168.1.0/24;
46
+ # allow 10.0.0.0/8;
47
+ # deny all;
48
+
49
+ # Messages and their attachments arrive in request bodies.
50
+ client_max_body_size 64m;
51
+
52
+ proxy_http_version 1.1;
53
+ proxy_set_header Host $host;
54
+ proxy_set_header Connection "";
55
+
56
+ location / {
57
+ proxy_pass http://127.0.0.1:1066;
58
+ # AG-UI answers over server-sent events: a buffered or timed-out stream looks like a hang.
59
+ proxy_buffering off;
60
+ proxy_cache off;
61
+ proxy_read_timeout 1h;
62
+ proxy_send_timeout 1h;
63
+ }
64
+
65
+ # The browser sign-in form takes the operator's password.
66
+ location = /oauth/authorize {
67
+ limit_req zone=plurnk_signin burst=5 nodelay;
68
+ limit_req_status 429;
69
+ proxy_pass http://127.0.0.1:1066;
70
+ }
71
+ }
package/plurnk.service CHANGED
@@ -10,6 +10,8 @@
10
10
  # systemd does not source your interactive shell. Adjust EnvironmentFile for
11
11
  # a non-default XDG_CONFIG_HOME. Preserve the file's private permissions.
12
12
  # Logs land in the user journal: journalctl --user -u plurnk -f
13
+ # Other machines on your network: add Environment=PLURNK_HOST=0.0.0.0 under [Service] and browse to
14
+ # any of this machine's addresses. Beyond a network you trust, front it with plurnk.nginx.conf.
13
15
  [Unit]
14
16
  Description=PLURNK agentic-development daemon
15
17
  After=network.target