@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
@@ -12,45 +12,80 @@ export function schemeNameOf(path) {
12
12
  // {§scheme-address-network}: handler aliases route https through http and ws through wss
13
13
  // without collapsing the addressed scheme's resource identity.
14
14
  if (path.kind === "url") {
15
- if (path.scheme === "https")
16
- return "http";
17
- if (path.scheme === "ws")
18
- return "wss";
19
- return path.scheme;
15
+ return routedSchemeName(path.scheme);
20
16
  }
21
17
  return "file"; // local (bare) → file
22
18
  }
19
+ export function routedSchemeName(addressedScheme) {
20
+ if (addressedScheme === "http")
21
+ return "https";
22
+ if (addressedScheme === "ws")
23
+ return "wss";
24
+ return addressedScheme;
25
+ }
23
26
  export function foldAuthorityIntoPath(hostname, pathname) {
24
27
  return hostname ? `/${hostname}${pathname}` : pathname;
25
28
  }
26
- export function entryPathnameOf(path) {
27
- if (path.kind === "url" && NetworkAddress.supports(path.scheme)) {
28
- return NetworkAddress.from(path).pathname;
29
+ export function entryCoordinateOf(path, authority) {
30
+ if (path.kind === "local") {
31
+ return { authority: "", pathname: PathSyntax.decodeParens(path.raw) };
32
+ }
33
+ if (authority === "resource") {
34
+ const canonicalAuthority = path.hostname === null
35
+ ? ""
36
+ : `${path.hostname}${path.port === null ? "" : `:${path.port}`}`;
37
+ const query = path.query === null ? "" : `?${path.query}`;
38
+ return {
39
+ authority: canonicalAuthority,
40
+ pathname: PathSyntax.decodeParens(path.pathname) + query,
41
+ };
29
42
  }
30
- const pathname = path.kind === "url"
31
- ? foldAuthorityIntoPath(path.hostname, path.pathname)
32
- : path.raw;
33
- return PathSyntax.decodeParens(pathname);
43
+ if (authority === "owner") {
44
+ return { authority: "", pathname: PathSyntax.decodeParens(path.pathname) };
45
+ }
46
+ return {
47
+ authority: "",
48
+ pathname: PathSyntax.decodeParens(foldAuthorityIntoPath(path.hostname, path.pathname)),
49
+ };
50
+ }
51
+ export function authorityParts(authority) {
52
+ if (authority.length === 0)
53
+ return { hostname: null, port: null };
54
+ const parsed = new URL(`plurnk-authority://${authority}/`);
55
+ if (parsed.username.length > 0 || parsed.password.length > 0 || parsed.hostname.length === 0) {
56
+ throw new TypeError(`Invalid resource authority ${JSON.stringify(authority)}.`);
57
+ }
58
+ return {
59
+ hostname: parsed.hostname,
60
+ port: parsed.port.length === 0 ? null : Number(parsed.port),
61
+ };
62
+ }
63
+ // {§worker-generated-subtree} — every Plurnk-generated per-Worker document lives under
64
+ // worker://~/_plurnk/. The root is the one writer-tier boundary and the fork
65
+ // rederive predicate; families (agents.md, skills/, tools/) hang beneath it.
66
+ export const GENERATED_ROOT = "/_plurnk";
67
+ export function generatedPathname(relative) {
68
+ return `${GENERATED_ROOT}${relative.startsWith("/") ? relative : `/${relative}`}`;
69
+ }
70
+ export function isGeneratedPathname(pathname) {
71
+ return pathname === GENERATED_ROOT || pathname.startsWith(`${GENERATED_ROOT}/`);
34
72
  }
35
- // {§prompt-self-only} — the prompt address is prompt:///<loopSeq>/<turnSeq>: the OWNER rides the
73
+ // {§prompt-self-only} — the prompt address is prompt:///<loopSeq>/<promptOrdinal>: the OWNER rides the
36
74
  // owner_id column ({§entry-owner}), so the coordinate is bare and loop-relative — the last
37
75
  // owner scoping is the query's owner_id param, never a path segment. Every
38
76
  // prompt writer and query builds through these two helpers.
39
- export function promptPathname(loopSeq, turnSeq) {
40
- return `/${loopSeq}/${turnSeq}`;
77
+ export function promptPathname(loopSeq, promptOrdinal) {
78
+ return `/${loopSeq}/${promptOrdinal}`;
41
79
  }
42
80
  export function promptLoopPrefix(loopSeq) {
43
81
  return `/${loopSeq}/`;
44
82
  }
45
- export function renderAddress(scheme, pathname) {
46
- if (NetworkAddress.supports(scheme))
47
- return NetworkAddress.render(scheme, pathname);
83
+ export function renderAddress(address) {
84
+ if (NetworkAddress.supports(address.scheme))
85
+ return NetworkAddress.render(address);
86
+ const { scheme, authority, pathname } = address;
48
87
  const encoded = PathSyntax.encodeParens(pathname);
49
- // {§scheme-address} — network storage folds the host into the pathname and
50
- // model-facing rendering restores it to the authority slot.
51
- // worker:// renders :/// — the owner rides owner_id ({§entry-owner}), so empty authority IS
52
- // the canonical stored form; a querying face re-applies its authority (~/name) for display.
53
- return PathSyntax.escapeTarget(`${scheme}://${encoded}`);
88
+ return PathSyntax.escapeTarget(`${scheme}://${authority}${encoded}`);
54
89
  }
55
90
  /** Render one stored target without exposing credentials or request metadata. {§scheme-address} */
56
91
  export function renderTarget(target) {
@@ -67,7 +102,10 @@ export function renderTarget(target) {
67
102
  address = PathSyntax.escapeTarget(`${scheme}://${hostname}${port}${PathSyntax.encodeParens(target.pathname)}`);
68
103
  }
69
104
  else {
70
- address = renderAddress(scheme, target.pathname);
105
+ const authority = hostname === null || hostname.length === 0
106
+ ? ""
107
+ : `${hostname}${target.port === null || target.port === undefined ? "" : `:${target.port}`}`;
108
+ address = renderAddress({ scheme, authority, pathname: target.pathname });
71
109
  }
72
110
  if (target.query !== null && target.query !== undefined) {
73
111
  address += `?${PathSyntax.escapeTarget(target.query)}`;
@@ -1 +1 @@
1
- {"version":3,"file":"plurnk-uri.js","sourceRoot":"","sources":["../../src/core/plurnk-uri.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plurnk-uri.js","sourceRoot":"","sources":["../../src/core/plurnk-uri.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export interface PlurnkSchemeContext {
10
10
  readonly db: Db;
11
11
  readonly workspaceId: number;
12
12
  readonly workerId: number;
13
+ readonly functionalityWorkerId: number;
13
14
  readonly loopId: number;
14
15
  readonly turnId: number;
15
16
  readonly writer: WriterTier;
@@ -1 +1 @@
1
- {"version":3,"file":"scheme-types.d.ts","sourceRoot":"","sources":["../../src/core/scheme-types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACR,wBAAwB,EACxB,2BAA2B,EAC3B,MAAM,EACT,MAAM,0BAA0B,CAAC;AAIlC,YAAY,EACR,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAMhD,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAK7C,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAI/B,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAOtC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAI1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAGxD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAG/C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAC1B,OAAO,EAAE,wBAAwB,KAChC,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAC7C"}
1
+ {"version":3,"file":"scheme-types.d.ts","sourceRoot":"","sources":["../../src/core/scheme-types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACR,wBAAwB,EACxB,2BAA2B,EAC3B,MAAM,EACT,MAAM,0BAA0B,CAAC;AAIlC,YAAY,EACR,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAMhD,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAK1B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAK7C,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAI/B,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAOtC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAI1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAGxD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAG/C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAC1B,OAAO,EAAE,wBAAwB,KAChC,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAC7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"teaching.d.ts","sourceRoot":"","sources":["../../src/core/teaching.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc,QAAO,WAAW,CAAC,MAAM,CACwD,CAAC"}
1
+ {"version":3,"file":"teaching.d.ts","sourceRoot":"","sources":["../../src/core/teaching.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc,QAAO,WAAW,CAAC,MAAM,CACwD,CAAC"}
@@ -1,7 +1,6 @@
1
- // {§tools-capability-sheet} {§schemes-directory} — PLURNK_SERVICE_DOCS_EXCLUDE
2
- // is a comma list of scheme/exec names dropped from both the teaching
3
- // oneliner AND the materialized pull-doc, on load — the self-evident/retired names the operator
4
- // wants no doc for (default `plurnk,file,exec`, set in .env.defaults). Read per-call so a process
5
- // can change it; unknown names are inert (a filter, never a contract).
1
+ // {§schemes-directory} — PLURNK_SERVICE_DOCS_EXCLUDE is a comma list of scheme
2
+ // names dropped from both the teaching oneliner and materialized pull-doc. Tool
3
+ // discovery follows the executor enablement policy instead of this second filter.
4
+ // Read per-call so a process can change it; unknown names are inert.
6
5
  export const docsExcludeSet = () => new Set((process.env.PLURNK_SERVICE_DOCS_EXCLUDE ?? "").split(",").map((s) => s.trim()).filter(Boolean));
7
6
  //# sourceMappingURL=teaching.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"teaching.js","sourceRoot":"","sources":["../../src/core/teaching.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,sEAAsE;AACtE,gGAAgG;AAChG,kGAAkG;AAClG,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAwB,EAAE,CACpD,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"teaching.js","sourceRoot":"","sources":["../../src/core/teaching.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gFAAgF;AAChF,kFAAkF;AAClF,qEAAqE;AACrE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAwB,EAAE,CACpD,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC"}
@@ -14,7 +14,7 @@ ORDER BY id DESC LIMIT 1;
14
14
  SELECT name FROM workers WHERE id = $worker_id;
15
15
 
16
16
  -- PREP: worker_deliverable_by_name
17
- -- The newest worker holding this name, with its latest loop's status + exact terminal result — the
17
+ -- The newest worker holding this name, with its live loop or latest-settled terminal result — the
18
18
  -- deliverable a sister COLLECTS by READing worker://<name> ({§worker-scheme-collect}, the pull side of
19
19
  -- the same deliverable the push delta carries). Non-terminal means the worker has not delivered yet
20
20
  -- (READ steers to 202).
@@ -23,21 +23,25 @@ SELECT r.id AS worker_id, l.status, l.terminal_result, l.terminated_by
23
23
  FROM workers r
24
24
  JOIN loops l ON l.worker_id = r.id
25
25
  WHERE r.workspace_id = $workspace_id AND r.name = $name
26
- ORDER BY r.id DESC, l.sequence DESC
26
+ ORDER BY r.id DESC,
27
+ CASE WHEN l.status IN (100, 102, 202) THEN 0 ELSE 1 END,
28
+ CASE WHEN l.status IN (100, 102, 202) THEN l.sequence END DESC,
29
+ CASE WHEN l.status NOT IN (100, 102, 202) THEN l.terminated_at END DESC,
30
+ l.id DESC
27
31
  LIMIT 1;
28
32
 
29
33
  -- PREP: worker_live_by_name
30
- -- The newest worker holding this name that is still LIVE (a non-terminal loop, 100/102) —
34
+ -- The newest worker holding this name that is still LIVE (an unresolved loop, 100/102/202) —
31
35
  -- the spawn gate's collision check. A hit means the name is in use by a running sister
32
36
  -- (refuse: 409); no hit means the name is free or held only by a terminated worker (reclaim).
33
37
  SELECT r.id FROM workers r
34
38
  JOIN loops l ON l.worker_id = r.id
35
- WHERE r.workspace_id = $workspace_id AND r.name = $name AND l.status IN (100, 102)
39
+ WHERE r.workspace_id = $workspace_id AND r.name = $name AND l.status IN (100, 102, 202)
36
40
  ORDER BY r.id DESC LIMIT 1;
37
41
 
38
42
  -- PREP: worker_count_active
39
- -- Workers in a workspace with a non-terminal loop (status 100 pending / 102 in-progress)
43
+ -- Workers in a workspace with an unresolved loop (100 pending / 102 in-progress / 202 parked)
40
44
  -- — "active" for the PLURNK_SERVICE_WORKSPACE_WORKERS_MAX_ACTIVE ceiling (worker-cap.ts).
41
45
  SELECT COUNT(DISTINCT r.id) AS n FROM workers r
42
46
  JOIN loops l ON l.worker_id = r.id
43
- WHERE r.workspace_id = $workspace_id AND l.status IN (100, 102);
47
+ WHERE r.workspace_id = $workspace_id AND l.status IN (100, 102, 202);
@@ -0,0 +1,10 @@
1
+ import type { Db } from "./Db.ts";
2
+ export interface WorkerSettings {
3
+ readonly requestUserInput: boolean;
4
+ }
5
+ export default class WorkerSettingsReader {
6
+ static read(db: Db, workerId: number): Promise<WorkerSettings>;
7
+ static requestUserInputEnabled(db: Db, workerId: number): Promise<boolean>;
8
+ static toolAvailable(db: Db, workerId: number, runtime: string): Promise<boolean>;
9
+ }
10
+ //# sourceMappingURL=worker-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-settings.d.ts","sourceRoot":"","sources":["../../src/core/worker-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AASlC,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACtC;AAID,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACrC,OAAa,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAcnE;IAED,OAAa,uBAAuB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE/E;IAKD,OAAa,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtF;CACJ"}
@@ -0,0 +1,32 @@
1
+ const DEFAULT_SETTINGS = Object.freeze({ requestUserInput: false });
2
+ export default class WorkerSettingsReader {
3
+ static async read(db, workerId) {
4
+ const row = await db.worker_settings_read.get({ id: workerId });
5
+ if (row === undefined)
6
+ return DEFAULT_SETTINGS;
7
+ let parsed;
8
+ try {
9
+ parsed = JSON.parse(row.settings);
10
+ }
11
+ catch {
12
+ return DEFAULT_SETTINGS;
13
+ }
14
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
15
+ return DEFAULT_SETTINGS;
16
+ const r = parsed;
17
+ return {
18
+ requestUserInput: r.requestUserInput === true,
19
+ };
20
+ }
21
+ static async requestUserInputEnabled(db, workerId) {
22
+ return (await WorkerSettingsReader.read(db, workerId)).requestUserInput;
23
+ }
24
+ // {§worker-tool-admission} is one predicate shared by discovery and
25
+ // execution. A tool hidden from a Worker cannot remain guessable through
26
+ // generated documentation while dispatch rejects it.
27
+ static async toolAvailable(db, workerId, runtime) {
28
+ return runtime !== "question"
29
+ || await WorkerSettingsReader.requestUserInputEnabled(db, workerId);
30
+ }
31
+ }
32
+ //# sourceMappingURL=worker-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-settings.js","sourceRoot":"","sources":["../../src/core/worker-settings.ts"],"names":[],"mappings":"AAaA,MAAM,gBAAgB,GAAmB,MAAM,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;AAEpF,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAM,EAAE,QAAgB;QACtC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAuB,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtF,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,gBAAgB,CAAC;QAC/C,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAY,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,gBAAgB,CAAC;QAC5B,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,gBAAgB,CAAC;QACpG,MAAM,CAAC,GAAG,MAAwC,CAAC;QACnD,OAAO;YACH,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,KAAK,IAAI;SAChD,CAAC;IACN,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAM,EAAE,QAAgB;QACzD,OAAO,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC5E,CAAC;IAED,oEAAoE;IACpE,yEAAyE;IACzE,qDAAqD;IACrD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAM,EAAE,QAAgB,EAAE,OAAe;QAChE,OAAO,OAAO,KAAK,UAAU;eACtB,MAAM,oBAAoB,CAAC,uBAAuB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5E,CAAC;CACJ"}
@@ -1,23 +1,14 @@
1
1
  import type { Db } from "./Db.ts";
2
- export type ClientMdDoc = {
3
- alias: string;
4
- content: string;
5
- };
2
+ import { type FileCreateScope } from "./file-creation-policy.ts";
6
3
  export type WorkspaceOpenContext = {
7
4
  filesItems: number | null;
8
- mdDocs: ClientMdDoc[];
9
5
  maxCommands: number | null;
10
6
  git: boolean | null;
7
+ fileCreateScope: FileCreateScope | null;
11
8
  client: string | null;
12
9
  execs: Record<string, string> | null;
13
- questions: boolean | null;
14
10
  };
15
11
  export default class WorkspaceSettings {
16
12
  static read(db: Db, workspaceId: number): Promise<WorkspaceOpenContext>;
17
- static questionsEnabled(db: Db, workspaceId: number): Promise<boolean>;
18
- static resolveDocs(clientDocs: ReadonlyArray<ClientMdDoc>): Promise<Array<{
19
- entryName: string;
20
- content: string;
21
- }>>;
22
13
  }
23
14
  //# sourceMappingURL=workspace-settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-settings.d.ts","sourceRoot":"","sources":["../../src/core/workspace-settings.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7D,MAAM,MAAM,oBAAoB,GAAG;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAGlC,OAAa,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAa5E;IAKD,OAAa,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG3E;IAOD,OAAa,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAiBvH;CACJ"}
1
+ {"version":3,"file":"workspace-settings.d.ts","sourceRoot":"","sources":["../../src/core/workspace-settings.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAA2B,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAErF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IACpB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAGlC,OAAa,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAY5E;CAEJ"}
@@ -1,14 +1,8 @@
1
1
  // {§operator-config} — a workspace's client-chosen open context: the per-workspace overrides a client
2
2
  // user legitimately sets at workspace.create, read at turn-0 with precedence over env.
3
- // Two knobs with deliberately different compose semantics:
4
- // - filesItems: REPLACE — a single scalar; the client value wins outright over
5
- // PLURNK_SERVICE_FILES_ITEMS (0=off / -1=markerless first page / N=file-map first-N).
6
- // - mdDocs: UNION — the server env docs (PLURNK_SERVICE_MD_*) and the client's docs ride
7
- // together; the systemwide policy doc survives unless the client shadows its alias.
8
- // Storage is a JSON bag on workspaces.settings (the env mdDocs live in process.env, never
9
- // the DB, so the union is a TS set-merge regardless — normalizing the column buys nothing).
10
- import { readFile } from "node:fs/promises";
11
- import Paths from "../Paths.js";
3
+ // filesItems REPLACES the env value; the other knobs compose per their own tags.
4
+ // Storage is a JSON bag on workspaces.settings.
5
+ import FileCreationPolicy from "./file-creation-policy.js";
12
6
  export default class WorkspaceSettings {
13
7
  // The workspace's open-context bag. Absent/unset fields read as null / []. A malformed
14
8
  // bag never reaches here — workspace.create validates before persisting.
@@ -18,46 +12,12 @@ export default class WorkspaceSettings {
18
12
  const filesItems = typeof bag.filesItems === "number" ? bag.filesItems : null;
19
13
  const maxCommands = typeof bag.maxCommands === "number" ? bag.maxCommands : null;
20
14
  const git = typeof bag.git === "boolean" ? bag.git : null;
15
+ const fileCreateScope = bag.fileCreateScope === undefined
16
+ ? null
17
+ : FileCreationPolicy.parse(bag.fileCreateScope, "settings.fileCreateScope");
21
18
  const client = typeof bag.client === "string" ? bag.client : null;
22
19
  const execs = (typeof bag.execs === "object" && bag.execs !== null && !Array.isArray(bag.execs)) ? bag.execs : null;
23
- const questions = typeof bag.questions === "boolean" ? bag.questions : null;
24
- const mdDocs = Array.isArray(bag.mdDocs)
25
- ? bag.mdDocs.filter((d) => typeof d?.alias === "string" && typeof d?.content === "string")
26
- : [];
27
- return { filesItems, mdDocs, maxCommands, git, client, execs, questions };
28
- }
29
- // {§send-300-choices} — the three-state cascade resolved: ALLOWED servicewide (PLURNK_QUESTIONS
30
- // != "0") AND affirmatively REQUESTED by the client for this workspace. One predicate, shared by
31
- // the dispatch gate and the teaching injection so capability and teaching can never desync.
32
- static async questionsEnabled(db, workspaceId) {
33
- if (process.env.PLURNK_QUESTIONS === "0")
34
- return false;
35
- return (await WorkspaceSettings.read(db, workspaceId)).questions === true;
36
- }
37
- // The turn-0 reference-doc set: server env docs (PLURNK_SERVICE_MD_*, read from disk) UNION the
38
- // workspace's client docs (content), keyed by `<alias>.md`. On alias collision the client
39
- // wins before I/O — a shadowed operator path is not selected. An unshadowed configured
40
- // path is required and fails causally if unreadable ({§operator-config-workspace-md-docs}).
41
- // The set is the single source for BOTH materialization and the Engine turn-0 READ foist.
42
- static async resolveDocs(clientDocs) {
43
- const clientByEntry = new Map(clientDocs.map(({ alias, content }) => [`${alias}.md`, content]));
44
- const byEntry = new Map();
45
- for (const { entryName, path } of Paths.docs()) {
46
- const clientContent = clientByEntry.get(entryName);
47
- if (clientContent !== undefined) {
48
- byEntry.set(entryName, clientContent);
49
- continue;
50
- }
51
- try {
52
- byEntry.set(entryName, await readFile(path, "utf8"));
53
- }
54
- catch (cause) {
55
- throw new Error(`configured operator reference doc '${entryName}' could not be read`, { cause });
56
- }
57
- }
58
- for (const [entryName, content] of clientByEntry)
59
- byEntry.set(entryName, content);
60
- return [...byEntry].map(([entryName, content]) => ({ entryName, content }));
20
+ return { filesItems, maxCommands, git, fileCreateScope, client, execs };
61
21
  }
62
22
  }
63
23
  //# sourceMappingURL=workspace-settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-settings.js","sourceRoot":"","sources":["../../src/core/workspace-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-settings.js","sourceRoot":"","sources":["../../src/core/workspace-settings.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,uFAAuF;AACvF,iFAAiF;AACjF,gDAAgD;AAGhD,OAAO,kBAA4C,MAAM,2BAA2B,CAAC;AAWrF,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAClC,uFAAuF;IACvF,yEAAyE;IACzE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAM,EAAE,WAAmB;QACzC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAuB,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;QACrG,MAAM,GAAG,GAAG,GAAG,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAkI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1M,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9E,MAAM,WAAW,GAAG,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1D,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,KAAK,SAAS;YACrD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAClE,MAAM,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,KAAgC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChJ,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC5E,CAAC;CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"Digest.d.ts","sourceRoot":"","sources":["../../src/digest/Digest.ts"],"names":[],"mappings":";AAoDA,OAAO,EAKH,KAAK,QAAQ,EAKhB,MAAM,0BAA0B,CAAC;AA4MlC,UAAU,aAAa;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AA2BD,MAAM,CAAC,OAAO,OAAO,MAAM;;IAifvB,MAAM,CAAC,aAAa,IAAI,MAAM,CAO7B;IAID,OAAa,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAqPxJ;IAED,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAIpC;CAoKJ"}
1
+ {"version":3,"file":"Digest.d.ts","sourceRoot":"","sources":["../../src/digest/Digest.ts"],"names":[],"mappings":";AAmDA,OAAO,EAKH,KAAK,QAAQ,EAKhB,MAAM,0BAA0B,CAAC;AA6OlC,UAAU,aAAa;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AA2BD,MAAM,CAAC,OAAO,OAAO,MAAM;;IA0hBvB,MAAM,CAAC,aAAa,IAAI,MAAM,CAM7B;IAID,OAAa,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAsPxJ;IAED,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAIpC;CA2MJ"}