@plurnk/plurnk-service 1.10.0 → 1.11.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 (288) hide show
  1. package/.env.defaults +41 -17
  2. package/INSTALL.md +1 -1
  3. package/README.md +1 -1
  4. package/SPEC.md +487 -233
  5. package/digest-sql/curation/curation.sql +1 -0
  6. package/dist/Paths.d.ts +3 -3
  7. package/dist/Paths.d.ts.map +1 -1
  8. package/dist/Paths.js +9 -9
  9. package/dist/Paths.js.map +1 -1
  10. package/dist/build-info.json +1 -1
  11. package/dist/content/edit-collision.js +3 -3
  12. package/dist/content/edit-collision.js.map +1 -1
  13. package/dist/content/edit-receipt.d.ts +6 -5
  14. package/dist/content/edit-receipt.d.ts.map +1 -1
  15. package/dist/content/edit-receipt.js +13 -2
  16. package/dist/content/edit-receipt.js.map +1 -1
  17. package/dist/content/index.d.ts +2 -2
  18. package/dist/content/index.d.ts.map +1 -1
  19. package/dist/content/index.js +1 -1
  20. package/dist/content/index.js.map +1 -1
  21. package/dist/content/line-anchors.d.ts +2 -0
  22. package/dist/content/line-anchors.d.ts.map +1 -1
  23. package/dist/content/line-anchors.js +2 -0
  24. package/dist/content/line-anchors.js.map +1 -1
  25. package/dist/content/matcher.d.ts.map +1 -1
  26. package/dist/content/matcher.js +3 -2
  27. package/dist/content/matcher.js.map +1 -1
  28. package/dist/content/read-projector.js +3 -3
  29. package/dist/content/read-projector.js.map +1 -1
  30. package/dist/core/BudgetReadout.d.ts +6 -1
  31. package/dist/core/BudgetReadout.d.ts.map +1 -1
  32. package/dist/core/BudgetReadout.js +38 -2
  33. package/dist/core/BudgetReadout.js.map +1 -1
  34. package/dist/core/CapabilityPolicies.d.ts +15 -0
  35. package/dist/core/CapabilityPolicies.d.ts.map +1 -0
  36. package/dist/core/CapabilityPolicies.js +60 -0
  37. package/dist/core/CapabilityPolicies.js.map +1 -0
  38. package/dist/core/CapabilityResolver.d.ts +24 -0
  39. package/dist/core/CapabilityResolver.d.ts.map +1 -0
  40. package/dist/core/CapabilityResolver.js +180 -0
  41. package/dist/core/CapabilityResolver.js.map +1 -0
  42. package/dist/core/ChannelWrite.d.ts +4 -3
  43. package/dist/core/ChannelWrite.d.ts.map +1 -1
  44. package/dist/core/CoreSchemeServices.d.ts +1 -1
  45. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  46. package/dist/core/CoreSchemeServices.js +1 -1
  47. package/dist/core/CoreSchemeServices.js.map +1 -1
  48. package/dist/core/Dispatcher.d.ts +3 -1
  49. package/dist/core/Dispatcher.d.ts.map +1 -1
  50. package/dist/core/Dispatcher.js +148 -160
  51. package/dist/core/Dispatcher.js.map +1 -1
  52. package/dist/core/DurableStatement.d.ts.map +1 -1
  53. package/dist/core/DurableStatement.js +19 -15
  54. package/dist/core/DurableStatement.js.map +1 -1
  55. package/dist/core/Engine.d.ts +6 -4
  56. package/dist/core/Engine.d.ts.map +1 -1
  57. package/dist/core/Engine.js +18 -7
  58. package/dist/core/Engine.js.map +1 -1
  59. package/dist/core/Engine.sql +30 -25
  60. package/dist/core/ExecutorRegistry.d.ts +3 -3
  61. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  62. package/dist/core/ExecutorRegistry.js +10 -6
  63. package/dist/core/ExecutorRegistry.js.map +1 -1
  64. package/dist/core/GitBranch.d.ts +4 -1
  65. package/dist/core/GitBranch.d.ts.map +1 -1
  66. package/dist/core/GitBranch.js +12 -2
  67. package/dist/core/GitBranch.js.map +1 -1
  68. package/dist/core/LogEntryProjection.d.ts +1 -0
  69. package/dist/core/LogEntryProjection.d.ts.map +1 -1
  70. package/dist/core/LogEntryProjection.js +12 -4
  71. package/dist/core/LogEntryProjection.js.map +1 -1
  72. package/dist/core/LoopPolicyReader.d.ts +7 -0
  73. package/dist/core/LoopPolicyReader.d.ts.map +1 -0
  74. package/dist/core/LoopPolicyReader.js +33 -0
  75. package/dist/core/LoopPolicyReader.js.map +1 -0
  76. package/dist/core/ModelCall.d.ts +1 -0
  77. package/dist/core/ModelCall.d.ts.map +1 -1
  78. package/dist/core/ModelCall.js +3 -0
  79. package/dist/core/ModelCall.js.map +1 -1
  80. package/dist/core/NoticeChannel.d.ts +2 -2
  81. package/dist/core/NoticeChannel.d.ts.map +1 -1
  82. package/dist/core/NoticeChannel.js +18 -9
  83. package/dist/core/NoticeChannel.js.map +1 -1
  84. package/dist/core/OperatorConfig.d.ts.map +1 -1
  85. package/dist/core/OperatorConfig.js +4 -0
  86. package/dist/core/OperatorConfig.js.map +1 -1
  87. package/dist/core/OverflowTurn.d.ts.map +1 -1
  88. package/dist/core/OverflowTurn.js +4 -3
  89. package/dist/core/OverflowTurn.js.map +1 -1
  90. package/dist/core/Owner.js +5 -5
  91. package/dist/core/Owner.js.map +1 -1
  92. package/dist/core/PacketBuilder.d.ts +2 -2
  93. package/dist/core/PacketBuilder.d.ts.map +1 -1
  94. package/dist/core/PacketBuilder.js +53 -35
  95. package/dist/core/PacketBuilder.js.map +1 -1
  96. package/dist/core/ProblemLog.d.ts.map +1 -1
  97. package/dist/core/ProblemLog.js +1 -0
  98. package/dist/core/ProblemLog.js.map +1 -1
  99. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  100. package/dist/core/ProposalLifecycle.js +16 -13
  101. package/dist/core/ProposalLifecycle.js.map +1 -1
  102. package/dist/core/ReasoningEvent.d.ts +1 -0
  103. package/dist/core/ReasoningEvent.d.ts.map +1 -1
  104. package/dist/core/ResourceMutations.d.ts +5 -4
  105. package/dist/core/ResourceMutations.d.ts.map +1 -1
  106. package/dist/core/ResourceMutations.js +71 -48
  107. package/dist/core/ResourceMutations.js.map +1 -1
  108. package/dist/core/SchemeRegistry.d.ts +6 -3
  109. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  110. package/dist/core/SchemeRegistry.js +14 -17
  111. package/dist/core/SchemeRegistry.js.map +1 -1
  112. package/dist/core/ServiceTeardown.d.ts +1 -1
  113. package/dist/core/ServiceTeardown.d.ts.map +1 -1
  114. package/dist/core/ServiceTeardown.js +4 -8
  115. package/dist/core/ServiceTeardown.js.map +1 -1
  116. package/dist/core/StrikeRail.js +1 -1
  117. package/dist/core/StrikeRail.js.map +1 -1
  118. package/dist/core/ToolResources.d.ts +2 -2
  119. package/dist/core/ToolResources.d.ts.map +1 -1
  120. package/dist/core/ToolResources.js +18 -8
  121. package/dist/core/ToolResources.js.map +1 -1
  122. package/dist/core/TurnOps.d.ts.map +1 -1
  123. package/dist/core/TurnOps.js +22 -8
  124. package/dist/core/TurnOps.js.map +1 -1
  125. package/dist/core/TurnRunner.d.ts +7 -3
  126. package/dist/core/TurnRunner.d.ts.map +1 -1
  127. package/dist/core/TurnRunner.js +315 -71
  128. package/dist/core/TurnRunner.js.map +1 -1
  129. package/dist/core/WorkerControlAddress.d.ts.map +1 -1
  130. package/dist/core/WorkerControlAddress.js +1 -2
  131. package/dist/core/WorkerControlAddress.js.map +1 -1
  132. package/dist/core/WorkerName.d.ts +2 -0
  133. package/dist/core/WorkerName.d.ts.map +1 -1
  134. package/dist/core/WorkerName.js +3 -2
  135. package/dist/core/WorkerName.js.map +1 -1
  136. package/dist/core/WorkerName.sql +2 -1
  137. package/dist/core/caps/DbProjectionCaps.d.ts +2 -1
  138. package/dist/core/caps/DbProjectionCaps.d.ts.map +1 -1
  139. package/dist/core/caps/DbProjectionCaps.js +12 -1
  140. package/dist/core/caps/DbProjectionCaps.js.map +1 -1
  141. package/dist/core/file-materialization.d.ts +22 -0
  142. package/dist/core/file-materialization.d.ts.map +1 -0
  143. package/dist/core/file-materialization.js +77 -0
  144. package/dist/core/file-materialization.js.map +1 -0
  145. package/dist/core/fork.d.ts +2 -1
  146. package/dist/core/fork.d.ts.map +1 -1
  147. package/dist/core/fork.js +13 -4
  148. package/dist/core/fork.js.map +1 -1
  149. package/dist/core/fork.sql +27 -11
  150. package/dist/core/git-membership.d.ts +25 -14
  151. package/dist/core/git-membership.d.ts.map +1 -1
  152. package/dist/core/git-membership.js +260 -164
  153. package/dist/core/git-membership.js.map +1 -1
  154. package/dist/core/git-state.d.ts +2 -0
  155. package/dist/core/git-state.d.ts.map +1 -1
  156. package/dist/core/git-state.js +27 -1
  157. package/dist/core/git-state.js.map +1 -1
  158. package/dist/core/operation-target-groups.d.ts.map +1 -1
  159. package/dist/core/operation-target-groups.js +8 -7
  160. package/dist/core/operation-target-groups.js.map +1 -1
  161. package/dist/core/owner.sql +7 -10
  162. package/dist/core/packet-wire.d.ts +10 -0
  163. package/dist/core/packet-wire.d.ts.map +1 -1
  164. package/dist/core/packet-wire.js +78 -29
  165. package/dist/core/packet-wire.js.map +1 -1
  166. package/dist/core/scheme-types.d.ts +2 -2
  167. package/dist/core/scheme-types.d.ts.map +1 -1
  168. package/dist/core/scheme-types.js +1 -1
  169. package/dist/core/scheme-types.js.map +1 -1
  170. package/dist/core/types.d.ts +3 -2
  171. package/dist/core/types.d.ts.map +1 -1
  172. package/dist/core/types.js +1 -1
  173. package/dist/core/types.js.map +1 -1
  174. package/dist/core/worker-settings.d.ts +4 -3
  175. package/dist/core/worker-settings.d.ts.map +1 -1
  176. package/dist/core/worker-settings.js +40 -19
  177. package/dist/core/worker-settings.js.map +1 -1
  178. package/dist/core/workspace-settings.d.ts +3 -1
  179. package/dist/core/workspace-settings.d.ts.map +1 -1
  180. package/dist/core/workspace-settings.js +6 -2
  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 +93 -26
  184. package/dist/digest/Digest.js.map +1 -1
  185. package/dist/digest/digest.sql +13 -3
  186. package/dist/index.js +1 -1
  187. package/dist/index.js.map +1 -1
  188. package/dist/schemes/Exec.d.ts +3 -5
  189. package/dist/schemes/Exec.d.ts.map +1 -1
  190. package/dist/schemes/Exec.js +98 -94
  191. package/dist/schemes/Exec.js.map +1 -1
  192. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  193. package/dist/schemes/ExecOutputScheme.js +24 -6
  194. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  195. package/dist/schemes/ExecScheduler.d.ts +15 -0
  196. package/dist/schemes/ExecScheduler.d.ts.map +1 -0
  197. package/dist/schemes/ExecScheduler.js +95 -0
  198. package/dist/schemes/ExecScheduler.js.map +1 -0
  199. package/dist/schemes/File.d.ts.map +1 -1
  200. package/dist/schemes/File.js +16 -15
  201. package/dist/schemes/File.js.map +1 -1
  202. package/dist/schemes/Log.d.ts +6 -4
  203. package/dist/schemes/Log.d.ts.map +1 -1
  204. package/dist/schemes/Log.js +131 -38
  205. package/dist/schemes/Log.js.map +1 -1
  206. package/dist/schemes/Log.sql +23 -18
  207. package/dist/schemes/QuestionTool.d.ts +17 -4
  208. package/dist/schemes/QuestionTool.d.ts.map +1 -1
  209. package/dist/schemes/QuestionTool.js +2 -4
  210. package/dist/schemes/QuestionTool.js.map +1 -1
  211. package/dist/schemes/Worker.d.ts.map +1 -1
  212. package/dist/schemes/Worker.js +20 -20
  213. package/dist/schemes/Worker.js.map +1 -1
  214. package/dist/schemes/_entry-chunk.js +1 -1
  215. package/dist/schemes/_entry-chunk.js.map +1 -1
  216. package/dist/schemes/_entry-crud.sql +18 -17
  217. package/dist/schemes/_entry-find.d.ts.map +1 -1
  218. package/dist/schemes/_entry-find.js +7 -9
  219. package/dist/schemes/_entry-find.js.map +1 -1
  220. package/dist/schemes/_entry-graph.js +12 -12
  221. package/dist/schemes/_entry-graph.js.map +1 -1
  222. package/dist/schemes/_entry-graph.sql +5 -5
  223. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  224. package/dist/schemes/_entry-ops.js +3 -3
  225. package/dist/schemes/_entry-ops.js.map +1 -1
  226. package/dist/schemes/_entry-semantic.js +1 -1
  227. package/dist/schemes/_entry-semantic.js.map +1 -1
  228. package/dist/server/BranchBatches.d.ts +3 -3
  229. package/dist/server/BranchBatches.d.ts.map +1 -1
  230. package/dist/server/BranchBatches.js +9 -2
  231. package/dist/server/BranchBatches.js.map +1 -1
  232. package/dist/server/Daemon.d.ts +12 -41
  233. package/dist/server/Daemon.d.ts.map +1 -1
  234. package/dist/server/Daemon.js +59 -93
  235. package/dist/server/Daemon.js.map +1 -1
  236. package/dist/server/DaemonModule.d.ts +10 -1
  237. package/dist/server/DaemonModule.d.ts.map +1 -1
  238. package/dist/server/DrainSupervisor.d.ts +6 -5
  239. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  240. package/dist/server/DrainSupervisor.js +14 -11
  241. package/dist/server/DrainSupervisor.js.map +1 -1
  242. package/dist/server/Functionality.d.ts +2 -2
  243. package/dist/server/Functionality.d.ts.map +1 -1
  244. package/dist/server/Functionality.js +8 -5
  245. package/dist/server/Functionality.js.map +1 -1
  246. package/dist/server/FunctionalityManager.d.ts +13 -1
  247. package/dist/server/FunctionalityManager.d.ts.map +1 -1
  248. package/dist/server/FunctionalityManager.js +82 -17
  249. package/dist/server/FunctionalityManager.js.map +1 -1
  250. package/dist/server/MembersFunctionality.d.ts +56 -0
  251. package/dist/server/MembersFunctionality.d.ts.map +1 -0
  252. package/dist/server/MembersFunctionality.js +350 -0
  253. package/dist/server/MembersFunctionality.js.map +1 -0
  254. package/dist/server/SkillsFunctionality.d.ts +12 -1
  255. package/dist/server/SkillsFunctionality.d.ts.map +1 -1
  256. package/dist/server/SkillsFunctionality.js +6 -1
  257. package/dist/server/SkillsFunctionality.js.map +1 -1
  258. package/dist/server/client-input.d.ts +5 -8
  259. package/dist/server/client-input.d.ts.map +1 -1
  260. package/dist/server/client-input.js +49 -108
  261. package/dist/server/client-input.js.map +1 -1
  262. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  263. package/dist/server/dispatch-as-plurnk.js +3 -0
  264. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  265. package/dist/server/drain.sql +4 -4
  266. package/dist/server/envelope.d.ts +1 -1
  267. package/dist/server/envelope.d.ts.map +1 -1
  268. package/dist/server/envelope.js +11 -10
  269. package/dist/server/envelope.js.map +1 -1
  270. package/dist/server/envelope.sql +1 -1
  271. package/dist/server/loopDocs.d.ts.map +1 -1
  272. package/dist/server/loopDocs.js +12 -5
  273. package/dist/server/loopDocs.js.map +1 -1
  274. package/dist/server/seam-proposal-list.sql +2 -2
  275. package/dist/server/worker-capabilities.sql +9 -0
  276. package/dist/service.d.ts.map +1 -1
  277. package/dist/service.js +16 -21
  278. package/dist/service.js.map +1 -1
  279. package/migrations/001_schema.sql +217 -64
  280. package/package.json +30 -32
  281. package/dist/core/LoopFlagsReader.d.ts +0 -7
  282. package/dist/core/LoopFlagsReader.d.ts.map +0 -1
  283. package/dist/core/LoopFlagsReader.js +0 -33
  284. package/dist/core/LoopFlagsReader.js.map +0 -1
  285. package/dist/core/resolveForLoop.d.ts +0 -5
  286. package/dist/core/resolveForLoop.d.ts.map +0 -1
  287. package/dist/core/resolveForLoop.js +0 -12
  288. package/dist/core/resolveForLoop.js.map +0 -1
@@ -0,0 +1,33 @@
1
+ import { Validator } from "@plurnk/plurnk-contracts";
2
+ // {§loop-policy-effective-read} — persistence contains one complete immutable
3
+ // contracts-owned policy snapshot.
4
+ export default class LoopPolicyReader {
5
+ static parse(raw, loopId) {
6
+ let partial;
7
+ try {
8
+ partial = JSON.parse(raw);
9
+ }
10
+ catch (cause) {
11
+ throw new Error(`Loop ${loopId} has invalid persisted policy JSON.`, { cause });
12
+ }
13
+ if (partial === null || typeof partial !== "object" || Array.isArray(partial)) {
14
+ throw new Error(`Loop ${loopId} has invalid persisted policy.`, {
15
+ cause: new TypeError("Persisted loop policy must be a JSON object."),
16
+ });
17
+ }
18
+ try {
19
+ return Validator.assertLoopPolicy(partial);
20
+ }
21
+ catch (cause) {
22
+ throw new Error(`Loop ${loopId} has invalid persisted policy.`, { cause });
23
+ }
24
+ }
25
+ static async read(db, loopId) {
26
+ const row = await db.engine_get_loop_policy.get({ loop_id: loopId });
27
+ if (row === undefined) {
28
+ throw new Error(`Loop ${loopId} does not exist while reading its persisted policy.`);
29
+ }
30
+ return LoopPolicyReader.parse(row.policy, loopId);
31
+ }
32
+ }
33
+ //# sourceMappingURL=LoopPolicyReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoopPolicyReader.js","sourceRoot":"","sources":["../../src/core/LoopPolicyReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,0BAA0B,CAAC;AAGtE,8EAA8E;AAC9E,mCAAmC;AACnC,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,MAAM,CAAC,KAAK,CAAC,GAAW,EAAE,MAAc;QACpC,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,qCAAqC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,gCAAgC,EAAE;gBAC5D,KAAK,EAAE,IAAI,SAAS,CAAC,8CAA8C,CAAC;aACvE,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC;YACD,OAAO,SAAS,CAAC,gBAAgB,CAAC,OAAqB,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,gCAAgC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAM,EAAE,MAAc;QACpC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACzF,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,qDAAqD,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;CACJ"}
@@ -12,6 +12,7 @@ export default class ModelCall {
12
12
  #private;
13
13
  readonly id: number;
14
14
  private constructor();
15
+ get requestSequence(): number;
15
16
  static open(db: Db, input: {
16
17
  turnId: number;
17
18
  sequence: number;
@@ -1 +1 @@
1
- {"version":3,"file":"ModelCall.d.ts","sourceRoot":"","sources":["../../src/core/ModelCall.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAIlC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,CAAC;AAEhD,qBAAa,yBAA0B,SAAQ,KAAK;IAChD,YAAY,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAG1C;CACJ;AAED,qBAAa,gCAAiC,SAAQ,KAAK;IACvD,YAAY,OAAO,EAAE,MAAM,EAG1B;CACJ;AAKD,MAAM,CAAC,OAAO,OAAO,SAAS;;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAKpB,OAAO,eAGN;IAED,OAAa,IAAI,CACb,EAAE,EAAE,EAAE,EACN,KAAK,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,aAAa,CAAC;QACpB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC;KACjB,GACF,OAAO,CAAC,SAAS,CAAC,CAuBpB;IAED,QAAQ,CAAC,cAAc,EAAE,uBAAuB,CAkD9C;IAEF,gBAAgB,CAAC,UAAU,EAAE,SAAS,yBAAyB,EAAE,GAAG,IAAI,CAOvE;IAEK,eAAe,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,GAAE,YAAY,GAAG,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBnG;IAEK,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,GAAE,uBAAuB,GAAG,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAchG;CACJ"}
1
+ {"version":3,"file":"ModelCall.d.ts","sourceRoot":"","sources":["../../src/core/ModelCall.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAIlC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,CAAC;AAEhD,qBAAa,yBAA0B,SAAQ,KAAK;IAChD,YAAY,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAG1C;CACJ;AAED,qBAAa,gCAAiC,SAAQ,KAAK;IACvD,YAAY,OAAO,EAAE,MAAM,EAG1B;CACJ;AAKD,MAAM,CAAC,OAAO,OAAO,SAAS;;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAKpB,OAAO,eAGN;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,OAAa,IAAI,CACb,EAAE,EAAE,EAAE,EACN,KAAK,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,aAAa,CAAC;QACpB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC;KACjB,GACF,OAAO,CAAC,SAAS,CAAC,CAuBpB;IAED,QAAQ,CAAC,cAAc,EAAE,uBAAuB,CAkD9C;IAEF,gBAAgB,CAAC,UAAU,EAAE,SAAS,yBAAyB,EAAE,GAAG,IAAI,CAOvE;IAEK,eAAe,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,GAAE,YAAY,GAAG,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBnG;IAEK,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,GAAE,uBAAuB,GAAG,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAchG;CACJ"}
@@ -25,6 +25,9 @@ export default class ModelCall {
25
25
  this.#db = db;
26
26
  this.id = id;
27
27
  }
28
+ get requestSequence() {
29
+ return this.#requestSequence;
30
+ }
28
31
  static async open(db, input) {
29
32
  let row;
30
33
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"ModelCall.js","sourceRoot":"","sources":["../../src/core/ModelCall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelCall.js","sourceRoot":"","sources":["../../src/core/ModelCall.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,8 @@ export default class NoticeChannel {
5
5
  constructor({ notify }?: {
6
6
  notify?: NoticeNotify;
7
7
  });
8
- push(workspaceId: number, loopId: number, notice: Notice): void;
9
- notify(workspaceId: number, loopId: number, notice: Notice): void;
8
+ push(workspaceId: number, workerId: number, loopId: number, notice: Notice): void;
9
+ notify(workspaceId: number, workerId: number | null, loopId: number, notice: Notice): void;
10
10
  drain(loopId: number): Notice[];
11
11
  delete(loopId: number): void;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NoticeChannel.d.ts","sourceRoot":"","sources":["../../src/core/NoticeChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,MAAM,CAAC,OAAO,OAAO,aAAa;;IAI9B,YAAY,EAAE,MAAM,EAAE,GAAE;QAAE,MAAM,CAAC,EAAE,YAAY,CAAA;KAAO,EAErD;IAED,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAe9D;IAID,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAGhE;IAGD,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAK9B;IAED,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE3B;CASJ"}
1
+ {"version":3,"file":"NoticeChannel.d.ts","sourceRoot":"","sources":["../../src/core/NoticeChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,MAAM,CAAC,OAAO,OAAO,aAAa;;IAI9B,YAAY,EAAE,MAAM,EAAE,GAAE;QAAE,MAAM,CAAC,EAAE,YAAY,CAAA;KAAO,EAErD;IAED,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAchF;IAID,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAGzF;IAID,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAK9B;IAED,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE3B;CAgBJ"}
@@ -7,14 +7,15 @@ export default class NoticeChannel {
7
7
  constructor({ notify } = {}) {
8
8
  this.#notify = notify;
9
9
  }
10
- push(workspaceId, loopId, notice) {
10
+ push(workspaceId, workerId, loopId, notice) {
11
11
  NoticeChannel.#assert(notice);
12
12
  const existing = this.#buffer.get(loopId);
13
+ const replacementKey = NoticeChannel.#replacementKey(notice);
13
14
  if (existing === undefined) {
14
15
  this.#buffer.set(loopId, [notice]);
15
16
  }
16
- else if (NoticeChannel.#isReplaceableProgress(notice)) {
17
- const prior = existing.findIndex((item) => item.source === notice.source && item.kind === notice.kind);
17
+ else if (replacementKey !== null) {
18
+ const prior = existing.findIndex((item) => NoticeChannel.#replacementKey(item) === replacementKey);
18
19
  if (prior === -1)
19
20
  existing.push(notice);
20
21
  else
@@ -23,15 +24,16 @@ export default class NoticeChannel {
23
24
  else {
24
25
  existing.push(notice);
25
26
  }
26
- this.#notify?.(workspaceId, { loopId, notice });
27
+ this.#notify?.(workspaceId, { workerId, loopId, notice });
27
28
  }
28
29
  // Live fan-out ONLY, never buffered — for work with no loop to drain the
29
30
  // buffer (e.g. workspace-scope derivation warming, loopId 0).
30
- notify(workspaceId, loopId, notice) {
31
+ notify(workspaceId, workerId, loopId, notice) {
31
32
  NoticeChannel.#assert(notice);
32
- this.#notify?.(workspaceId, { loopId, notice });
33
+ this.#notify?.(workspaceId, { workerId, loopId, notice });
33
34
  }
34
- // Each observation surfaces in one model packet.
35
+ // Event observations surface in at most one model packet; stateful
36
+ // observations retain only the current checkpoint.
35
37
  drain(loopId) {
36
38
  const buf = this.#buffer.get(loopId);
37
39
  if (buf === undefined)
@@ -45,8 +47,15 @@ export default class NoticeChannel {
45
47
  static #assert(notice) {
46
48
  Validator.assertNotice(notice);
47
49
  }
48
- static #isReplaceableProgress(notice) {
49
- return notice.source === "engine:derivation" && notice.kind === "embed_progress";
50
+ static #replacementKey(notice) {
51
+ if (notice.source === "engine:derivation" && notice.kind === "embed_progress") {
52
+ return `${notice.source}:${notice.kind}`;
53
+ }
54
+ if (notice.source === "engine:provider"
55
+ && (notice.kind === "provider_unavailable" || notice.kind === "provider_recovered")) {
56
+ return "engine:provider:availability";
57
+ }
58
+ return null;
50
59
  }
51
60
  }
52
61
  //# sourceMappingURL=NoticeChannel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NoticeChannel.js","sourceRoot":"","sources":["../../src/core/NoticeChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,0BAA0B,CAAC;AAGlE,kFAAkF;AAClF,qFAAqF;AACrF,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IACtC,OAAO,CAA2B;IAElC,YAAY,EAAE,MAAM,EAAE,GAA8B,EAAE;QAClD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,WAAmB,EAAE,MAAc,EAAE,MAAc;QACpD,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CACtC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAC7D,CAAC;YACF,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;;gBACnC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,yEAAyE;IACzE,8DAA8D;IAC9D,MAAM,CAAC,WAAmB,EAAE,MAAc,EAAE,MAAc;QACtD,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,MAAc;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,MAAc;QACzB,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,sBAAsB,CAAC,MAAc;QACxC,OAAO,MAAM,CAAC,MAAM,KAAK,mBAAmB,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAC;IACrF,CAAC;CACJ"}
1
+ {"version":3,"file":"NoticeChannel.js","sourceRoot":"","sources":["../../src/core/NoticeChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,0BAA0B,CAAC;AAGlE,kFAAkF;AAClF,qFAAqF;AACrF,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IACtC,OAAO,CAA2B;IAElC,YAAY,EAAE,MAAM,EAAE,GAA8B,EAAE;QAClD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,WAAmB,EAAE,QAAgB,EAAE,MAAc,EAAE,MAAc;QACtE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,cAAc,CAAC,CAAC;YACnG,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;;gBACnC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,yEAAyE;IACzE,8DAA8D;IAC9D,MAAM,CAAC,WAAmB,EAAE,QAAuB,EAAE,MAAc,EAAE,MAAc;QAC/E,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,mEAAmE;IACnE,mDAAmD;IACnD,KAAK,CAAC,MAAc;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,MAAc;QACzB,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAc;QACjC,IAAI,MAAM,CAAC,MAAM,KAAK,mBAAmB,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC5E,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7C,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,iBAAiB;eAChC,CAAC,MAAM,CAAC,IAAI,KAAK,sBAAsB,IAAI,MAAM,CAAC,IAAI,KAAK,oBAAoB,CAAC,EAAE,CAAC;YACtF,OAAO,8BAA8B,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"OperatorConfig.d.ts","sourceRoot":"","sources":["../../src/core/OperatorConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAQ5C,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,UAAU,IAAI,MAAM,CA6C1B;IAED,OAAa,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA8B5E;CACJ"}
1
+ {"version":3,"file":"OperatorConfig.d.ts","sourceRoot":"","sources":["../../src/core/OperatorConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAQ5C,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,UAAU,IAAI,MAAM,CAiD1B;IAED,OAAa,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA8B5E;CACJ"}
@@ -44,6 +44,10 @@ export default class OperatorConfig {
44
44
  "# PLURNK_MCP_BRAVE_TOOLS=[\"brave_web_search\",\"brave_news_search\"]",
45
45
  "# PLURNK_MCP_BRAVE_READ=[\"brave_web_search\",\"brave_news_search\"]",
46
46
  "# PLURNK_MCP_ENABLED=[\"brave\"]",
47
+ "# File membership definitions ride the same shape ({§members-configuration}):",
48
+ "# PLURNK_MEMBERS_DOCS=docs/**",
49
+ "# PLURNK_MEMBERS_NO_LOCKS=!**/*.lock",
50
+ "# PLURNK_MEMBERS_ENABLED=[\"docs\"]",
47
51
  "",
48
52
  "# OPTIONAL TAVILY HTML MATERIALIZATION — install",
49
53
  "# @plurnk/plurnk-schemes-http-tavily, then uncomment both lines.",
@@ -1 +1 @@
1
- {"version":3,"file":"OperatorConfig.js","sourceRoot":"","sources":["../../src/core/OperatorConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGrF,MAAM,MAAM,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;KAChF,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAExB,8EAA8E;AAC9E,qEAAqE;AACrE,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,UAAU;QACb,OAAO;YACH,2EAA2E;YAC3E,0DAA0D;YAC1D,sDAAsD;YACtD,GAAG;YACH,gEAAgE;YAChE,EAAE;YACF,gDAAgD;YAChD,yCAAyC;YACzC,0BAA0B;YAC1B,uBAAuB;YACvB,EAAE;YACF,sDAAsD;YACtD,2DAA2D;YAC3D,8BAA8B;YAC9B,2BAA2B;YAC3B,EAAE;YACF,2EAA2E;YAC3E,sCAAsC;YACtC,iDAAiD;YACjD,gDAAgD;YAChD,sBAAsB;YACtB,EAAE;YACF,4EAA4E;YAC5E,8EAA8E;YAC9E,wEAAwE;YACxE,kDAAkD;YAClD,wDAAwD;YACxD,EAAE;YACF,iFAAiF;YACjF,yBAAyB;YACzB,wBAAwB;YACxB,2EAA2E;YAC3E,iEAAiE;YACjE,uEAAuE;YACvE,sEAAsE;YACtE,kCAAkC;YAClC,EAAE;YACF,kDAAkD;YAClD,kEAAkE;YAClE,0BAA0B;YAC1B,mDAAmD;YACnD,EAAE;SACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAgB,EAAE,YAAoB;QACtD,IAAI,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,IAAI,CAAC;YACD,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9G,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACpC,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzF,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,cAAc,GAAc,EAAE,CAAC;YACrC,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;gBAAC,CAAC;gBAC3B,OAAO,aAAa,EAAE,CAAC;oBACnB,IAAK,aAAuC,CAAC,IAAI,KAAK,QAAQ;wBAAE,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACvG,CAAC;YACL,CAAC;YACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBAAC,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAAC,CAAC;gBACrC,OAAO,aAAa,EAAE,CAAC;oBACnB,IAAK,aAAuC,CAAC,IAAI,KAAK,QAAQ;wBAAE,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACvG,CAAC;YACL,CAAC;YACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,cAAc,CAAC,CAAC,KAAK,EAAE,GAAG,cAAc,CAAC,EAAE,8DAA8D,CAAC,CAAC;YACzH,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"OperatorConfig.js","sourceRoot":"","sources":["../../src/core/OperatorConfig.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OverflowTurn.d.ts","sourceRoot":"","sources":["../../src/core/OverflowTurn.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAErB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAkBlC,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;CACrC,CAAC;AAoCF,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,OAAa,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAmBjF;IAED,MAAM,CAAC,aAAa,IAAI,aAAa,CAUpC;IAED,MAAM,CAAC,aAAa,IAAI,aAAa,CAUpC;CACJ"}
1
+ {"version":3,"file":"OverflowTurn.d.ts","sourceRoot":"","sources":["../../src/core/OverflowTurn.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAErB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAkBlC,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;CACrC,CAAC;AAqCF,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,OAAa,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAmBjF;IAED,MAAM,CAAC,aAAa,IAAI,aAAa,CAUpC;IAED,MAAM,CAAC,aAAa,IAAI,aAAa,CAUpC;CACJ"}
@@ -3,7 +3,7 @@ import LogBody from "./LogBody.js";
3
3
  import LogEntryProjection from "./LogEntryProjection.js";
4
4
  import LogVisibility from "./LogVisibility.js";
5
5
  const OVERFLOW_PLAN = "Automatically FOLD log bodies newly active at token-budget overflow.";
6
- const OVERFLOW_SEND = "Next: YOU MUST ONLY FOLD, KILL, or trim ALL superseded, stale, or irrelevant log content in bulk in the next turn.";
6
+ const OVERFLOW_SEND = "Next: YOU MUST ONLY FOLD, KILL, or trim ALL superseded, stale, or irrelevant log content in bulk.";
7
7
  const targetFor = (coordinate) => ({
8
8
  kind: "url",
9
9
  raw: `log:///${coordinate}`,
@@ -24,6 +24,7 @@ const foldFor = (row) => {
24
24
  delimiter: "",
25
25
  signal: ["+_plurnk", "+overflow"],
26
26
  target: targetFor(coordinate),
27
+ metadata: null,
27
28
  lineMarker: { marks: [1, -1] },
28
29
  body: null,
29
30
  position: UNKNOWN_POSITION,
@@ -57,7 +58,7 @@ export default class OverflowTurn {
57
58
  static planStatement() {
58
59
  return {
59
60
  op: "PLAN", delimiter: "", annotation: null,
60
- signal: null, target: null, lineMarker: null,
61
+ signal: null, target: null, metadata: null, lineMarker: null,
61
62
  body: [{
62
63
  content: OVERFLOW_PLAN,
63
64
  status: "in_progress",
@@ -68,7 +69,7 @@ export default class OverflowTurn {
68
69
  static sendStatement() {
69
70
  return {
70
71
  op: "SEND", delimiter: "", annotation: null,
71
- signal: 102, target: null, lineMarker: null,
72
+ signal: 102, target: null, metadata: null, lineMarker: null,
72
73
  body: {
73
74
  raw: OVERFLOW_SEND,
74
75
  json: null,
@@ -1 +1 @@
1
- {"version":3,"file":"OverflowTurn.js","sourceRoot":"","sources":["../../src/core/OverflowTurn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OverflowTurn.js","sourceRoot":"","sources":["../../src/core/OverflowTurn.ts"],"names":[],"mappings":"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"}
@@ -27,10 +27,10 @@ export default class Owner {
27
27
  return created.id;
28
28
  }
29
29
  // {§stream-owner-scoped} — resolve a capability-stream address's authority to its owner:
30
- // empty authority = the CALLING worker (a worker's own streams need no qualifier); a named
31
- // authority = that worker, gated by ancestry (reader must be the owner or an ancestor —
32
- // oversight flows down the tree). Unknown name or unpermitted reader = null → the caller
33
- // 404s without leaking existence.
30
+ // empty authority = the CALLING worker (a worker's own streams need no qualifier, and two
31
+ // fan-out siblings' identical coordinates never collide); a named authority = that worker,
32
+ // any worker of the workspace — topology is the parent's design (#394). Unknown name = null →
33
+ // the caller 404s.
34
34
  static async resolveStreamOwner(hostname, ctx) {
35
35
  if (hostname === null || hostname === undefined || hostname === "")
36
36
  return ctx.workerId;
@@ -39,7 +39,7 @@ export default class Owner {
39
39
  return null;
40
40
  if (named.id === ctx.workerId)
41
41
  return named.id;
42
- const permitted = await ctx.db.owner_is_ancestor_or_self.get({ owner_id: named.id, reader_id: ctx.workerId });
42
+ const permitted = await ctx.db.owner_shares_workspace.get({ owner_id: named.id, reader_id: ctx.workerId });
43
43
  return permitted === undefined ? null : named.id;
44
44
  }
45
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Owner.js","sourceRoot":"","sources":["../../src/core/Owner.ts"],"names":[],"mappings":"AAGA,yEAAyE;AACzE,gGAAgG;AAChG,iGAAiG;AACjG,iGAAiG;AACjG,0FAA0F;AAC1F,MAAM,CAAC,OAAO,OAAO,KAAK;IACtB,0FAA0F;IAC1F,yFAAyF;IACzF,uEAAuE;IACvE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAM,EAAE,WAAmB;QAC9C,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,2BAA2B,CAAC,GAAG,CAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1H,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACvI,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACrG,OAAO,OAAO,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,sGAAsG;IACtG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAM,EAAE,WAAmB;QAC7C,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,2BAA2B,CAAC,GAAG,CAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzH,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACtI,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACnG,OAAO,OAAO,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,yFAAyF;IACzF,2FAA2F;IAC3F,wFAAwF;IACxF,yFAAyF;IACzF,kCAAkC;IAClC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAmC,EAAE,GAAwB;QACzF,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC;QACxF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAiB,EAAE,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzH,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACrC,IAAI,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAwB,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrI,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;IACrD,CAAC;CACJ"}
1
+ {"version":3,"file":"Owner.js","sourceRoot":"","sources":["../../src/core/Owner.ts"],"names":[],"mappings":"AAGA,yEAAyE;AACzE,gGAAgG;AAChG,iGAAiG;AACjG,iGAAiG;AACjG,0FAA0F;AAC1F,MAAM,CAAC,OAAO,OAAO,KAAK;IACtB,0FAA0F;IAC1F,yFAAyF;IACzF,uEAAuE;IACvE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAM,EAAE,WAAmB;QAC9C,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,2BAA2B,CAAC,GAAG,CAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1H,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACvI,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACrG,OAAO,OAAO,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,sGAAsG;IACtG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAM,EAAE,WAAmB;QAC7C,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,2BAA2B,CAAC,GAAG,CAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzH,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACtI,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACnG,OAAO,OAAO,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,yFAAyF;IACzF,0FAA0F;IAC1F,2FAA2F;IAC3F,8FAA8F;IAC9F,mBAAmB;IACnB,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAmC,EAAE,GAAwB;QACzF,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC;QACxF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAiB,EAAE,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzH,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACrC,IAAI,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAwB,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClI,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;IACrD,CAAC;CACJ"}
@@ -23,9 +23,9 @@ export default class PacketBuilder {
23
23
  content: string;
24
24
  }>): void;
25
25
  curationBudgetFor(provider: Provider): number | null;
26
- buildRequestPacket({ initialMessages, requirements, workspaceId, workerId, loopId, currentTurnSeq, provider, gitStatus, notices, transientOpenLogEntryId, promptProjection, }: {
26
+ buildRequestPacket({ initialMessages, recap, workspaceId, workerId, loopId, currentTurnSeq, provider, gitStatus, notices, transientOpenLogEntryId, promptProjection, }: {
27
27
  initialMessages: ChatMessage[];
28
- requirements?: string;
28
+ recap?: string;
29
29
  gitStatus: GitStatus | null;
30
30
  workspaceId: number;
31
31
  workerId: number;
@@ -1 +1 @@
1
- {"version":3,"file":"PacketBuilder.d.ts","sourceRoot":"","sources":["../../src/core/PacketBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAgBhD,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,mBAAmB,CAAC;AAG5E,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AA2FtE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAID,MAAM,CAAC,OAAO,OAAO,aAAa;;IAa9B,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QACpC,EAAE,EAAE,EAAE,CAAC;QACP,OAAO,EAAE,cAAc,CAAC;QACxB,SAAS,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAC;KACjD,EAQA;IAED,yBAAyB,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAE7G;IAiCD,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAEnD;IAIK,kBAAkB,CAAC,EACrB,eAAe,EAAE,YAAiB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAY,EACpH,uBAA8B,EAC9B,gBAA8B,GACjC,EAAE;QACC,eAAe,EAAE,WAAW,EAAE,CAAC;QAE/B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAEtD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,QAAQ,CAAC;QAInB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAG5B,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAGxC,gBAAgB,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;KAC/C,GAAG,OAAO,CAAC,aAAa,CAAC,CAsIzB;IAYK,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAyBnH;IAKD,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,GAAG,gBAAgB,GAAG,IAAI,CAInF;IAKK,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9E,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC,CASF;CAqFJ"}
1
+ {"version":3,"file":"PacketBuilder.d.ts","sourceRoot":"","sources":["../../src/core/PacketBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAgBhD,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,mBAAmB,CAAC;AAG5E,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AA0FtE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAID,MAAM,CAAC,OAAO,OAAO,aAAa;;IAc9B,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QACpC,EAAE,EAAE,EAAE,CAAC;QACP,OAAO,EAAE,cAAc,CAAC;QACxB,SAAS,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAC;KACjD,EASA;IAED,yBAAyB,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAE7G;IAiCD,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAEnD;IAIK,kBAAkB,CAAC,EACrB,eAAe,EAAE,KAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAY,EAC7G,uBAA8B,EAC9B,gBAA8B,GACjC,EAAE;QACC,eAAe,EAAE,WAAW,EAAE,CAAC;QAE/B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAEtD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,QAAQ,CAAC;QAInB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAG5B,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAGxC,gBAAgB,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;KAC/C,GAAG,OAAO,CAAC,aAAa,CAAC,CAqJzB;IAIK,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAuCnH;IAKD,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,GAAG,gBAAgB,GAAG,IAAI,CAInF;IAKK,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9E,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC,CASF;CAqFJ"}
@@ -1,9 +1,9 @@
1
1
  var _a;
2
2
  import { generatedPathname, renderAddress, promptLoopPrefix } from "./plurnk-uri.js";
3
3
  import { contentWeight } from "./content-weight.js";
4
- import { Policy } from "@plurnk/plurnk-execs";
5
- import WorkspaceSettings from "./workspace-settings.js";
6
- import LoopFlagsReader from "./LoopFlagsReader.js";
4
+ import LoopPolicyReader from "./LoopPolicyReader.js";
5
+ import CapabilityPolicies from "./CapabilityPolicies.js";
6
+ import CapabilityResolver from "./CapabilityResolver.js";
7
7
  import { readPacketInject, readSystemPolicy } from "./packet-inject.js";
8
8
  import { readFile } from "node:fs/promises";
9
9
  import Paths from "../Paths.js";
@@ -19,7 +19,6 @@ import BudgetReadout from "./BudgetReadout.js";
19
19
  import LineAnchors from "../content/line-anchors.js";
20
20
  import ToolResources from "./ToolResources.js";
21
21
  import LogVisibility from "./LogVisibility.js";
22
- import WorkerSettingsReader from "./worker-settings.js";
23
22
  const trimHorizontal = (value) => value.replace(/^[\t ]+|[\t ]+$/gu, "");
24
23
  const tableCells = (line) => {
25
24
  if (!line.startsWith("|") || !line.endsWith("|"))
@@ -108,6 +107,7 @@ class PacketBuilder {
108
107
  // Boot-discovered runtime executors, late-injected on Engine after daemon
109
108
  // start() — read through a thunk so the post-construction set is visible.
110
109
  #executors;
110
+ #capabilities;
111
111
  // {§functionality-documents} — family-generated documents of a Worker's
112
112
  // published Functionality, reconciled with its other reference entries.
113
113
  #functionalityDocuments = () => [];
@@ -117,6 +117,7 @@ class PacketBuilder {
117
117
  this.#db = db;
118
118
  this.#schemes = schemes;
119
119
  this.#executors = executors;
120
+ this.#capabilities = new CapabilityResolver(db, schemes, executors);
120
121
  // Retired capacity knobs fail at boot rather than silently becoming inert.
121
122
  const bootAlias = resolveActiveRoute(process.env)?.alias ?? "";
122
123
  this.#shedRetiredCapacityKnobs();
@@ -160,12 +161,15 @@ class PacketBuilder {
160
161
  }
161
162
  // {§packet-stored-shape} — assemble the system/user request before the
162
163
  // provider call; complete the same record with the provider response.
163
- async buildRequestPacket({ initialMessages, requirements = "", workspaceId, workerId, loopId, currentTurnSeq, provider, gitStatus, notices = [], transientOpenLogEntryId = null, promptProjection = "automatic", }) {
164
- // {§loop-flags-effective-read} Validate active-loop policy before any
164
+ async buildRequestPacket({ initialMessages, recap = "", workspaceId, workerId, loopId, currentTurnSeq, provider, gitStatus, notices = [], transientOpenLogEntryId = null, promptProjection = "automatic", }) {
165
+ // {§loop-policy-effective-read} Validate active-loop policy before any
165
166
  // packet assembly or provider spend, independently of its presentation.
166
- // The validated flags also select the loop's resolved scheme set for the
167
- // Resources directory ({§schemes-directory}).
168
- const flags = await LoopFlagsReader.read(this.#db, loopId);
167
+ const policy = await LoopPolicyReader.read(this.#db, loopId);
168
+ const capabilityLayers = await CapabilityPolicies.layers(this.#db, workspaceId, workerId, policy);
169
+ const capabilityPolicies = capabilityLayers.map((layer) => layer.policy);
170
+ const admittedSchemeExamples = new Set(this.#schemes.examples(workerId)
171
+ .filter(({ source }) => this.#capabilities.allowsExampleAcross(source, workerId, capabilityPolicies))
172
+ .map(({ name }) => name));
169
173
  const byRole = (role) => initialMessages.filter((m) => m.role === role).map((m) => m.content).join("\n\n");
170
174
  // plurnk.md (grammar/dialects) ONLY — the definition is the hot-path grammar.
171
175
  // The resource catalogue is its own `schemes` section ({§schemes-directory}),
@@ -191,12 +195,12 @@ class PacketBuilder {
191
195
  const prompt = promptRows.length > 0
192
196
  ? promptRows.map((r) => `* prompt://${r.pathname}`).join("\n")
193
197
  : byRole("user");
194
- // {§requirements}: a non-empty override wins; otherwise read the meta-owned source per packet.
195
- const recap = requirements.length > 0
196
- ? requirements
197
- : Paths.defaultRequirementsTeachingSource === null
198
- ? await readFile(Paths.defaultRequirements, "utf8")
199
- : await readTeachingSource(Paths.defaultRequirementsTeachingSource);
198
+ // {§recap}: a non-empty override wins; otherwise read the meta-owned source per packet.
199
+ const recapContent = recap.length > 0
200
+ ? recap
201
+ : Paths.defaultRecapTeachingSource === null
202
+ ? await readFile(Paths.defaultRecap, "utf8")
203
+ : await readTeachingSource(Paths.defaultRecapTeachingSource);
200
204
  // {§emission-admission}: the definition remains the complete language authority.
201
205
  const log = await this.#buildLog(workerId, transientOpenLogEntryId);
202
206
  const failures = await this.buildFailurePointers(loopId, currentTurnSeq);
@@ -236,25 +240,31 @@ class PacketBuilder {
236
240
  await this.#db.engine_stream_reported.run({ publication_id: c.publication_id, reported: c.bytes });
237
241
  const childWorkers = (await this.#db.engine_child_workers_live.all({ worker_id: workerId }))
238
242
  .map((r) => ({ status: r.status, path: `worker://${r.name}` }));
243
+ // {§child-orientation} — a child is told whose child it is, so it can name the parent's
244
+ // streams and space ({§worker-read-scope}, #394). Root workers have none → omitted.
245
+ const parentRow = await this.#db.engine_parent_worker.get({ worker_id: workerId });
246
+ const parentWorker = parentRow === undefined ? [] : [{ status: parentRow.status, path: `worker://${parentRow.name}` }];
247
+ const renderedLog = PacketWire.renderLogWithAccounting(log, weighContent, promptProjectionWeight === null ? {} : { promptProjectionWeight });
239
248
  const defaults = [
240
249
  { name: "definition", slot: "system", header: null, content: system_definition },
241
250
  // Stable privileged policy leads capability teaching for
242
251
  // prefix-cache locality. Empty policy sections simply disappear.
243
252
  { name: "system-policy", slot: "system", header: "Policy", content: systemPolicy ?? "" },
244
- { name: "schemes", slot: "system", header: "Resources", content: this.#schemes.teach(flags, workerId) },
253
+ { name: "schemes", slot: "system", header: "Resources", content: this.#schemes.teach(workerId, admittedSchemeExamples) },
245
254
  ...(inject !== null ? [{ name: "inject", slot: "system", header: "Operator Notes", content: inject }] : []),
246
255
  // The append-mostly log leads volatile user status ({§packet-cache-monotone}).
247
256
  {
248
257
  name: "log",
249
258
  slot: "user",
250
259
  header: "Log",
251
- content: PacketWire.renderLog(log, weighContent, promptProjectionWeight === null ? {} : { promptProjectionWeight }),
260
+ content: renderedLog.content,
252
261
  },
253
262
  // The per-turn status clump follows the log ({§packet-cache-monotone}).
254
263
  // child-orientation: what this worker holds live — streams then child workers — just above errors. Terse
255
264
  // pointers (the path is the actionable address the model READs/OPENs/KILLs), never advice. {§child-orientation}
256
265
  { name: "child-streams", slot: "user", header: "Child Streams", content: PacketWire.renderChildPointers(childStreams) },
257
266
  { name: "child-workers", slot: "user", header: "Active Child Workers", content: PacketWire.renderChildPointers(childWorkers) },
267
+ { name: "parent-worker", slot: "user", header: "Parent Worker", content: PacketWire.renderChildPointers(parentWorker) },
258
268
  { name: "errors", slot: "user", header: "Errors", content: PacketWire.renderFailurePointers(failures) },
259
269
  { name: "notices", slot: "user", header: "Notices", content: PacketWire.renderNotices(notices) },
260
270
  { name: "git", slot: "user", header: "Git Status", content: PacketWire.renderGit(gitStatus, branchAssignment?.branch ?? null) },
@@ -264,18 +274,22 @@ class PacketBuilder {
264
274
  // The prompts section closes the status clump as a paths-only list;
265
275
  // bodies arrive through first-class prompt rows.
266
276
  { name: "prompt", slot: "user", header: "Active User Prompts", content: prompt },
267
- { name: "requirements", slot: "user", header: "Recap", content: recap },
277
+ { name: "recap", slot: "user", header: "Recap", content: recapContent },
268
278
  ];
269
279
  // Plugin packet control ({§packet-assembly}): trusted schemes rewrite the
270
280
  // default list — add, remove, reorder — in-process, before measurement.
271
281
  let drafts = await this.#schemes.transformSections(defaults, workerId);
272
282
  const budgetSection = drafts.find((section) => section.name === "budget");
273
283
  if (budgetSection !== undefined && curationBudget !== null) {
284
+ const transformedLog = drafts.find((section) => section.name === "log");
285
+ const reclaimableBodies = transformedLog?.content === renderedLog.content
286
+ ? renderedLog.reclaimableBodies
287
+ : [];
274
288
  const content = BudgetReadout.resolve(budgetSection.content, curationBudget, (candidate) => {
275
289
  const candidateDrafts = drafts.map((section) => section === budgetSection ? { ...section, content: candidate } : section);
276
290
  return weighContent(PacketWire.renderSlot(candidateDrafts, "system"))
277
291
  + weighContent(PacketWire.renderSlot(candidateDrafts, "user"));
278
- });
292
+ }, reclaimableBodies);
279
293
  drafts = drafts.map((section) => section === budgetSection ? { ...section, content } : section);
280
294
  }
281
295
  // Core alone turns validated drafts into measured durable sections.
@@ -286,38 +300,42 @@ class PacketBuilder {
286
300
  const renderWeight = weighContent(PacketWire.renderSlot(sections, "system")) + weighContent(PacketWire.renderSlot(sections, "user"));
287
301
  return { weight: renderWeight, sections, attributions: [] };
288
302
  }
289
- // {§operator-config-workspace-execs} — tool resources and dispatch share one
290
- // workspace predicate.
291
- async #workspaceEnabled(workspaceId) {
292
- const { execs } = await WorkspaceSettings.read(this.#db, workspaceId);
293
- if (execs === null)
294
- return () => true;
295
- return (tag) => Policy.isEnabled(tag, execs);
296
- }
297
303
  // {§schemes-self-doc-materialization} {§tools-resource-materialization} —
298
304
  // one reserved reference set, materialized by LoopDocs.
299
305
  async referenceEntries(workspaceId, workerId) {
300
- const out = (await this.#schemes.docs(workerId)).map(({ name, content }) => ({
301
- pathname: generatedPathname(`/skills/plurnk/${name}.md`),
306
+ const layers = await CapabilityPolicies.workerLayers(this.#db, workspaceId, workerId);
307
+ const policies = layers.map((layer) => layer.policy);
308
+ const admittedSchemes = new Set(this.#schemes.examples(workerId)
309
+ .filter(({ source }) => this.#capabilities.allowsExampleAcross(source, workerId, policies))
310
+ .map(({ name }) => name));
311
+ const out = (await this.#schemes.docs(workerId))
312
+ .filter(({ name }) => admittedSchemes.has(name))
313
+ .map(({ name, content }) => ({
314
+ pathname: generatedPathname(`/plurnk/${name}.md`),
302
315
  content,
303
316
  }));
304
317
  const executors = this.#executors();
305
318
  if (executors !== undefined) {
306
- const workspaceEnabled = await this.#workspaceEnabled(workspaceId); // {§operator-config-workspace-execs}
307
319
  for (const tag of executors.availableRuntimes(workerId)) {
308
- if (!workspaceEnabled(tag))
309
- continue;
310
- if (!(await WorkerSettingsReader.toolAvailable(this.#db, workerId, tag)))
311
- continue;
312
320
  const entry = executors.entry(tag, workerId);
313
321
  if (entry === undefined)
314
322
  continue;
323
+ const registry = executors.toolRegistry(tag, workerId);
324
+ const filteredRegistry = registry === null ? null : {
325
+ tools: registry.tools.filter((tool) => this.#capabilities.allowsRuntimeAcross(tag, tool.target, workerId, policies)),
326
+ };
327
+ if (registry === null) {
328
+ if (!this.#capabilities.allowsRuntimeAcross(tag, null, workerId, policies))
329
+ continue;
330
+ }
331
+ else if (filteredRegistry.tools.length === 0)
332
+ continue;
315
333
  out.push(...ToolResources.render({
316
334
  runtime: tag,
317
335
  summary: entry.summary,
318
336
  invocation: entry.invocation,
319
337
  details: entry.details,
320
- registry: executors.toolRegistry(tag, workerId),
338
+ registry: filteredRegistry,
321
339
  ...(entry.resourcesPath === undefined ? {} : { resourcesPath: entry.resourcesPath }),
322
340
  }));
323
341
  }