@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
@@ -0,0 +1,19 @@
1
+ import type { RuntimeInvocationDecl, RuntimeToolRegistry } from "@plurnk/plurnk-execs";
2
+ export interface ToolResource {
3
+ readonly pathname: string;
4
+ readonly content: string;
5
+ }
6
+ interface ToolSource {
7
+ readonly runtime: string;
8
+ readonly summary: string;
9
+ readonly invocation: RuntimeInvocationDecl;
10
+ readonly details: string;
11
+ readonly registry: RuntimeToolRegistry | null;
12
+ readonly resourcesPath?: string;
13
+ }
14
+ export default class ToolResources {
15
+ static targetSegment(target: string): string;
16
+ static render(source: ToolSource): ToolResource[];
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=ToolResources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolResources.d.ts","sourceRoot":"","sources":["../../src/core/ToolResources.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,qBAAqB,EACrB,mBAAmB,EACtB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,UAAU;IAChB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAK9C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACnC;AAgHD,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG3C;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY,EAAE,CAsDhD;CACJ"}
@@ -0,0 +1,123 @@
1
+ import { PathSyntax } from "@plurnk/plurnk-contracts";
2
+ import { generatedPathname } from "./plurnk-uri.js";
3
+ const inlineCode = (value) => {
4
+ const longest = Math.max(0, ...[...value.matchAll(/`+/gu)].map((match) => match[0].length));
5
+ const fence = "`".repeat(longest + 1);
6
+ const padding = value.startsWith("`") || value.endsWith("`") ? " " : "";
7
+ return `${fence}${padding}${value}${padding}${fence}`;
8
+ };
9
+ const fence = (language, value) => {
10
+ const longest = Math.max(2, ...[...value.matchAll(/`+/gu)].map((match) => match[0].length));
11
+ const marker = "`".repeat(longest + 1);
12
+ return `${marker}${language}\n${value}\n${marker}`;
13
+ };
14
+ const escapeCell = (value) => value.replaceAll("|", "\\|");
15
+ const summaryParagraph = (value) => /^(?:[>#+*`~-]|\d+[.)]\s|<)/u.test(value) && !value.startsWith("`")
16
+ ? `\\${value}`
17
+ : value;
18
+ const annotationText = (value) => {
19
+ const normalized = value.replaceAll(/\s+/gu, " ").trim().replaceAll("--", "—");
20
+ const safeStart = /^(?:>|->)/u.test(normalized) ? `Description: ${normalized}` : normalized;
21
+ return safeStart.endsWith("-") ? `${safeStart}.` : safeStart;
22
+ };
23
+ const requirement = (required) => required ? "required" : "optional";
24
+ const invocationRows = (invocation, exactTarget) => {
25
+ const exclusive = invocation.exclusive === true ? "; choose either target or body" : "";
26
+ const target = invocation.target === undefined
27
+ ? "unavailable"
28
+ : exactTarget === undefined
29
+ ? `${requirement(invocation.target.required)}: ${invocation.target.role}`
30
+ + (invocation.target.directory === "cwd" ? "; a local directory selects the working directory" : "")
31
+ + exclusive
32
+ : `${requirement(invocation.target.required)}: exact target ${inlineCode(exactTarget)}; ${invocation.target.role}${exclusive}`;
33
+ const body = `${requirement(invocation.body.required)}: ${invocation.body.role}${exclusive}`;
34
+ return [
35
+ "| Input | Contract |",
36
+ "| --- | --- |",
37
+ `| \`(target)\` | ${escapeCell(target)} |`,
38
+ `| body | ${escapeCell(body)} |`,
39
+ ];
40
+ };
41
+ const exampleSource = (runtime, invocation, exactTarget, annotation) => {
42
+ const target = exactTarget ?? invocation.example?.target;
43
+ const heading = `## EXEC0 [${runtime}]${target === undefined ? "" : ` (${PathSyntax.escapeTarget(target)})`}`
44
+ + (annotation === undefined ? "" : ` <!-- ${annotationText(annotation)} -->`);
45
+ return invocation.example?.body === undefined
46
+ ? heading
47
+ : `${heading}\n${invocation.example.body}`;
48
+ };
49
+ const summaryInvocation = (runtime, invocation, exactTarget, summary) => {
50
+ const source = exampleSource(runtime, invocation, exactTarget, summary)
51
+ .replace(/^## EXEC0/u, "EXEC")
52
+ .replace("\n", "\\n");
53
+ return inlineCode(source);
54
+ };
55
+ const renderInvocation = (runtime, invocation, exactTarget, annotation) => [
56
+ "## Invocation",
57
+ "",
58
+ ...invocationRows(invocation, exactTarget),
59
+ "",
60
+ ...(invocation.signature === undefined
61
+ ? [fence("plurnk", exampleSource(runtime, invocation, exactTarget, annotation))]
62
+ : [
63
+ inlineCode(exampleSource(runtime, invocation, exactTarget, annotation)),
64
+ "",
65
+ `Signature: ${inlineCode(invocation.signature)}`,
66
+ ]),
67
+ ];
68
+ const renderDocument = (title, summary, invocation, details) => [
69
+ `# ${title}`,
70
+ "",
71
+ "## Summary",
72
+ "",
73
+ summaryParagraph(summary),
74
+ "",
75
+ ...invocation,
76
+ ...(details.length === 0 ? [] : ["", details.trimEnd()]),
77
+ ].join("\n");
78
+ export default class ToolResources {
79
+ static targetSegment(target) {
80
+ return encodeURIComponent(target).replaceAll(/[!'()*]/gu, (character) => `%${character.codePointAt(0)?.toString(16).toUpperCase()}`);
81
+ }
82
+ static render(source) {
83
+ const toolsNamespace = source.resourcesPath !== undefined;
84
+ // A runtime's resourcesPath is relative to the generated root; Core owns the root.
85
+ const root = generatedPathname(toolsNamespace ? source.resourcesPath : "/skills/plurnk");
86
+ if (source.registry === null) {
87
+ return [{
88
+ pathname: `${root}/${source.runtime}.md`,
89
+ content: renderDocument(source.runtime, summaryInvocation(source.runtime, source.invocation, undefined, source.summary), renderInvocation(source.runtime, source.invocation, undefined, source.summary), source.details),
90
+ }];
91
+ }
92
+ if (source.registry.tools.length === 0)
93
+ return [];
94
+ // One document per registried runtime — no per-target child documents,
95
+ // shown or existing. The invocation fence carries every target's
96
+ // heading and signature; a target's details become a section of this
97
+ // same document. One survey row orients the whole family; the packet
98
+ // token floor never pays per-tool.
99
+ const tools = source.registry.tools
100
+ .toSorted((left, right) => left.target.localeCompare(right.target));
101
+ const familyInvocations = tools.flatMap((tool, index) => {
102
+ const heading = exampleSource(source.runtime, tool.invocation, tool.target, tool.summary).split("\n", 1)[0];
103
+ const input = tool.invocation.signature ?? tool.invocation.example?.body;
104
+ return [
105
+ ...(index === 0 ? [] : [""]),
106
+ heading,
107
+ ...(input === undefined ? [] : [input]),
108
+ ];
109
+ });
110
+ // A target's details nest as `## <target>`; their own headings demote
111
+ // one level so the target heading stays the section boundary.
112
+ const demote = (value) => value.replaceAll(/^(#{2,5}) /gmu, "#$1 ");
113
+ const sections = tools
114
+ .filter((tool) => (tool.details ?? "").length > 0)
115
+ .map((tool) => `## ${inlineCode(tool.target)}\n\n${demote((tool.details ?? "").trimEnd())}`);
116
+ const detailsBlock = [source.details.trimEnd(), ...sections]
117
+ .filter((part) => part.length > 0)
118
+ .join("\n\n");
119
+ const family = renderDocument(source.runtime, source.summary, ["## Invocation", "", fence("plurnk", familyInvocations.join("\n"))], detailsBlock);
120
+ return [{ pathname: `${root}/${source.runtime}.md`, content: family }];
121
+ }
122
+ }
123
+ //# sourceMappingURL=ToolResources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolResources.js","sourceRoot":"","sources":["../../src/core/ToolResources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { Db } from "./Db.ts";
2
+ import type { WriterTier } from "./scheme-types.ts";
3
+ export type TurnProducer = WriterTier;
4
+ export type TurnKind = "inference" | "initialization" | "overflow" | "operation" | "maintenance";
5
+ export interface TurnRow {
6
+ readonly id: number;
7
+ readonly sequence: number;
8
+ }
9
+ export interface InferenceEvidence {
10
+ readonly packet: string;
11
+ readonly usageCurationBudget: number | null;
12
+ readonly finishReason: string | null;
13
+ readonly model: string;
14
+ readonly meta: string;
15
+ }
16
+ export default class Turn {
17
+ static open(db: Db, args: {
18
+ loopId: number;
19
+ producer: TurnProducer;
20
+ kind: TurnKind;
21
+ }): Promise<TurnRow>;
22
+ static becomeOverflow(db: Db, id: number): Promise<void>;
23
+ static recordInference(db: Db, id: number, evidence: InferenceEvidence): Promise<void>;
24
+ static complete(db: Db, id: number, status: number): Promise<void>;
25
+ static failOpen(db: Db, id: number): Promise<boolean>;
26
+ }
27
+ //# sourceMappingURL=Turn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Turn.d.ts","sourceRoot":"","sources":["../../src/core/Turn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC;AACtC,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,gBAAgB,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;AAEjG,MAAM,WAAW,OAAO;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAKD,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,OAAa,IAAI,CACb,EAAE,EAAE,EAAE,EACN,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,GACjE,OAAO,CAAC,OAAO,CAAC,CAQlB;IAED,OAAa,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK7D;IAED,OAAa,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3F;IAED,OAAa,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;IAED,OAAa,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE1D;CACJ"}
@@ -0,0 +1,43 @@
1
+ // {§turn-record} — one lifecycle owner for every producer. A packet and its
2
+ // provider metadata are optional inference evidence, never the definition of a
3
+ // turn. Client, plugin, model, and `_plurnk` work all open and complete here.
4
+ export default class Turn {
5
+ static async open(db, args) {
6
+ const turn = await db.turn_open.get({
7
+ loop_id: args.loopId,
8
+ producer: args.producer,
9
+ kind: args.kind,
10
+ });
11
+ if (turn === undefined)
12
+ throw new Error("Turn.open: insert returned no row");
13
+ return turn;
14
+ }
15
+ static async becomeOverflow(db, id) {
16
+ const turn = await db.turn_become_overflow.get({ id });
17
+ if (turn === undefined) {
18
+ throw new Error(`Turn.becomeOverflow: model inference turn ${id} cannot become overflow`);
19
+ }
20
+ }
21
+ static async recordInference(db, id, evidence) {
22
+ const turn = await db.turn_record_inference.get({
23
+ id,
24
+ packet: evidence.packet,
25
+ usage_curation_budget: evidence.usageCurationBudget,
26
+ finish_reason: evidence.finishReason,
27
+ model: evidence.model,
28
+ meta: evidence.meta,
29
+ });
30
+ if (turn === undefined) {
31
+ throw new Error(`Turn.recordInference: turn ${id} is not an open model inference turn`);
32
+ }
33
+ }
34
+ static async complete(db, id, status) {
35
+ const turn = await db.turn_complete.get({ id, status });
36
+ if (turn === undefined)
37
+ throw new Error(`Turn.complete: turn ${id} is not open`);
38
+ }
39
+ static async failOpen(db, id) {
40
+ return (await db.turn_fail_open.get({ id })) !== undefined;
41
+ }
42
+ }
43
+ //# sourceMappingURL=Turn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Turn.js","sourceRoot":"","sources":["../../src/core/Turn.ts"],"names":[],"mappings":"AAmBA,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AAC9E,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,MAAM,CAAC,KAAK,CAAC,IAAI,CACb,EAAM,EACN,IAAgE;QAEhE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAU;YACzC,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;SAClB,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAM,EAAE,EAAU;QAC1C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6CAA6C,EAAE,yBAAyB,CAAC,CAAC;QAC9F,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAM,EAAE,EAAU,EAAE,QAA2B;QACxE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAiB;YAC5D,EAAE;YACF,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,qBAAqB,EAAE,QAAQ,CAAC,mBAAmB;YACnD,aAAa,EAAE,QAAQ,CAAC,YAAY;YACpC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;SACtB,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,EAAE,sCAAsC,CAAC,CAAC;QAC5F,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAM,EAAE,EAAU,EAAE,MAAc;QACpD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,GAAG,CAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAM,EAAE,EAAU;QACpC,OAAO,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,GAAG,CAAiB,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;IAC/E,CAAC;CACJ"}
@@ -0,0 +1,72 @@
1
+ -- Producer-neutral turn lifecycle. A turn is an ordered durable operation
2
+ -- container; model request/response evidence is an optional specialization.
3
+
4
+ -- PREP: turn_open
5
+ INSERT INTO turns (loop_id, sequence, producer, kind, status, completed_at)
6
+ SELECT $loop_id,
7
+ COALESCE(MAX(sequence), 0) + 1,
8
+ $producer,
9
+ $kind,
10
+ 102,
11
+ NULL
12
+ FROM turns
13
+ WHERE loop_id = $loop_id
14
+ RETURNING id, sequence;
15
+
16
+ -- PREP: turn_become_overflow
17
+ -- Packet admission may divert a would-be inference boundary into a kernel
18
+ -- recovery turn. Once model-authored rows, model calls, or packet evidence
19
+ -- exist, changing the producer would falsify history and is refused.
20
+ UPDATE turns
21
+ SET producer = '_plurnk',
22
+ kind = 'overflow'
23
+ WHERE id = $id
24
+ AND producer = 'model'
25
+ AND kind = 'inference'
26
+ AND completed_at IS NULL
27
+ AND packet IS NULL
28
+ AND usage_curation_budget IS NULL
29
+ AND finish_reason IS NULL
30
+ AND model IS NULL
31
+ AND meta IS NULL
32
+ AND NOT EXISTS (SELECT 1 FROM model_calls WHERE turn_id = turns.id)
33
+ AND NOT EXISTS (
34
+ SELECT 1 FROM log_entries
35
+ WHERE turn_id = turns.id AND origin != '_plurnk'
36
+ )
37
+ RETURNING id;
38
+
39
+ -- PREP: turn_record_inference
40
+ -- Preserve the exact admitted/request-only packet and provider metadata while
41
+ -- the operation sequence is still executing. Completion remains a separate
42
+ -- lifecycle transition after every admitted OP has settled.
43
+ UPDATE turns
44
+ SET packet = $packet,
45
+ usage_curation_budget = $usage_curation_budget,
46
+ finish_reason = $finish_reason,
47
+ model = $model,
48
+ meta = $meta
49
+ WHERE id = $id
50
+ AND producer = 'model'
51
+ AND kind = 'inference'
52
+ AND completed_at IS NULL
53
+ AND packet IS NULL
54
+ RETURNING id;
55
+
56
+ -- PREP: turn_complete
57
+ UPDATE turns
58
+ SET status = $status,
59
+ completed_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
60
+ WHERE id = $id
61
+ AND completed_at IS NULL
62
+ RETURNING id;
63
+
64
+ -- PREP: turn_fail_open
65
+ -- Exception cleanup is idempotent across a run that may already have completed
66
+ -- one of several producer turns before a later sibling failed.
67
+ UPDATE turns
68
+ SET status = 500,
69
+ completed_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
70
+ WHERE id = $id
71
+ AND completed_at IS NULL
72
+ RETURNING id;
@@ -0,0 +1,7 @@
1
+ import { type PlurnkStatement } from "@plurnk/plurnk-contracts";
2
+ export type InternalTurnStatement = PlurnkStatement;
3
+ export default class TurnOps {
4
+ static renderInternal(statements: readonly InternalTurnStatement[]): string;
5
+ static parseInternal(source: string): PlurnkStatement[];
6
+ }
7
+ //# sourceMappingURL=TurnOps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TurnOps.d.ts","sourceRoot":"","sources":["../../src/core/TurnOps.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,eAAe,EACvB,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;AAiBpD,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,GAAG,MAAM,CAuB1E;IAED,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,CAqBtD;CACJ"}
@@ -0,0 +1,73 @@
1
+ import { PlurnkParseError, PlurnkParser, PlanValue, } from "@plurnk/plurnk-contracts";
2
+ const renderBody = (statement) => {
3
+ if (statement.op === "PLAN")
4
+ return PlanValue.stringify(statement.body);
5
+ if (statement.body === null)
6
+ return null;
7
+ if (typeof statement.body === "string")
8
+ return statement.body;
9
+ if ("raw" in statement.body)
10
+ return statement.body.raw;
11
+ const marker = statement.body.lineMarker;
12
+ return marker === null
13
+ ? statement.body.target.raw
14
+ : `${statement.body.target.raw} <${marker.marks.join(",")}>`;
15
+ };
16
+ // Core-authored turns are programs, not synthetic result rows. This formatter
17
+ // owns the deliberately small statement alphabet used by initialization and
18
+ // overflow recovery; its output is reparsed before admission so the parser,
19
+ // rather than constructed AST objects, remains the executable authority.
20
+ export default class TurnOps {
21
+ static renderInternal(statements) {
22
+ if (statements[0]?.op !== "PLAN" || statements.at(-1)?.op !== "SEND") {
23
+ throw new TypeError("An internal turnOps program must begin with PLAN and end with SEND.");
24
+ }
25
+ const delimiter = statements[0].delimiter || "0";
26
+ return statements.map((statement, index) => {
27
+ const heading = statement.op === "PLAN"
28
+ ? `# PLAN${delimiter}`
29
+ : `## ${statement.op}${delimiter}`;
30
+ const modifiers = [];
31
+ if (statement.signal !== null) {
32
+ modifiers.push(`[${Array.isArray(statement.signal) ? statement.signal.join(",") : statement.signal}]`);
33
+ }
34
+ if (statement.target !== null)
35
+ modifiers.push(`(${statement.target.raw})`);
36
+ if (statement.lineMarker !== null)
37
+ modifiers.push(`<${statement.lineMarker.marks.join(",")}>`);
38
+ if (statement.annotation !== null)
39
+ modifiers.push(`<!-- ${statement.annotation} -->`);
40
+ const header = modifiers.length === 0 ? heading : `${heading} ${modifiers.join(" ")}`;
41
+ const body = renderBody(statement);
42
+ const boundaryPadding = body?.endsWith("\n") === true && index < statements.length - 1
43
+ ? "\n"
44
+ : "";
45
+ return body === null ? header : `${header}\n${body}${boundaryPadding}`;
46
+ }).join("\n");
47
+ }
48
+ static parseInternal(source) {
49
+ const parsed = PlurnkParser.parse(source);
50
+ const statements = [];
51
+ const failures = [];
52
+ for (const item of parsed.items) {
53
+ if (item.kind === "statement") {
54
+ statements.push(item.statement);
55
+ continue;
56
+ }
57
+ if (item.kind === "text" && item.text.trim().length === 0)
58
+ continue;
59
+ const error = item.kind === "error" ? item.error : null;
60
+ failures.push(error instanceof PlurnkParseError ? error.message : "unparsed text");
61
+ }
62
+ if (parsed.unparsedTail !== undefined)
63
+ failures.push(parsed.unparsedTail.reason);
64
+ if (failures.length > 0) {
65
+ throw new SyntaxError(`Core generated invalid turnOps: ${failures.join("; ")}`);
66
+ }
67
+ if (statements[0]?.op !== "PLAN" || statements.at(-1)?.op !== "SEND") {
68
+ throw new SyntaxError("Core generated turnOps without a PLAN…SEND boundary.");
69
+ }
70
+ return statements;
71
+ }
72
+ }
73
+ //# sourceMappingURL=TurnOps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TurnOps.js","sourceRoot":"","sources":["../../src/core/TurnOps.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,YAAY,EACZ,SAAS,GAEZ,MAAM,0BAA0B,CAAC;AAIlC,MAAM,UAAU,GAAG,CAAC,SAAgC,EAAiB,EAAE;IACnE,IAAI,SAAS,CAAC,EAAE,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxE,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC,IAAI,CAAC;IAC9D,IAAI,KAAK,IAAI,SAAS,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;IACvD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;IACzC,OAAO,MAAM,KAAK,IAAI;QAClB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG;QAC3B,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACrE,CAAC,CAAC;AAEF,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,yEAAyE;AACzE,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,MAAM,CAAC,cAAc,CAAC,UAA4C;QAC9D,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,MAAM,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;YACnE,MAAM,IAAI,SAAS,CAAC,qEAAqE,CAAC,CAAC;QAC/F,CAAC;QACD,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC;QACjD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YACvC,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,KAAK,MAAM;gBACnC,CAAC,CAAC,SAAS,SAAS,EAAE;gBACtB,CAAC,CAAC,MAAM,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC;YACvC,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC5B,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3G,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI;gBAAE,SAAS,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;YAC3E,IAAI,SAAS,CAAC,UAAU,KAAK,IAAI;gBAAE,SAAS,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/F,IAAI,SAAS,CAAC,UAAU,KAAK,IAAI;gBAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,SAAS,CAAC,UAAU,MAAM,CAAC,CAAC;YACtF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtF,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;YACnC,MAAM,eAAe,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;gBAClF,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,IAAI,GAAG,eAAe,EAAE,CAAC;QAC3E,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAc;QAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAsB,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC5B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChC,SAAS;YACb,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACpE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACxD,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACjF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,WAAW,CAAC,mCAAmC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,MAAM,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;YACnE,MAAM,IAAI,WAAW,CAAC,sDAAsD,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ"}
@@ -1,10 +1,19 @@
1
+ import type { PlurnkStatement } from "@plurnk/plurnk-contracts";
2
+ type ParseErrorInfo = {
3
+ message: string;
4
+ line: number;
5
+ column: number;
6
+ source: string;
7
+ };
1
8
  import type SchemeRegistry from "./SchemeRegistry.ts";
2
9
  import { Mimetypes } from "@plurnk/plurnk-mimetypes";
3
10
  import type { Db } from "./Db.ts";
4
- import type { WriterTier, PlurnkSchemeContext } from "./scheme-types.ts";
11
+ import type { PlurnkSchemeContext, WriterTier } from "./scheme-types.ts";
5
12
  import type ExecutorRegistry from "./ExecutorRegistry.ts";
6
13
  import type { StreamEventNotify, WakeWorkerNotify } from "./ChannelWrite.ts";
14
+ import type { ReasoningEventNotify } from "./ReasoningEvent.ts";
7
15
  import LiveSubscriptions from "./LiveSubscriptions.ts";
16
+ export declare const resolveGrammarRailPath: (variant: string) => string;
8
17
  import { type SchemeResult } from "./results.ts";
9
18
  import type ClientInteractions from "./ClientInteractions.ts";
10
19
  import NoticeChannel from "./NoticeChannel.ts";
@@ -13,8 +22,9 @@ import StrikeRail, { type StrikeOutcome } from "./StrikeRail.ts";
13
22
  import PacketBuilder, { type ChatMessage } from "./PacketBuilder.ts";
14
23
  import Dispatcher from "./Dispatcher.ts";
15
24
  import type { DispatchContext, DispatchResult } from "./Dispatcher.ts";
16
- import type { Provider } from "@plurnk/plurnk-providers";
25
+ import type { Provider, ProviderEncryptedReasoningItem } from "@plurnk/plurnk-providers";
17
26
  type EngineTurnResult = {
27
+ createdTurnIds: number[];
18
28
  turnId: number;
19
29
  status: number;
20
30
  outcomes: StrikeOutcome[];
@@ -25,13 +35,34 @@ type EngineTurnResult = {
25
35
  emissionExhausted: boolean;
26
36
  rejectedModelEntryId?: number;
27
37
  capacityFailure?: SchemeResult;
38
+ curationFailure?: SchemeResult;
39
+ } & ({
40
+ producer: "model";
41
+ kind: "inference";
42
+ } | {
43
+ producer: "_plurnk";
44
+ kind: "overflow";
45
+ });
46
+ type BareExecution = {
47
+ readonly provider: Provider;
48
+ readonly modelCallSequenceStart: number;
49
+ readonly primaryWorkerId: string;
50
+ readonly loopSequence: number;
51
+ readonly turnSequence: number;
52
+ readonly signal: AbortSignal | undefined;
53
+ };
54
+ type AdmittedTurnResult = {
55
+ readonly status: number;
56
+ readonly outcomes: StrikeOutcome[];
57
+ readonly fingerprint: string;
58
+ readonly steerStruck: boolean;
28
59
  };
29
60
  export declare const LOOP_TIMEOUT_REASON = "loop_timeout";
30
61
  type TurnDispatch = (context: DispatchContext) => Promise<DispatchResult>;
31
62
  type WarmWorkspace = (context: PlurnkSchemeContext, invalidate?: boolean, materialize?: boolean) => Promise<void>;
32
63
  export default class TurnRunner {
33
64
  #private;
34
- constructor({ db, schemes, mimetypes, weigh, notices, problems, strikes, packets, dispatcher, liveSubscriptions, streamEventNotify, wakeWorkerNotify, executors, loopSignal, interactions, warmWorkspace, dispatch, resolveWorkerProviderIdentity, }: {
65
+ constructor({ db, schemes, mimetypes, weigh, notices, problems, strikes, packets, dispatcher, liveSubscriptions, streamEventNotify, reasoningEventNotify, wakeWorkerNotify, executors, loopSignal, interactions, warmWorkspace, dispatch, resolveWorkerProviderIdentity, }: {
35
66
  db: Db;
36
67
  schemes: SchemeRegistry;
37
68
  mimetypes: Mimetypes;
@@ -43,6 +74,7 @@ export default class TurnRunner {
43
74
  dispatcher: Dispatcher;
44
75
  liveSubscriptions: LiveSubscriptions;
45
76
  streamEventNotify?: StreamEventNotify;
77
+ reasoningEventNotify?: ReasoningEventNotify;
46
78
  wakeWorkerNotify?: WakeWorkerNotify;
47
79
  executors: () => ExecutorRegistry | undefined;
48
80
  loopSignal: (loopId: number) => AbortSignal | undefined;
@@ -54,7 +86,27 @@ export default class TurnRunner {
54
86
  primaryWorkerId: string;
55
87
  }>;
56
88
  });
57
- runTurn({ provider, childProvider, messages, requirements, workspaceId, workerId, loopId, origin, signal, onDispatch, turnNumber, maxTurns, invalidEmissionRecoveryEntryId, }: {
89
+ executeAdmittedTurn({ statements, source, sourceFolded, sourceModelCallId, sourceReasoningItems, origin, workspaceId, workerId, loopId, turnId, fromSequence, maxCommands, enforceIdle, failOnOperationError, recoverableParseErrors, bare, signal, onDispatch, }: {
90
+ statements: readonly PlurnkStatement[];
91
+ source: string | null;
92
+ sourceFolded: boolean;
93
+ sourceModelCallId?: number | null;
94
+ sourceReasoningItems?: ReadonlyArray<ProviderEncryptedReasoningItem>;
95
+ origin: WriterTier;
96
+ workspaceId: number;
97
+ workerId: number;
98
+ loopId: number;
99
+ turnId: number;
100
+ fromSequence: number;
101
+ maxCommands?: number;
102
+ enforceIdle?: boolean;
103
+ failOnOperationError?: boolean;
104
+ recoverableParseErrors?: readonly ParseErrorInfo[];
105
+ bare?: BareExecution;
106
+ signal?: AbortSignal;
107
+ onDispatch?: (logEntryId: number) => void;
108
+ }): Promise<AdmittedTurnResult>;
109
+ runTurn({ provider, childProvider, messages, requirements, workspaceId, workerId, loopId, signal, onDispatch, turnNumber, maxTurns, invalidEmissionRecoveryEntryId, }: {
58
110
  provider: Provider;
59
111
  childProvider?: Provider;
60
112
  messages: ChatMessage[];
@@ -62,7 +114,6 @@ export default class TurnRunner {
62
114
  workspaceId: number;
63
115
  workerId: number;
64
116
  loopId: number;
65
- origin?: WriterTier;
66
117
  signal?: AbortSignal;
67
118
  onDispatch?: (logEntryId: number) => void;
68
119
  turnNumber?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"TurnRunner.d.ts","sourceRoot":"","sources":["../../src/core/TurnRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TurnRunner.d.ts","sourceRoot":"","sources":["../../src/core/TurnRunner.ts"],"names":[],"mappings":"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"}