@plurnk/plurnk-service 1.14.2 → 1.15.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 (292) hide show
  1. package/SPEC.md +177 -135
  2. package/dist/build-info.json +1 -1
  3. package/dist/content/byte-view.d.ts +14 -0
  4. package/dist/content/byte-view.d.ts.map +1 -0
  5. package/dist/content/byte-view.js +33 -0
  6. package/dist/content/byte-view.js.map +1 -0
  7. package/dist/content/edit-receipt.d.ts.map +1 -1
  8. package/dist/content/edit-receipt.js +12 -1
  9. package/dist/content/edit-receipt.js.map +1 -1
  10. package/dist/content/line-marker.d.ts +2 -1
  11. package/dist/content/line-marker.d.ts.map +1 -1
  12. package/dist/content/line-marker.js +1 -0
  13. package/dist/content/line-marker.js.map +1 -1
  14. package/dist/content/matcher.d.ts +1 -0
  15. package/dist/content/matcher.d.ts.map +1 -1
  16. package/dist/content/matcher.js +1 -0
  17. package/dist/content/matcher.js.map +1 -1
  18. package/dist/content/read-projector.d.ts +4 -1
  19. package/dist/content/read-projector.d.ts.map +1 -1
  20. package/dist/content/read-projector.js +80 -3
  21. package/dist/content/read-projector.js.map +1 -1
  22. package/dist/core/AdmittedTurnExecutor.d.ts +43 -0
  23. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -0
  24. package/dist/core/AdmittedTurnExecutor.js +245 -0
  25. package/dist/core/AdmittedTurnExecutor.js.map +1 -0
  26. package/dist/core/BareBatchRunner.d.ts +26 -0
  27. package/dist/core/BareBatchRunner.d.ts.map +1 -0
  28. package/dist/core/BareBatchRunner.js +104 -0
  29. package/dist/core/BareBatchRunner.js.map +1 -0
  30. package/dist/core/BudgetReadout.d.ts +1 -1
  31. package/dist/core/BudgetReadout.d.ts.map +1 -1
  32. package/dist/core/BudgetReadout.js +19 -10
  33. package/dist/core/BudgetReadout.js.map +1 -1
  34. package/dist/core/CapabilityResolver.d.ts +2 -1
  35. package/dist/core/CapabilityResolver.d.ts.map +1 -1
  36. package/dist/core/CapabilityResolver.js +8 -9
  37. package/dist/core/CapabilityResolver.js.map +1 -1
  38. package/dist/core/ChannelWrite.d.ts +1 -1
  39. package/dist/core/ChannelWrite.d.ts.map +1 -1
  40. package/dist/core/DataStatementRunner.d.ts +35 -0
  41. package/dist/core/DataStatementRunner.d.ts.map +1 -0
  42. package/dist/core/DataStatementRunner.js +252 -0
  43. package/dist/core/DataStatementRunner.js.map +1 -0
  44. package/dist/core/Dispatcher.d.ts +8 -3
  45. package/dist/core/Dispatcher.d.ts.map +1 -1
  46. package/dist/core/Dispatcher.js +88 -738
  47. package/dist/core/Dispatcher.js.map +1 -1
  48. package/dist/core/EditMutations.d.ts +39 -0
  49. package/dist/core/EditMutations.d.ts.map +1 -0
  50. package/dist/core/EditMutations.js +418 -0
  51. package/dist/core/EditMutations.js.map +1 -0
  52. package/dist/core/Engine.d.ts +2 -23
  53. package/dist/core/Engine.d.ts.map +1 -1
  54. package/dist/core/Engine.js +18 -240
  55. package/dist/core/Engine.js.map +1 -1
  56. package/dist/core/Engine.sql +22 -15
  57. package/dist/core/KillHandler.d.ts +32 -0
  58. package/dist/core/KillHandler.d.ts.map +1 -0
  59. package/dist/core/KillHandler.js +179 -0
  60. package/dist/core/KillHandler.js.map +1 -0
  61. package/dist/core/LogVisibility.d.ts +1 -1
  62. package/dist/core/LogVisibility.d.ts.map +1 -1
  63. package/dist/core/LogVisibility.js +3 -4
  64. package/dist/core/LogVisibility.js.map +1 -1
  65. package/dist/core/LogWriter.d.ts +42 -0
  66. package/dist/core/LogWriter.d.ts.map +1 -0
  67. package/dist/core/LogWriter.js +136 -0
  68. package/dist/core/LogWriter.js.map +1 -0
  69. package/dist/core/LoopDriver.d.ts +46 -0
  70. package/dist/core/LoopDriver.d.ts.map +1 -0
  71. package/dist/core/LoopDriver.js +263 -0
  72. package/dist/core/LoopDriver.js.map +1 -0
  73. package/dist/core/LoopLifecycle.d.ts +2 -1
  74. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  75. package/dist/core/MembershipMaterialization.d.ts +7 -0
  76. package/dist/core/MembershipMaterialization.d.ts.map +1 -0
  77. package/dist/core/MembershipMaterialization.js +283 -0
  78. package/dist/core/MembershipMaterialization.js.map +1 -0
  79. package/dist/core/MutationEffects.d.ts +29 -0
  80. package/dist/core/MutationEffects.d.ts.map +1 -0
  81. package/dist/core/MutationEffects.js +318 -0
  82. package/dist/core/MutationEffects.js.map +1 -0
  83. package/dist/core/OverflowTurn.d.ts +4 -4
  84. package/dist/core/OverflowTurn.d.ts.map +1 -1
  85. package/dist/core/OverflowTurn.js +6 -7
  86. package/dist/core/OverflowTurn.js.map +1 -1
  87. package/dist/core/PacketBuilder.d.ts.map +1 -1
  88. package/dist/core/PacketBuilder.js +28 -5
  89. package/dist/core/PacketBuilder.js.map +1 -1
  90. package/dist/core/ResourceMutations.d.ts +12 -36
  91. package/dist/core/ResourceMutations.d.ts.map +1 -1
  92. package/dist/core/ResourceMutations.js +27 -1351
  93. package/dist/core/ResourceMutations.js.map +1 -1
  94. package/dist/core/ResourceSelector.d.ts +21 -0
  95. package/dist/core/ResourceSelector.d.ts.map +1 -0
  96. package/dist/core/ResourceSelector.js +204 -0
  97. package/dist/core/ResourceSelector.js.map +1 -0
  98. package/dist/core/ResourceTransfers.d.ts +55 -0
  99. package/dist/core/ResourceTransfers.d.ts.map +1 -0
  100. package/dist/core/ResourceTransfers.js +460 -0
  101. package/dist/core/ResourceTransfers.js.map +1 -0
  102. package/dist/core/SchemeRegistry.js +2 -2
  103. package/dist/core/SchemeRegistry.js.map +1 -1
  104. package/dist/core/SendBroadcastHandler.d.ts +40 -0
  105. package/dist/core/SendBroadcastHandler.d.ts.map +1 -0
  106. package/dist/core/SendBroadcastHandler.js +159 -0
  107. package/dist/core/SendBroadcastHandler.js.map +1 -0
  108. package/dist/core/StoredPacket.d.ts +11 -0
  109. package/dist/core/StoredPacket.d.ts.map +1 -1
  110. package/dist/core/StoredPacket.js +22 -1
  111. package/dist/core/StoredPacket.js.map +1 -1
  112. package/dist/core/StrikeRail.d.ts.map +1 -1
  113. package/dist/core/StrikeRail.js +19 -9
  114. package/dist/core/StrikeRail.js.map +1 -1
  115. package/dist/core/TokenCalibration.d.ts +16 -0
  116. package/dist/core/TokenCalibration.d.ts.map +1 -0
  117. package/dist/core/TokenCalibration.js +35 -0
  118. package/dist/core/TokenCalibration.js.map +1 -0
  119. package/dist/core/ToolResources.d.ts.map +1 -1
  120. package/dist/core/ToolResources.js +15 -12
  121. package/dist/core/ToolResources.js.map +1 -1
  122. package/dist/core/TurnMaterialization.d.ts +37 -0
  123. package/dist/core/TurnMaterialization.d.ts.map +1 -0
  124. package/dist/core/TurnMaterialization.js +307 -0
  125. package/dist/core/TurnMaterialization.js.map +1 -0
  126. package/dist/core/TurnOps.d.ts.map +1 -1
  127. package/dist/core/TurnOps.js +4 -6
  128. package/dist/core/TurnOps.js.map +1 -1
  129. package/dist/core/TurnRunner.d.ts +15 -27
  130. package/dist/core/TurnRunner.d.ts.map +1 -1
  131. package/dist/core/TurnRunner.js +73 -667
  132. package/dist/core/TurnRunner.js.map +1 -1
  133. package/dist/core/WorkerControlHandler.d.ts +15 -0
  134. package/dist/core/WorkerControlHandler.d.ts.map +1 -0
  135. package/dist/core/WorkerControlHandler.js +89 -0
  136. package/dist/core/WorkerControlHandler.js.map +1 -0
  137. package/dist/core/attachments.d.ts +14 -0
  138. package/dist/core/attachments.d.ts.map +1 -0
  139. package/dist/core/attachments.js +18 -0
  140. package/dist/core/attachments.js.map +1 -0
  141. package/dist/core/git-membership.d.ts +15 -0
  142. package/dist/core/git-membership.d.ts.map +1 -1
  143. package/dist/core/git-membership.js +4 -273
  144. package/dist/core/git-membership.js.map +1 -1
  145. package/dist/core/git-state.d.ts +2 -1
  146. package/dist/core/git-state.d.ts.map +1 -1
  147. package/dist/core/mutation-types.d.ts +101 -0
  148. package/dist/core/mutation-types.d.ts.map +1 -0
  149. package/dist/core/mutation-types.js +2 -0
  150. package/dist/core/mutation-types.js.map +1 -0
  151. package/dist/core/operation-target-groups.js +1 -1
  152. package/dist/core/operation-target-groups.js.map +1 -1
  153. package/dist/core/packet-wire.d.ts +7 -6
  154. package/dist/core/packet-wire.d.ts.map +1 -1
  155. package/dist/core/packet-wire.js +57 -6
  156. package/dist/core/packet-wire.js.map +1 -1
  157. package/dist/core/plurnk-uri.d.ts +0 -1
  158. package/dist/core/plurnk-uri.d.ts.map +1 -1
  159. package/dist/core/plurnk-uri.js +1 -1
  160. package/dist/core/plurnk-uri.js.map +1 -1
  161. package/dist/core/statement-primary.d.ts +4 -0
  162. package/dist/core/statement-primary.d.ts.map +1 -0
  163. package/dist/core/statement-primary.js +3 -0
  164. package/dist/core/statement-primary.js.map +1 -0
  165. package/dist/core/teaching-corpus.d.ts +0 -1
  166. package/dist/core/teaching-corpus.d.ts.map +1 -1
  167. package/dist/core/teaching-corpus.js +0 -9
  168. package/dist/core/teaching-corpus.js.map +1 -1
  169. package/dist/core/turn-scheduler.js +3 -3
  170. package/dist/core/turn-scheduler.js.map +1 -1
  171. package/dist/core/turn-signals.d.ts +15 -0
  172. package/dist/core/turn-signals.d.ts.map +1 -0
  173. package/dist/core/turn-signals.js +19 -0
  174. package/dist/core/turn-signals.js.map +1 -0
  175. package/dist/core/worker-settings.d.ts +0 -1
  176. package/dist/core/worker-settings.d.ts.map +1 -1
  177. package/dist/core/worker-settings.js +1 -1
  178. package/dist/core/worker-settings.js.map +1 -1
  179. package/dist/digest/Digest.d.ts +3 -16
  180. package/dist/digest/Digest.d.ts.map +1 -1
  181. package/dist/digest/Digest.js +10 -958
  182. package/dist/digest/Digest.js.map +1 -1
  183. package/dist/digest/DigestRender.d.ts +12 -0
  184. package/dist/digest/DigestRender.d.ts.map +1 -0
  185. package/dist/digest/DigestRender.js +644 -0
  186. package/dist/digest/DigestRender.js.map +1 -0
  187. package/dist/digest/DigestRequiem.d.ts +13 -0
  188. package/dist/digest/DigestRequiem.d.ts.map +1 -0
  189. package/dist/digest/DigestRequiem.js +332 -0
  190. package/dist/digest/DigestRequiem.js.map +1 -0
  191. package/dist/digest/digest-rows.d.ts +306 -0
  192. package/dist/digest/digest-rows.d.ts.map +1 -0
  193. package/dist/digest/digest-rows.js +2 -0
  194. package/dist/digest/digest-rows.js.map +1 -0
  195. package/dist/observe/api.d.ts +0 -2
  196. package/dist/observe/api.d.ts.map +1 -1
  197. package/dist/observe/api.js +2 -2
  198. package/dist/observe/api.js.map +1 -1
  199. package/dist/observe/metrics.d.ts +0 -1
  200. package/dist/observe/metrics.d.ts.map +1 -1
  201. package/dist/observe/metrics.js +0 -1
  202. package/dist/observe/metrics.js.map +1 -1
  203. package/dist/schemes/Exec.d.ts +4 -1
  204. package/dist/schemes/Exec.d.ts.map +1 -1
  205. package/dist/schemes/Exec.js +90 -45
  206. package/dist/schemes/Exec.js.map +1 -1
  207. package/dist/schemes/ExecOutputScheme.d.ts +2 -1
  208. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  209. package/dist/schemes/ExecOutputScheme.js +3 -3
  210. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  211. package/dist/schemes/File.d.ts +4 -1
  212. package/dist/schemes/File.d.ts.map +1 -1
  213. package/dist/schemes/File.js +70 -4
  214. package/dist/schemes/File.js.map +1 -1
  215. package/dist/schemes/Log.d.ts +4 -5
  216. package/dist/schemes/Log.d.ts.map +1 -1
  217. package/dist/schemes/Log.js +20 -98
  218. package/dist/schemes/Log.js.map +1 -1
  219. package/dist/schemes/Worker.d.ts.map +1 -1
  220. package/dist/schemes/Worker.js +0 -12
  221. package/dist/schemes/Worker.js.map +1 -1
  222. package/dist/schemes/_entry-crud.d.ts +0 -1
  223. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  224. package/dist/schemes/_entry-crud.js.map +1 -1
  225. package/dist/schemes/_entry-find.d.ts +4 -2
  226. package/dist/schemes/_entry-find.d.ts.map +1 -1
  227. package/dist/schemes/_entry-find.js +68 -10
  228. package/dist/schemes/_entry-find.js.map +1 -1
  229. package/dist/schemes/_entry-manifest.d.ts +1 -2
  230. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  231. package/dist/schemes/_entry-ops.d.ts +2 -1
  232. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  233. package/dist/schemes/_entry-ops.js +12 -2
  234. package/dist/schemes/_entry-ops.js.map +1 -1
  235. package/dist/schemes/_entry-semantic.d.ts +1 -0
  236. package/dist/schemes/_entry-semantic.d.ts.map +1 -1
  237. package/dist/schemes/_entry-semantic.js +3 -0
  238. package/dist/schemes/_entry-semantic.js.map +1 -1
  239. package/dist/schemes/_entry-semantic.sql +2 -2
  240. package/dist/schemes/_entry-send.d.ts +0 -1
  241. package/dist/schemes/_entry-send.d.ts.map +1 -1
  242. package/dist/schemes/_entry-send.js +5 -80
  243. package/dist/schemes/_entry-send.js.map +1 -1
  244. package/dist/schemes/exec-runtime.d.ts +7 -0
  245. package/dist/schemes/exec-runtime.d.ts.map +1 -0
  246. package/dist/schemes/exec-runtime.js +2 -0
  247. package/dist/schemes/exec-runtime.js.map +1 -0
  248. package/dist/server/ClientReads.d.ts +34 -0
  249. package/dist/server/ClientReads.d.ts.map +1 -0
  250. package/dist/server/ClientReads.js +210 -0
  251. package/dist/server/ClientReads.js.map +1 -0
  252. package/dist/server/Daemon.d.ts +12 -22
  253. package/dist/server/Daemon.d.ts.map +1 -1
  254. package/dist/server/Daemon.js +31 -362
  255. package/dist/server/Daemon.js.map +1 -1
  256. package/dist/server/DaemonModule.d.ts +6 -5
  257. package/dist/server/DaemonModule.d.ts.map +1 -1
  258. package/dist/server/DrainSupervisor.d.ts +3 -2
  259. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  260. package/dist/server/DrainSupervisor.js +7 -3
  261. package/dist/server/DrainSupervisor.js.map +1 -1
  262. package/dist/server/Functionality.d.ts +0 -12
  263. package/dist/server/Functionality.d.ts.map +1 -1
  264. package/dist/server/Functionality.js.map +1 -1
  265. package/dist/server/FunctionalityManager.d.ts +0 -1
  266. package/dist/server/FunctionalityManager.d.ts.map +1 -1
  267. package/dist/server/FunctionalityManager.js +2 -2
  268. package/dist/server/FunctionalityManager.js.map +1 -1
  269. package/dist/server/MembersFunctionality.d.ts +2 -13
  270. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  271. package/dist/server/MembersFunctionality.js +4 -4
  272. package/dist/server/MembersFunctionality.js.map +1 -1
  273. package/dist/server/SkillsFunctionality.d.ts +1 -7
  274. package/dist/server/SkillsFunctionality.d.ts.map +1 -1
  275. package/dist/server/SkillsFunctionality.js +3 -3
  276. package/dist/server/SkillsFunctionality.js.map +1 -1
  277. package/dist/server/WorkerModelResolver.d.ts +17 -0
  278. package/dist/server/WorkerModelResolver.d.ts.map +1 -0
  279. package/dist/server/WorkerModelResolver.js +166 -0
  280. package/dist/server/WorkerModelResolver.js.map +1 -0
  281. package/dist/server/daemon-results.d.ts +5 -0
  282. package/dist/server/daemon-results.d.ts.map +1 -0
  283. package/dist/server/daemon-results.js +7 -0
  284. package/dist/server/daemon-results.js.map +1 -0
  285. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  286. package/dist/server/dispatch-as-plurnk.js +4 -6
  287. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  288. package/dist/server/loopDocs.d.ts.map +1 -1
  289. package/dist/server/loopDocs.js +11 -2
  290. package/dist/server/loopDocs.js.map +1 -1
  291. package/migrations/001_schema.sql +21 -92
  292. package/package.json +30 -30
@@ -0,0 +1,159 @@
1
+ import TerminalResult from "./TerminalResult.js";
2
+ import Results from "./results.js";
3
+ import ErrorDetail from "./ErrorDetail.js";
4
+ export default class SendBroadcastHandler {
5
+ #db;
6
+ #cancelDescendants;
7
+ #parkDeadlines;
8
+ #joinTargets;
9
+ #lifecycle;
10
+ #nextPacketBoundaries;
11
+ #unobservedFailureCount;
12
+ #pendingSet;
13
+ #hasLiveWork;
14
+ #failure;
15
+ #statusResult;
16
+ #unobservedFailures;
17
+ constructor({ db, cancelDescendants, parkDeadlines, joinTargets, lifecycle, nextPacketBoundaries, unobservedFailureCount, pendingSet, hasLiveWork, failure, statusResult, unobservedFailures }) {
18
+ this.#db = db;
19
+ this.#cancelDescendants = cancelDescendants;
20
+ this.#parkDeadlines = parkDeadlines;
21
+ this.#joinTargets = joinTargets;
22
+ this.#lifecycle = lifecycle;
23
+ this.#nextPacketBoundaries = nextPacketBoundaries;
24
+ this.#unobservedFailureCount = unobservedFailureCount;
25
+ this.#pendingSet = pendingSet;
26
+ this.#hasLiveWork = hasLiveWork;
27
+ this.#failure = failure;
28
+ this.#statusResult = statusResult;
29
+ this.#unobservedFailures = unobservedFailures;
30
+ }
31
+ async handleSendBroadcast(statement, ctx) {
32
+ if (statement.op !== "SEND")
33
+ throw new Error("unreachable");
34
+ const { workerId, loopId, turnId } = ctx;
35
+ const status = statement.status;
36
+ // {§send-label} — a targetless SEND without a label is a message to the user: delivered
37
+ // through the log row, it changes nothing about the loop.
38
+ if (status === null)
39
+ return { status: 200 };
40
+ const raw = statement.body === null ? "" : statement.body.raw;
41
+ // The park rides SEND signal 202 only ({§park-202-only}). A scoped signal 102 is neither
42
+ // a wait nor a meaningful continuation, so reject it instead of preserving the
43
+ // retired dual spelling.
44
+ if (status === 102 && statement.lineMarker !== null) {
45
+ return this.#failure("send-scope-invalid", 400, "`## SEND0 (NEXT)` does not accept a scope.", {}, {
46
+ requestedStatus: 102,
47
+ scope: statement.lineMarker,
48
+ recovery: "Use `## SEND0 (WAIT) <scope>` to wait, or remove the scope to continue.",
49
+ retryable: false,
50
+ });
51
+ }
52
+ // A bare continue after an armed running-worker READ becomes an
53
+ // indefinite park. {§join-blocking-collect}
54
+ const joinArmed = this.#joinTargets.delete(loopId);
55
+ if (status === 102 && statement.lineMarker === null && joinArmed) {
56
+ if (!await this.#lifecycle.park(loopId)) {
57
+ return this.#statusResult(await this.#lifecycle.status(loopId), "loop-already-terminal", "The loop was already terminal when SEND attempted to park it.");
58
+ }
59
+ this.#parkDeadlines.set(loopId, -1); // indefinite: the bounded child's terminal is the wake edge
60
+ return { status: 102, attrs: { parked: -1, join: true } };
61
+ }
62
+ // {§wait-obligation-matrix} — SEND signal 202 is the obligation-checked join. A live
63
+ // obligation (a spawned child or open stream, J) BLOCKS the loop until it concludes and
64
+ // reawakens it ({§worker-lifecycle-child-wake}); a wait on nothing (∅) is already satisfied and
65
+ // resolves like 200, so <-1>+∅ self-resolves rather than hang the agent; a pending own
66
+ // retrieval (R) just lands next turn, so the wait continues.
67
+ if (status === 202) {
68
+ const marks = statement.lineMarker?.marks[0];
69
+ // `<T>` is MINUTES, held in seconds; bare 202 / absent T = indefinite, bounded by the join.
70
+ const seconds = typeof marks === "number" ? (marks > 0 ? marks * 60 : marks) : -1;
71
+ if (await this.#hasLiveWork(workerId)) {
72
+ if (!await this.#lifecycle.park(loopId)) {
73
+ return this.#statusResult(await this.#lifecycle.status(loopId), "loop-already-terminal", "The loop was already terminal when SEND attempted to wait.");
74
+ }
75
+ this.#parkDeadlines.set(loopId, seconds);
76
+ return { status: 202, attrs: { waiting: seconds } };
77
+ }
78
+ // Retrievals, fast stream conclusions, and child conclusions are
79
+ // all complete-but-unobserved. Their wake edge may already have
80
+ // fired, so do not park; continue directly to the packet that
81
+ // materializes them.
82
+ const boundaries = await this.#nextPacketBoundaries(workerId, turnId);
83
+ if (boundaries.retrievals || boundaries.folds || boundaries.streamTerminations.length > 0 || boundaries.childTerminations) {
84
+ return { status: 102 };
85
+ }
86
+ const failCount = await this.#unobservedFailureCount(turnId);
87
+ if (failCount > 0)
88
+ return this.#unobservedFailures(failCount);
89
+ // The joined set is already drained. Awaiting an empty task group completes
90
+ // immediately; it never parks and needs no corrective model turn.
91
+ const finished = await this.#lifecycle.finish(loopId, TerminalResult.success(raw));
92
+ return {
93
+ status: finished !== null ? 200 : await this.#lifecycle.status(loopId),
94
+ attrs: { joined: true, pending: 0 },
95
+ };
96
+ }
97
+ // [200] — terminate, gated by the pending set (post-batch). The row records the refused
98
+ // attempt faithfully (status_rx=409, never erased); the loop stays a continue; the strike
99
+ // couples in runTurn. [499] abandons and cancels the descendant scope.
100
+ if (status === 200) {
101
+ // Model completion is a claim about the Worker's observed work and
102
+ // therefore crosses the pending-result rails. A `_plurnk`
103
+ // maintenance program closes only its own administrative loop; it
104
+ // must not claim, consume, or be blocked by model work elsewhere in
105
+ // the same Worker.
106
+ if (ctx.origin === "model") {
107
+ // {§send-premature-terminate} — same-turn failures are unobserved
108
+ // pending results and therefore refuse completion.
109
+ const failCount = await this.#unobservedFailureCount(turnId);
110
+ if (failCount > 0)
111
+ return this.#unobservedFailures(failCount);
112
+ const pending = await this.#pendingSet(workerId, turnId);
113
+ if (pending.length > 0) {
114
+ // A receipts-only refusal needs no KILL/park remedy menu: the results simply
115
+ // arrive in the next packet. Streams and children retain their remedy steer.
116
+ const receiptsOnly = pending.every((kind) => kind === "receipts");
117
+ if (receiptsOnly) {
118
+ return this.#failure("retrieval-results-unobserved", 409, "Completion preceded this turn's operation results; they enter the next packet.", {}, {
119
+ pending: [...pending],
120
+ stage: "completion",
121
+ retryable: false,
122
+ });
123
+ }
124
+ return this.#failure("work-remains", 409, "Completion encountered pending work or results.", {}, {
125
+ pending: [...pending],
126
+ stage: "completion",
127
+ retryable: false,
128
+ });
129
+ }
130
+ }
131
+ const finished = await this.#lifecycle.finish(loopId, TerminalResult.success(raw));
132
+ return this.#statusResult(finished !== null ? 200 : await this.#lifecycle.status(loopId), "loop-already-terminal", "The loop was already terminal when SEND attempted to conclude it.");
133
+ }
134
+ if (status === 499) {
135
+ const reason = raw === "" ? null : ErrorDetail.preview(raw);
136
+ const failure = this.#failure("scope-abandoned", 499, "The worker ended its scope with SEND[499].", {}, {
137
+ ...(reason === null ? {} : { reason }),
138
+ retryable: false,
139
+ });
140
+ const seqs = await this.#db.engine_loop_turn_seqs.get({
141
+ loop_id: loopId,
142
+ turn_id: turnId,
143
+ });
144
+ if (seqs === undefined) {
145
+ throw new Error(`SEND signal 499: no coordinate for loop=${loopId} turn=${turnId}`);
146
+ }
147
+ Results.attachInstance(failure, `log:///${seqs.loop_seq}/${seqs.turn_seq}/${ctx.sequence}/SEND`);
148
+ const finished = await this.#lifecycle.finish(loopId, failure);
149
+ if (finished === null)
150
+ return this.#statusResult(await this.#lifecycle.status(loopId), "loop-already-terminal", "The loop was already terminal when SEND attempted to abandon it.");
151
+ await this.#cancelDescendants?.(workerId, reason ?? "parent worker ended its scope with SEND[499]");
152
+ return failure;
153
+ }
154
+ // Every other signal — 102 bare, 202 (retired as a terminal; now ordinary mid-comms), 1xx —
155
+ // is a plain broadcast row: no loop transition.
156
+ return this.#statusResult(status, "send-broadcast-failed", raw === "" ? `SEND broadcast reported status ${status}.` : raw);
157
+ }
158
+ }
159
+ //# sourceMappingURL=SendBroadcastHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendBroadcastHandler.js","sourceRoot":"","sources":["../../src/core/SendBroadcastHandler.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,21 @@ export type PacketAssistant = {
8
8
  ops: PlurnkStatement[];
9
9
  reasoning: string | null;
10
10
  };
11
+ export interface PacketAttachment {
12
+ readonly scheme: string;
13
+ readonly pathname: string;
14
+ readonly mimetype: string;
15
+ readonly kind: "image" | "pdf";
16
+ readonly weight: number;
17
+ readonly width?: number;
18
+ readonly height?: number;
19
+ readonly pages?: number;
20
+ }
11
21
  export type RequestPacket = {
12
22
  weight: number;
13
23
  sections: StoredPacketSection[];
14
24
  attributions: string[];
25
+ attachments?: PacketAttachment[];
15
26
  };
16
27
  export type AdmittedPacket = RequestPacket & {
17
28
  assistant: PacketAssistant;
@@ -1 +1 @@
1
- {"version":3,"file":"StoredPacket.d.ts","sourceRoot":"","sources":["../../src/core/StoredPacket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,eAAe,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG;IACzC,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC;AAM3D,MAAM,CAAC,OAAO,OAAO,YAAY;;IAC7B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,GAAG,cAAc,CAQtG;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAM9C;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,SAAkB,GAAG,aAAa,GAAG,IAAI,CAahF;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,IAAI,cAAc,CAEjE;IAED,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,SAAW,GAAG,aAAa,CA4B/D;CA8EJ"}
1
+ {"version":3,"file":"StoredPacket.d.ts","sourceRoot":"","sources":["../../src/core/StoredPacket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,eAAe,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAGF,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAC3B;AACD,MAAM,MAAM,aAAa,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG;IACzC,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC;AAM3D,MAAM,CAAC,OAAO,OAAO,YAAY;;IAC7B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,GAAG,cAAc,CAQtG;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAM9C;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,SAAkB,GAAG,aAAa,GAAG,IAAI,CAahF;IAiBD,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,IAAI,cAAc,CAEjE;IAED,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,SAAW,GAAG,aAAa,CA6B/D;CA8EJ"}
@@ -38,12 +38,33 @@ export default class StoredPacket {
38
38
  throw new Error(`${subject} has an invalid packet shape`, { cause });
39
39
  }
40
40
  }
41
+ static #attachments(value, subject) {
42
+ if (!Array.isArray(value))
43
+ throw new TypeError(`${subject} must be an array`);
44
+ value.forEach((item, index) => {
45
+ const attachment = StoredPacket.#record(item, `${subject}[${index}]`);
46
+ StoredPacket.#keys(attachment, ["scheme", "pathname", "mimetype", "kind", "weight"], ["scheme", "pathname", "mimetype", "kind", "weight", "width", "height", "pages"], `${subject}[${index}]`);
47
+ for (const key of ["scheme", "pathname", "mimetype"]) {
48
+ if (typeof attachment[key] !== "string" || attachment[key] === "")
49
+ throw new TypeError(`${subject}[${index}].${key} must be a non-empty string`);
50
+ }
51
+ if (attachment.kind !== "image" && attachment.kind !== "pdf")
52
+ throw new TypeError(`${subject}[${index}].kind must be "image" or "pdf"`);
53
+ StoredPacket.#nonnegativeInteger(attachment.weight, `${subject}[${index}].weight`);
54
+ for (const key of ["width", "height", "pages"]) {
55
+ if (own(attachment, key))
56
+ StoredPacket.#nonnegativeInteger(attachment[key], `${subject}[${index}].${key}`);
57
+ }
58
+ });
59
+ }
41
60
  static isAdmitted(packet) {
42
61
  return own(packet, "assistant");
43
62
  }
44
63
  static assert(value, subject = "packet") {
45
64
  const packet = StoredPacket.#record(value, subject);
46
- StoredPacket.#keys(packet, ["weight", "sections", "attributions"], ["weight", "sections", "attributions", "assistant", "assistantRaw"], subject);
65
+ StoredPacket.#keys(packet, ["weight", "sections", "attributions"], ["weight", "sections", "attributions", "attachments", "assistant", "assistantRaw"], subject);
66
+ if (own(packet, "attachments"))
67
+ StoredPacket.#attachments(packet.attachments, `${subject}.attachments`);
47
68
  StoredPacket.#nonnegativeInteger(packet.weight, `${subject}.weight`);
48
69
  if (!Array.isArray(packet.sections))
49
70
  throw new TypeError(`${subject}.sections must be an array`);
@@ -1 +1 @@
1
- {"version":3,"file":"StoredPacket.js","sourceRoot":"","sources":["../../src/core/StoredPacket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StoredPacket.js","sourceRoot":"","sources":["../../src/core/StoredPacket.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StrikeRail.d.ts","sourceRoot":"","sources":["../../src/core/StrikeRail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,0BAA0B,CAAC;AAoBhF,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC,CAAC;AA8DF,MAAM,CAAC,OAAO,OAAO,UAAU;;IAG3B,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,MAAM,CAElE;IAKD,MAAM,CAAC,WAAW,CACd,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAC9B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACvB;QAAE,QAAQ,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAe1E;IAWD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7B;IAID,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QACvC,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;KACtB,GAAG;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,gBAAgB,EAAE,OAAO,CAAA;KAAE,CAuBxD;IAED,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE3B;CACJ"}
1
+ {"version":3,"file":"StrikeRail.d.ts","sourceRoot":"","sources":["../../src/core/StrikeRail.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,0BAA0B,CAAC;AAyBhF,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC,CAAC;AAmEF,MAAM,CAAC,OAAO,OAAO,UAAU;;IAG3B,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,MAAM,CAElE;IAKD,MAAM,CAAC,WAAW,CACd,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAC9B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACvB;QAAE,QAAQ,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAe1E;IAWD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7B;IAID,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QACvC,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;KACtB,GAAG;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,gBAAgB,EAAE,OAAO,CAAA;KAAE,CAuBxD;IAED,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE3B;CACJ"}
@@ -1,4 +1,9 @@
1
+ import { createHash } from "node:crypto";
1
2
  import { renderTarget } from "./plurnk-uri.js";
3
+ // A body's activity identity is a digest of the WHOLE body: a prefix would fold
4
+ // distinct commands sharing boilerplate (a script header, a fixed preamble) into
5
+ // one activity and mislabel a paging model as a loop.
6
+ const bodyIdentity = (text) => createHash("sha256").update(text).digest("hex").slice(0, 16);
2
7
  // Operation outcome statuses that do not accumulate strikes. Exploratory misses are
3
8
  // not failures: probing a path that doesn't exist (404), a line
4
9
  // range that doesn't exist (416), or a capability a scheme lacks (501) is how discovery
@@ -21,11 +26,12 @@ const isExecutorEvidence = ({ problemType }) => typeof problemType === "string"
21
26
  // - EDIT/COPY/MOVE: body excluded — re-writing the same target with varied
22
27
  // content IS cycling (the model is producing different versions of the
23
28
  // same artifact instead of progressing).
24
- // - FIND/READ/OPEN/FOLD: body IS the search/selection pattern; varied
25
- // matchers on the same target ARE different activities (the model is
26
- // exploring different queries, not repeating one).
29
+ // - FIND/READ/KILL: body IS the search/selection pattern; varied
30
+ // matchers or scopes on the same target ARE different activities (the
31
+ // model is exploring different queries, not repeating one).
27
32
  // - BARE: the body is the complete isolated prompt and therefore the
28
- // activity identity, just as EXEC's body identifies its command.
33
+ // activity identity, just as EXEC's body identifies its command —
34
+ // with or without a program path; the executor slot is part of the identity ({§exec-executor-slot}).
29
35
  const fingerprintOp = (stmt) => {
30
36
  const path = stmt.op === "COPY" || stmt.op === "MOVE" ? stmt.source.target : stmt.target;
31
37
  const matcherDiscriminator = () => {
@@ -34,7 +40,7 @@ const fingerprintOp = (stmt) => {
34
40
  const parts = [];
35
41
  const body = stmt.body;
36
42
  if (body !== null && typeof body === "object" && typeof body.raw === "string") {
37
- parts.push(`body:${body.raw.slice(0, 64)}`);
43
+ parts.push(`body:${bodyIdentity(body.raw)}`);
38
44
  }
39
45
  const lm = stmt.lineMarker;
40
46
  if (lm !== null && lm !== undefined)
@@ -54,20 +60,24 @@ const fingerprintOp = (stmt) => {
54
60
  // different message bodies is the same termination signal.
55
61
  if (stmt.op === "EXEC" || stmt.op === "BARE") {
56
62
  const body = typeof stmt.body === "string" ? stmt.body : "";
57
- return `${stmt.op}|(no-path)${body.length > 0 ? `|body:${body.slice(0, 64)}` : ""}`;
63
+ const executor = stmt.op === "EXEC" ? `|[${stmt.executor ?? ""}]` : "";
64
+ return `${stmt.op}${executor}|(no-path)${body.length > 0 ? `|body:${bodyIdentity(body)}` : ""}`;
58
65
  }
59
66
  if (stmt.op === "SEND") {
60
- const signal = typeof stmt.signal === "number" ? stmt.signal : "";
61
- return `SEND|(no-path)|signal:${signal}`;
67
+ return `SEND|(no-path)|status:${stmt.status ?? ""}`;
62
68
  }
63
69
  return `${stmt.op}|(no-path)`;
64
70
  }
65
71
  const base = path.kind === "url"
66
72
  ? `${stmt.op}|${renderTarget(path)}`
67
73
  : `${stmt.op}|local:${path.raw}`;
68
- if (stmt.op === "FIND" || stmt.op === "READ" || stmt.op === "OPEN" || stmt.op === "FOLD") {
74
+ if (stmt.op === "FIND" || stmt.op === "READ" || stmt.op === "KILL") {
69
75
  return `${base}${matcherDiscriminator()}`;
70
76
  }
77
+ if (stmt.op === "EXEC") {
78
+ const body = typeof stmt.body === "string" ? stmt.body : "";
79
+ return `${base}|[${stmt.executor ?? ""}]${body.length > 0 ? `|body:${bodyIdentity(body)}` : ""}`;
80
+ }
71
81
  return base;
72
82
  };
73
83
  // {§engine-rails} — one per-loop rail owns the consecutive strike streak and
@@ -1 +1 @@
1
- {"version":3,"file":"StrikeRail.js","sourceRoot":"","sources":["../../src/core/StrikeRail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,oFAAoF;AACpF,gEAAgE;AAChE,wFAAwF;AACxF,sFAAsF;AACtF,gFAAgF;AAChF,2EAA2E;AAC3E,gFAAgF;AAChF,8EAA8E;AAC9E,2EAA2E;AAC3E,mFAAmF;AACnF,gFAAgF;AAChF,kFAAkF;AAClF,iFAAiF;AACjF,8EAA8E;AAC9E,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACjF,MAAM,wBAAwB,GAAG,uCAAuC,CAAC;AAQzE,MAAM,kBAAkB,GAAG,CAAC,EAAE,WAAW,EAAiB,EAAW,EAAE,CACnE,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;AAExF,8EAA8E;AAC9E,2DAA2D;AAC3D,6EAA6E;AAC7E,2EAA2E;AAC3E,6CAA6C;AAC7C,wEAAwE;AACxE,yEAAyE;AACzE,uDAAuD;AACvD,uEAAuE;AACvE,qEAAqE;AACrE,MAAM,aAAa,GAAG,CAAC,IAAqB,EAAU,EAAE;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACzF,MAAM,oBAAoB,GAAG,GAAW,EAAE;QACtC,kEAAkE;QAClE,mDAAmD;QACnD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAI,IAAqD,CAAC,IAAI,CAAC;QACzE,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5E,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,EAAE,GAAI,IAA+C,CAAC,UAAU,CAAC;QACvE,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3E,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,CAAC,CAAC;IACF,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAChB,8DAA8D;QAC9D,8DAA8D;QAC9D,6BAA6B;QAC7B,6DAA6D;QAC7D,iEAAiE;QACjE,6DAA6D;QAC7D,iBAAiB;QACjB,gEAAgE;QAChE,4EAA4E;QAC5E,+DAA+D;QAC/D,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,OAAO,GAAG,IAAI,CAAC,EAAE,aAAa,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACxF,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,OAAO,yBAAyB,MAAM,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,EAAE,YAAY,CAAC;IAClC,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,KAAK;QAC5B,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;QACpC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC;IACrC,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;QACvF,OAAO,GAAG,IAAI,GAAG,oBAAoB,EAAE,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,6EAA6E;AAC7E,6EAA6E;AAC7E,iCAAiC;AACjC,MAAM,CAAC,OAAO,OAAO,UAAU;IAC3B,yEAAyE;IACzE,gEAAgE;IAChE,MAAM,CAAC,eAAe,CAAC,GAAmC;QACtD,OAAO,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,sFAAsF;IACtF,+EAA+E;IAC/E,uEAAuE;IACvE,MAAM,CAAC,WAAW,CACd,OAA8B,EAC9B,SAAiB,EACjB,cAAsB;QAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;YAC7B,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM;gBAAE,SAAS;YACtC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,KAAK,EAAE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC;gBAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;wBAAC,KAAK,GAAG,KAAK,CAAC;wBAAC,MAAM,KAAK,CAAC;oBAAC,CAAC;gBACvE,CAAC;YACL,CAAC;YACD,IAAI,KAAK;gBAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACvE,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED,0EAA0E;IAC1E,qEAAqE;IACrE,MAAM,GAAG,IAAI,GAAG,EAAiD,CAAC;IAElE,uFAAuF;IACvF,wEAAwE;IACxE,+CAA+C;IAC/C,0FAA0F;IAC1F,iDAAiD;IACjD,MAAM,CAAC,MAAc;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,wEAAwE;IACxE,yEAAyE;IACzE,MAAM,CAAC,MAAc,EAAE,IAOtB;QACG,oEAAoE;QACpE,uEAAuE;QACvE,8DAA8D;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACpE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACzF,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACrC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,MAAM;eAC3B,OAAO,CAAC,MAAM,IAAI,GAAG;eACrB,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;eAC1C,CAAC,kBAAkB,CAAC,OAAO,CAAC,CACtC,CAAC;QACF,MAAM,MAAM,GAAG,cAAc,IAAI,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC;QACpE,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,MAAM,EAAE,CAAC;YACT,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU;gBAAE,gBAAgB,GAAG,IAAI,CAAC;QACjE,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;CACJ"}
1
+ {"version":3,"file":"StrikeRail.js","sourceRoot":"","sources":["../../src/core/StrikeRail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { Db } from "./Db.ts";
2
+ export interface CalibrationSample {
3
+ readonly weight: number;
4
+ readonly reported: number;
5
+ }
6
+ export interface WeighedItem {
7
+ readonly path: string;
8
+ readonly tokensBody: number;
9
+ readonly tokensActive: number;
10
+ }
11
+ export default class TokenCalibration {
12
+ static factor(samples: readonly CalibrationSample[]): number;
13
+ static forModel(db: Db, model: string): Promise<number>;
14
+ static scale(item: WeighedItem, factor: number): WeighedItem;
15
+ }
16
+ //# sourceMappingURL=TokenCalibration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenCalibration.d.ts","sourceRoot":"","sources":["../../src/core/TokenCalibration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CACjC;AAOD,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,GAAG,MAAM,CAY3D;IAED,OAAa,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5D;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAM3D;CACJ"}
@@ -0,0 +1,35 @@
1
+ const MIN_SAMPLES = 3;
2
+ // {§tokenomics-calibrated-readout} — the model-independent ruler ({§tokenomics-agnostic-ruler}) overstates
3
+ // what a tokenizer charges by a model-specific ratio. The readout scales by what
4
+ // this model actually reported for its recent packets; nothing stored is rewritten.
5
+ export default class TokenCalibration {
6
+ static factor(samples) {
7
+ if (samples.length < MIN_SAMPLES)
8
+ return 1;
9
+ let weight = 0;
10
+ let reported = 0;
11
+ for (const sample of samples) {
12
+ for (const [name, value] of Object.entries(sample)) {
13
+ if (!Number.isSafeInteger(value) || value <= 0)
14
+ throw new TypeError(`calibration sample ${name} must be a positive safe integer`);
15
+ }
16
+ weight += sample.weight;
17
+ reported += sample.reported;
18
+ }
19
+ return reported / weight;
20
+ }
21
+ static async forModel(db, model) {
22
+ if (model.length === 0)
23
+ throw new TypeError("calibration requires the model name the provider reports");
24
+ const samples = await db.engine_calibration_samples.all({ model });
25
+ return TokenCalibration.factor(samples);
26
+ }
27
+ static scale(item, factor) {
28
+ return {
29
+ ...item,
30
+ tokensBody: Math.max(1, Math.round(item.tokensBody * factor)),
31
+ tokensActive: Math.max(1, Math.round(item.tokensActive * factor)),
32
+ };
33
+ }
34
+ }
35
+ //# sourceMappingURL=TokenCalibration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenCalibration.js","sourceRoot":"","sources":["../../src/core/TokenCalibration.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,2GAA2G;AAC3G,iFAAiF;AACjF,oFAAoF;AACpF,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,MAAM,CAAC,MAAM,CAAC,OAAqC;QAC/C,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW;YAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;oBAAE,MAAM,IAAI,SAAS,CAAC,sBAAsB,IAAI,kCAAkC,CAAC,CAAC;YACtI,CAAC;YACD,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;YACxB,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;QAChC,CAAC;QACD,OAAO,QAAQ,GAAG,MAAM,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAM,EAAE,KAAa;QACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC,CAAC;QACxG,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAuC,EAAE,KAAK,EAAE,CAAC,CAAC;QACzG,OAAO,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAiB,EAAE,MAAc;QAC1C,OAAO;YACH,GAAG,IAAI;YACP,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC;YAC7D,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC;SACpE,CAAC;IACN,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolResources.d.ts","sourceRoot":"","sources":["../../src/core/ToolResources.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,qBAAqB,EACrB,kBAAkB,EAClB,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,kBAAkB,CAAC;IACrC,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,CA8DhD;CACJ"}
1
+ {"version":3,"file":"ToolResources.d.ts","sourceRoot":"","sources":["../../src/core/ToolResources.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,qBAAqB,EACrB,kBAAkB,EAClB,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,kBAAkB,CAAC;IACrC,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;AAoHD,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,CA8DhD;CACJ"}
@@ -39,27 +39,30 @@ const invocationRows = (invocation, exactTarget) => {
39
39
  };
40
40
  const exampleSource = (runtime, invocation, exactTarget, annotation) => {
41
41
  const target = exactTarget ?? invocation.example?.target;
42
- // The default shell is the bare EXEC: `[sh]` stays valid but is the explicit form —
43
- // a shell command is not a tool family ({§exec-target-routing}).
44
- const heading = `## EXEC0${runtime === "sh" ? "" : ` [${runtime}]`}${target === undefined ? "" : ` (${PathSyntax.escapeTarget(target)})`}`
42
+ // {§exec-executor-slot} — `[executor]` then the program path; the bare EXEC is the default
43
+ // shell, so `[sh]` is never rendered.
44
+ const executor = runtime === "sh" ? "" : ` [${runtime}]`;
45
+ const path = target === undefined ? "" : ` (${PathSyntax.escapeTarget(target)})`;
46
+ const heading = `## EXEC0${executor}${path}`
45
47
  + (annotation === undefined ? "" : ` <!-- ${annotationText(annotation)} -->`);
46
48
  return invocation.example?.body === undefined
47
49
  ? heading
48
50
  : `${heading}\n${invocation.example.body}`;
49
51
  };
50
- const summaryInvocation = (runtime, invocation, exactTarget, summary) => {
51
- const source = exampleSource(runtime, invocation, exactTarget, summary)
52
- .replace(/^## EXEC0/u, "EXEC")
53
- .replace("\n", "\\n");
54
- return inlineCode(source);
55
- };
52
+ // {§tools-resource-materialization} — the survey row's summary is the runtime's compact
53
+ // executable witness: the exact heading and one-line body a model can copy. It rides as plain
54
+ // text, never as a code span: the survey is already quoted by the Log's own fence, and a
55
+ // backticked op taught models to fence their operations (#484, run30/run31 requiems).
56
+ const summaryWitness = (runtime, invocation, exactTarget, summary) => exampleSource(runtime, invocation, exactTarget, summary)
57
+ .replace(/^## EXEC0/u, "EXEC")
58
+ .replace("\n", "\\n");
56
59
  const renderInvocation = (runtime, invocation, exactTarget, annotation) => [
57
60
  "## Invocation",
58
61
  "",
59
62
  ...invocationRows(invocation, exactTarget),
60
63
  "",
61
64
  ...(invocation.signature === undefined
62
- ? [fence("plurnk", exampleSource(runtime, invocation, exactTarget, annotation))]
65
+ ? [fence("example", exampleSource(runtime, invocation, exactTarget, annotation))]
63
66
  : [
64
67
  inlineCode(exampleSource(runtime, invocation, exactTarget, annotation)),
65
68
  "",
@@ -88,7 +91,7 @@ export default class ToolResources {
88
91
  const summary = RuntimeSummary.resolve(source.summary, null);
89
92
  return [{
90
93
  pathname: `${root}/${source.runtime}.md`,
91
- content: renderDocument(source.runtime, summaryInvocation(source.runtime, source.invocation, undefined, summary), renderInvocation(source.runtime, source.invocation, undefined, summary), source.details),
94
+ content: renderDocument(source.runtime, summaryWitness(source.runtime, source.invocation, undefined, summary), renderInvocation(source.runtime, source.invocation, undefined, summary), source.details),
92
95
  }];
93
96
  }
94
97
  if (source.registry.tools.length === 0)
@@ -126,7 +129,7 @@ export default class ToolResources {
126
129
  const detailsBlock = [source.details.trimEnd(), ...sections]
127
130
  .filter((part) => part.length > 0)
128
131
  .join("\n\n");
129
- const family = renderDocument(source.runtime, summary, ["## Invocation", "", fence("plurnk", familyInvocations.join("\n"))], detailsBlock);
132
+ const family = renderDocument(source.runtime, summary, ["## Invocation", "", fence("example", familyInvocations.join("\n"))], detailsBlock);
130
133
  return [{ pathname: `${root}/${source.runtime}.md`, content: family }];
131
134
  }
132
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ToolResources.js","sourceRoot":"","sources":["../../src/core/ToolResources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolResources.js","sourceRoot":"","sources":["../../src/core/ToolResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAyBpD,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5F,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,EAAE,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,QAAgB,EAAE,KAAa,EAAU,EAAE;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACvC,OAAO,GAAG,MAAM,GAAG,QAAQ,KAAK,KAAK,KAAK,MAAM,EAAE,CAAC;AACvD,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAE3E,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAU,EAAE,CAC/C,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;IAC/D,CAAC,CAAC,KAAK,KAAK,EAAE;IACd,CAAC,CAAC,KAAK,CAAC;AAEhB,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE;IAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IAC5F,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,QAAiB,EAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;AAEtF,MAAM,cAAc,GAAG,CACnB,UAAiC,EACjC,WAAoB,EACZ,EAAE;IACV,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,KAAK,SAAS;QAC1C,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,WAAW,KAAK,SAAS;YACvB,CAAC,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS,EAAE;YACrF,CAAC,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,UAAU,CAAC,WAAW,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;IACvI,MAAM,IAAI,GAAG,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;IAC7F,OAAO;QACH,sBAAsB;QACtB,eAAe;QACf,oBAAoB,UAAU,CAAC,MAAM,CAAC,IAAI;QAC1C,YAAY,UAAU,CAAC,IAAI,CAAC,IAAI;KACnC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAClB,OAAe,EACf,UAAiC,EACjC,WAAoB,EACpB,UAAmB,EACb,EAAE;IACR,MAAM,MAAM,GAAG,WAAW,IAAI,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;IACzD,2FAA2F;IAC3F,sCAAsC;IACtC,MAAM,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC;IACzD,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC;IACjF,MAAM,OAAO,GAAG,WAAW,QAAQ,GAAG,IAAI,EAAE;UACtC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAClF,OAAO,UAAU,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS;QACzC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,GAAG,OAAO,KAAK,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACnD,CAAC,CAAC;AAEF,wFAAwF;AACxF,8FAA8F;AAC9F,yFAAyF;AACzF,sFAAsF;AACtF,MAAM,cAAc,GAAG,CACnB,OAAe,EACf,UAAiC,EACjC,WAA+B,EAC/B,OAAe,EACT,EAAE,CACR,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC;KACnD,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;KAC7B,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAE9B,MAAM,gBAAgB,GAAG,CACrB,OAAe,EACf,UAAiC,EACjC,WAAoB,EACpB,UAAmB,EACX,EAAE,CAAC;IACX,eAAe;IACf,EAAE;IACF,GAAG,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC;IAC1C,EAAE;IACF,GAAG,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS;QAClC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;QACjF,CAAC,CAAC;YACE,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YACvE,EAAE;YACF,cAAc,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;SACnD,CAAC;CACT,CAAC;AAEF,MAAM,cAAc,GAAG,CACnB,KAAa,EACb,OAAe,EACf,UAAoB,EACpB,OAAe,EACT,EAAE,CAAC;IACT,KAAK,KAAK,EAAE;IACZ,EAAE;IACF,YAAY;IACZ,EAAE;IACF,gBAAgB,CAAC,OAAO,CAAC;IACzB,EAAE;IACF,GAAG,UAAU;IACb,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CAC3D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,MAAM,CAAC,aAAa,CAAC,MAAc;QAC/B,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,EAAE,CACpE,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,MAAkB;QAC5B,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC;QAC1D,mFAAmF;QACnF,MAAM,IAAI,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,aAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACnF,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC7D,OAAO,CAAC;oBACJ,QAAQ,EAAE,GAAG,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK;oBACxC,OAAO,EAAE,cAAc,CACnB,MAAM,CAAC,OAAO,EACd,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,EACrE,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,EACvE,MAAM,CAAC,OAAO,CACjB;iBACJ,CAAC,CAAC;QACP,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElD,uEAAuE;QACvE,iEAAiE;QACjE,qEAAqE;QACrE,qEAAqE;QACrE,mCAAmC;QACnC,wFAAwF;QACxF,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACpC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9D,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAY,EAAE;YAC9D,MAAM,OAAO,GAAG,aAAa,CACzB,MAAM,CAAC,OAAO,EACd,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,CACf,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC;YACzE,OAAO;gBACH,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5B,OAAO;gBACP,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aAC1C,CAAC;QACN,CAAC,CAAC,CAAC;QACH,sEAAsE;QACtE,8DAA8D;QAC9D,MAAM,MAAM,GAAG,CAAC,KAAa,EAAU,EAAE;YACrC,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;oBAAE,MAAM,GAAG,CAAC,MAAM,CAAC;gBAC7C,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,KAAK;aACjB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aACjD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACjG,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,QAAQ,CAAC;aACvD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aACjC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,MAAM,MAAM,GAAG,cAAc,CACzB,MAAM,CAAC,OAAO,EACd,OAAO,EACP,CAAC,eAAe,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EACrE,YAAY,CACf,CAAC;QACF,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;CACJ"}
@@ -0,0 +1,37 @@
1
+ import type { UrlPath } from "@plurnk/plurnk-contracts";
2
+ import type SchemeRegistry from "./SchemeRegistry.ts";
3
+ import type { Db } from "./Db.ts";
4
+ import { type FsDivergence } from "./git-membership.ts";
5
+ import { type GitStatusSnapshot } from "./git-state.ts";
6
+ export default class TurnMaterialization {
7
+ #private;
8
+ constructor({ db, schemes, weighContent }: {
9
+ db: Db;
10
+ schemes: SchemeRegistry;
11
+ weighContent: (text: string) => number;
12
+ });
13
+ materializeEnvironmentDeltas(args: {
14
+ workspaceId: number;
15
+ workerId: number;
16
+ loopId: number;
17
+ turnId: number;
18
+ fromSequence: number;
19
+ }): Promise<number>;
20
+ materializeStreamDeltas(args: {
21
+ workerId: number;
22
+ loopId: number;
23
+ turnId: number;
24
+ fromSequence: number;
25
+ }): Promise<number>;
26
+ logFsFictions(workspaceId: number, divergences: FsDivergence[], gitStatus: GitStatusSnapshot | null): Promise<void>;
27
+ writePromptLog({ workerId, loopId, turnId, sequence, target, content, source, }: {
28
+ workerId: number;
29
+ loopId: number;
30
+ turnId: number;
31
+ sequence: number;
32
+ target: UrlPath;
33
+ content: string;
34
+ source: string | null;
35
+ }): Promise<number>;
36
+ }
37
+ //# sourceMappingURL=TurnMaterialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TurnMaterialization.d.ts","sourceRoot":"","sources":["../../src/core/TurnMaterialization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAYxD,MAAM,CAAC,OAAO,OAAO,mBAAmB;;IAKpC,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;QACvC,EAAE,EAAE,EAAE,CAAC;QACP,OAAO,EAAE,cAAc,CAAC;QACxB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;KAC1C,EAIA;IAEK,4BAA4B,CAAC,IAAI,EAAE;QACrC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;KAC/F,GAAG,OAAO,CAAC,MAAM,CAAC,CA4HlB;IAGK,uBAAuB,CAAC,IAAI,EAAE;QAChC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;KAC1E,GAAG,OAAO,CAAC,MAAM,CAAC,CAuElB;IAKK,aAAa,CACf,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,YAAY,EAAE,EAC3B,SAAS,EAAE,iBAAiB,GAAG,IAAI,GACpC,OAAO,CAAC,IAAI,CAAC,CAmEf;IAIK,cAAc,CAAC,EACjB,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAM,EACN,OAAO,EACP,MAAM,GACT,EAAE;QACC,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0ClB;CAKJ"}