@plurnk/plurnk-service 1.6.1 → 1.8.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 (310) hide show
  1. package/.env.defaults +29 -42
  2. package/INSTALL.md +49 -10
  3. package/README.md +11 -1
  4. package/SPEC.md +702 -287
  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 +2 -5
  14. package/dist/Paths.d.ts.map +1 -1
  15. package/dist/Paths.js +9 -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.map +1 -1
  25. package/dist/core/ChannelWrite.js.map +1 -1
  26. package/dist/core/ChannelWrite.sql +2 -1
  27. package/dist/core/ClientInteractions.d.ts +19 -0
  28. package/dist/core/ClientInteractions.d.ts.map +1 -0
  29. package/dist/core/ClientInteractions.js +124 -0
  30. package/dist/core/ClientInteractions.js.map +1 -0
  31. package/dist/core/ClientInteractions.sql +34 -0
  32. package/dist/core/CoreSchemeServices.d.ts +8 -2
  33. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  34. package/dist/core/CoreSchemeServices.js +7 -1
  35. package/dist/core/CoreSchemeServices.js.map +1 -1
  36. package/dist/core/Dispatcher.d.ts +9 -6
  37. package/dist/core/Dispatcher.d.ts.map +1 -1
  38. package/dist/core/Dispatcher.js +74 -125
  39. package/dist/core/Dispatcher.js.map +1 -1
  40. package/dist/core/Engine.d.ts +26 -9
  41. package/dist/core/Engine.d.ts.map +1 -1
  42. package/dist/core/Engine.js +125 -44
  43. package/dist/core/Engine.js.map +1 -1
  44. package/dist/core/Engine.sql +112 -107
  45. package/dist/core/ExecutorRegistry.d.ts +19 -5
  46. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  47. package/dist/core/ExecutorRegistry.js +144 -18
  48. package/dist/core/ExecutorRegistry.js.map +1 -1
  49. package/dist/core/HostPaths.d.ts +29 -0
  50. package/dist/core/HostPaths.d.ts.map +1 -0
  51. package/dist/core/HostPaths.js +74 -0
  52. package/dist/core/HostPaths.js.map +1 -0
  53. package/dist/core/LegacyHome.d.ts +10 -0
  54. package/dist/core/LegacyHome.d.ts.map +1 -0
  55. package/dist/core/LegacyHome.js +170 -0
  56. package/dist/core/LegacyHome.js.map +1 -0
  57. package/dist/core/LogBody.d.ts +1 -1
  58. package/dist/core/LogBody.d.ts.map +1 -1
  59. package/dist/core/LogBody.js +2 -2
  60. package/dist/core/LogBody.js.map +1 -1
  61. package/dist/core/LogEntryProjection.js +1 -1
  62. package/dist/core/LogEntryProjection.js.map +1 -1
  63. package/dist/core/LogVisibility.d.ts +28 -0
  64. package/dist/core/LogVisibility.d.ts.map +1 -0
  65. package/dist/core/LogVisibility.js +215 -0
  66. package/dist/core/LogVisibility.js.map +1 -0
  67. package/dist/core/LoopLifecycle.d.ts +1 -0
  68. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  69. package/dist/core/LoopLifecycle.js +8 -0
  70. package/dist/core/LoopLifecycle.js.map +1 -1
  71. package/dist/core/LoopLifecycle.sql +10 -0
  72. package/dist/core/OperatorConfig.d.ts +6 -0
  73. package/dist/core/OperatorConfig.d.ts.map +1 -0
  74. package/dist/core/OperatorConfig.js +92 -0
  75. package/dist/core/OperatorConfig.js.map +1 -0
  76. package/dist/core/OverflowTurn.d.ts +11 -0
  77. package/dist/core/OverflowTurn.d.ts.map +1 -0
  78. package/dist/core/OverflowTurn.js +77 -0
  79. package/dist/core/OverflowTurn.js.map +1 -0
  80. package/dist/core/Owner.js +2 -2
  81. package/dist/core/Owner.js.map +1 -1
  82. package/dist/core/PacketBuilder.d.ts +3 -15
  83. package/dist/core/PacketBuilder.d.ts.map +1 -1
  84. package/dist/core/PacketBuilder.js +52 -113
  85. package/dist/core/PacketBuilder.js.map +1 -1
  86. package/dist/core/ProblemLog.js +1 -1
  87. package/dist/core/ProblemLog.js.map +1 -1
  88. package/dist/core/ProposalLifecycle.d.ts +3 -1
  89. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  90. package/dist/core/ProposalLifecycle.js +9 -26
  91. package/dist/core/ProposalLifecycle.js.map +1 -1
  92. package/dist/core/ProviderInstantiate.d.ts +9 -5
  93. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  94. package/dist/core/ProviderInstantiate.js +99 -104
  95. package/dist/core/ProviderInstantiate.js.map +1 -1
  96. package/dist/core/ResourceMutations.d.ts +2 -2
  97. package/dist/core/ResourceMutations.d.ts.map +1 -1
  98. package/dist/core/ResourceMutations.js +13 -11
  99. package/dist/core/ResourceMutations.js.map +1 -1
  100. package/dist/core/SchemeRegistry.d.ts +18 -11
  101. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  102. package/dist/core/SchemeRegistry.js +201 -53
  103. package/dist/core/SchemeRegistry.js.map +1 -1
  104. package/dist/core/ToolResources.d.ts +19 -0
  105. package/dist/core/ToolResources.d.ts.map +1 -0
  106. package/dist/core/ToolResources.js +122 -0
  107. package/dist/core/ToolResources.js.map +1 -0
  108. package/dist/core/Turn.d.ts +27 -0
  109. package/dist/core/Turn.d.ts.map +1 -0
  110. package/dist/core/Turn.js +43 -0
  111. package/dist/core/Turn.js.map +1 -0
  112. package/dist/core/Turn.sql +72 -0
  113. package/dist/core/TurnOps.d.ts +7 -0
  114. package/dist/core/TurnOps.d.ts.map +1 -0
  115. package/dist/core/TurnOps.js +63 -0
  116. package/dist/core/TurnOps.js.map +1 -0
  117. package/dist/core/TurnRunner.d.ts +15 -5
  118. package/dist/core/TurnRunner.d.ts.map +1 -1
  119. package/dist/core/TurnRunner.js +1050 -900
  120. package/dist/core/TurnRunner.js.map +1 -1
  121. package/dist/core/WorkerName.d.ts +1 -1
  122. package/dist/core/WorkerName.d.ts.map +1 -1
  123. package/dist/core/WorkspaceGate.d.ts +1 -0
  124. package/dist/core/WorkspaceGate.d.ts.map +1 -1
  125. package/dist/core/WorkspaceGate.js +39 -0
  126. package/dist/core/WorkspaceGate.js.map +1 -1
  127. package/dist/core/caps/CoreInteractionCaps.d.ts +9 -0
  128. package/dist/core/caps/CoreInteractionCaps.d.ts.map +1 -0
  129. package/dist/core/caps/CoreInteractionCaps.js +14 -0
  130. package/dist/core/caps/CoreInteractionCaps.js.map +1 -0
  131. package/dist/core/caps/SchemeCtxImpl.d.ts +2 -1
  132. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  133. package/dist/core/caps/SchemeCtxImpl.js +3 -0
  134. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  135. package/dist/core/env-defaults.d.ts.map +1 -1
  136. package/dist/core/env-defaults.js +7 -5
  137. package/dist/core/env-defaults.js.map +1 -1
  138. package/dist/core/fork.d.ts.map +1 -1
  139. package/dist/core/fork.js +15 -4
  140. package/dist/core/fork.js.map +1 -1
  141. package/dist/core/fork.sql +57 -27
  142. package/dist/core/git-env.d.ts +0 -1
  143. package/dist/core/git-env.d.ts.map +1 -1
  144. package/dist/core/git-env.js +0 -3
  145. package/dist/core/git-env.js.map +1 -1
  146. package/dist/core/git-membership.d.ts.map +1 -1
  147. package/dist/core/git-membership.js +10 -26
  148. package/dist/core/git-membership.js.map +1 -1
  149. package/dist/core/git-state.d.ts.map +1 -1
  150. package/dist/core/git-state.js +13 -14
  151. package/dist/core/git-state.js.map +1 -1
  152. package/dist/core/operation-target-groups.d.ts +3 -0
  153. package/dist/core/operation-target-groups.d.ts.map +1 -0
  154. package/dist/core/operation-target-groups.js +53 -0
  155. package/dist/core/operation-target-groups.js.map +1 -0
  156. package/dist/core/packet-inject.d.ts +0 -1
  157. package/dist/core/packet-inject.d.ts.map +1 -1
  158. package/dist/core/packet-inject.js +6 -13
  159. package/dist/core/packet-inject.js.map +1 -1
  160. package/dist/core/packet-wire.d.ts +4 -0
  161. package/dist/core/packet-wire.d.ts.map +1 -1
  162. package/dist/core/packet-wire.js +208 -44
  163. package/dist/core/packet-wire.js.map +1 -1
  164. package/dist/core/plurnk-uri.d.ts +1 -1
  165. package/dist/core/plurnk-uri.d.ts.map +1 -1
  166. package/dist/core/plurnk-uri.js +3 -3
  167. package/dist/core/plurnk-uri.js.map +1 -1
  168. package/dist/core/scheme-types.d.ts +2 -1
  169. package/dist/core/scheme-types.d.ts.map +1 -1
  170. package/dist/core/scheme-types.js.map +1 -1
  171. package/dist/core/teaching.d.ts.map +1 -1
  172. package/dist/core/teaching.js +4 -5
  173. package/dist/core/teaching.js.map +1 -1
  174. package/dist/core/worker-settings.d.ts +9 -0
  175. package/dist/core/worker-settings.d.ts.map +1 -0
  176. package/dist/core/worker-settings.js +25 -0
  177. package/dist/core/worker-settings.js.map +1 -0
  178. package/dist/core/workspace-settings.d.ts +0 -11
  179. package/dist/core/workspace-settings.d.ts.map +1 -1
  180. package/dist/core/workspace-settings.js +3 -47
  181. package/dist/core/workspace-settings.js.map +1 -1
  182. package/dist/digest/Digest.d.ts.map +1 -1
  183. package/dist/digest/Digest.js +164 -92
  184. package/dist/digest/Digest.js.map +1 -1
  185. package/dist/digest/digest.sql +8 -2
  186. package/dist/observe/genai.d.ts +9 -0
  187. package/dist/observe/genai.d.ts.map +1 -0
  188. package/dist/observe/genai.js +31 -0
  189. package/dist/observe/genai.js.map +1 -0
  190. package/dist/observe/spans.d.ts +3 -3
  191. package/dist/observe/spans.d.ts.map +1 -1
  192. package/dist/observe/spans.js +20 -5
  193. package/dist/observe/spans.js.map +1 -1
  194. package/dist/schemes/EffectPolicy.d.ts +3 -0
  195. package/dist/schemes/EffectPolicy.d.ts.map +1 -1
  196. package/dist/schemes/EffectPolicy.js +38 -6
  197. package/dist/schemes/EffectPolicy.js.map +1 -1
  198. package/dist/schemes/Exec.d.ts.map +1 -1
  199. package/dist/schemes/Exec.js +82 -18
  200. package/dist/schemes/Exec.js.map +1 -1
  201. package/dist/schemes/Log.d.ts +6 -2
  202. package/dist/schemes/Log.d.ts.map +1 -1
  203. package/dist/schemes/Log.js +73 -22
  204. package/dist/schemes/Log.js.map +1 -1
  205. package/dist/schemes/Log.sql +25 -7
  206. package/dist/schemes/Prompt.d.ts.map +1 -1
  207. package/dist/schemes/Prompt.js +1 -2
  208. package/dist/schemes/Prompt.js.map +1 -1
  209. package/dist/schemes/QuestionTool.d.ts +10 -0
  210. package/dist/schemes/QuestionTool.d.ts.map +1 -0
  211. package/dist/schemes/QuestionTool.js +81 -0
  212. package/dist/schemes/QuestionTool.js.map +1 -0
  213. package/dist/schemes/Skill.d.ts.map +1 -1
  214. package/dist/schemes/Skill.js +4 -1
  215. package/dist/schemes/Skill.js.map +1 -1
  216. package/dist/schemes/Worker.d.ts.map +1 -1
  217. package/dist/schemes/Worker.js +20 -3
  218. package/dist/schemes/Worker.js.map +1 -1
  219. package/dist/schemes/_entry-crud.sql +19 -1
  220. package/dist/schemes/_entry-find.d.ts +5 -3
  221. package/dist/schemes/_entry-find.d.ts.map +1 -1
  222. package/dist/schemes/_entry-find.js +102 -22
  223. package/dist/schemes/_entry-find.js.map +1 -1
  224. package/dist/schemes/_entry-find.sql +8 -6
  225. package/dist/schemes/_entry-graph.sql +2 -6
  226. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  227. package/dist/schemes/_entry-manifest.js +12 -1
  228. package/dist/schemes/_entry-manifest.js.map +1 -1
  229. package/dist/schemes/_search-index.d.ts.map +1 -1
  230. package/dist/schemes/_search-index.js +37 -25
  231. package/dist/schemes/_search-index.js.map +1 -1
  232. package/dist/server/Daemon.d.ts +69 -12
  233. package/dist/server/Daemon.d.ts.map +1 -1
  234. package/dist/server/Daemon.js +737 -133
  235. package/dist/server/Daemon.js.map +1 -1
  236. package/dist/server/DaemonModule.d.ts +31 -3
  237. package/dist/server/DaemonModule.d.ts.map +1 -1
  238. package/dist/server/DrainSupervisor.d.ts +12 -9
  239. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  240. package/dist/server/DrainSupervisor.js +59 -10
  241. package/dist/server/DrainSupervisor.js.map +1 -1
  242. package/dist/server/client-input.d.ts +7 -2
  243. package/dist/server/client-input.d.ts.map +1 -1
  244. package/dist/server/client-input.js +65 -34
  245. package/dist/server/client-input.js.map +1 -1
  246. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  247. package/dist/server/dispatch-as-plurnk.js +28 -6
  248. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  249. package/dist/server/drain.sql +26 -11
  250. package/dist/server/envelope.d.ts +1 -1
  251. package/dist/server/envelope.d.ts.map +1 -1
  252. package/dist/server/envelope.js +4 -4
  253. package/dist/server/envelope.js.map +1 -1
  254. package/dist/server/envelope.sql +25 -1
  255. package/dist/server/lifecycle-recovery.sql +17 -1
  256. package/dist/server/logEntry.d.ts +2 -1
  257. package/dist/server/logEntry.d.ts.map +1 -1
  258. package/dist/server/logEntry.js +3 -2
  259. package/dist/server/logEntry.js.map +1 -1
  260. package/dist/server/logEntry.sql +7 -0
  261. package/dist/server/loop-model.d.ts +2 -2
  262. package/dist/server/loop-model.d.ts.map +1 -1
  263. package/dist/server/loop-model.js +23 -33
  264. package/dist/server/loop-model.js.map +1 -1
  265. package/dist/server/loopDocs.d.ts +1 -0
  266. package/dist/server/loopDocs.d.ts.map +1 -1
  267. package/dist/server/loopDocs.js +94 -14
  268. package/dist/server/loopDocs.js.map +1 -1
  269. package/dist/server/loopDocs.sql +12 -0
  270. package/dist/server/model-catalog.d.ts +3 -0
  271. package/dist/server/model-catalog.d.ts.map +1 -0
  272. package/dist/server/model-catalog.js +83 -0
  273. package/dist/server/model-catalog.js.map +1 -0
  274. package/dist/server/model-route.d.ts +7 -0
  275. package/dist/server/model-route.d.ts.map +1 -0
  276. package/dist/server/model-route.js +47 -0
  277. package/dist/server/model-route.js.map +1 -0
  278. package/dist/server/module-discovery.d.ts +13 -0
  279. package/dist/server/module-discovery.d.ts.map +1 -0
  280. package/dist/server/module-discovery.js +78 -0
  281. package/dist/server/module-discovery.js.map +1 -0
  282. package/dist/server/skillDocs.d.ts +9 -0
  283. package/dist/server/skillDocs.d.ts.map +1 -0
  284. package/dist/server/skillDocs.js +212 -0
  285. package/dist/server/skillDocs.js.map +1 -0
  286. package/dist/server/skillDocs.sql +14 -0
  287. package/dist/server/workspace-capabilities.sql +19 -0
  288. package/dist/service.d.ts.map +1 -1
  289. package/dist/service.js +182 -123
  290. package/dist/service.js.map +1 -1
  291. package/migrations/001_schema.sql +455 -65
  292. package/package.json +38 -37
  293. package/dist/core/ExecutableTools.d.ts +0 -10
  294. package/dist/core/ExecutableTools.d.ts.map +0 -1
  295. package/dist/core/ExecutableTools.js +0 -41
  296. package/dist/core/ExecutableTools.js.map +0 -1
  297. package/dist/core/JournalTurn.d.ts +0 -9
  298. package/dist/core/JournalTurn.d.ts.map +0 -1
  299. package/dist/core/JournalTurn.js +0 -14
  300. package/dist/core/JournalTurn.js.map +0 -1
  301. package/dist/core/JournalTurn.sql +0 -10
  302. package/dist/core/git-iso.d.ts +0 -13
  303. package/dist/core/git-iso.d.ts.map +0 -1
  304. package/dist/core/git-iso.js +0 -267
  305. package/dist/core/git-iso.js.map +0 -1
  306. package/dist/core/search-gate.d.ts +0 -17
  307. package/dist/core/search-gate.d.ts.map +0 -1
  308. package/dist/core/search-gate.js +0 -77
  309. package/dist/core/search-gate.js.map +0 -1
  310. package/dist/digest/Digest.sql +0 -1
@@ -6,7 +6,6 @@ import SearchIndex from "../schemes/_search-index.js";
6
6
  import GitMembership from "./git-membership.js";
7
7
  import { promptPathname, promptLoopPrefix } from "./plurnk-uri.js";
8
8
  import { contentWeight } from "./content-weight.js";
9
- import SearchGate from "./search-gate.js";
10
9
  import LiveSubscriptions from "./LiveSubscriptions.js";
11
10
  import LoopLifecycle from "./LoopLifecycle.js";
12
11
  import { setTimeout as delay } from "node:timers/promises";
@@ -18,6 +17,7 @@ import ProblemLog from "./ProblemLog.js";
18
17
  import StrikeRail from "./StrikeRail.js";
19
18
  import PacketBuilder from "./PacketBuilder.js";
20
19
  import ProposalLifecycle from "./ProposalLifecycle.js";
20
+ import ClientInteractions from "./ClientInteractions.js";
21
21
  import Dispatcher from "./Dispatcher.js";
22
22
  import TurnRunner, { LOOP_TIMEOUT_REASON } from "./TurnRunner.js";
23
23
  import { observed } from "../observe/spans.js";
@@ -78,8 +78,8 @@ export default class Engine {
78
78
  #problems;
79
79
  #strikes;
80
80
  #packets;
81
- searchGate = new SearchGate();
82
81
  #proposals;
82
+ #interactions;
83
83
  #dispatcher;
84
84
  #turnRunner;
85
85
  #liveSubscriptions = new LiveSubscriptions();
@@ -219,14 +219,16 @@ export default class Engine {
219
219
  #streamEventNotify;
220
220
  #wakeWorkerNotify;
221
221
  #acquireWorkspaceTurn;
222
+ #workspaceTurnStarting;
222
223
  #workspaceTurnCompleted;
223
- constructor({ db, schemes, mimetypes, streamEventNotify, wakeWorkerNotify, injectWorker, branchWorker, branchCompletionGate, cancelWorker, cancelDescendants, acquireWorkspaceTurn, workspaceTurnCompleted, noticeNotify, weigh }) {
224
+ constructor({ db, schemes, mimetypes, streamEventNotify, wakeWorkerNotify, injectWorker, branchWorker, branchCompletionGate, cancelWorker, cancelDescendants, acquireWorkspaceTurn, workspaceTurnStarting, workspaceTurnCompleted, noticeNotify, weigh }) {
224
225
  this.#db = db;
225
226
  this.#lifecycle = new LoopLifecycle(db);
226
227
  this.#schemes = schemes;
227
228
  this.#streamEventNotify = streamEventNotify;
228
229
  this.#wakeWorkerNotify = wakeWorkerNotify;
229
230
  this.#acquireWorkspaceTurn = acquireWorkspaceTurn ?? (async () => () => { });
231
+ this.#workspaceTurnStarting = workspaceTurnStarting;
230
232
  this.#workspaceTurnCompleted = workspaceTurnCompleted;
231
233
  // Default to empty discovery — standalone Engine construction (in
232
234
  // tests) gets no handlers, and content flows through the framework's
@@ -249,16 +251,19 @@ export default class Engine {
249
251
  schemes,
250
252
  executors,
251
253
  });
254
+ this.#interactions = new ClientInteractions(db);
252
255
  this.#proposals = new ProposalLifecycle({
253
256
  db, schemes, notices: this.#notices,
254
257
  streamEventNotify, wakeWorkerNotify,
255
258
  weigh: this.#weighContent, mimetypes: this.#mimetypes, executors, loopSignal,
256
259
  liveSubscriptions: this.#liveSubscriptions,
260
+ interactions: this.#interactions,
257
261
  });
258
- this.#dispatcher = new Dispatcher({ searchGate: this.searchGate,
262
+ this.#dispatcher = new Dispatcher({
259
263
  db, schemes, mimetypes: this.#mimetypes,
260
264
  weigh: this.#weighContent,
261
265
  notices: this.#notices, proposals: this.#proposals,
266
+ interactions: this.#interactions,
262
267
  executors, loopSignal,
263
268
  streamEventNotify, wakeWorkerNotify, injectWorker, branchWorker, branchCompletionGate, cancelWorker, cancelDescendants,
264
269
  parkDeadlines: this.parkDeadlines,
@@ -280,6 +285,7 @@ export default class Engine {
280
285
  wakeWorkerNotify,
281
286
  executors,
282
287
  loopSignal,
288
+ interactions: this.#interactions,
283
289
  warmWorkspace: (context, invalidate, materialize) => this.#queueWorkspaceWarm(context, invalidate, materialize),
284
290
  dispatch: (context) => this.dispatch(context),
285
291
  resolveWorkerProviderIdentity: (workerId) => this.resolveWorkerProviderIdentity(workerId),
@@ -293,8 +299,9 @@ export default class Engine {
293
299
  wakeWorkerNotify,
294
300
  injectWorker,
295
301
  pushNotice: (workspaceId, loopId, notice) => this.#notices.push(workspaceId, loopId, notice),
296
- defaultChannelFor: (scheme) => schemes.defaultChannelFor(scheme),
302
+ defaultChannelFor: (scheme, workspaceId) => schemes.defaultChannelFor(scheme, workspaceId),
297
303
  readExecSource: (statement, ctx) => this.#dispatcher.readExecSource(statement, ctx),
304
+ requestInteraction: (request, ids, signal) => this.#interactions.request(request, ids, signal),
298
305
  liveSubscriptions: this.#liveSubscriptions,
299
306
  });
300
307
  }
@@ -303,23 +310,70 @@ export default class Engine {
303
310
  setExecutors(executors) {
304
311
  this.#executors = executors;
305
312
  }
306
- // Register a module-owned runtime on the same two registries as boot discovery.
307
- // An optional same-name scheme handler lets one capability own both execution
308
- // and addressable state without teaching core its protocol.
309
- registerRuntime(tag, entry, scheme) {
313
+ // Register a complete module-owned runtime set on the same two registries
314
+ // as boot discovery. Both owners prepare the complete set before either
315
+ // publishes a name. {§plugin-namespace-arbitration}
316
+ registerRuntimes(registrations) {
310
317
  if (this.#executors === undefined)
311
- throw new Error("registerRuntime: executor registry not wired yet");
312
- RuntimeTag.assert(tag, "module runtime");
313
- const normalized = {
314
- ...entry,
315
- invocation: RuntimeInvocation.assert(entry.invocation, entry.namespaceOwner.name, tag),
318
+ throw new Error("registerRuntimes: executor registry not wired yet");
319
+ const normalized = registrations.map(({ tag, entry, scheme }) => {
320
+ RuntimeTag.assert(tag, "module runtime");
321
+ return {
322
+ tag,
323
+ entry: {
324
+ ...entry,
325
+ invocation: RuntimeInvocation.assert(entry.invocation, entry.namespaceOwner.name, tag),
326
+ },
327
+ scheme,
328
+ };
329
+ });
330
+ const commitExecutors = this.#executors.prepareRegistrations(normalized);
331
+ const commitSchemes = this.#schemes.prepareRuntimeSchemes(normalized.map(({ tag, entry, scheme }) => ({
332
+ tag,
333
+ executor: entry.executor,
334
+ owner: entry.namespaceOwner,
335
+ facet: scheme,
336
+ })));
337
+ commitSchemes();
338
+ commitExecutors();
339
+ }
340
+ registerRuntime(tag, entry, scheme) {
341
+ this.registerRuntimes([{ tag, entry, scheme }]);
342
+ }
343
+ async prepareWorkspaceRuntimes(workspaceId, namespaceOwner, registrations) {
344
+ if (this.#executors === undefined) {
345
+ throw new Error("prepareWorkspaceRuntimes: executor registry not wired yet");
346
+ }
347
+ const normalized = registrations.map(({ tag, entry, scheme }) => {
348
+ RuntimeTag.assert(tag, "workspace module runtime");
349
+ return {
350
+ tag,
351
+ entry: {
352
+ ...entry,
353
+ invocation: RuntimeInvocation.assert(entry.invocation, entry.namespaceOwner.name, tag),
354
+ },
355
+ scheme,
356
+ };
357
+ });
358
+ const commitExecutors = this.#executors.prepareWorkspaceRegistrations(workspaceId, namespaceOwner, normalized);
359
+ const commitSchemes = await this.#schemes.prepareWorkspaceRuntimeSchemes(workspaceId, namespaceOwner, normalized.map(({ tag, entry, scheme }) => ({
360
+ tag,
361
+ executor: entry.executor,
362
+ owner: entry.namespaceOwner,
363
+ facet: scheme,
364
+ })));
365
+ return () => {
366
+ const rollbackSchemes = commitSchemes();
367
+ const rollbackExecutors = commitExecutors();
368
+ let pending = true;
369
+ return () => {
370
+ if (!pending)
371
+ return;
372
+ pending = false;
373
+ rollbackExecutors();
374
+ rollbackSchemes();
375
+ };
316
376
  };
317
- // Preflight both owners before either write; synchronous registration
318
- // then cannot leave a half-claimed namespace. {§plugin-namespace-arbitration}
319
- this.#executors.assertCanRegister(tag, normalized.namespaceOwner);
320
- this.#schemes.assertRuntimeClaim(tag, normalized.namespaceOwner);
321
- this.#schemes.registerRuntimeScheme(tag, normalized.executor, normalized.namespaceOwner, scheme);
322
- this.#executors.register(tag, normalized);
323
377
  }
324
378
  // A lineage's no-parent root; a root worker resolves to itself. Fail hard
325
379
  // when corruption leaves a worker without one. {§worker-primary}
@@ -376,11 +430,12 @@ export default class Engine {
376
430
  meta: JSON.parse(row.meta ?? "{}"),
377
431
  };
378
432
  }
379
- async runLoop({ provider, childProvider = provider, messages, requirements = "", workspaceId, workerId, loopId, maxTurns = 50, maxStrikes = readMaxStrikes(), minCycles = readPositiveInt("PLURNK_SERVICE_MIN_CYCLES", DEFAULT_MIN_CYCLES), maxCyclePeriod = readPositiveInt("PLURNK_SERVICE_MAX_CYCLE_PERIOD", DEFAULT_MAX_CYCLE_PERIOD), origin = "model", signal, onDispatch, }) {
433
+ async runLoop({ provider, childProvider = provider, messages, requirements = "", workspaceId, workerId, loopId, maxTurns = 50, maxStrikes = readMaxStrikes(), minCycles = readPositiveInt("PLURNK_SERVICE_MIN_CYCLES", DEFAULT_MIN_CYCLES), maxCyclePeriod = readPositiveInt("PLURNK_SERVICE_MAX_CYCLE_PERIOD", DEFAULT_MAX_CYCLE_PERIOD), signal, onDispatch, }) {
380
434
  // A 202 park suspends this durable loop and a later wake re-enters runLoop.
381
435
  // Its ceiling therefore counts every prior turn, not merely this process-local
382
436
  // execution segment.
383
437
  const turnIds = await this.#lifecycle.turnIds(loopId);
438
+ let modelTurnCount = await this.#lifecycle.modelTurnCount(loopId);
384
439
  let invalidEmissionRecoveryEntryId = null;
385
440
  // Per-loop AbortController for scheme-side cancellation propagation.
386
441
  // Chained from the caller's `signal` so an external abort cascades.
@@ -400,8 +455,8 @@ export default class Engine {
400
455
  wall.unref();
401
456
  const timedOut = () => loopAbort.signal.aborted && loopAbort.signal.reason === LOOP_TIMEOUT_REASON;
402
457
  const ruleTimeout = async () => {
403
- const failure = Results.failure("engine:rails", "loop-timeout", 504, `The loop exceeded its wall-clock deadline after ${turnIds.length} turns.`, {}, {
404
- turns: turnIds.length,
458
+ const failure = Results.failure("engine:rails", "loop-timeout", 504, `The loop exceeded its wall-clock deadline after ${modelTurnCount} model turns.`, {}, {
459
+ turns: modelTurnCount,
405
460
  stage: "loop",
406
461
  retryable: false,
407
462
  });
@@ -425,7 +480,6 @@ export default class Engine {
425
480
  }
426
481
  this.#loopAborts.delete(loopId);
427
482
  this.#strikes.delete(loopId);
428
- this.searchGate.cleanup(loopId);
429
483
  this.#notices.delete(loopId);
430
484
  };
431
485
  while (true) {
@@ -463,7 +517,7 @@ export default class Engine {
463
517
  if (timedOut())
464
518
  return await ruleTimeout();
465
519
  signal?.throwIfAborted();
466
- if (maxTurns >= 0 && turnIds.length >= maxTurns) {
520
+ if (maxTurns >= 0 && modelTurnCount >= maxTurns) {
467
521
  const failure = Results.failure("engine:rails", "max-turns", 429, `The configured turn ceiling (${maxTurns}) is exhausted.`, {}, {
468
522
  maximumTurns: maxTurns,
469
523
  stage: "loop",
@@ -490,22 +544,27 @@ export default class Engine {
490
544
  let turn;
491
545
  const releaseWorkspace = await this.#acquireWorkspaceTurn(workspaceId, workerId);
492
546
  try {
547
+ await this.#workspaceTurnStarting?.({ workspaceId, workerId, loopId });
493
548
  turn = await observed(// {§observability-boundary}
494
549
  "loop.turn", { workerId, "loop.id": loopId }, async (span) => {
495
550
  const t = await this.runTurn({
496
- provider, childProvider, messages, requirements, workspaceId, workerId, loopId, origin, signal, onDispatch,
497
- turnNumber: turnIds.length + 1, maxTurns,
551
+ provider, childProvider, messages, requirements, workspaceId, workerId, loopId, signal, onDispatch,
552
+ turnNumber: modelTurnCount + 1, maxTurns,
498
553
  invalidEmissionRecoveryEntryId,
499
554
  });
500
555
  span.setAttribute("turn.id", t.turnId);
556
+ span.setAttribute("turn.producer", t.producer);
557
+ span.setAttribute("turn.kind", t.kind);
501
558
  return t;
502
559
  });
503
- await this.#workspaceTurnCompleted?.({
504
- workspaceId,
505
- workerId,
506
- loopId,
507
- turnId: turn.turnId,
508
- });
560
+ for (const completedTurnId of turn.createdTurnIds) {
561
+ await this.#workspaceTurnCompleted?.({
562
+ workspaceId,
563
+ workerId,
564
+ loopId,
565
+ turnId: completedTurnId,
566
+ });
567
+ }
509
568
  }
510
569
  catch (err) {
511
570
  // The wall fired mid-turn — the abort tore the turn down (generate rides the loop
@@ -517,7 +576,20 @@ export default class Engine {
517
576
  finally {
518
577
  releaseWorkspace();
519
578
  }
520
- turnIds.push(turn.turnId);
579
+ turnIds.push(...turn.createdTurnIds);
580
+ // {§overflow-turn-only} — packetless kernel chronology is not a
581
+ // model attempt and never enters emission or strike accounting.
582
+ if (turn.kind === "overflow") {
583
+ if (turn.curationFailure !== undefined) {
584
+ const result = await this.#lifecycle.finish(loopId, turn.curationFailure);
585
+ if (result === null)
586
+ throw new Error(`loop ${loopId} became terminal before token-overflow settlement`);
587
+ cleanup("forceful", "token_budget_overflow");
588
+ return { turnIds, result, hitMaxTurns: false, reason: "token_budget" };
589
+ }
590
+ continue;
591
+ }
592
+ modelTurnCount++;
521
593
  // {§invalid-emission-attempts} Invalid provider emissions are retried beneath this turn and never
522
594
  // reach the strike rail. The first consecutive exhaustion has already
523
595
  // exposed its bounded lifeline through ordinary next-turn state. A
@@ -525,7 +597,7 @@ export default class Engine {
525
597
  if (turn.emissionExhausted) {
526
598
  if (invalidEmissionRecoveryEntryId === null) {
527
599
  if (turn.rejectedModelEntryId === undefined) {
528
- throw new Error("an admitted invalid-emission recovery requires its rejected model-entry identity");
600
+ throw new Error("an admitted invalid-emission recovery requires its rejected emissionAttempt identity");
529
601
  }
530
602
  invalidEmissionRecoveryEntryId = turn.rejectedModelEntryId;
531
603
  continue;
@@ -542,7 +614,7 @@ export default class Engine {
542
614
  return { turnIds, result, hitMaxTurns: false, reason: "invalid_emission" };
543
615
  }
544
616
  invalidEmissionRecoveryEntryId = null;
545
- // SPEC {§grinder}: the provider rejected the changed request for capacity.
617
+ // {§provider-surface-capacity}: the provider rejected the changed request for capacity.
546
618
  if (turn.capacityHardStop) {
547
619
  if (turn.capacityFailure === undefined) {
548
620
  throw new Error("a provider-capacity stop requires its exact failure");
@@ -567,9 +639,9 @@ export default class Engine {
567
639
  // the engine verdict: cycle-driven is 508; every other strike is 500.
568
640
  const status = verdict.cycleDetected ? 508 : 500;
569
641
  const failure = Results.failure("engine:rails", "strike-threshold", status, verdict.cycleDetected
570
- ? `The loop reached its strike threshold after ${turnIds.length} turns because its operation pattern repeated.`
571
- : `The loop reached its strike threshold after ${turnIds.length} turns because consecutive turns failed.`, {}, {
572
- turns: turnIds.length,
642
+ ? `The loop reached its strike threshold after ${modelTurnCount} model turns because its operation pattern repeated.`
643
+ : `The loop reached its strike threshold after ${modelTurnCount} model turns because consecutive turns failed.`, {}, {
644
+ turns: modelTurnCount,
573
645
  stage: "loop",
574
646
  retryable: false,
575
647
  });
@@ -584,8 +656,8 @@ export default class Engine {
584
656
  runTurn(args) {
585
657
  return this.#turnRunner.runTurn(args);
586
658
  }
587
- docEntries(workspaceId) {
588
- return this.#packets.docEntries(workspaceId);
659
+ referenceEntries(workspaceId) {
660
+ return this.#packets.referenceEntries(workspaceId);
589
661
  }
590
662
  // {§env-delta-log-pull} — materialize one closed interval of the ambient
591
663
  // occurrence journal into this worker's self-contained log. #67 owns only
@@ -635,6 +707,15 @@ export default class Engine {
635
707
  async pendingProposals(workspaceId) {
636
708
  return this.#proposals.list(workspaceId);
637
709
  }
710
+ onClientInteractionPending(listener) {
711
+ this.#interactions.onPending(listener);
712
+ }
713
+ async pendingClientInteractions(workspaceId) {
714
+ return this.#interactions.list(workspaceId);
715
+ }
716
+ async resolveClientInteraction(interactionId, resolution) {
717
+ await this.#interactions.resolve(interactionId, resolution);
718
+ }
638
719
  // Used by wake-on-completion (daemon side): "is there any loop in this
639
720
  // worker still accepting turns?" If yes, skip the wake — the active loop
640
721
  // will pick up the channel transition at its next turn boundary. If no,
@@ -650,13 +731,13 @@ export default class Engine {
650
731
  async warmWorkspaceDerivations(workspaceId) {
651
732
  const ctx = {
652
733
  db: this.#db, workspaceId, workerId: 0, loopId: 0, turnId: 0,
653
- writer: "plurnk",
734
+ writer: "_plurnk",
654
735
  signal: undefined,
655
736
  streamEventNotify: this.#streamEventNotify,
656
737
  wakeWorkerNotify: this.#wakeWorkerNotify,
657
738
  weigh: this.#weighContent,
658
739
  mimetypes: this.#mimetypes,
659
- defaultChannelFor: (s) => this.#schemes.defaultChannelFor(s),
740
+ defaultChannelFor: (s) => this.#schemes.defaultChannelFor(s, workspaceId),
660
741
  pushNotice: (notice) => this.#notices.notify(workspaceId, 0, notice),
661
742
  };
662
743
  await this.#queueWorkspaceWarm(ctx); // materialize first; overlapping requests coalesce and rescan
@@ -705,7 +786,7 @@ export default class Engine {
705
786
  const ctx = {
706
787
  db: this.#db, workspaceId: workspaceRow.workspace_id, workerId, loopId,
707
788
  turnId: 0, // no turn open at inject time; entries don't pin turnId
708
- writer: "plurnk",
789
+ writer: "_plurnk",
709
790
  signal: this.#loopAborts.get(loopId)?.signal,
710
791
  streamEventNotify: this.#streamEventNotify,
711
792
  wakeWorkerNotify: this.#wakeWorkerNotify,
@@ -1 +1 @@
1
- {"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../src/core/Engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../src/core/Engine.ts"],"names":[],"mappings":"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"}