@plurnk/plurnk-service 3.2.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 (328) hide show
  1. package/.env.defaults +3 -3
  2. package/INSTALL.md +6 -0
  3. package/README.md +2 -2
  4. package/SPEC.md +489 -186
  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/BudgetReadout.d.ts +1 -3
  21. package/dist/core/BudgetReadout.d.ts.map +1 -1
  22. package/dist/core/BudgetReadout.js +43 -46
  23. package/dist/core/BudgetReadout.js.map +1 -1
  24. package/dist/core/ChannelWrite.d.ts +10 -0
  25. package/dist/core/ChannelWrite.d.ts.map +1 -1
  26. package/dist/core/ChannelWrite.js +10 -0
  27. package/dist/core/ChannelWrite.js.map +1 -1
  28. package/dist/core/ChannelWrite.sql +14 -2
  29. package/dist/core/ClientInteractions.d.ts.map +1 -1
  30. package/dist/core/ClientInteractions.js +2 -1
  31. package/dist/core/ClientInteractions.js.map +1 -1
  32. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  33. package/dist/core/CoreSchemeServices.js +6 -0
  34. package/dist/core/CoreSchemeServices.js.map +1 -1
  35. package/dist/core/DataStatementRunner.js +4 -6
  36. package/dist/core/DataStatementRunner.js.map +1 -1
  37. package/dist/core/Dispatcher.d.ts +3 -7
  38. package/dist/core/Dispatcher.d.ts.map +1 -1
  39. package/dist/core/Dispatcher.js +53 -73
  40. package/dist/core/Dispatcher.js.map +1 -1
  41. package/dist/core/Dispatcher.sql +2 -2
  42. package/dist/core/EditMutations.js +1 -0
  43. package/dist/core/EditMutations.js.map +1 -1
  44. package/dist/core/Engine.d.ts +8 -14
  45. package/dist/core/Engine.d.ts.map +1 -1
  46. package/dist/core/Engine.js +22 -24
  47. package/dist/core/Engine.js.map +1 -1
  48. package/dist/core/Engine.sql +6 -6
  49. package/dist/core/ExecutorRegistry.d.ts +0 -5
  50. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  51. package/dist/core/ExecutorRegistry.js +10 -18
  52. package/dist/core/ExecutorRegistry.js.map +1 -1
  53. package/dist/core/FileAddress.js +1 -1
  54. package/dist/core/FileAddress.js.map +1 -1
  55. package/dist/core/FilePublication.js +10 -74
  56. package/dist/core/FilePublication.js.map +1 -1
  57. package/dist/core/FileSnapshot.js +36 -100
  58. package/dist/core/FileSnapshot.js.map +1 -1
  59. package/dist/core/HostPaths.d.ts +1 -0
  60. package/dist/core/HostPaths.d.ts.map +1 -1
  61. package/dist/core/HostPaths.js +11 -1
  62. package/dist/core/HostPaths.js.map +1 -1
  63. package/dist/core/KillHandler.js +3 -1
  64. package/dist/core/KillHandler.js.map +1 -1
  65. package/dist/core/LiveSubscription.js +1 -1
  66. package/dist/core/LiveSubscription.js.map +1 -1
  67. package/dist/core/LogBody.js +1 -1
  68. package/dist/core/LogBody.js.map +1 -1
  69. package/dist/core/LogWriter.js +1 -1
  70. package/dist/core/LogWriter.js.map +1 -1
  71. package/dist/core/LoopDriver.d.ts +3 -3
  72. package/dist/core/LoopDriver.d.ts.map +1 -1
  73. package/dist/core/LoopDriver.js +15 -13
  74. package/dist/core/LoopDriver.js.map +1 -1
  75. package/dist/core/LoopLifecycle.d.ts +5 -0
  76. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  77. package/dist/core/LoopLifecycle.js +14 -1
  78. package/dist/core/LoopLifecycle.js.map +1 -1
  79. package/dist/core/LoopLifecycle.sql +11 -2
  80. package/dist/core/MembershipMaterialization.js +2 -2
  81. package/dist/core/MembershipMaterialization.js.map +1 -1
  82. package/dist/core/MessageResources.d.ts +3 -0
  83. package/dist/core/MessageResources.d.ts.map +1 -1
  84. package/dist/core/MessageResources.js +15 -1
  85. package/dist/core/MessageResources.js.map +1 -1
  86. package/dist/core/OperatorConfig.d.ts +1 -2
  87. package/dist/core/OperatorConfig.d.ts.map +1 -1
  88. package/dist/core/OperatorConfig.js +26 -92
  89. package/dist/core/OperatorConfig.js.map +1 -1
  90. package/dist/core/PacketBuilder.d.ts.map +1 -1
  91. package/dist/core/PacketBuilder.js +21 -18
  92. package/dist/core/PacketBuilder.js.map +1 -1
  93. package/dist/core/PacketBuilder.sql +18 -5
  94. package/dist/core/ProblemLog.d.ts +1 -0
  95. package/dist/core/ProblemLog.d.ts.map +1 -1
  96. package/dist/core/ProblemLog.js +2 -2
  97. package/dist/core/ProblemLog.js.map +1 -1
  98. package/dist/core/ProposalLifecycle.d.ts +1 -0
  99. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  100. package/dist/core/ProposalLifecycle.js +14 -8
  101. package/dist/core/ProposalLifecycle.js.map +1 -1
  102. package/dist/core/ProposalPolicies.d.ts +4 -1
  103. package/dist/core/ProposalPolicies.d.ts.map +1 -1
  104. package/dist/core/ProposalPolicies.js +5 -2
  105. package/dist/core/ProposalPolicies.js.map +1 -1
  106. package/dist/core/ResourceMutations.js +2 -0
  107. package/dist/core/ResourceMutations.js.map +1 -1
  108. package/dist/core/ResourceSelector.js +1 -1
  109. package/dist/core/ResourceSelector.js.map +1 -1
  110. package/dist/core/SchemeRegistry.js +1 -1
  111. package/dist/core/SchemeRegistry.js.map +1 -1
  112. package/dist/core/ServiceHelp.js +1 -1
  113. package/dist/core/ServiceHelp.js.map +1 -1
  114. package/dist/core/ServiceTeardown.js +9 -12
  115. package/dist/core/ServiceTeardown.js.map +1 -1
  116. package/dist/core/StrikeRail.d.ts +2 -1
  117. package/dist/core/StrikeRail.d.ts.map +1 -1
  118. package/dist/core/StrikeRail.js +11 -6
  119. package/dist/core/StrikeRail.js.map +1 -1
  120. package/dist/core/TerminalResult.js +1 -1
  121. package/dist/core/TerminalResult.js.map +1 -1
  122. package/dist/core/TurnDispositionHandler.d.ts +1 -1
  123. package/dist/core/TurnDispositionHandler.d.ts.map +1 -1
  124. package/dist/core/TurnDispositionHandler.js +8 -5
  125. package/dist/core/TurnDispositionHandler.js.map +1 -1
  126. package/dist/core/TurnMaterialization.js +6 -4
  127. package/dist/core/TurnMaterialization.js.map +1 -1
  128. package/dist/core/TurnMaterialization.sql +1 -1
  129. package/dist/core/TurnOps.js +1 -0
  130. package/dist/core/TurnOps.js.map +1 -1
  131. package/dist/core/TurnRunner.d.ts +4 -2
  132. package/dist/core/TurnRunner.d.ts.map +1 -1
  133. package/dist/core/TurnRunner.js +63 -51
  134. package/dist/core/TurnRunner.js.map +1 -1
  135. package/dist/core/WorkerControlHandler.d.ts +2 -0
  136. package/dist/core/WorkerControlHandler.d.ts.map +1 -1
  137. package/dist/core/WorkerControlHandler.js +84 -16
  138. package/dist/core/WorkerControlHandler.js.map +1 -1
  139. package/dist/core/WorkerName.d.ts +0 -4
  140. package/dist/core/WorkerName.d.ts.map +1 -1
  141. package/dist/core/WorkerName.js +5 -30
  142. package/dist/core/WorkerName.js.map +1 -1
  143. package/dist/core/WorkerName.sql +4 -20
  144. package/dist/core/WorkerOwners.d.ts +1 -0
  145. package/dist/core/WorkerOwners.d.ts.map +1 -1
  146. package/dist/core/WorkerOwners.js +6 -0
  147. package/dist/core/WorkerOwners.js.map +1 -1
  148. package/dist/core/WorkerOwners.sql +7 -0
  149. package/dist/core/WorkspaceGate.d.ts +3 -1
  150. package/dist/core/WorkspaceGate.d.ts.map +1 -1
  151. package/dist/core/WorkspaceGate.js +59 -10
  152. package/dist/core/WorkspaceGate.js.map +1 -1
  153. package/dist/core/caps/SchemeCtxImpl.d.ts +3 -0
  154. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  155. package/dist/core/caps/SchemeCtxImpl.js +14 -0
  156. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  157. package/dist/core/env-catalog.js +1 -1
  158. package/dist/core/env-catalog.js.map +1 -1
  159. package/dist/core/fork.js +1 -1
  160. package/dist/core/fork.js.map +1 -1
  161. package/dist/core/fork.sql +7 -6
  162. package/dist/core/mutation-types.d.ts +1 -0
  163. package/dist/core/mutation-types.d.ts.map +1 -1
  164. package/dist/core/mutation-types.js +4 -1
  165. package/dist/core/mutation-types.js.map +1 -1
  166. package/dist/core/namespace.js +1 -1
  167. package/dist/core/namespace.js.map +1 -1
  168. package/dist/core/packet-wire.d.ts +1 -1
  169. package/dist/core/packet-wire.d.ts.map +1 -1
  170. package/dist/core/packet-wire.js +24 -15
  171. package/dist/core/packet-wire.js.map +1 -1
  172. package/dist/core/plurnk-uri.d.ts +1 -1
  173. package/dist/core/plurnk-uri.d.ts.map +1 -1
  174. package/dist/core/plurnk-uri.js +1 -1
  175. package/dist/core/plurnk-uri.js.map +1 -1
  176. package/dist/core/scheme-types.d.ts +5 -0
  177. package/dist/core/scheme-types.d.ts.map +1 -1
  178. package/dist/core/turn-signals.d.ts +4 -0
  179. package/dist/core/turn-signals.d.ts.map +1 -1
  180. package/dist/core/turn-signals.js +1 -0
  181. package/dist/core/turn-signals.js.map +1 -1
  182. package/dist/core/workspace-settings.js +1 -1
  183. package/dist/core/workspace-settings.js.map +1 -1
  184. package/dist/evidence/EvidenceReader.js +5 -5
  185. package/dist/evidence/EvidenceReader.js.map +1 -1
  186. package/dist/man/plurnk-service.1 +27 -6
  187. package/dist/schemes/Env.d.ts +7 -3
  188. package/dist/schemes/Env.d.ts.map +1 -1
  189. package/dist/schemes/Env.js +12 -6
  190. package/dist/schemes/Env.js.map +1 -1
  191. package/dist/schemes/Exec.d.ts.map +1 -1
  192. package/dist/schemes/Exec.js +37 -25
  193. package/dist/schemes/Exec.js.map +1 -1
  194. package/dist/schemes/ExecOutputScheme.js +3 -3
  195. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  196. package/dist/schemes/ExecutionInput.d.ts +2 -1
  197. package/dist/schemes/ExecutionInput.d.ts.map +1 -1
  198. package/dist/schemes/ExecutionInput.js +45 -7
  199. package/dist/schemes/ExecutionInput.js.map +1 -1
  200. package/dist/schemes/File.d.ts.map +1 -1
  201. package/dist/schemes/File.js +32 -23
  202. package/dist/schemes/File.js.map +1 -1
  203. package/dist/schemes/Log.d.ts.map +1 -1
  204. package/dist/schemes/Log.js +23 -5
  205. package/dist/schemes/Log.js.map +1 -1
  206. package/dist/schemes/Log.sql +24 -1
  207. package/dist/schemes/ResourceTreeScheme.js +2 -5
  208. package/dist/schemes/ResourceTreeScheme.js.map +1 -1
  209. package/dist/schemes/TurnSource.js +1 -1
  210. package/dist/schemes/TurnSource.js.map +1 -1
  211. package/dist/schemes/Worker.d.ts.map +1 -1
  212. package/dist/schemes/Worker.js +10 -3
  213. package/dist/schemes/Worker.js.map +1 -1
  214. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  215. package/dist/schemes/_entry-crud.js +2 -4
  216. package/dist/schemes/_entry-crud.js.map +1 -1
  217. package/dist/schemes/_entry-crud.sql +5 -3
  218. package/dist/schemes/_entry-find.js +3 -3
  219. package/dist/schemes/_entry-find.js.map +1 -1
  220. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  221. package/dist/schemes/_entry-manifest.js +3 -3
  222. package/dist/schemes/_entry-manifest.js.map +1 -1
  223. package/dist/schemes/_entry-manifest.sql +2 -0
  224. package/dist/schemes/_entry-ops.js +1 -1
  225. package/dist/schemes/_entry-ops.js.map +1 -1
  226. package/dist/schemes/_entry-send.js +1 -1
  227. package/dist/schemes/_entry-send.js.map +1 -1
  228. package/dist/server/ClientReads.d.ts +1 -0
  229. package/dist/server/ClientReads.d.ts.map +1 -1
  230. package/dist/server/ClientReads.js +7 -2
  231. package/dist/server/ClientReads.js.map +1 -1
  232. package/dist/server/Credentials.d.ts +48 -0
  233. package/dist/server/Credentials.d.ts.map +1 -0
  234. package/dist/server/Credentials.js +203 -0
  235. package/dist/server/Credentials.js.map +1 -0
  236. package/dist/server/Daemon.d.ts +44 -39
  237. package/dist/server/Daemon.d.ts.map +1 -1
  238. package/dist/server/Daemon.js +287 -172
  239. package/dist/server/Daemon.js.map +1 -1
  240. package/dist/server/DrainSupervisor.d.ts +8 -3
  241. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  242. package/dist/server/DrainSupervisor.js +44 -32
  243. package/dist/server/DrainSupervisor.js.map +1 -1
  244. package/dist/server/EnvFunctionality.d.ts.map +1 -1
  245. package/dist/server/EnvFunctionality.js +2 -1
  246. package/dist/server/EnvFunctionality.js.map +1 -1
  247. package/dist/server/Functionality.d.ts +4 -2
  248. package/dist/server/Functionality.d.ts.map +1 -1
  249. package/dist/server/Functionality.js +192 -96
  250. package/dist/server/Functionality.js.map +1 -1
  251. package/dist/server/FunctionalityManager.d.ts +1 -4
  252. package/dist/server/FunctionalityManager.d.ts.map +1 -1
  253. package/dist/server/FunctionalityManager.js +6 -6
  254. package/dist/server/FunctionalityManager.js.map +1 -1
  255. package/dist/server/HttpListener.d.ts +1 -1
  256. package/dist/server/HttpListener.d.ts.map +1 -1
  257. package/dist/server/HttpListener.js.map +1 -1
  258. package/dist/server/MembersFunctionality.d.ts +7 -8
  259. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  260. package/dist/server/MembersFunctionality.js +90 -56
  261. package/dist/server/MembersFunctionality.js.map +1 -1
  262. package/dist/server/MessageAbandonment.d.ts +7 -0
  263. package/dist/server/MessageAbandonment.d.ts.map +1 -0
  264. package/dist/server/MessageAbandonment.js +57 -0
  265. package/dist/server/MessageAbandonment.js.map +1 -0
  266. package/dist/server/ModuleHost.d.ts +2 -1
  267. package/dist/server/ModuleHost.d.ts.map +1 -1
  268. package/dist/server/PlurnkSkill.js +4 -7
  269. package/dist/server/PlurnkSkill.js.map +1 -1
  270. package/dist/server/Rollback.d.ts +29 -0
  271. package/dist/server/Rollback.d.ts.map +1 -0
  272. package/dist/server/Rollback.js +111 -0
  273. package/dist/server/Rollback.js.map +1 -0
  274. package/dist/server/WorkerModelResolver.js +1 -0
  275. package/dist/server/WorkerModelResolver.js.map +1 -1
  276. package/dist/server/WorkerReferences.d.ts +14 -0
  277. package/dist/server/WorkerReferences.d.ts.map +1 -0
  278. package/dist/server/WorkerReferences.js +24 -0
  279. package/dist/server/WorkerReferences.js.map +1 -0
  280. package/dist/server/WorkerReferences.sql +31 -0
  281. package/dist/server/WorkspaceCapabilities.d.ts +2 -0
  282. package/dist/server/WorkspaceCapabilities.d.ts.map +1 -1
  283. package/dist/server/WorkspaceCapabilities.js +35 -18
  284. package/dist/server/WorkspaceCapabilities.js.map +1 -1
  285. package/dist/server/WorkspacePlugins.js +1 -0
  286. package/dist/server/WorkspacePlugins.js.map +1 -1
  287. package/dist/server/WorkspaceResidency.d.ts +3 -1
  288. package/dist/server/WorkspaceResidency.d.ts.map +1 -1
  289. package/dist/server/WorkspaceResidency.js +12 -5
  290. package/dist/server/WorkspaceResidency.js.map +1 -1
  291. package/dist/server/client-input.d.ts +2 -0
  292. package/dist/server/client-input.d.ts.map +1 -1
  293. package/dist/server/client-input.js +28 -0
  294. package/dist/server/client-input.js.map +1 -1
  295. package/dist/server/drain.sql +46 -40
  296. package/dist/server/envelope.d.ts +5 -9
  297. package/dist/server/envelope.d.ts.map +1 -1
  298. package/dist/server/envelope.js +21 -84
  299. package/dist/server/envelope.js.map +1 -1
  300. package/dist/server/envelope.sql +17 -17
  301. package/dist/server/lifecycle-recovery.sql +5 -15
  302. package/dist/server/logEntry.d.ts.map +1 -1
  303. package/dist/server/logEntry.js +6 -0
  304. package/dist/server/logEntry.js.map +1 -1
  305. package/dist/server/logEntry.sql +94 -6
  306. package/dist/server/module-discovery.d.ts +1 -1
  307. package/dist/server/module-discovery.d.ts.map +1 -1
  308. package/dist/server/module-discovery.js +1 -0
  309. package/dist/server/module-discovery.js.map +1 -1
  310. package/dist/server/seam-loop.sql +15 -7
  311. package/dist/server/seam-proposal-list.sql +10 -4
  312. package/dist/service.d.ts.map +1 -1
  313. package/dist/service.js +7 -1
  314. package/dist/service.js.map +1 -1
  315. package/docs/members.md +20 -13
  316. package/migrations/002_workers.sql +2 -2
  317. package/migrations/006_log.sql +1 -1
  318. package/migrations/018_worker_owners.sql +1 -1
  319. package/migrations/026_message_obligations.sql +32 -0
  320. package/migrations/027_members_identity.sql +20 -0
  321. package/migrations/028_mutation_patch.sql +20 -0
  322. package/migrations/029_default_worker.sql +9 -0
  323. package/migrations/030_client_workers.sql +105 -0
  324. package/migrations/031_message_openers.sql +83 -0
  325. package/migrations/032_worker_references.sql +29 -0
  326. package/package.json +24 -24
  327. package/plurnk.nginx.conf +71 -0
  328. package/plurnk.service +2 -0
@@ -5,6 +5,7 @@ export default class ClientInput {
5
5
  static assertShareFolder(context: string, folder: unknown): string;
6
6
  static assertProjectRoot(context: string, projectRoot: unknown): string | null;
7
7
  static assertOptionalName(context: string, field: string, value: unknown): string | undefined;
8
+ static assertOptionalWorkspaceName(context: string, field: string, value: unknown): string | undefined;
8
9
  static assertOptionalWorkerName(context: string, field: string, value: unknown): string | undefined;
9
10
  static assertOptionalSelector(context: string, field: "selector" | "childSelector", value: unknown): string | undefined;
10
11
  static assertSelector(context: string, field: "selector" | "childSelector", value: unknown): string;
@@ -14,6 +15,7 @@ export default class ClientInput {
14
15
  static assertId(context: string, field: string, value: unknown): number;
15
16
  static assertPrompt(context: string, prompt: unknown, allowEmpty?: boolean): string;
16
17
  static assertMessageResources(context: string, resources: unknown): readonly MessageResource[];
18
+ static assertActor(context: string, actor: unknown): string;
17
19
  static assertOptionalSource(context: string, source: unknown): string | undefined;
18
20
  static assertMaxTurns(context: string, maxTurns: unknown): number | undefined;
19
21
  static assertOpenPaths(context: string, openPaths: unknown): string[] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"client-input.d.ts","sourceRoot":"","sources":["../../src/server/client-input.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAKH,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACvB,MAAM,0BAA0B,CAAC;AAGlC,MAAM,CAAC,OAAO,OAAO,WAAW;;IA0B5B,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAUjE;IAED,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAoB7E;IAED,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAW5F;IAED,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAsBlG;IAED,MAAM,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,eAAe,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAYtH;IAED,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,eAAe,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAYlG;IAED,MAAM,CAAC,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAG7F;IAED,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAGzE;IAED,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAWlF;IAED,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAUtE;IAED,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,UAAQ,GAAG,MAAM,CAUhF;IAED,MAAM,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,eAAe,EAAE,CAU7F;IAED,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAWhF;IAED,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAe5E;IAED,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CA4BhF;IAED,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAWtE;IAED,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,kBAAkB,CA0DxF;IAED,MAAM,CAAC,iCAAiC,CACpC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,OAAO,GACpB,2BAA2B,CAgB7B;IAID,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CA4IzC;CAEJ"}
1
+ {"version":3,"file":"client-input.d.ts","sourceRoot":"","sources":["../../src/server/client-input.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,10 @@ export default class ClientInput {
32
32
  if (typeof root !== "string" || root.length === 0) {
33
33
  ClientInput.#invalid(context, "project-root-invalid", "projectRoot is neither a non-empty string nor null.", { field: "projectRoot", recovery: "Provide an absolute project path or null." });
34
34
  }
35
+ // A lone surrogate has no UTF-8 spelling: the filesystem would be asked for a different folder.
36
+ if (!root.isWellFormed()) {
37
+ ClientInput.#invalid(context, "project-root-invalid", "projectRoot is not well-formed Unicode: it holds an unpaired surrogate.", { field: "projectRoot", recovery: "Provide an absolute project path of well-formed Unicode." });
38
+ }
35
39
  if (!isAbsolute(root)) {
36
40
  ClientInput.#invalid(context, "project-root-not-absolute", `projectRoot '${root}' is not an absolute path.`, { field: "projectRoot", value: root, recovery: "Provide an absolute project path." });
37
41
  }
@@ -45,6 +49,23 @@ export default class ClientInput {
45
49
  }
46
50
  return value;
47
51
  }
52
+ // {§workspace-name} — new names are checked at creation and rename; existing names are not rewritten.
53
+ static assertOptionalWorkspaceName(context, field, value) {
54
+ const name = ClientInput.assertOptionalName(context, field, value);
55
+ if (name === undefined)
56
+ return undefined;
57
+ if (/^[0-9]+$/u.test(name)) {
58
+ ClientInput.#invalid(context, "name-invalid", `${field} consists only of ASCII decimal digits, reserved for workspace IDs.`, { field, recovery: `Provide a ${field} containing a non-digit character.` });
59
+ }
60
+ if (!name.isWellFormed()) {
61
+ ClientInput.#invalid(context, "name-invalid", `${field} is not well-formed Unicode: it holds an unpaired surrogate.`, { field, recovery: `Provide a ${field} of well-formed Unicode.` });
62
+ }
63
+ const segment = name.split("/").find((part) => part === "." || part === "..");
64
+ if (segment !== undefined) {
65
+ ClientInput.#invalid(context, "name-invalid", `${field} '${name}' has the path segment '${segment}'.`, { field, value: name, segment, recovery: `Provide a ${field} with no '.' or '..' between its slashes; a dot within a segment is ordinary.` });
66
+ }
67
+ return name;
68
+ }
48
69
  static assertOptionalWorkerName(context, field, value) {
49
70
  const workerName = ClientInput.assertOptionalName(context, field, value);
50
71
  if (workerName === undefined)
@@ -122,6 +143,13 @@ export default class ClientInput {
122
143
  }
123
144
  return resources;
124
145
  }
146
+ // {§actor-boundary-client-operations} The canonical address of the person a client operation acts for.
147
+ static assertActor(context, actor) {
148
+ if (typeof actor !== "string" || actor.length === 0) {
149
+ ClientInput.#invalid(context, "actor-invalid", "actor is not a non-empty string.", { field: "actor", recovery: "Name the acting person's canonical address." });
150
+ }
151
+ return actor;
152
+ }
125
153
  static assertOptionalSource(context, source) {
126
154
  if (source === undefined)
127
155
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"client-input.js","sourceRoot":"","sources":["../../src/server/client-input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-input.js","sourceRoot":"","sources":["../../src/server/client-input.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,15 @@ WHERE worker_id = $worker_id
52
52
  ORDER BY (status = 102) DESC, sequence ASC
53
53
  LIMIT 1;
54
54
 
55
+ -- PREP: drain_abandoned_messages
56
+ -- {§message-abandonment}: the messages other workers sent that this ended loop still holds without a completion.
57
+ SELECT m.path
58
+ FROM message_sources m
59
+ WHERE m.loop_id = $loop_id
60
+ AND m.source LIKE 'worker://%'
61
+ AND NOT EXISTS (SELECT 1 FROM message_completions c WHERE c.message_id = m.id)
62
+ ORDER BY m.ordinal ASC;
63
+
55
64
  -- PREP: drain_message_source
56
65
  SELECT l.worker_id, w.workspace_id, l.status
57
66
  FROM loops l JOIN workers w ON w.id = l.worker_id
@@ -70,12 +79,17 @@ SELECT workspace_id FROM workers WHERE id = $worker_id;
70
79
 
71
80
  -- PREP: drain_enqueue_message
72
81
  -- {§message-arrival}: append one message to the loop's inbox in arrival order. Ordinal 1 is the
73
- -- loop's initial message; a later arrival takes the next ordinal.
74
- INSERT INTO loop_messages (loop_id, ordinal, source, body, open_paths, evidence, address)
82
+ -- loop's initial message; a later arrival takes the next ordinal. {§worker-obligations}: a worker's own
83
+ -- operation names itself as the message's opener, by the row it writes.
84
+ INSERT INTO loop_messages (loop_id, ordinal, source, body, open_paths, evidence, address, opened_turn_id, opened_sequence)
75
85
  SELECT $loop_id, (SELECT COALESCE(MAX(ordinal), 0) + 1 FROM loop_messages WHERE loop_id = $loop_id),
76
- $source, $body, $open_paths, $evidence, $address
86
+ $source, $body, $open_paths, $evidence, $address, $opened_turn_id, $opened_sequence
77
87
  WHERE EXISTS (SELECT 1 FROM loops WHERE id = $loop_id AND status IN (100, 102, 202))
78
- RETURNING id, ordinal;
88
+ RETURNING id, ordinal, message_key;
89
+ -- PREP: drain_message_path
90
+ -- {§worker-obligations}: an admitted message's durable address, the one Open Work names.
91
+ SELECT path FROM message_sources WHERE id = $id;
92
+
79
93
  -- PREP: drain_unpublished_messages_for_loop
80
94
  -- {§message-loop-containment}: the messages the loop contains but has not yet published, oldest
81
95
  -- first; the next turn boundary publishes each as an inbound SEND row exactly once.
@@ -84,14 +98,13 @@ FROM message_sources
84
98
  WHERE loop_id = $loop_id AND log_entry_id IS NULL
85
99
  ORDER BY ordinal ASC;
86
100
 
87
- -- PREP: drain_unpublished_arrivals_for_loop
88
- -- {§completion-defers-to-messages}: the messages that arrived after the loop began and are not
89
- -- yet published. Ordinal 1 is the loop's assignment, published by the first turn boundary before
90
- -- any model disposition can exist, so it never defers a completion.
91
- SELECT id, ordinal
101
+ -- PREP: drain_has_unpublished_messages
102
+ -- {§completion-defers-to-messages}: existence is enough to defer conclusion;
103
+ -- publication alone needs the bodies and their ordering.
104
+ SELECT 1 AS pending
92
105
  FROM loop_messages
93
- WHERE loop_id = $loop_id AND ordinal > 1 AND log_entry_id IS NULL
94
- ORDER BY ordinal ASC;
106
+ WHERE loop_id = $loop_id AND log_entry_id IS NULL
107
+ LIMIT 1;
95
108
 
96
109
  -- PREP: drain_publish_message
97
110
  -- The inbox row's one publication: the inbound SEND row it became.
@@ -99,41 +112,34 @@ UPDATE loop_messages SET log_entry_id = $log_entry_id
99
112
  WHERE id = $id AND log_entry_id IS NULL
100
113
  RETURNING id;
101
114
 
102
- -- PREP: drain_orphaned_messages_for_loop
103
- -- A loop can conclude before publishing a message injected into it (a wake-on-completion, or a
104
- -- runLoop-while-active arrival that landed on a turn the loop never reached). Return the complete
105
- -- unpublished set oldest-first with the ended loop's posture so one recovery loop preserves
106
- -- cardinality and order ({§message-loop-containment}). Ordinal 1 is the loop's own assignment:
107
- -- its fate is the loop's, never replayed into fresh work.
108
- SELECT m.body AS body, m.source AS source, m.open_paths AS open_paths,
109
- l.model_route_id AS model_route_id,
110
- l.spawn_model_route_id AS spawn_model_route_id,
111
- l.effort AS effort,
112
- l.max_turns AS max_turns
113
- FROM loop_messages m
114
- JOIN loops l ON l.id = m.loop_id
115
- WHERE m.loop_id = $loop_id
116
- AND m.ordinal > 1
117
- AND m.log_entry_id IS NULL
118
- AND l.status IN (200, 413, 429, 499, 500, 504, 508)
119
- AND l.terminated_by IS NOT 'cancel'
120
- AND l.sequence > (SELECT cancelled_through_sequence FROM workers WHERE id = l.worker_id)
121
- ORDER BY m.ordinal ASC;
122
115
  -- PREP: drain_enqueue_orphan_recovery_loop
123
116
  -- {§message-loop-containment}: recovery identity is the concluded source loop.
124
- -- Retrying returns that same queued loop instead of minting duplicate work.
117
+ -- The database copies its posture and first unpublished arrival directly; the caller needs only
118
+ -- the recovery identity and expected cardinality, never the stored message bodies or policy.
125
119
  INSERT INTO loops (
126
120
  worker_id, sequence, status, prompt, prompt_source, model_route_id, spawn_model_route_id, effort, max_turns,
127
121
  orphan_source_loop_id
128
122
  )
129
- VALUES (
130
- $worker_id, (SELECT COALESCE(MAX(sequence), 0) + 1 FROM loops WHERE worker_id = $worker_id),
131
- 100, $prompt, $prompt_source, $model_route_id, $spawn_model_route_id, $effort, $max_turns,
132
- $orphan_source_loop_id
123
+ SELECT l.worker_id, (SELECT COALESCE(MAX(sequence), 0) + 1 FROM loops WHERE worker_id = l.worker_id),
124
+ 100, m.body, m.source, l.model_route_id, l.spawn_model_route_id, l.effort, l.max_turns, l.id
125
+ FROM loops l
126
+ JOIN workers w ON w.id = l.worker_id
127
+ JOIN loop_messages m ON m.id = (
128
+ SELECT id FROM loop_messages
129
+ WHERE loop_id = l.id AND ordinal > 1 AND log_entry_id IS NULL
130
+ ORDER BY ordinal LIMIT 1
133
131
  )
132
+ WHERE l.id = $orphan_source_loop_id AND l.worker_id = $worker_id
133
+ AND l.status IN (200, 413, 429, 499, 500, 504, 508)
134
+ AND l.terminated_by IS NOT 'cancel'
135
+ AND l.sequence > w.cancelled_through_sequence
134
136
  ON CONFLICT (orphan_source_loop_id) DO UPDATE
135
137
  SET orphan_source_loop_id = excluded.orphan_source_loop_id
136
- RETURNING id, sequence, status;
138
+ WHERE loops.status = 100
139
+ RETURNING id, sequence, (
140
+ SELECT COUNT(*) FROM loop_messages
141
+ WHERE loop_id = $orphan_source_loop_id AND ordinal > 1 AND log_entry_id IS NULL
142
+ ) AS message_count;
137
143
 
138
144
  -- PREP: drain_rehome_orphaned_messages
139
145
  -- Move, rather than copy, the source loop's unpublished messages into the recovery loop,
@@ -146,9 +152,9 @@ WITH orphaned(id, ordinal) AS MATERIALIZED (
146
152
  )
147
153
  UPDATE loop_messages
148
154
  SET loop_id = $target_loop_id,
149
- ordinal = (SELECT ordinal FROM orphaned WHERE orphaned.id = loop_messages.id)
150
- WHERE id IN (SELECT id FROM orphaned)
151
- RETURNING id, ordinal;
155
+ ordinal = orphaned.ordinal
156
+ FROM orphaned
157
+ WHERE loop_messages.id = orphaned.id;
152
158
  -- PREP: drain_find_slept_loop
153
159
  -- Existence/arrival selection only; completion wakes use all eligible waits.
154
160
  SELECT id FROM loops WHERE worker_id = $worker_id AND status = 202 ORDER BY sequence ASC LIMIT 1;
@@ -7,11 +7,12 @@ export interface WorkspaceRow {
7
7
  project_root: string | null;
8
8
  created_at: string;
9
9
  }
10
+ export type WorkspaceEnvelope = Omit<ClientEnvelope, "projectLabel">;
10
11
  export interface WorkerRow {
11
12
  id: number;
12
13
  name: string;
13
14
  created_at: string;
14
- origin: "model" | "client" | "_plurnk";
15
+ origin: "model" | "_plurnk";
15
16
  owner: string;
16
17
  parentWorkerId: number | null;
17
18
  kind: ApplicationWorkerKind;
@@ -27,24 +28,19 @@ export interface WorkerQuery {
27
28
  parentWorkerId?: number | null;
28
29
  }
29
30
  export default class Envelope {
30
- #private;
31
31
  static readonly AUTO_NAME_ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
32
32
  static generateWorkspaceName(): string;
33
33
  static createClientEnvelope(db: Db, opts?: {
34
34
  name?: string;
35
35
  projectRoot?: string | null;
36
36
  settings?: string;
37
- }): Promise<ClientEnvelope>;
38
- static attachToWorkspace(db: Db, workspaceId: number, opts?: {
39
- workerId?: number;
40
- workerName?: string;
41
- }): Promise<ClientEnvelope>;
42
- static ensureClientLoop(db: Db, workerId: number): Promise<number>;
37
+ }): Promise<WorkspaceEnvelope>;
38
+ static attachToWorkspace(db: Db, workspaceId: number): Promise<WorkspaceEnvelope>;
39
+ static ensureClientLoop(db: Db, workerId: number, actor: string): Promise<number>;
43
40
  static createModelWorker(db: Db, workspaceId: number, name?: string, parentWorkerId?: number, owner?: string): Promise<{
44
41
  id: number;
45
42
  name: string;
46
43
  }>;
47
- static ensureModelWorker(db: Db, workspaceId: number): Promise<number>;
48
44
  static listWorkersForWorkspace(db: Db, workspaceId: number, query?: WorkerQuery): Promise<WorkerRow[]>;
49
45
  static listPromptsForWorkspace(db: Db, workspaceId: number, limit: number, workerId: number | null): Promise<string[]>;
50
46
  static closeClientLoop(db: Db, loopId: number, result: SchemeResult): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  // Envelope lifecycle helpers for module clients. SPEC {§connection-lifecycle}.
2
2
  //
3
3
  // A client-interface module receives this value from an explicit workspace create
4
- // or attach call. Core creates or selects the client worker but retains no transport
5
- // binding; each dispatched client action allocates and settles its own administrative loop.
4
+ // or attach call. Binding a workspace mints nothing and retains no transport binding;
5
+ // each client operation allocates and settles its own administrative loop in the runtime worker.
6
6
  import AdministrativeLoop from "../core/AdministrativeLoop.js";
7
- import { randomBytes } from "node:crypto";
7
+ import crypto from "node:crypto";
8
8
  import GitMembership from "../core/git-membership.js";
9
9
  import Results, { OperationFailureError } from "../core/results.js";
10
10
  import LoopLifecycle from "../core/LoopLifecycle.js";
@@ -21,7 +21,11 @@ export default class Envelope {
21
21
  // a name says nothing about where the workspace came from.
22
22
  static AUTO_NAME_ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
23
23
  static generateWorkspaceName() {
24
- return Array.from(randomBytes(5), (byte) => Envelope.AUTO_NAME_ALPHABET[byte % 62]).join("");
24
+ let name;
25
+ do {
26
+ name = Array.from({ length: 5 }, () => Envelope.AUTO_NAME_ALPHABET[crypto.randomInt(Envelope.AUTO_NAME_ALPHABET.length)]).join("");
27
+ } while (!/[A-Za-z]/u.test(name));
28
+ return name;
25
29
  }
26
30
  static async createClientEnvelope(db, opts = {}) {
27
31
  const projectRoot = opts.projectRoot ?? null;
@@ -42,98 +46,31 @@ export default class Envelope {
42
46
  // tracked files are members before the first op. No-op when projectRoot is
43
47
  // null (headless) or not a git working tree.
44
48
  await GitMembership.resolveGitMembership(db, workspace.id, undefined);
45
- const worker = await WorkerName.claimAuto(db, {
46
- workspaceId: workspace.id,
47
- origin: "client",
48
- });
49
- return {
50
- workspaceId: workspace.id, workspaceName: workspace.name,
51
- projectRoot: workspace.project_root,
52
- workerId: worker.id, workerName: worker.name,
53
- };
49
+ return { workspaceId: workspace.id, workspaceName: workspace.name, projectRoot: workspace.project_root };
54
50
  }
55
- // Resolve the worker inside a workspace. Three modes:
56
- // - opts.workerId given: lookup by id, verify workspace ownership (else throw).
57
- // - opts.workerName given: lookup by (workspaceId, name); reuse if found, create otherwise.
58
- // - neither: create a new worker with an auto-generated name (current behavior).
59
- // `workerId` and `workerName` are alternatives — passing both throws (use one).
60
- static async #resolveWorker(db, workspaceId, opts) {
61
- if (opts.workerId !== undefined && opts.workerName !== undefined) {
62
- throw envelopeFailure("daemon:worker", "worker-selector-conflict", 400, "Workspace attachment received both a worker ID and worker name.", {
63
- workerId: opts.workerId,
64
- workerName: opts.workerName,
65
- recovery: "Select the worker by either ID or name.",
66
- retryable: false,
67
- });
68
- }
69
- if (opts.workerId !== undefined) {
70
- const existing = await db.envelope_get_worker_by_id.get({ id: opts.workerId });
71
- if (existing === undefined) {
72
- throw envelopeFailure("daemon:worker", "worker-not-found", 404, `Worker ${opts.workerId} does not exist.`, { workerId: opts.workerId });
73
- }
74
- if (existing.workspace_id !== workspaceId) {
75
- throw envelopeFailure("daemon:worker", "workspace-mismatch", 409, `Worker ${opts.workerId} does not belong to workspace ${workspaceId}.`, {
76
- workerId: opts.workerId,
77
- workspaceId,
78
- actualWorkspaceId: existing.workspace_id,
79
- retryable: false,
80
- });
81
- }
82
- return { id: existing.id, name: existing.name };
83
- }
84
- if (opts.workerName !== undefined) {
85
- const workerName = WorkerName.assert(opts.workerName); // {§worker-name-minting}
86
- const existing = await db.envelope_get_worker_by_name.get({ workspace_id: workspaceId, name: workerName });
87
- if (existing !== undefined)
88
- return existing;
89
- const created = await db.envelope_insert_worker.get({ workspace_id: workspaceId, name: workerName, origin: "client" });
90
- if (created === undefined)
91
- throw new Error("resolveWorker: worker insert returned no row");
92
- return created;
93
- }
94
- return await WorkerName.claimAuto(db, {
95
- workspaceId,
96
- origin: "client",
97
- });
98
- }
99
- static async attachToWorkspace(db, workspaceId, opts = {}) {
51
+ static async attachToWorkspace(db, workspaceId) {
100
52
  const workspace = await db.envelope_get_workspace.get({ id: workspaceId });
101
53
  if (workspace === undefined) {
102
54
  throw envelopeFailure("daemon:workspace", "workspace-not-found", 404, `Workspace ${workspaceId} does not exist.`, { workspaceId });
103
55
  }
104
- const worker = await Envelope.#resolveWorker(db, workspace.id, opts);
105
- return {
106
- workspaceId: workspace.id, workspaceName: workspace.name,
107
- projectRoot: workspace.project_root,
108
- workerId: worker.id, workerName: worker.name,
109
- };
56
+ return { workspaceId: workspace.id, workspaceName: workspace.name, projectRoot: workspace.project_root };
110
57
  }
111
- // Client action loop allocator. One action allocates one administrative
112
- // loop; its statements become ordered turns and settlement closes the loop.
113
- static async ensureClientLoop(db, workerId) {
114
- return (await AdministrativeLoop.open(db, workerId)).id;
58
+ // Client operation loop allocator. One operation allocates one administrative loop, opened by its
59
+ // actor ({§actor-boundary-client-operations}); its statements become ordered turns and settlement closes it.
60
+ static async ensureClientLoop(db, workerId, actor) {
61
+ return (await AdministrativeLoop.open(db, workerId, actor)).id;
115
62
  }
116
- // Lazy model-worker allocator ({§connection-lifecycle}, {§machine-processes} — the client writes to its own worker).
117
- // The model's conversation lives in its own worker, distinct from the client's
118
- // client worker, so the packet — rendered from the model worker — never carries
119
- // the client's dispatched actions. The module resolves and retains the binding.
120
- // {§methods-conversation-worker}: a fresh conversation is a named, empty-log,
121
- // model-origin worker, distinct from the stable default and from a history-copying fork.
63
+ // Model-worker allocator ({§machine-processes}). A person's client operations journal in the runtime
64
+ // worker, never here, so the packet, rendered from the model worker, never carries them
65
+ // ({§connection-lifecycle}). The module resolves and retains the binding.
66
+ // {§methods-worker-create}: a fresh worker is a named, empty-log, model-origin worker,
67
+ // distinct from a history-copying fork.
122
68
  static async createModelWorker(db, workspaceId, name, parentWorkerId, owner) {
123
69
  const options = { workspaceId, parentWorkerId, owner, origin: "model" };
124
70
  return name === undefined
125
71
  ? WorkerName.claimAuto(db, options)
126
72
  : WorkerName.claimNamed(db, name, options);
127
73
  }
128
- static async ensureModelWorker(db, workspaceId) {
129
- // {§methods-model-worker}: idempotence lives at the seam, not in a client's
130
- // connection cache. The durable role, not root ordering or a name parse,
131
- // distinguishes this default from arbitrary fresh conversations.
132
- const worker = await WorkerName.ensureDefaultConversation(db, {
133
- workspaceId,
134
- });
135
- return worker.id;
136
- }
137
74
  static async listWorkersForWorkspace(db, workspaceId, query = {}) {
138
75
  const filterParent = Object.hasOwn(query, "parentWorkerId");
139
76
  const rows = await db.envelope_list_workers_for_workspace.all({
@@ -144,7 +81,7 @@ export default class Envelope {
144
81
  });
145
82
  return rows.map(projectWorkerRow);
146
83
  }
147
- // {§methods-workspace-prompts}: expose root-conversation loop seeds directly,
84
+ // {§methods-workspace-prompts}: expose root-worker loop seeds directly,
148
85
  // without forcing clients to reconstruct prompt history from log rows.
149
86
  static async listPromptsForWorkspace(db, workspaceId, limit, workerId) {
150
87
  const rows = await db.envelope_list_workspace_prompts.all({ workspace_id: workspaceId, limit, worker_id: workerId });
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,kFAAkF;AAClF,sFAAsF;AACtF,iGAAiG;AAEjG,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAE/D,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,aAAa,MAAM,2BAA2B,CAAC;AACtD,OAAO,OAAO,EAAE,EAAE,qBAAqB,EAAqB,MAAM,oBAAoB,CAAC;AACvF,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAA0F,MAAM,0BAA0B,CAAC;AAE3K,MAAM,eAAe,GAAG,CACpB,KAAa,EACb,IAAY,EACZ,MAAc,EACd,MAAc,EACd,UAAU,GAAsC,EAAE,EAC7B,EAAE,CAAC,IAAI,qBAAqB,CACjD,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,CAAC,CAC/D,CAAC;AAwBF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAyC,GAAM,EAAgE,EAAE;IAC7I,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAA6E,CAAC;IACvH,OAAO,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;AAC1F,CAAC,CAAC;AAOF,MAAM,CAAC,OAAO,OAAO,QAAQ;IACzB,qFAAqF;IACrF,2DAA2D;IAC3D,MAAM,CAAU,kBAAkB,GAAG,gEAAgE,CAAC;IAEtG,MAAM,CAAC,qBAAqB;QACxB,IAAI,IAAY,CAAC;QACjB,GAAG,CAAC;YACA,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAM,EAAE,IAAI,GAAsE,EAAE;QAClH,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;QAC7C,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAA4D,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;QACnM,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,uFAAuF;QACvF,OAAO,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACtH,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAK,CAAC;YACxB,MAAM,eAAe,CACjB,kBAAkB,EAClB,eAAe,EACf,GAAG,EACH,mBAAmB,IAAI,sBAAsB,EAC7C;gBACI,IAAI;gBACJ,QAAQ,EAAE,oEAAoE;gBAC9E,SAAS,EAAE,KAAK;aACnB,CACJ,CAAC;QACN,CAAC;QACD,kFAAkF;QAClF,2EAA2E;QAC3E,6CAA6C;QAC7C,MAAM,aAAa,CAAC,oBAAoB,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACtE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC;IAC7G,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAM,EAAE,WAAmB;QACtD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAA4D,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACtI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,eAAe,CACjB,kBAAkB,EAClB,qBAAqB,EACrB,GAAG,EACH,aAAa,WAAW,kBAAkB,EAC1C,EAAE,WAAW,EAAE,CAClB,CAAC;QACN,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC;IAC7G,CAAC;IAED,kGAAkG;IAClG,6GAA6G;IAC7G,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAM,EAAE,QAAgB,EAAE,KAAa;QACjE,OAAO,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,CAAC;IAED,qGAAqG;IACrG,wFAAwF;IACxF,0EAA0E;IAC1E,uFAAuF;IACvF,wCAAwC;IACxC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAM,EAAE,WAAmB,EAAE,IAAa,EAAE,cAAuB,EAAE,KAAc;QAC9G,MAAM,OAAO,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,OAAgB,EAAE,CAAC;QACjF,OAAO,IAAI,KAAK,SAAS;YACrB,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC;YACnC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAChC,EAAM,EACN,WAAmB,EACnB,KAAK,GAAgB,EAAE;QAEvB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,mCAAmC,CAAC,GAAG,CAA8D;YACvH,YAAY,EAAE,WAAW;YACzB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;YAC5B,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,gBAAgB,EAAE,KAAK,CAAC,cAAc,IAAI,IAAI;SACjD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACtC,CAAC;IAED,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAM,EAAE,WAAmB,EAAE,KAAa,EAAE,QAAuB;QACpG,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,+BAA+B,CAAC,GAAG,CAAqB,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAM,EAAE,MAAc,EAAE,MAAoB;QACrE,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACtE,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC;YACpC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;YACjD,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC7B,OAAO,EAAE,MAAM;SAClB,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAM;QAC9B,OAAO,MAAM,EAAE,CAAC,wBAAwB,CAAC,GAAG,EAAgB,CAAC;IACjE,CAAC;IAED,qFAAqF;IACrF,sFAAsF;IACtF,+EAA+E;IAC/E,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAM,EAAE,WAAmB,EAAE,IAAY;QACtE,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,2BAA2B,CAAC,GAAG,CAA+B,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9G,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAiB,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;YAC3F,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,eAAe,CACjB,kBAAkB,EAClB,eAAe,EACf,GAAG,EACH,mBAAmB,IAAI,sBAAsB,EAC7C;oBACI,WAAW;oBACX,IAAI;oBACJ,QAAQ,EAAE,gCAAgC;oBAC1C,SAAS,EAAE,KAAK;iBACnB,CACJ,CAAC;YACN,CAAC;YACD,MAAM,eAAe,CACjB,kBAAkB,EAClB,qBAAqB,EACrB,GAAG,EACH,aAAa,WAAW,kBAAkB,EAC1C,EAAE,WAAW,EAAE,CAClB,CAAC;QACN,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC;IACpB,CAAC;CACJ"}
@@ -26,21 +26,14 @@ WHERE id = $id
26
26
  )
27
27
  RETURNING id, name;
28
28
 
29
- -- PREP: envelope_insert_worker
30
- -- origin is the worker's actor ({§machine-processes}): 'model' (the conversation),
31
- -- 'client' (a connection's own worker), or '_plurnk' (the runtime self-hosting worker).
32
- INSERT INTO workers (workspace_id, name, origin)
33
- VALUES ($workspace_id, $name, $origin)
34
- RETURNING id, name, origin;
35
-
36
29
  -- {§application-worker-observation}: kind is minted lineage (fork boundary → fork, other child →
37
- -- work, root → conversation); loop observations feed the shared lifecycle selector in TS.
30
+ -- work, no parent → root); loop observations feed the shared lifecycle selector in TS.
38
31
  -- PREP: envelope_get_worker_by_id
39
32
  SELECT id, name, workspace_id, created_at, origin, owner,
40
33
  parent_worker_id AS parentWorkerId,
41
34
  CASE WHEN fork_event_boundary IS NOT NULL THEN 'fork'
42
35
  WHEN parent_worker_id IS NOT NULL THEN 'work'
43
- ELSE 'conversation' END AS kind,
36
+ ELSE 'root' END AS kind,
44
37
  (SELECT json_group_array(json_object('status', l.status, 'sequence', l.sequence, 'terminatedAt', l.terminated_at))
45
38
  FROM work_loops l WHERE l.worker_id = workers.id) AS loopObservations
46
39
  FROM workers
@@ -51,7 +44,7 @@ SELECT id, name, workspace_id, created_at, origin, owner,
51
44
  parent_worker_id AS parentWorkerId,
52
45
  CASE WHEN fork_event_boundary IS NOT NULL THEN 'fork'
53
46
  WHEN parent_worker_id IS NOT NULL THEN 'work'
54
- ELSE 'conversation' END AS kind,
47
+ ELSE 'root' END AS kind,
55
48
  (SELECT json_group_array(json_object('status', l.status, 'sequence', l.sequence, 'terminatedAt', l.terminated_at))
56
49
  FROM work_loops l WHERE l.worker_id = workers.id) AS loopObservations
57
50
  FROM workers
@@ -61,7 +54,7 @@ WHERE workspace_id = $workspace_id AND name = $name;
61
54
  SELECT id, name, created_at, origin, owner, parent_worker_id AS parentWorkerId,
62
55
  CASE WHEN fork_event_boundary IS NOT NULL THEN 'fork'
63
56
  WHEN parent_worker_id IS NOT NULL THEN 'work'
64
- ELSE 'conversation' END AS kind,
57
+ ELSE 'root' END AS kind,
65
58
  (SELECT json_group_array(json_object('status', l.status, 'sequence', l.sequence, 'terminatedAt', l.terminated_at))
66
59
  FROM work_loops l WHERE l.worker_id = workers.id) AS loopObservations
67
60
  FROM workers
@@ -120,7 +113,7 @@ WHERE id = $id
120
113
  -- {§methods-workspace-prompts}: nonempty loop seeds a client addressed to a model worker,
121
114
  -- newest-first, optionally one worker's. Authorship is the seed message's address: a worker-issued
122
115
  -- seed (WORK, FORK, SEND to a worker) carries none, so the model's own task prompts are not history
123
- -- whichever worker they seeded, and a human prompt at a forked conversation is.
116
+ -- whichever worker they seeded, and a human prompt at a forked worker is.
124
117
  SELECT l.prompt
125
118
  FROM loops l
126
119
  JOIN workers r ON r.id = l.worker_id
@@ -133,13 +126,20 @@ ORDER BY l.id DESC
133
126
  LIMIT $limit;
134
127
 
135
128
  -- PREP: envelope_insert_client_loop
136
- -- sequence is auto-computed: 1 + max(existing sequence in this worker) so
137
- -- multiple client connections attaching to the same worker get distinct loops.
138
- -- An administrative loop runs no model turns, so no turn ceiling governs it (-1).
139
- INSERT INTO loops (worker_id, sequence, status, prompt, max_turns)
140
- VALUES ($worker_id, COALESCE((SELECT MAX(sequence) FROM loops WHERE worker_id = $worker_id), 0) + 1, 102, '', -1)
129
+ -- sequence is auto-computed: 1 + max(existing sequence in this worker) so concurrent
130
+ -- operations in one worker get distinct loops. An administrative loop runs no model turns,
131
+ -- so no turn ceiling governs it (-1); its prompt source is the actor that opened it, if any.
132
+ INSERT INTO loops (worker_id, sequence, status, prompt, prompt_source, max_turns)
133
+ VALUES ($worker_id, COALESCE((SELECT MAX(sequence) FROM loops WHERE worker_id = $worker_id), 0) + 1, 102, '', $prompt_source, -1)
141
134
  RETURNING id, sequence;
142
135
 
136
+ -- PREP: envelope_client_operation_person
137
+ -- {§actor-boundary-client-operations} The person a client operation speaks for: the prompt source of a
138
+ -- runtime-worker loop. The daemon's own loops there name none.
139
+ SELECT l.prompt_source AS person
140
+ FROM loops l JOIN workers w ON w.id = l.worker_id
141
+ WHERE l.id = $loop_id AND w.origin = '_plurnk' AND l.prompt_source IS NOT NULL;
142
+
143
143
  -- PREP: envelope_close_client_loop
144
144
  UPDATE loops
145
145
  SET status = $status,