@plurnk/plurnk-service 1.7.0 → 1.9.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 (381) hide show
  1. package/.env.defaults +49 -42
  2. package/INSTALL.md +48 -11
  3. package/README.md +12 -2
  4. package/SPEC.md +1166 -475
  5. package/digest-sql/channel-dispositions/dispositions.sql +15 -0
  6. package/digest-sql/channel-state/state.sql +6 -0
  7. package/digest-sql/curation/curation.sql +5 -0
  8. package/digest-sql/derivations/derivations.sql +4 -0
  9. package/digest-sql/embeddings/embeddings.sql +4 -0
  10. package/digest-sql/entry-dispositions/dispositions.sql +15 -0
  11. package/digest-sql/entry-state/state.sql +6 -0
  12. package/digest-sql/token-counts/token-counts.sql +2 -0
  13. package/dist/Paths.d.ts +0 -4
  14. package/dist/Paths.d.ts.map +1 -1
  15. package/dist/Paths.js +1 -21
  16. package/dist/Paths.js.map +1 -1
  17. package/dist/build-info.json +1 -1
  18. package/dist/content/read-projector.d.ts.map +1 -1
  19. package/dist/content/read-projector.js +4 -3
  20. package/dist/content/read-projector.js.map +1 -1
  21. package/dist/core/BudgetReadout.d.ts.map +1 -1
  22. package/dist/core/BudgetReadout.js +12 -22
  23. package/dist/core/BudgetReadout.js.map +1 -1
  24. package/dist/core/ChannelWrite.d.ts +8 -3
  25. package/dist/core/ChannelWrite.d.ts.map +1 -1
  26. package/dist/core/ChannelWrite.js +40 -8
  27. package/dist/core/ChannelWrite.js.map +1 -1
  28. package/dist/core/ChannelWrite.sql +19 -5
  29. package/dist/core/CoreSchemeServices.d.ts +7 -3
  30. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  31. package/dist/core/CoreSchemeServices.js +8 -1
  32. package/dist/core/CoreSchemeServices.js.map +1 -1
  33. package/dist/core/Dispatcher.d.ts +15 -6
  34. package/dist/core/Dispatcher.d.ts.map +1 -1
  35. package/dist/core/Dispatcher.js +352 -306
  36. package/dist/core/Dispatcher.js.map +1 -1
  37. package/dist/core/Engine.d.ts +22 -10
  38. package/dist/core/Engine.d.ts.map +1 -1
  39. package/dist/core/Engine.js +86 -46
  40. package/dist/core/Engine.js.map +1 -1
  41. package/dist/core/Engine.sql +202 -177
  42. package/dist/core/EntryAddressBinding.d.ts +32 -0
  43. package/dist/core/EntryAddressBinding.d.ts.map +1 -0
  44. package/dist/core/EntryAddressBinding.js +93 -0
  45. package/dist/core/EntryAddressBinding.js.map +1 -0
  46. package/dist/core/ExecutorRegistry.d.ts +12 -6
  47. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  48. package/dist/core/ExecutorRegistry.js +34 -31
  49. package/dist/core/ExecutorRegistry.js.map +1 -1
  50. package/dist/core/HostPaths.d.ts +29 -0
  51. package/dist/core/HostPaths.d.ts.map +1 -0
  52. package/dist/core/HostPaths.js +74 -0
  53. package/dist/core/HostPaths.js.map +1 -0
  54. package/dist/core/LegacyHome.d.ts +10 -0
  55. package/dist/core/LegacyHome.d.ts.map +1 -0
  56. package/dist/core/LegacyHome.js +170 -0
  57. package/dist/core/LegacyHome.js.map +1 -0
  58. package/dist/core/LogBody.d.ts +1 -1
  59. package/dist/core/LogBody.d.ts.map +1 -1
  60. package/dist/core/LogBody.js +21 -3
  61. package/dist/core/LogBody.js.map +1 -1
  62. package/dist/core/LogEntryProjection.js +1 -1
  63. package/dist/core/LogEntryProjection.js.map +1 -1
  64. package/dist/core/LogVisibility.d.ts +28 -0
  65. package/dist/core/LogVisibility.d.ts.map +1 -0
  66. package/dist/core/LogVisibility.js +215 -0
  67. package/dist/core/LogVisibility.js.map +1 -0
  68. package/dist/core/LoopLifecycle.d.ts +1 -0
  69. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  70. package/dist/core/LoopLifecycle.js +8 -0
  71. package/dist/core/LoopLifecycle.js.map +1 -1
  72. package/dist/core/LoopLifecycle.sql +10 -0
  73. package/dist/core/OperatorConfig.d.ts +6 -0
  74. package/dist/core/OperatorConfig.d.ts.map +1 -0
  75. package/dist/core/OperatorConfig.js +95 -0
  76. package/dist/core/OperatorConfig.js.map +1 -0
  77. package/dist/core/OverflowTurn.d.ts +11 -0
  78. package/dist/core/OverflowTurn.d.ts.map +1 -0
  79. package/dist/core/OverflowTurn.js +81 -0
  80. package/dist/core/OverflowTurn.js.map +1 -0
  81. package/dist/core/Owner.js +3 -3
  82. package/dist/core/Owner.js.map +1 -1
  83. package/dist/core/PacketBuilder.d.ts +7 -15
  84. package/dist/core/PacketBuilder.d.ts.map +1 -1
  85. package/dist/core/PacketBuilder.js +64 -127
  86. package/dist/core/PacketBuilder.js.map +1 -1
  87. package/dist/core/ProblemLog.js +1 -1
  88. package/dist/core/ProblemLog.js.map +1 -1
  89. package/dist/core/ProposalLifecycle.d.ts +4 -1
  90. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  91. package/dist/core/ProposalLifecycle.js +86 -47
  92. package/dist/core/ProposalLifecycle.js.map +1 -1
  93. package/dist/core/ProviderInstantiate.d.ts +9 -5
  94. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  95. package/dist/core/ProviderInstantiate.js +99 -104
  96. package/dist/core/ProviderInstantiate.js.map +1 -1
  97. package/dist/core/ReasoningEvent.d.ts +13 -0
  98. package/dist/core/ReasoningEvent.d.ts.map +1 -0
  99. package/dist/core/ReasoningEvent.js +6 -0
  100. package/dist/core/ReasoningEvent.js.map +1 -0
  101. package/dist/core/ResourceMutations.d.ts +15 -19
  102. package/dist/core/ResourceMutations.d.ts.map +1 -1
  103. package/dist/core/ResourceMutations.js +118 -41
  104. package/dist/core/ResourceMutations.js.map +1 -1
  105. package/dist/core/SchemeRegistry.d.ts +12 -12
  106. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  107. package/dist/core/SchemeRegistry.js +58 -57
  108. package/dist/core/SchemeRegistry.js.map +1 -1
  109. package/dist/core/ToolResources.d.ts +19 -0
  110. package/dist/core/ToolResources.d.ts.map +1 -0
  111. package/dist/core/ToolResources.js +123 -0
  112. package/dist/core/ToolResources.js.map +1 -0
  113. package/dist/core/Turn.d.ts +27 -0
  114. package/dist/core/Turn.d.ts.map +1 -0
  115. package/dist/core/Turn.js +43 -0
  116. package/dist/core/Turn.js.map +1 -0
  117. package/dist/core/Turn.sql +72 -0
  118. package/dist/core/TurnOps.d.ts +7 -0
  119. package/dist/core/TurnOps.d.ts.map +1 -0
  120. package/dist/core/TurnOps.js +73 -0
  121. package/dist/core/TurnOps.js.map +1 -0
  122. package/dist/core/TurnRunner.d.ts +56 -5
  123. package/dist/core/TurnRunner.d.ts.map +1 -1
  124. package/dist/core/TurnRunner.js +1163 -929
  125. package/dist/core/TurnRunner.js.map +1 -1
  126. package/dist/core/WorkerName.d.ts +2 -1
  127. package/dist/core/WorkerName.d.ts.map +1 -1
  128. package/dist/core/WorkerName.js +2 -1
  129. package/dist/core/WorkerName.js.map +1 -1
  130. package/dist/core/WorkerName.sql +17 -2
  131. package/dist/core/WorkspaceGate.js +1 -1
  132. package/dist/core/WorkspaceGate.js.map +1 -1
  133. package/dist/core/caps/CapsResolve.d.ts +2 -2
  134. package/dist/core/caps/CapsResolve.d.ts.map +1 -1
  135. package/dist/core/caps/CapsResolve.js +5 -7
  136. package/dist/core/caps/CapsResolve.js.map +1 -1
  137. package/dist/core/caps/DbChannelCaps.d.ts +1 -1
  138. package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
  139. package/dist/core/caps/DbChannelCaps.js +13 -11
  140. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  141. package/dist/core/caps/DbEntryCaps.d.ts +5 -5
  142. package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
  143. package/dist/core/caps/DbEntryCaps.js +27 -30
  144. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  145. package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
  146. package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
  147. package/dist/core/caps/DbNotifyCaps.js +5 -3
  148. package/dist/core/caps/DbNotifyCaps.js.map +1 -1
  149. package/dist/core/caps/DbSubscriptionCaps.d.ts +3 -3
  150. package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
  151. package/dist/core/caps/DbSubscriptionCaps.js +16 -26
  152. package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
  153. package/dist/core/caps/SchemeCtxImpl.d.ts +6 -4
  154. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  155. package/dist/core/caps/SchemeCtxImpl.js +37 -5
  156. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  157. package/dist/core/env-defaults.d.ts.map +1 -1
  158. package/dist/core/env-defaults.js +7 -5
  159. package/dist/core/env-defaults.js.map +1 -1
  160. package/dist/core/file-creation-policy.d.ts +9 -0
  161. package/dist/core/file-creation-policy.d.ts.map +1 -0
  162. package/dist/core/file-creation-policy.js +25 -0
  163. package/dist/core/file-creation-policy.js.map +1 -0
  164. package/dist/core/fork.d.ts +4 -1
  165. package/dist/core/fork.d.ts.map +1 -1
  166. package/dist/core/fork.js +39 -16
  167. package/dist/core/fork.js.map +1 -1
  168. package/dist/core/fork.sql +83 -40
  169. package/dist/core/git-env.d.ts +0 -1
  170. package/dist/core/git-env.d.ts.map +1 -1
  171. package/dist/core/git-env.js +0 -3
  172. package/dist/core/git-env.js.map +1 -1
  173. package/dist/core/git-membership.d.ts +19 -1
  174. package/dist/core/git-membership.d.ts.map +1 -1
  175. package/dist/core/git-membership.js +233 -74
  176. package/dist/core/git-membership.js.map +1 -1
  177. package/dist/core/git-state.d.ts.map +1 -1
  178. package/dist/core/git-state.js +13 -14
  179. package/dist/core/git-state.js.map +1 -1
  180. package/dist/core/operation-target-groups.d.ts +3 -0
  181. package/dist/core/operation-target-groups.d.ts.map +1 -0
  182. package/dist/core/operation-target-groups.js +53 -0
  183. package/dist/core/operation-target-groups.js.map +1 -0
  184. package/dist/core/packet-inject.d.ts +0 -1
  185. package/dist/core/packet-inject.d.ts.map +1 -1
  186. package/dist/core/packet-inject.js +6 -13
  187. package/dist/core/packet-inject.js.map +1 -1
  188. package/dist/core/packet-wire.d.ts +4 -0
  189. package/dist/core/packet-wire.d.ts.map +1 -1
  190. package/dist/core/packet-wire.js +226 -53
  191. package/dist/core/packet-wire.js.map +1 -1
  192. package/dist/core/plurnk-uri.d.ts +14 -3
  193. package/dist/core/plurnk-uri.d.ts.map +1 -1
  194. package/dist/core/plurnk-uri.js +62 -24
  195. package/dist/core/plurnk-uri.js.map +1 -1
  196. package/dist/core/scheme-types.d.ts +1 -0
  197. package/dist/core/scheme-types.d.ts.map +1 -1
  198. package/dist/core/teaching.d.ts.map +1 -1
  199. package/dist/core/teaching.js +4 -5
  200. package/dist/core/teaching.js.map +1 -1
  201. package/dist/core/worker-ops.sql +10 -6
  202. package/dist/core/worker-settings.d.ts +10 -0
  203. package/dist/core/worker-settings.d.ts.map +1 -0
  204. package/dist/core/worker-settings.js +32 -0
  205. package/dist/core/worker-settings.js.map +1 -0
  206. package/dist/core/workspace-settings.d.ts +2 -11
  207. package/dist/core/workspace-settings.d.ts.map +1 -1
  208. package/dist/core/workspace-settings.js +7 -47
  209. package/dist/core/workspace-settings.js.map +1 -1
  210. package/dist/digest/Digest.d.ts.map +1 -1
  211. package/dist/digest/Digest.js +164 -92
  212. package/dist/digest/Digest.js.map +1 -1
  213. package/dist/digest/digest.sql +9 -3
  214. package/dist/observe/genai.d.ts +9 -0
  215. package/dist/observe/genai.d.ts.map +1 -0
  216. package/dist/observe/genai.js +31 -0
  217. package/dist/observe/genai.js.map +1 -0
  218. package/dist/observe/spans.d.ts +3 -3
  219. package/dist/observe/spans.d.ts.map +1 -1
  220. package/dist/observe/spans.js +20 -5
  221. package/dist/observe/spans.js.map +1 -1
  222. package/dist/schemes/EffectPolicy.d.ts +3 -0
  223. package/dist/schemes/EffectPolicy.d.ts.map +1 -1
  224. package/dist/schemes/EffectPolicy.js +38 -6
  225. package/dist/schemes/EffectPolicy.js.map +1 -1
  226. package/dist/schemes/Exec.d.ts +3 -2
  227. package/dist/schemes/Exec.d.ts.map +1 -1
  228. package/dist/schemes/Exec.js +109 -34
  229. package/dist/schemes/Exec.js.map +1 -1
  230. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  231. package/dist/schemes/ExecOutputScheme.js +5 -4
  232. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  233. package/dist/schemes/File.d.ts.map +1 -1
  234. package/dist/schemes/File.js +170 -80
  235. package/dist/schemes/File.js.map +1 -1
  236. package/dist/schemes/Log.d.ts +6 -2
  237. package/dist/schemes/Log.d.ts.map +1 -1
  238. package/dist/schemes/Log.js +73 -22
  239. package/dist/schemes/Log.js.map +1 -1
  240. package/dist/schemes/Log.sql +25 -7
  241. package/dist/schemes/Prompt.d.ts +2 -3
  242. package/dist/schemes/Prompt.d.ts.map +1 -1
  243. package/dist/schemes/Prompt.js +5 -9
  244. package/dist/schemes/Prompt.js.map +1 -1
  245. package/dist/schemes/QuestionTool.d.ts +10 -0
  246. package/dist/schemes/QuestionTool.d.ts.map +1 -0
  247. package/dist/schemes/QuestionTool.js +81 -0
  248. package/dist/schemes/QuestionTool.js.map +1 -0
  249. package/dist/schemes/Skill.d.ts.map +1 -1
  250. package/dist/schemes/Skill.js +6 -1
  251. package/dist/schemes/Skill.js.map +1 -1
  252. package/dist/schemes/Worker.d.ts.map +1 -1
  253. package/dist/schemes/Worker.js +97 -34
  254. package/dist/schemes/Worker.js.map +1 -1
  255. package/dist/schemes/_entry-crud.d.ts +5 -5
  256. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  257. package/dist/schemes/_entry-crud.js +22 -17
  258. package/dist/schemes/_entry-crud.js.map +1 -1
  259. package/dist/schemes/_entry-crud.sql +77 -24
  260. package/dist/schemes/_entry-find.d.ts +8 -5
  261. package/dist/schemes/_entry-find.d.ts.map +1 -1
  262. package/dist/schemes/_entry-find.js +121 -40
  263. package/dist/schemes/_entry-find.js.map +1 -1
  264. package/dist/schemes/_entry-find.sql +16 -11
  265. package/dist/schemes/_entry-graph.sql +2 -6
  266. package/dist/schemes/_entry-manifest.d.ts +2 -2
  267. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  268. package/dist/schemes/_entry-manifest.js +18 -6
  269. package/dist/schemes/_entry-manifest.js.map +1 -1
  270. package/dist/schemes/_entry-ops.d.ts +6 -5
  271. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  272. package/dist/schemes/_entry-ops.js +39 -46
  273. package/dist/schemes/_entry-ops.js.map +1 -1
  274. package/dist/schemes/_entry-ops.sql +9 -6
  275. package/dist/schemes/_entry-send.d.ts +2 -2
  276. package/dist/schemes/_entry-send.d.ts.map +1 -1
  277. package/dist/schemes/_entry-send.js +16 -14
  278. package/dist/schemes/_entry-send.js.map +1 -1
  279. package/dist/schemes/_search-index.d.ts.map +1 -1
  280. package/dist/schemes/_search-index.js +39 -25
  281. package/dist/schemes/_search-index.js.map +1 -1
  282. package/dist/server/Daemon.d.ts +98 -15
  283. package/dist/server/Daemon.d.ts.map +1 -1
  284. package/dist/server/Daemon.js +864 -348
  285. package/dist/server/Daemon.js.map +1 -1
  286. package/dist/server/DaemonModule.d.ts +84 -19
  287. package/dist/server/DaemonModule.d.ts.map +1 -1
  288. package/dist/server/DrainSupervisor.d.ts +15 -10
  289. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  290. package/dist/server/DrainSupervisor.js +70 -19
  291. package/dist/server/DrainSupervisor.js.map +1 -1
  292. package/dist/server/Functionality.d.ts +44 -0
  293. package/dist/server/Functionality.d.ts.map +1 -0
  294. package/dist/server/Functionality.js +422 -0
  295. package/dist/server/Functionality.js.map +1 -0
  296. package/dist/server/FunctionalityManager.d.ts +22 -0
  297. package/dist/server/FunctionalityManager.d.ts.map +1 -0
  298. package/dist/server/FunctionalityManager.js +121 -0
  299. package/dist/server/FunctionalityManager.js.map +1 -0
  300. package/dist/server/SkillsFunctionality.d.ts +61 -0
  301. package/dist/server/SkillsFunctionality.d.ts.map +1 -0
  302. package/dist/server/SkillsFunctionality.js +449 -0
  303. package/dist/server/SkillsFunctionality.js.map +1 -0
  304. package/dist/server/WorkerCapabilities.d.ts +21 -0
  305. package/dist/server/WorkerCapabilities.d.ts.map +1 -0
  306. package/dist/server/WorkerCapabilities.js +214 -0
  307. package/dist/server/WorkerCapabilities.js.map +1 -0
  308. package/dist/server/WorkerResidency.d.ts +40 -0
  309. package/dist/server/WorkerResidency.d.ts.map +1 -0
  310. package/dist/server/WorkerResidency.js +283 -0
  311. package/dist/server/WorkerResidency.js.map +1 -0
  312. package/dist/server/client-input.d.ts +6 -2
  313. package/dist/server/client-input.d.ts.map +1 -1
  314. package/dist/server/client-input.js +72 -32
  315. package/dist/server/client-input.js.map +1 -1
  316. package/dist/server/dispatch-as-plurnk.d.ts +2 -2
  317. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  318. package/dist/server/dispatch-as-plurnk.js +109 -23
  319. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  320. package/dist/server/drain.sql +33 -13
  321. package/dist/server/envelope.d.ts +7 -2
  322. package/dist/server/envelope.d.ts.map +1 -1
  323. package/dist/server/envelope.js +12 -6
  324. package/dist/server/envelope.js.map +1 -1
  325. package/dist/server/envelope.sql +36 -4
  326. package/dist/server/lifecycle-recovery.sql +24 -17
  327. package/dist/server/logEntry.d.ts +2 -1
  328. package/dist/server/logEntry.d.ts.map +1 -1
  329. package/dist/server/logEntry.js +3 -2
  330. package/dist/server/logEntry.js.map +1 -1
  331. package/dist/server/logEntry.sql +7 -0
  332. package/dist/server/loop-model.d.ts +2 -2
  333. package/dist/server/loop-model.d.ts.map +1 -1
  334. package/dist/server/loop-model.js +23 -33
  335. package/dist/server/loop-model.js.map +1 -1
  336. package/dist/server/loopDocs.d.ts +2 -1
  337. package/dist/server/loopDocs.d.ts.map +1 -1
  338. package/dist/server/loopDocs.js +88 -21
  339. package/dist/server/loopDocs.js.map +1 -1
  340. package/dist/server/loopDocs.sql +14 -8
  341. package/dist/server/model-catalog.d.ts +3 -0
  342. package/dist/server/model-catalog.d.ts.map +1 -0
  343. package/dist/server/model-catalog.js +83 -0
  344. package/dist/server/model-catalog.js.map +1 -0
  345. package/dist/server/model-route.d.ts +7 -0
  346. package/dist/server/model-route.d.ts.map +1 -0
  347. package/dist/server/model-route.js +47 -0
  348. package/dist/server/model-route.js.map +1 -0
  349. package/dist/server/module-discovery.d.ts +13 -0
  350. package/dist/server/module-discovery.d.ts.map +1 -0
  351. package/dist/server/module-discovery.js +103 -0
  352. package/dist/server/module-discovery.js.map +1 -0
  353. package/dist/server/seam-entry-read.sql +9 -7
  354. package/dist/server/seam-log-read.sql +1 -1
  355. package/dist/server/seam-loop.sql +10 -1
  356. package/dist/server/seam-proposal-list.sql +4 -2
  357. package/dist/server/worker-capabilities.sql +19 -0
  358. package/dist/service.d.ts.map +1 -1
  359. package/dist/service.js +193 -124
  360. package/dist/service.js.map +1 -1
  361. package/migrations/001_schema.sql +905 -196
  362. package/package.json +40 -38
  363. package/dist/core/ExecutableTools.d.ts +0 -11
  364. package/dist/core/ExecutableTools.d.ts.map +0 -1
  365. package/dist/core/ExecutableTools.js +0 -49
  366. package/dist/core/ExecutableTools.js.map +0 -1
  367. package/dist/core/JournalTurn.d.ts +0 -9
  368. package/dist/core/JournalTurn.d.ts.map +0 -1
  369. package/dist/core/JournalTurn.js +0 -14
  370. package/dist/core/JournalTurn.js.map +0 -1
  371. package/dist/core/JournalTurn.sql +0 -10
  372. package/dist/core/git-iso.d.ts +0 -13
  373. package/dist/core/git-iso.d.ts.map +0 -1
  374. package/dist/core/git-iso.js +0 -267
  375. package/dist/core/git-iso.js.map +0 -1
  376. package/dist/core/search-gate.d.ts +0 -17
  377. package/dist/core/search-gate.d.ts.map +0 -1
  378. package/dist/core/search-gate.js +0 -77
  379. package/dist/core/search-gate.js.map +0 -1
  380. package/dist/digest/Digest.sql +0 -1
  381. package/dist/server/workspace-capabilities.sql +0 -19
@@ -1,10 +1,16 @@
1
- -- Kernel pull-document reconciliation ({§schemes-self-doc-materialization}).
1
+ -- Worker generated-document reconciliation: the whole {§worker-generated-subtree}
2
+ -- — scheme and tool references, AGENTS.md, and every Functionality family's
3
+ -- documents ({§schemes-self-doc-materialization}, {§tools-resource-materialization},
4
+ -- {§functionality-documents}).
2
5
 
3
6
  -- PREP: loop_docs_materialized
4
- SELECT pathname
5
- FROM entries
6
- WHERE workspace_id = $workspace_id
7
- AND owner_id = $owner_id
8
- AND scheme = 'worker'
9
- AND substr(pathname, 1, 6) = '/docs/'
10
- ORDER BY pathname;
7
+ SELECT e.pathname, ec.content
8
+ FROM entries e
9
+ JOIN workers owner ON owner.id = e.owner_id
10
+ LEFT JOIN entry_channels ec ON ec.entry_id = e.id AND ec.name = 'body'
11
+ WHERE owner.workspace_id = $workspace_id
12
+ AND e.owner_id = $owner_id
13
+ AND e.scheme = 'worker'
14
+ AND e.authority = ''
15
+ AND substr(e.pathname, 1, 9) = '/_plurnk/'
16
+ ORDER BY e.pathname;
@@ -0,0 +1,3 @@
1
+ import { type ModelCatalogPage, type ModelCatalogQuery } from "@plurnk/plurnk-contracts";
2
+ export declare const listModelCatalog: (input: ModelCatalogQuery, env?: NodeJS.ProcessEnv) => ModelCatalogPage;
3
+ //# sourceMappingURL=model-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../src/server/model-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAEzB,MAAM,0BAA0B,CAAC;AAuBlC,eAAO,MAAM,gBAAgB,UAClB,iBAAiB,QACnB,MAAM,CAAC,UAAU,KACvB,gBAkEF,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { Validator, } from "@plurnk/plurnk-contracts";
2
+ import { catalogSnapshot, providerCatalogSnapshot, providerNameFromCatalogId, } from "@plurnk/plurnk-models";
3
+ import { providerReadiness } from "@plurnk/plurnk-providers";
4
+ const DEFAULT_LIMIT = 50;
5
+ const compareText = (left, right) => left < right ? -1 : left > right ? 1 : 0;
6
+ const entryMatches = (entry, search) => [
7
+ entry.selector,
8
+ entry.provider,
9
+ entry.providerName,
10
+ entry.model,
11
+ entry.modelName,
12
+ ].some((value) => value.toLowerCase().includes(search));
13
+ // {§model-catalog} Core composes the release-pinned Models.dev facts with the
14
+ // provider owner's local readiness predicate. Enumeration is pure local work:
15
+ // it never probes, authenticates, selects, or invokes a model.
16
+ export const listModelCatalog = (input, env = process.env) => {
17
+ const query = Validator.assertModelCatalogQuery(input);
18
+ const requestedProvider = query.provider?.toLowerCase();
19
+ const search = query.search?.trim().toLowerCase() ?? "";
20
+ const availability = query.availability ?? "configured";
21
+ const offset = query.offset ?? 0;
22
+ const limit = query.limit ?? DEFAULT_LIMIT;
23
+ const providers = providerCatalogSnapshot();
24
+ const readinessByProvider = new Map();
25
+ const entries = [];
26
+ for (const [catalogProviderId, models] of Object.entries(catalogSnapshot())) {
27
+ const provider = providerNameFromCatalogId(catalogProviderId);
28
+ if (requestedProvider !== undefined && provider.toLowerCase() !== requestedProvider)
29
+ continue;
30
+ const providerInfo = providers[catalogProviderId];
31
+ if (providerInfo === undefined) {
32
+ throw new Error(`Models.dev catalog provider '${catalogProviderId}' has no provider facts`);
33
+ }
34
+ let readiness = readinessByProvider.get(provider);
35
+ if (readiness === undefined) {
36
+ const resolved = providerReadiness(provider, env);
37
+ if (resolved === null) {
38
+ throw new Error(`Models.dev catalog provider '${catalogProviderId}' has no supported runtime adapter`);
39
+ }
40
+ readiness = resolved;
41
+ readinessByProvider.set(provider, readiness);
42
+ }
43
+ if (availability === "configured" && !readiness.ready)
44
+ continue;
45
+ for (const [model, info] of Object.entries(models)) {
46
+ const selector = `${provider}/${model}`;
47
+ const entry = {
48
+ selector,
49
+ provider,
50
+ providerName: providerInfo.name,
51
+ model,
52
+ modelName: info.name,
53
+ limits: {
54
+ contextTokens: info.contextWindow,
55
+ ...(info.maxInputTokens === undefined ? {} : { inputTokens: info.maxInputTokens }),
56
+ ...(info.maxOutputTokens === undefined ? {} : { outputTokens: info.maxOutputTokens }),
57
+ },
58
+ capabilities: {
59
+ attachment: info.attachment,
60
+ reasoning: info.reasoning,
61
+ toolCall: info.toolCall,
62
+ ...(info.structuredOutput === undefined ? {} : { structuredOutput: info.structuredOutput }),
63
+ ...(info.temperature === undefined ? {} : { temperature: info.temperature }),
64
+ inputModalities: [...info.modalities.input],
65
+ outputModalities: [...info.modalities.output],
66
+ },
67
+ readiness,
68
+ };
69
+ if (search.length === 0 || entryMatches(entry, search))
70
+ entries.push(entry);
71
+ }
72
+ }
73
+ entries.sort((left, right) => compareText(left.selector, right.selector));
74
+ const items = entries.slice(offset, offset + limit);
75
+ const nextOffset = offset + items.length;
76
+ return Validator.assertModelCatalogPage({
77
+ items,
78
+ offset,
79
+ total: entries.length,
80
+ ...(nextOffset < entries.length ? { nextOffset } : {}),
81
+ });
82
+ };
83
+ //# sourceMappingURL=model-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-catalog.js","sourceRoot":"","sources":["../../src/server/model-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ModelRoute } from "@plurnk/plurnk-contracts";
2
+ import type { ProviderSpec } from "@plurnk/plurnk-providers";
3
+ import type { Db } from "../core/Db.ts";
4
+ export declare const routeForSpec: (db: Db, spec: ProviderSpec | null) => Promise<number | null>;
5
+ export declare const specForRoute: (db: Db, routeId: number | null) => Promise<ProviderSpec | null>;
6
+ export declare const projectModelRoute: (spec: ProviderSpec) => ModelRoute;
7
+ //# sourceMappingURL=model-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-route.d.ts","sourceRoot":"","sources":["../../src/server/model-route.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC,eAAO,MAAM,YAAY,OAAc,EAAE,QAAQ,YAAY,GAAG,IAAI,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAmB3F,CAAC;AAEF,eAAO,MAAM,YAAY,OAAc,EAAE,WAAW,MAAM,GAAG,IAAI,KAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAU9F,CAAC;AAGF,eAAO,MAAM,iBAAiB,SAAU,YAAY,KAAG,UAIrD,CAAC"}
@@ -0,0 +1,47 @@
1
+ // {§worker-model-selection} — create-or-lookup for resolved model routes and the
2
+ // inverse lookup. The owning boundary resolves aliases to a complete route before
3
+ // persistence; no path re-resolves a historical selection through a possibly
4
+ // changed alias declaration.
5
+ export const routeForSpec = async (db, spec) => {
6
+ if (spec === null)
7
+ return null;
8
+ const alias = spec.alias ?? null;
9
+ const baseUrl = spec.baseUrl ?? null;
10
+ const existing = await db.model_route_lookup.get({
11
+ alias,
12
+ provider: spec.provider,
13
+ model: spec.model,
14
+ base_url: baseUrl,
15
+ });
16
+ if (existing !== undefined)
17
+ return existing.id;
18
+ const created = await db.model_route_create.get({
19
+ alias,
20
+ provider: spec.provider,
21
+ model: spec.model,
22
+ base_url: baseUrl,
23
+ });
24
+ if (created === undefined)
25
+ throw new Error("model_route_create returned no row");
26
+ return created.id;
27
+ };
28
+ export const specForRoute = async (db, routeId) => {
29
+ if (routeId === null)
30
+ return null;
31
+ const row = await db.model_route_by_id.get({ id: routeId });
32
+ if (row === undefined)
33
+ throw new Error(`model_route ${routeId} is missing`);
34
+ return {
35
+ ...(row.alias === null ? {} : { alias: row.alias }),
36
+ provider: row.provider,
37
+ model: row.model,
38
+ ...(row.base_url === null ? {} : { baseUrl: row.base_url }),
39
+ };
40
+ };
41
+ // The provider endpoint is durable construction state, not client model identity.
42
+ export const projectModelRoute = (spec) => ({
43
+ ...(spec.alias === undefined ? {} : { alias: spec.alias }),
44
+ provider: spec.provider,
45
+ model: spec.model,
46
+ });
47
+ //# sourceMappingURL=model-route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-route.js","sourceRoot":"","sources":["../../src/server/model-route.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,6EAA6E;AAC7E,6BAA6B;AAM7B,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,EAAM,EAAE,IAAyB,EAA0B,EAAE;IAC5F,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAiB;QAC7D,KAAK;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,OAAO;KACpB,CAAC,CAAC;IACH,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAiB;QAC5D,KAAK;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,OAAO;KACpB,CAAC,CAAC;IACH,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACjF,OAAO,OAAO,CAAC,EAAE,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,EAAM,EAAE,OAAsB,EAAgC,EAAE;IAC/F,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAqF,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAChJ,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,OAAO,aAAa,CAAC,CAAC;IAC5E,OAAO;QACH,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;QACnD,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;KAC9D,CAAC;AACN,CAAC,CAAC;AAEF,kFAAkF;AAClF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAkB,EAAc,EAAE,CAAC,CAAC;IAClE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1D,QAAQ,EAAE,IAAI,CAAC,QAAQ;IACvB,KAAK,EAAE,IAAI,CAAC,KAAK;CACpB,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ApplicationPort } from "@plurnk/plurnk-contracts";
2
+ import type { DaemonModule } from "./DaemonModule.ts";
3
+ export declare const discoverDaemonModules: (options?: {
4
+ cwd?: string;
5
+ packageDirs?: Array<{
6
+ dir: string;
7
+ name: string;
8
+ }>;
9
+ }) => Promise<{
10
+ readonly modules: ReadonlyArray<DaemonModule<ApplicationPort>>;
11
+ readonly skipped: readonly string[];
12
+ }>;
13
+ //# sourceMappingURL=module-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-discovery.d.ts","sourceRoot":"","sources":["../../src/server/module-discovery.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAmEtD,eAAO,MAAM,qBAAqB,aACrB;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,KAC9E,OAAO,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAoCjH,CAAC"}
@@ -0,0 +1,103 @@
1
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
+ });
6
+ }
7
+ return path;
8
+ };
9
+ import { join } from "node:path";
10
+ import { pathToFileURL } from "node:url";
11
+ import fs from "node:fs/promises";
12
+ import Meta from "@plurnk/plurnk-meta";
13
+ // {§module-discovery} — third-party daemon-module composition. A package
14
+ // declares `plurnk: { kind: "module", module: "<export-subpath>" }`; the export
15
+ // is one DaemonModule (an object, or a no-arg factory returning one).
16
+ // Discovery mirrors the executor family ({§plugin-discovery}): scope-agnostic
17
+ // package scan, trust gate ({§plugin-trust-boundary}), lazy import.
18
+ //
19
+ // The service's explicit composition — the AG-UI, hooks, and MCP modules —
20
+ // carries init options and is wired in service.ts; discovery never duplicates
21
+ // those packages.
22
+ const EXPLICIT_COMPOSITION = new Set([
23
+ "@plurnk/plurnk-agui",
24
+ "@plurnk/plurnk-hooks",
25
+ "@plurnk/plurnk-mcp",
26
+ ]);
27
+ const assertDaemonModule = (value, packageName, source) => {
28
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
29
+ const detail = source === "factory"
30
+ ? "factory returned a non-object DaemonModule"
31
+ : "must export a DaemonModule object or no-argument factory";
32
+ throw new TypeError(`module package '${packageName}' ${detail}.`);
33
+ }
34
+ for (const member of ["setup", "start", "close"]) {
35
+ const hook = value[member];
36
+ if (hook !== undefined && typeof hook !== "function") {
37
+ throw new TypeError(`module package '${packageName}' lifecycle member '${member}' must be a function when present.`);
38
+ }
39
+ }
40
+ return value;
41
+ };
42
+ const readManifest = async (dir) => {
43
+ let raw;
44
+ try {
45
+ raw = await fs.readFile(join(dir, "package.json"), "utf8");
46
+ }
47
+ catch {
48
+ return null;
49
+ }
50
+ let pkg;
51
+ try {
52
+ pkg = JSON.parse(raw);
53
+ }
54
+ catch {
55
+ return null;
56
+ }
57
+ const plurnk = pkg.plurnk;
58
+ if (!Meta.declaresKind(plurnk, "module"))
59
+ return null;
60
+ const moduleSubpath = plurnk.module;
61
+ if (typeof moduleSubpath !== "string" || moduleSubpath.length === 0)
62
+ return null;
63
+ const packageName = typeof pkg.name === "string" && pkg.name.length > 0 ? pkg.name : null;
64
+ if (packageName === null)
65
+ return null;
66
+ return { packageName, module: moduleSubpath };
67
+ };
68
+ export const discoverDaemonModules = async (options = {}) => {
69
+ const compareText = (left, right) => left < right ? -1 : left > right ? 1 : 0;
70
+ const dirs = (options.packageDirs
71
+ ?? await Meta.packageDirs(join(options.cwd ?? process.cwd(), "node_modules")))
72
+ .toSorted((left, right) => compareText(left.name, right.name) || compareText(left.dir, right.dir));
73
+ const pending = [];
74
+ const skipped = [];
75
+ for (const candidate of dirs) {
76
+ const manifest = await readManifest(candidate.dir);
77
+ if (manifest === null)
78
+ continue;
79
+ if (EXPLICIT_COMPOSITION.has(manifest.packageName))
80
+ continue;
81
+ if (!Meta.isTrusted(manifest.packageName)) {
82
+ skipped.push(manifest.packageName);
83
+ continue;
84
+ }
85
+ pending.push((async () => {
86
+ const imported = await import(__rewriteRelativeImportExtension(pathToFileURL(join(candidate.dir, manifest.module)).href));
87
+ const exported = imported.default;
88
+ if (exported === undefined) {
89
+ throw new Error(`module package '${manifest.packageName}' exports no default DaemonModule at '${manifest.module}'.`);
90
+ }
91
+ if (typeof exported !== "function") {
92
+ return assertDaemonModule(exported, manifest.packageName, "export");
93
+ }
94
+ if (exported.length !== 0) {
95
+ throw new TypeError(`module package '${manifest.packageName}' DaemonModule factory must accept no arguments.`);
96
+ }
97
+ const created = await exported();
98
+ return assertDaemonModule(created, manifest.packageName, "factory");
99
+ })());
100
+ }
101
+ return { modules: await Promise.all(pending), skipped };
102
+ };
103
+ //# sourceMappingURL=module-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-discovery.js","sourceRoot":"","sources":["../../src/server/module-discovery.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
- -- CoreSeam readEntry queries. SPEC {§methods-entry-read}.
1
+ -- ApplicationPort readEntry queries. SPEC {§methods-entry-read}.
2
2
 
3
3
  -- PREP: entry_read_lookup
4
- SELECT id, workspace_id, owner_id, scheme, pathname
5
- FROM entries
6
- WHERE workspace_id = $workspace_id
7
- AND owner_id = $owner_id
8
- AND scheme = $scheme
9
- AND pathname = $pathname;
4
+ SELECT e.id, owner.workspace_id, e.owner_id, e.scheme, e.authority, e.pathname
5
+ FROM entries e
6
+ JOIN workers owner ON owner.id = e.owner_id
7
+ WHERE owner.workspace_id = $workspace_id
8
+ AND e.owner_id = $owner_id
9
+ AND e.scheme = $scheme
10
+ AND e.authority = $authority
11
+ AND e.pathname = $pathname;
10
12
 
11
13
  -- PREP: entry_read_channels
12
14
  SELECT name, content, 0 AS contentOffset, length(content) AS contentLength, mimetype, weight, state
@@ -1,4 +1,4 @@
1
- -- CoreSeam readLog query. SPEC {§methods-log-read}.
1
+ -- ApplicationPort readLog query. SPEC {§methods-log-read}.
2
2
  -- Static query with IS-NULL guards on optional filters. The loops/turns joins
3
3
  -- resolve the DISPLAY coordinate (loop_seq/turn_seq/op-sequence) so a client can
4
4
  -- target one entry by its `L/T/S` coordinate instead of
@@ -1,4 +1,4 @@
1
- -- CoreSeam runLoop queries. SPEC {§methods-loop-run}.
1
+ -- ApplicationPort runLoop queries. SPEC {§methods-loop-run}.
2
2
 
3
3
  -- PREP: loop_run_next_sequence
4
4
  SELECT COALESCE(MAX(sequence), 0) + 1 AS next FROM loops WHERE worker_id = $worker_id;
@@ -7,3 +7,12 @@ SELECT COALESCE(MAX(sequence), 0) + 1 AS next FROM loops WHERE worker_id = $work
7
7
  INSERT INTO loops (worker_id, sequence, status, prompt)
8
8
  VALUES ($worker_id, $sequence, 102, $prompt)
9
9
  RETURNING id;
10
+
11
+ -- PREP: application_list_worker_loops
12
+ -- {§methods-worker-loops}: durable lifecycle projection for exterior adapters.
13
+ SELECT id, worker_id AS workerId, sequence, status, prompt,
14
+ prompt_source AS promptSource, terminated_at AS terminatedAt,
15
+ terminal_result AS terminalResult
16
+ FROM loops
17
+ WHERE worker_id = $worker_id
18
+ ORDER BY sequence;
@@ -4,7 +4,8 @@
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
6
  le.worker_id AS workerId, le.loop_id AS loopId, le.turn_id AS turnId,
7
- le.op, le.signal, le.scheme, le.pathname, le.rx, le.attrs, l.flags AS loop_flags
7
+ le.op, le.signal, le.scheme, le.hostname, le.port, le.pathname, le.query,
8
+ le.rx, le.attrs, l.flags AS loop_flags
8
9
  FROM log_entries le
9
10
  JOIN workers r ON r.id = le.worker_id
10
11
  JOIN loops l ON l.id = le.loop_id
@@ -16,7 +17,8 @@ ORDER BY le.id;
16
17
  -- the live path. Both paths enter ProposalLifecycle's one projection function.
17
18
  SELECT le.id AS logEntryId, r.workspace_id AS workspaceId,
18
19
  le.worker_id AS workerId, le.loop_id AS loopId, le.turn_id AS turnId,
19
- le.op, le.signal, le.scheme, le.pathname, le.rx, le.attrs, l.flags AS loop_flags
20
+ le.op, le.signal, le.scheme, le.hostname, le.port, le.pathname, le.query,
21
+ le.rx, le.attrs, l.flags AS loop_flags
20
22
  FROM log_entries le
21
23
  JOIN workers r ON r.id = le.worker_id
22
24
  JOIN loops l ON l.id = le.loop_id
@@ -0,0 +1,19 @@
1
+ -- Durable module-owned Worker state. {§module-worker-state}
2
+
3
+ -- PREP: worker_module_state_get
4
+ SELECT state
5
+ FROM worker_module_state
6
+ WHERE worker_id = $worker_id
7
+ AND namespace_owner = $namespace_owner;
8
+
9
+ -- PREP: worker_module_state_put
10
+ INSERT INTO worker_module_state (worker_id, namespace_owner, state)
11
+ VALUES ($worker_id, $namespace_owner, $state)
12
+ ON CONFLICT (worker_id, namespace_owner) DO UPDATE SET
13
+ state = excluded.state,
14
+ updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now');
15
+
16
+ -- PREP: worker_module_state_delete
17
+ DELETE FROM worker_module_state
18
+ WHERE worker_id = $worker_id
19
+ AND namespace_owner = $namespace_owner;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";AA0BA,MAAM,CAAC,OAAO,OAAO,OAAO;;IAyQxB,OAAa,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA+EjC;CACJ"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";AAoCA,MAAM,CAAC,OAAO,OAAO,OAAO;;IAqUxB,OAAa,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAuGjC;CACJ"}