@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
package/dist/core/fork.js CHANGED
@@ -2,17 +2,18 @@
2
2
  //
3
3
  // A fork is a new worker in the same workspace (`parent_worker_id` records the lineage),
4
4
  // holding a deep copy of the parent's log: loops → turns → entries, with their
5
- // fold-state (`expanded`) and attribution (`origin`/`source`) intact. It copies
5
+ // folded body intervals and attribution (`origin`/`source`) intact. It copies
6
6
  // nothing of the shared WORLD — commons-owned entries and the overlay are shared, never
7
- // copied, because the worker never owned them. It DOES inherit the parent's private
8
- // entries ({§worker-scheme}, owner-remapped parent → branch):
9
- // "fork = everything-in-common-but-name, then diverges". Its ambient observation
10
- // cursor is copied with that inherited history, then diverges independently.
7
+ // copied, because the worker never owned them. Worker-owned entries follow the
8
+ // registered scheme's explicit inheritance disposition; only quiescent snapshots
9
+ // are owner-remapped parent → branch. Its ambient observation cursor is copied
10
+ // with inherited history, then diverges independently.
11
11
  import WorkerName from "./WorkerName.js";
12
+ import { isGeneratedPathname } from "./plurnk-uri.js";
12
13
  export default class Fork {
13
14
  // Terminal loop statuses ({§lifecycle-terms}) — inherited loops outside this set are clamped to 200.
14
15
  static #TERMINAL_LOOP = new Set([200, 413, 429, 499, 500, 504, 508]);
15
- static async fork(db, parentWorkerId, name) {
16
+ static async fork(db, parentWorkerId, name, entryInheritance) {
16
17
  const parent = await db.fork_get_worker.get({ id: parentWorkerId });
17
18
  if (parent === undefined)
18
19
  throw new Error(`fork: worker ${parentWorkerId} not found`);
@@ -26,19 +27,23 @@ export default class Fork {
26
27
  qualifier: "fork",
27
28
  parentWorkerId,
28
29
  origin: parent.origin,
30
+ forkSnapshot: true,
29
31
  })
30
32
  : await db.fork_insert_worker.get({
31
33
  workspace_id: parent.workspace_id,
32
34
  name: WorkerName.assert(name),
33
35
  parent_worker_id: parentWorkerId,
34
36
  origin: parent.origin,
37
+ fork_snapshot: 1,
35
38
  });
36
39
  if (branch === undefined)
37
40
  throw new Error("fork: explicit branch worker insert returned no row");
38
41
  const branchWorkerId = branch.id;
39
- await db.fork_set_ambient_cursor.run({
42
+ await db.fork_set_generation_policy.run({
40
43
  worker_id: branchWorkerId,
41
- ambient_event_cursor: parent.ambient_event_cursor,
44
+ model_route_id: parent.model_route_id,
45
+ spawn_model_route_id: parent.spawn_model_route_id,
46
+ reasoning_policy: parent.reasoning_policy,
42
47
  });
43
48
  // loops → new loops, mapping old id → new id. A copied loop is INHERITED HISTORY, never the
44
49
  // branch's live work (its own loop is enqueued fresh by injectWorker) — so a non-terminal status
@@ -61,6 +66,10 @@ export default class Fork {
61
66
  status,
62
67
  prompt: l.prompt,
63
68
  flags: l.flags,
69
+ model_route_id: l.model_route_id,
70
+ spawn_model_route_id: l.spawn_model_route_id,
71
+ reasoning_policy: l.reasoning_policy,
72
+ max_turns: l.max_turns,
64
73
  terminal_result: terminalResult,
65
74
  });
66
75
  if (nl === undefined)
@@ -84,7 +93,7 @@ export default class Fork {
84
93
  throw new Error("fork: turn insert returned no row");
85
94
  turnMap.set(id, nt.id);
86
95
  }
87
- // entries → new entries: worker/loop/turn ids remapped; fold-state and
96
+ // entries → new entries: worker/loop/turn ids remapped; visibility and
88
97
  // attribution and content all preserved.
89
98
  const entries = await db.fork_get_log_entries.all({ worker_id: parentWorkerId });
90
99
  const logMap = new Map();
@@ -107,17 +116,31 @@ export default class Fork {
107
116
  await db.fork_insert_log_curation_effect.run({
108
117
  operation_log_entry_id: operationLogEntryId,
109
118
  target_log_entry_id: targetLogEntryId,
110
- expanded_before: effect.expanded_before,
119
+ folded_before: effect.folded_before,
120
+ folded_after: effect.folded_after,
111
121
  tags_added: effect.tags_added,
112
122
  tags_removed: effect.tags_removed,
113
123
  });
114
124
  }
115
- // {§worker-scheme} — inherit the parent's private scratch: same pathnames, the BRANCH as owner
116
- // ({§entry-owner} — ownership is the column, never the pathname), so the branch's private
117
- // workspace is independent and diverges on its own edits.
118
- const scratch = await db.fork_get_private_entries.all({ workspace_id: parent.workspace_id, owner_id: parentWorkerId });
119
- for (const s of scratch) {
120
- const ne = await db.fork_insert_private_entry.get({ workspace_id: parent.workspace_id, owner_id: branchWorkerId, scheme: s.scheme, pathname: s.pathname, deep_hash: s.deep_hash, attributes: s.attributes });
125
+ // {§machine-processes-entry-inheritance} — only a scheme-declared,
126
+ // quiescent snapshot crosses the fork. Live resources retain no phantom
127
+ // callback, and rederived/omitted entries carry no accidental bytes.
128
+ const ownedEntries = await db.fork_get_private_entries.all({ owner_id: parentWorkerId });
129
+ for (const s of ownedEntries) {
130
+ if (s.active === 1 || entryInheritance(s.scheme) !== "snapshot")
131
+ continue;
132
+ // {§worker-generated-subtree} — the child rederives Plurnk-generated
133
+ // documents from its inherited Functionality instead of inheriting bytes.
134
+ if (s.scheme === "worker" && isGeneratedPathname(s.pathname))
135
+ continue;
136
+ const ne = await db.fork_insert_private_entry.get({
137
+ workspace_id: parent.workspace_id,
138
+ owner_id: branchWorkerId,
139
+ scheme: s.scheme,
140
+ authority: s.authority,
141
+ pathname: s.pathname,
142
+ attributes: s.attributes,
143
+ });
121
144
  if (ne === undefined)
122
145
  throw new Error("fork: private entry copy returned no row");
123
146
  await db.fork_copy_entry_channels.run({ old_entry_id: s.id, new_entry_id: ne.id });
@@ -1 +1 @@
1
- {"version":3,"file":"fork.js","sourceRoot":"","sources":["../../src/core/fork.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,EAAE;AACF,yFAAyF;AACzF,+EAA+E;AAC/E,gFAAgF;AAChF,wFAAwF;AACxF,oFAAoF;AACpF,8DAA8D;AAC9D,iFAAiF;AACjF,6EAA6E;AAG7E,OAAO,UAAiC,MAAM,iBAAiB,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,qGAAqG;IACrG,MAAM,CAAC,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAErE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAM,EAAE,cAAsB,EAAE,IAAa;QAC3D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,GAAG,CAKxC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QAC3B,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,cAAc,YAAY,CAAC,CAAC;QAEtF,+FAA+F;QAC/F,wDAAwD;QACxD,2EAA2E;QAC3E,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS;YAC7B,CAAC,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE;gBAC7B,WAAW,EAAE,MAAM,CAAC,YAAY;gBAChC,MAAM,EAAE,MAAM,CAAC,IAAI;gBACnB,SAAS,EAAE,MAAM;gBACjB,cAAc;gBACd,MAAM,EAAE,MAAM,CAAC,MAAM;aACxB,CAAC;YACF,CAAC,CAAC,MAAM,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAiB;gBAC9C,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC7B,gBAAgB,EAAE,cAAc;gBAChC,MAAM,EAAE,MAAM,CAAC,MAAM;aACxB,CAAC,CAAC;QACP,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACjG,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC;QACjC,MAAM,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC;YACjC,SAAS,EAAE,cAAc;YACzB,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;SACpD,CAAC,CAAC;QAEH,4FAA4F;QAC5F,iGAAiG;QACjG,mGAAmG;QACnG,iGAAiG;QACjG,2GAA2G;QAC3G,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,GAAG,CAOtC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;YAClE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;gBACpD,CAAC,CAAC,CAAC,CAAC,eAAe;gBACnB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACtC,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAiB;gBACrD,SAAS,EAAE,cAAc;gBACzB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,MAAM;gBACN,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,eAAe,EAAE,cAAc;aAClC,CAAC,CAAC;YACH,IAAI,EAAE,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC3E,MAAM,EAAE,CAAC,2BAA2B,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QAED,gEAAgE;QAChE,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,GAAG,CAAwD,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;QAChI,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC1C,KAAK,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;YAC3C,sEAAsE;YACtE,oEAAoE;YACpE,iEAAiE;YACjE,6CAA6C;YAC7C,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAiB;gBACrD,GAAG,IAAI;gBACP,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;aAChC,CAAC,CAAC;YACH,IAAI,EAAE,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;QAED,uEAAuE;QACvE,yCAAyC;QACzC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAyE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;QACzJ,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;YACnC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAiB,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvK,IAAI,EAAE,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC9E,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,0FAA0F;YAC1F,MAAM,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,6BAA6B,CAAC,GAAG,CAM/D,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACnC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACtE,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAChE,IAAI,mBAAmB,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACtE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;YACzF,CAAC;YACD,MAAM,EAAE,CAAC,+BAA+B,CAAC,GAAG,CAAC;gBACzC,sBAAsB,EAAE,mBAAmB;gBAC3C,mBAAmB,EAAE,gBAAgB;gBACrC,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;aACpC,CAAC,CAAC;QACP,CAAC;QAED,+FAA+F;QAC/F,0FAA0F;QAC1F,0DAA0D;QAC1D,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,wBAAwB,CAAC,GAAG,CACjD,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,CAClE,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAC7C,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAC5J,CAAC;YACF,IAAI,EAAE,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAClF,MAAM,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC;QAED,OAAO,cAAc,CAAC;IAC1B,CAAC;CACJ"}
1
+ {"version":3,"file":"fork.js","sourceRoot":"","sources":["../../src/core/fork.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,EAAE;AACF,yFAAyF;AACzF,+EAA+E;AAC/E,8EAA8E;AAC9E,wFAAwF;AACxF,+EAA+E;AAC/E,iFAAiF;AACjF,+EAA+E;AAC/E,uDAAuD;AAGvD,OAAO,UAAiC,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAMtD,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,qGAAqG;IACrG,MAAM,CAAC,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAErE,MAAM,CAAC,KAAK,CAAC,IAAI,CACb,EAAM,EACN,cAAsB,EACtB,IAAwB,EACxB,gBAAkC;QAElC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,GAAG,CAOxC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QAC3B,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,cAAc,YAAY,CAAC,CAAC;QAEtF,+FAA+F;QAC/F,wDAAwD;QACxD,2EAA2E;QAC3E,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS;YAC7B,CAAC,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE;gBAC7B,WAAW,EAAE,MAAM,CAAC,YAAY;gBAChC,MAAM,EAAE,MAAM,CAAC,IAAI;gBACnB,SAAS,EAAE,MAAM;gBACjB,cAAc;gBACd,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,YAAY,EAAE,IAAI;aACrB,CAAC;YACF,CAAC,CAAC,MAAM,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAiB;gBAC9C,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC7B,gBAAgB,EAAE,cAAc;gBAChC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,aAAa,EAAE,CAAC;aACnB,CAAC,CAAC;QACP,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACjG,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC;QACjC,MAAM,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC;YACpC,SAAS,EAAE,cAAc;YACzB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SAC5C,CAAC,CAAC;QAEH,4FAA4F;QAC5F,iGAAiG;QACjG,mGAAmG;QACnG,iGAAiG;QACjG,2GAA2G;QAC3G,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,GAAG,CAWtC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;YAClE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;gBACpD,CAAC,CAAC,CAAC,CAAC,eAAe;gBACnB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACtC,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAiB;gBACrD,SAAS,EAAE,cAAc;gBACzB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,MAAM;gBACN,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,oBAAoB,EAAE,CAAC,CAAC,oBAAoB;gBAC5C,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;gBACpC,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,eAAe,EAAE,cAAc;aAClC,CAAC,CAAC;YACH,IAAI,EAAE,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC3E,MAAM,EAAE,CAAC,2BAA2B,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QAED,gEAAgE;QAChE,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,GAAG,CAAwD,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;QAChI,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC1C,KAAK,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;YAC3C,sEAAsE;YACtE,oEAAoE;YACpE,iEAAiE;YACjE,6CAA6C;YAC7C,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAiB;gBACrD,GAAG,IAAI;gBACP,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;aAChC,CAAC,CAAC;YACH,IAAI,EAAE,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;QAED,uEAAuE;QACvE,yCAAyC;QACzC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAyE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;QACzJ,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;YACnC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAiB,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvK,IAAI,EAAE,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC9E,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,0FAA0F;YAC1F,MAAM,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,6BAA6B,CAAC,GAAG,CAO/D,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACnC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACtE,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAChE,IAAI,mBAAmB,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACtE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;YACzF,CAAC;YACD,MAAM,EAAE,CAAC,+BAA+B,CAAC,GAAG,CAAC;gBACzC,sBAAsB,EAAE,mBAAmB;gBAC3C,mBAAmB,EAAE,gBAAgB;gBACrC,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;aACpC,CAAC,CAAC;QACP,CAAC;QAED,mEAAmE;QACnE,wEAAwE;QACxE,qEAAqE;QACrE,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAQtD,EAAE,QAAQ,EAAE,cAAc,EAAE,CAC/B,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,UAAU;gBAAE,SAAS;YAC1E,qEAAqE;YACrE,0EAA0E;YAC1E,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAAE,SAAS;YACvE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAC7C;gBACI,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,UAAU,EAAE,CAAC,CAAC,UAAU;aAC3B,CACJ,CAAC;YACF,IAAI,EAAE,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAClF,MAAM,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC;QAED,OAAO,cAAc,CAAC;IAC1B,CAAC;CACJ"}
@@ -1,33 +1,57 @@
1
1
  -- Fork a worker: deep-copy its log into a new worker in the same workspace (SPEC {§machine-processes} —
2
2
  -- branch the log, share the world). loops → turns → entries are copied with their
3
- -- fold-state (expanded) and attribution (origin/source) intact; only the worker/loop/
3
+ -- folded body intervals and attribution (origin/source) intact; only the worker/loop/
4
4
  -- turn ids are remapped. Nothing of the world is copied
5
5
  -- ({§machine-processes-fork-shares-the-world}); workspace entries and the
6
6
  -- overlay remain shared. The branch inherits the parent's ambient observation
7
7
  -- cursor from the same initial fork snapshot as its copied log.
8
8
 
9
9
  -- PREP: fork_get_worker
10
- SELECT workspace_id, name, origin, ambient_event_cursor FROM workers WHERE id = $id;
10
+ SELECT workspace_id, name, origin,
11
+ model_route_id, spawn_model_route_id, reasoning_policy
12
+ FROM workers WHERE id = $id;
11
13
 
12
14
  -- PREP: fork_insert_worker
13
- -- A new worker in the parent's workspace; lineage recorded via parent_worker_id ({§lifecycle-terms}).
14
- INSERT INTO workers (workspace_id, name, parent_worker_id, origin)
15
- VALUES ($workspace_id, $name, $parent_worker_id, $origin)
15
+ -- A new child in the parent's workspace. A FORK captures the parent's cursor
16
+ -- and the occurrence high-water in this one INSERT; a fresh WORK passes 0 and
17
+ -- receives the ordinary creation baseline trigger instead.
18
+ INSERT INTO workers (
19
+ workspace_id, name, parent_worker_id, origin,
20
+ ambient_event_cursor, fork_event_boundary
21
+ )
22
+ SELECT $workspace_id, $name, $parent_worker_id, $origin,
23
+ CASE WHEN $fork_snapshot = 1 THEN parent.ambient_event_cursor ELSE NULL END,
24
+ CASE WHEN $fork_snapshot = 1 THEN COALESCE((
25
+ SELECT MAX(ae.id) FROM ambient_events ae WHERE ae.workspace_id = $workspace_id
26
+ ), 0) ELSE NULL END
27
+ FROM workers parent
28
+ WHERE parent.id = $parent_worker_id
29
+ AND parent.workspace_id = $workspace_id
16
30
  RETURNING id;
17
31
 
18
- -- PREP: fork_set_ambient_cursor
19
- -- Use the cursor captured before log copying. If the parent observes more while
20
- -- the fork is in flight, the branch stays conservatively behind and replays the
21
- -- copied event ids idempotently rather than skipping unseen history.
22
- UPDATE workers SET ambient_event_cursor = $ambient_event_cursor WHERE id = $worker_id;
32
+ -- PREP: fork_set_generation_policy
33
+ -- A branch copies durable worker policy by value, then diverges independently.
34
+ UPDATE workers
35
+ SET model_route_id = $model_route_id,
36
+ spawn_model_route_id = $spawn_model_route_id,
37
+ reasoning_policy = $reasoning_policy,
38
+ version = version + 1
39
+ WHERE id = $worker_id;
23
40
 
24
41
  -- PREP: fork_get_loops
25
- SELECT id, sequence, status, prompt, flags, terminal_result
42
+ SELECT id, sequence, status, prompt, flags, model_route_id, spawn_model_route_id,
43
+ reasoning_policy, max_turns, terminal_result
26
44
  FROM loops WHERE worker_id = $worker_id ORDER BY id;
27
45
 
28
46
  -- PREP: fork_insert_loop
29
- INSERT INTO loops (worker_id, sequence, status, prompt, flags, terminal_result)
30
- VALUES ($worker_id, $sequence, $status, $prompt, $flags, $terminal_result)
47
+ INSERT INTO loops (
48
+ worker_id, sequence, status, prompt, flags, model_route_id,
49
+ spawn_model_route_id, reasoning_policy, max_turns, terminal_result
50
+ )
51
+ VALUES (
52
+ $worker_id, $sequence, $status, $prompt, $flags, $model_route_id,
53
+ $spawn_model_route_id, $reasoning_policy, $max_turns, $terminal_result
54
+ )
31
55
  RETURNING id;
32
56
 
33
57
  -- PREP: fork_reidentify_loop_result
@@ -44,43 +68,53 @@ WHERE id = $loop_id
44
68
 
45
69
  -- PREP: fork_get_turns
46
70
  -- All turns across the worker's loops, in order — loop_id is remapped by the caller.
47
- SELECT t.id, t.loop_id, t.sequence, t.timestamp, t.status,
48
- t.packet, t.finish_reason, t.model
71
+ SELECT t.id, t.loop_id, t.sequence, t.timestamp,
72
+ t.producer, t.kind,
73
+ t.status,
74
+ COALESCE(t.completed_at, strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) AS completed_at,
75
+ t.usage_curation_budget, t.packet, t.finish_reason, t.model, t.meta
49
76
  FROM turns t JOIN loops l ON l.id = t.loop_id
50
77
  WHERE l.worker_id = $worker_id ORDER BY t.id;
51
78
 
52
79
  -- PREP: fork_insert_turn
53
- INSERT INTO turns (loop_id, sequence, timestamp, status, packet, finish_reason, model)
54
- VALUES ($loop_id, $sequence, $timestamp, $status, $packet, $finish_reason, $model)
80
+ INSERT INTO turns (
81
+ loop_id, sequence, timestamp, producer, kind, status, completed_at,
82
+ usage_curation_budget, packet, finish_reason, model, meta
83
+ )
84
+ VALUES (
85
+ $loop_id, $sequence, $timestamp, $producer, $kind, $status, $completed_at,
86
+ $usage_curation_budget, $packet, $finish_reason, $model, $meta
87
+ )
55
88
  RETURNING id;
56
89
 
57
90
  -- PREP: fork_get_log_entries
58
91
  -- worker_id is the branch's; loop_id/turn_id are remapped by the caller. The source `id` rides along so
59
92
  -- the caller can carry {§log-item-tags} classifications across (old id → new id). origin/source (attribution)
60
- -- and expanded (fold-state) ride along too. {§machine-processes-fork-copies-the-log}
61
- SELECT id, loop_id, turn_id, sequence, at, origin, source, op, suffix, signal,
93
+ -- and folded intervals ride along too. {§machine-processes-fork-copies-the-log}
94
+ SELECT id, loop_id, turn_id, sequence, at, origin, source, op, delimiter, signal,
62
95
  ambient_event_id,
63
96
  scheme, username, password, hostname, port, pathname, query, fragment,
64
97
  lineMarker, tx, mimetype_tx, rx, mimetype_rx, status_rx, weight,
65
- state, outcome, attrs, expanded
98
+ state, outcome, attrs, folded
66
99
  FROM log_entries WHERE worker_id = $worker_id ORDER BY id;
67
100
 
68
101
  -- PREP: fork_insert_log_entry
69
102
  -- RETURNING the new id so the caller can copy the row's classifications onto it ({§log-item-tags}).
70
- INSERT INTO log_entries (worker_id, loop_id, turn_id, sequence, at, origin, source, ambient_event_id, op, suffix, signal, scheme, username, password, hostname, port, pathname, query, fragment, lineMarker, tx, mimetype_tx, rx, mimetype_rx, status_rx, weight, state, outcome, attrs, expanded)
71
- VALUES ($worker_id, $loop_id, $turn_id, $sequence, $at, $origin, $source, $ambient_event_id, $op, $suffix, $signal, $scheme, $username, $password, $hostname, $port, $pathname, $query, $fragment, $lineMarker, $tx, $mimetype_tx, $rx, $mimetype_rx, $status_rx, $weight, $state, $outcome, $attrs, $expanded)
103
+ INSERT INTO log_entries (worker_id, loop_id, turn_id, sequence, at, origin, source, ambient_event_id, inherited_history, op, delimiter, signal, scheme, username, password, hostname, port, pathname, query, fragment, lineMarker, tx, mimetype_tx, rx, mimetype_rx, status_rx, weight, state, outcome, attrs, folded)
104
+ VALUES ($worker_id, $loop_id, $turn_id, $sequence, $at, $origin, $source, $ambient_event_id, 1, $op, $delimiter, $signal, $scheme, $username, $password, $hostname, $port, $pathname, $query, $fragment, $lineMarker, $tx, $mimetype_tx, $rx, $mimetype_rx, $status_rx, $weight, $state, $outcome, $attrs, $folded)
72
105
  RETURNING id;
73
106
 
74
107
  -- PREP: fork_copy_log_tags
75
108
  -- {§log-item-tags} + {§machine-processes-fork-copies-the-log} — a forked log row keeps its
76
- -- classifications along with its fold-state.
109
+ -- classifications along with its folded body intervals.
77
110
  INSERT OR IGNORE INTO log_tags (log_entry_id, tag)
78
111
  SELECT $new_log_id, tag FROM log_tags WHERE log_entry_id = $old_log_id;
79
112
 
80
113
  -- PREP: fork_get_log_curation_effects
81
114
  -- Exact OPEN/FOLD event effects are part of the copied log history, not
82
- -- process-local grinder bookkeeping. Both row identities are remapped below.
83
- SELECT effect.operation_log_entry_id, effect.target_log_entry_id, effect.expanded_before,
115
+ -- process-local overflow recovery bookkeeping. Both row identities are remapped below.
116
+ SELECT effect.operation_log_entry_id, effect.target_log_entry_id,
117
+ effect.folded_before, effect.folded_after,
84
118
  effect.tags_added, effect.tags_removed
85
119
  FROM log_curation_effects effect
86
120
  JOIN log_entries operation ON operation.id = effect.operation_log_entry_id
@@ -91,39 +125,48 @@ ORDER BY effect.operation_log_entry_id, effect.target_log_entry_id;
91
125
  INSERT INTO log_curation_effects (
92
126
  operation_log_entry_id,
93
127
  target_log_entry_id,
94
- expanded_before,
128
+ folded_before,
129
+ folded_after,
95
130
  tags_added,
96
131
  tags_removed
97
132
  )
98
133
  VALUES (
99
134
  $operation_log_entry_id,
100
135
  $target_log_entry_id,
101
- $expanded_before,
136
+ $folded_before,
137
+ $folded_after,
102
138
  $tags_added,
103
139
  $tags_removed
104
140
  );
105
141
 
106
- -- {§worker-scheme} — a fork inherits the parent's private entries, distinct
107
- -- from the shared workspace world above: "fork = everything-in-common-but-name, then diverges". The
108
- -- entries are deep-copied (new ids) with the owner remapped (parent → branch), so
109
- -- the branch's scratch is independent — it edits its own without touching the parent's.
142
+ -- {§machine-processes-entry-inheritance} — core enumerates the parent's
143
+ -- Worker-owned entries; the registered scheme decides whether each is copied,
144
+ -- rederived, or omitted. A copied snapshot gets a new id and remapped owner.
110
145
 
111
146
  -- PREP: fork_get_private_entries
112
- -- The parent's private entries. Content-addressed deep artifact pointers
113
- -- and attributes ride along; copying the channels keeps the pointer valid so
114
- -- the next-turn pump skips re-derivation (the content is byte-identical).
115
- SELECT id, scheme, pathname, deep_hash, attributes
116
- FROM entries WHERE workspace_id = $workspace_id AND owner_id = $owner_id ORDER BY id;
147
+ -- The parent's Worker-owned entries. The caller applies each registered
148
+ -- scheme's {§manifest-entry-inheritance}; active entries are never eligible for
149
+ -- a snapshot because their process-local producer cannot be cloned.
150
+ SELECT e.id, e.scheme, e.authority, e.pathname, e.attributes,
151
+ EXISTS (
152
+ SELECT 1 FROM entry_channels c
153
+ WHERE c.entry_id = e.id AND c.state = 'active'
154
+ ) AS active
155
+ FROM entries e
156
+ WHERE e.owner_id = $owner_id
157
+ ORDER BY e.id;
117
158
 
118
159
  -- PREP: fork_insert_private_entry
119
160
  -- A private entry copy with the branch as owner. synced_sig/membership_origin are NULL
120
161
  -- (scratch is never disk-synced nor a file member); version defaults 0.
121
- INSERT INTO entries (workspace_id, owner_id, scheme, pathname, deep_hash, attributes)
122
- VALUES ($workspace_id, $owner_id, $scheme, $pathname, $deep_hash, $attributes)
162
+ INSERT INTO entries (owner_id, scheme, authority, pathname, attributes)
163
+ SELECT $owner_id, $scheme, $authority, $pathname, $attributes
164
+ FROM workers WHERE id = $owner_id AND workspace_id = $workspace_id
123
165
  RETURNING id;
124
166
 
125
167
  -- PREP: fork_copy_entry_channels
126
168
  -- Copy every source channel from the source entry to the copy. Deep projections
127
169
  -- live on the shared artifact, not on either entry.
128
- INSERT INTO entry_channels (entry_id, name, content, mimetype, weight, state, producer_result)
129
- SELECT $new_entry_id, name, content, mimetype, weight, state, producer_result FROM entry_channels WHERE entry_id = $old_entry_id;
170
+ INSERT INTO entry_channels (entry_id, name, content, mimetype, weight, content_hash, deep_hash, state, producer_result)
171
+ SELECT $new_entry_id, name, content, mimetype, weight, content_hash, deep_hash, state, producer_result
172
+ FROM entry_channels WHERE entry_id = $old_entry_id;
@@ -1,4 +1,3 @@
1
1
  export declare const hermeticGitEnv: () => NodeJS.ProcessEnv;
2
- export declare const isomorphicGitEnabled: () => boolean;
3
2
  export declare const gitOutputMaxBytes: () => number;
4
3
  //# sourceMappingURL=git-env.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-env.d.ts","sourceRoot":"","sources":["../../src/core/git-env.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,QAAO,MAAM,CAAC,UAIvC,CAAC;AAIH,eAAO,MAAM,oBAAoB,QAAO,OACM,CAAC;AAE/C,eAAO,MAAM,iBAAiB,QAAO,MAMpC,CAAC"}
1
+ {"version":3,"file":"git-env.d.ts","sourceRoot":"","sources":["../../src/core/git-env.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,QAAO,MAAM,CAAC,UAIvC,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAAO,MAMpC,CAAC"}
@@ -6,9 +6,6 @@ export const hermeticGitEnv = () => ({
6
6
  GIT_CONFIG_GLOBAL: "/dev/null",
7
7
  GIT_CONFIG_SYSTEM: "/dev/null",
8
8
  });
9
- // Native Git is the default. Isomorphic Git is an explicit portability option,
10
- // never an automatic fallback for an absent or failed native binary.
11
- export const isomorphicGitEnabled = () => process.env.PLURNK_SERVICE_GIT_ISO === "1";
12
9
  export const gitOutputMaxBytes = () => {
13
10
  const value = Number(process.env.PLURNK_SERVICE_GIT_OUTPUT_MAX_BYTES);
14
11
  if (!Number.isSafeInteger(value) || value < 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"git-env.js","sourceRoot":"","sources":["../../src/core/git-env.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,6EAA6E;AAC7E,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAsB,EAAE,CAAC,CAAC;IACpD,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,iBAAiB,EAAE,WAAW;IAC9B,iBAAiB,EAAE,WAAW;CACjC,CAAC,CAAC;AAEH,+EAA+E;AAC/E,qEAAqE;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAY,EAAE,CAC9C,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,GAAG,CAAC;AAE/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAW,EAAE;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"git-env.js","sourceRoot":"","sources":["../../src/core/git-env.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,6EAA6E;AAC7E,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAsB,EAAE,CAAC,CAAC;IACpD,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,iBAAiB,EAAE,WAAW;IAC9B,iBAAiB,EAAE,WAAW;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAW,EAAE;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
@@ -7,11 +7,29 @@ export interface FsDivergence {
7
7
  before: string;
8
8
  after: string;
9
9
  }
10
+ export type FileCreationAdmission = {
11
+ ok: true;
12
+ incorporation: "git" | "explicit-pick" | "create-pick";
13
+ } | {
14
+ ok: false;
15
+ code: string;
16
+ status: 403;
17
+ detail: string;
18
+ extensions: Readonly<Record<string, unknown>>;
19
+ };
20
+ export type FileCreationIncorporation = {
21
+ origin: "git" | "constraint";
22
+ generatedPick: boolean;
23
+ };
10
24
  export default class GitMembership {
11
25
  #private;
12
- static wouldGitAdmit(root: string, key: string, signal?: AbortSignal): Promise<boolean>;
13
26
  static stageFile(root: string, key: string, signal?: AbortSignal): Promise<void>;
14
27
  static projectRepository(db: Db, workspaceId: number, signal?: AbortSignal): Promise<string | null>;
28
+ static planCreation(db: Db, workspaceId: number, key: string, signal?: AbortSignal): Promise<FileCreationAdmission>;
29
+ static incorporateCreation(db: Db, workspaceId: number, entryId: number, root: string, key: string, admission: Extract<FileCreationAdmission, {
30
+ ok: true;
31
+ }>, signal?: AbortSignal): Promise<FileCreationIncorporation>;
32
+ static removeGeneratedPick(db: Db, workspaceId: number, key: string): Promise<unknown>;
15
33
  static resolveGitMembership(db: Db, workspaceId: number, signal: AbortSignal | undefined): Promise<string[]>;
16
34
  static resolveMembershipEffects(db: Db, workspaceId: number, signal: AbortSignal | undefined): Promise<{
17
35
  members: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"git-membership.d.ts","sourceRoot":"","sources":["../../src/core/git-membership.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAS7D,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AAuDD,MAAM,CAAC,OAAO,OAAO,aAAa;;IAc9B,OAAa,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAO5F;IAED,OAAa,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAUrF;IAmDD,OAAa,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKxG;IAoJD,OAAa,oBAAoB,CAC7B,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAAG,SAAS,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB;IASD,OAAa,wBAAwB,CACjC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAAG,SAAS,GAChC,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAkB5F;IAoOD,OAAa,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAcjF;CAcJ"}
1
+ {"version":3,"file":"git-membership.d.ts","sourceRoot":"","sources":["../../src/core/git-membership.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAU7D,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AA6BD,MAAM,MAAM,qBAAqB,GAC3B;IACE,EAAE,EAAE,IAAI,CAAC;IACT,aAAa,EAAE,KAAK,GAAG,eAAe,GAAG,aAAa,CAAC;CAC1D,GACC;IACE,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACjD,CAAC;AAEN,MAAM,MAAM,yBAAyB,GAAG;IACpC,MAAM,EAAE,KAAK,GAAG,YAAY,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;CAC1B,CAAC;AAkCF,MAAM,CAAC,OAAO,OAAO,aAAa;;IAU9B,OAAa,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAErF;IA+CD,OAAa,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKxG;IAwCD,OAAa,YAAY,CACrB,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,qBAAqB,CAAC,CAwEhC;IAKD,OAAa,mBAAmB,CAC5B,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,OAAO,CAAC,qBAAqB,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,CAAC,EACvD,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,yBAAyB,CAAC,CAiCpC;IAED,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAErF;IAyLD,OAAa,oBAAoB,CAC7B,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAAG,SAAS,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB;IASD,OAAa,wBAAwB,CACjC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAAG,SAAS,GAChC,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAkB5F;IA4PD,OAAa,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAcjF;CAcJ"}