@plurnk/plurnk-service 1.5.0 → 1.6.1

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 (248) hide show
  1. package/.env.defaults +22 -27
  2. package/INSTALL.md +22 -17
  3. package/README.md +1 -1
  4. package/SPEC.md +505 -362
  5. package/dist/build-info.json +1 -1
  6. package/dist/content/edit-collision.d.ts +5 -0
  7. package/dist/content/edit-collision.d.ts.map +1 -0
  8. package/dist/content/edit-collision.js +14 -0
  9. package/dist/content/edit-collision.js.map +1 -0
  10. package/dist/content/edit-receipt.d.ts +3 -2
  11. package/dist/content/edit-receipt.d.ts.map +1 -1
  12. package/dist/content/edit-receipt.js +58 -13
  13. package/dist/content/edit-receipt.js.map +1 -1
  14. package/dist/content/index.d.ts +4 -1
  15. package/dist/content/index.d.ts.map +1 -1
  16. package/dist/content/index.js +3 -1
  17. package/dist/content/index.js.map +1 -1
  18. package/dist/content/line-anchors.d.ts +41 -0
  19. package/dist/content/line-anchors.d.ts.map +1 -0
  20. package/dist/content/line-anchors.js +191 -0
  21. package/dist/content/line-anchors.js.map +1 -0
  22. package/dist/content/read-projector.d.ts +7 -1
  23. package/dist/content/read-projector.d.ts.map +1 -1
  24. package/dist/content/read-projector.js +46 -10
  25. package/dist/content/read-projector.js.map +1 -1
  26. package/dist/content/read-resolve.js +3 -3
  27. package/dist/content/read-resolve.js.map +1 -1
  28. package/dist/core/BudgetReadout.d.ts.map +1 -1
  29. package/dist/core/BudgetReadout.js +9 -2
  30. package/dist/core/BudgetReadout.js.map +1 -1
  31. package/dist/core/ChannelWrite.js +1 -1
  32. package/dist/core/ChannelWrite.js.map +1 -1
  33. package/dist/core/ChannelWrite.sql +3 -3
  34. package/dist/core/CoreSchemeServices.d.ts +1 -1
  35. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  36. package/dist/core/CoreSchemeServices.js +1 -1
  37. package/dist/core/CoreSchemeServices.js.map +1 -1
  38. package/dist/core/Dispatcher.d.ts +15 -5
  39. package/dist/core/Dispatcher.d.ts.map +1 -1
  40. package/dist/core/Dispatcher.js +220 -978
  41. package/dist/core/Dispatcher.js.map +1 -1
  42. package/dist/core/DurableStatement.d.ts.map +1 -1
  43. package/dist/core/DurableStatement.js +2 -0
  44. package/dist/core/DurableStatement.js.map +1 -1
  45. package/dist/core/Engine.d.ts +18 -43
  46. package/dist/core/Engine.d.ts.map +1 -1
  47. package/dist/core/Engine.js +90 -1554
  48. package/dist/core/Engine.js.map +1 -1
  49. package/dist/core/Engine.sql +192 -112
  50. package/dist/core/ExecutableTools.d.ts +10 -0
  51. package/dist/core/ExecutableTools.d.ts.map +1 -0
  52. package/dist/core/ExecutableTools.js +41 -0
  53. package/dist/core/ExecutableTools.js.map +1 -0
  54. package/dist/core/ExecutorRegistry.d.ts +3 -3
  55. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  56. package/dist/core/ExecutorRegistry.js +2 -2
  57. package/dist/core/ExecutorRegistry.js.map +1 -1
  58. package/dist/core/LogBody.d.ts +3 -0
  59. package/dist/core/LogBody.d.ts.map +1 -1
  60. package/dist/core/LogBody.js +21 -5
  61. package/dist/core/LogBody.js.map +1 -1
  62. package/dist/core/LogEntryProjection.d.ts +14 -0
  63. package/dist/core/LogEntryProjection.d.ts.map +1 -0
  64. package/dist/core/LogEntryProjection.js +38 -0
  65. package/dist/core/LogEntryProjection.js.map +1 -0
  66. package/dist/core/ModelCall.d.ts +27 -0
  67. package/dist/core/ModelCall.d.ts.map +1 -0
  68. package/dist/core/ModelCall.js +127 -0
  69. package/dist/core/ModelCall.js.map +1 -0
  70. package/dist/core/PacketBuilder.d.ts +14 -25
  71. package/dist/core/PacketBuilder.d.ts.map +1 -1
  72. package/dist/core/PacketBuilder.js +170 -244
  73. package/dist/core/PacketBuilder.js.map +1 -1
  74. package/dist/core/ProblemLog.d.ts +1 -1
  75. package/dist/core/ProblemLog.d.ts.map +1 -1
  76. package/dist/core/ProblemLog.js +15 -3
  77. package/dist/core/ProblemLog.js.map +1 -1
  78. package/dist/core/ProposalLifecycle.d.ts +2 -2
  79. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  80. package/dist/core/ProposalLifecycle.js +17 -9
  81. package/dist/core/ProposalLifecycle.js.map +1 -1
  82. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  83. package/dist/core/ProviderInstantiate.js +25 -8
  84. package/dist/core/ProviderInstantiate.js.map +1 -1
  85. package/dist/core/ResourceMutations.d.ts +73 -0
  86. package/dist/core/ResourceMutations.d.ts.map +1 -0
  87. package/dist/core/ResourceMutations.js +1142 -0
  88. package/dist/core/ResourceMutations.js.map +1 -0
  89. package/dist/core/SchemeRegistry.js +10 -10
  90. package/dist/core/SchemeRegistry.js.map +1 -1
  91. package/dist/core/StoredPacket.d.ts +2 -2
  92. package/dist/core/StoredPacket.js +7 -7
  93. package/dist/core/StrikeRail.d.ts +0 -1
  94. package/dist/core/StrikeRail.d.ts.map +1 -1
  95. package/dist/core/StrikeRail.js +6 -4
  96. package/dist/core/StrikeRail.js.map +1 -1
  97. package/dist/core/TurnRunner.d.ts +72 -0
  98. package/dist/core/TurnRunner.d.ts.map +1 -0
  99. package/dist/core/TurnRunner.js +1730 -0
  100. package/dist/core/TurnRunner.js.map +1 -0
  101. package/dist/core/caps/CapsResolve.js +1 -1
  102. package/dist/core/caps/CapsResolve.js.map +1 -1
  103. package/dist/core/caps/DbChannelCaps.js +4 -4
  104. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  105. package/dist/core/caps/DbEntryCaps.d.ts +2 -1
  106. package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
  107. package/dist/core/caps/DbEntryCaps.js +8 -5
  108. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  109. package/dist/core/caps/DbProjectionCaps.d.ts +1 -0
  110. package/dist/core/caps/DbProjectionCaps.d.ts.map +1 -1
  111. package/dist/core/caps/DbProjectionCaps.js +29 -0
  112. package/dist/core/caps/DbProjectionCaps.js.map +1 -1
  113. package/dist/core/caps/SchemeCtxImpl.d.ts +5 -2
  114. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  115. package/dist/core/caps/SchemeCtxImpl.js +6 -4
  116. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  117. package/dist/core/content-hash.js +2 -2
  118. package/dist/core/content-hash.js.map +1 -1
  119. package/dist/core/content-weight.d.ts +2 -0
  120. package/dist/core/content-weight.d.ts.map +1 -0
  121. package/dist/core/content-weight.js +4 -0
  122. package/dist/core/content-weight.js.map +1 -0
  123. package/dist/core/content_weight.d.ts +4 -0
  124. package/dist/core/content_weight.d.ts.map +1 -0
  125. package/dist/core/content_weight.js +6 -0
  126. package/dist/core/content_weight.js.map +1 -0
  127. package/dist/core/fork.d.ts.map +1 -1
  128. package/dist/core/fork.js +23 -7
  129. package/dist/core/fork.js.map +1 -1
  130. package/dist/core/fork.sql +38 -17
  131. package/dist/core/git-membership.d.ts.map +1 -1
  132. package/dist/core/git-membership.js +1 -2
  133. package/dist/core/git-membership.js.map +1 -1
  134. package/dist/core/git-state.js +1 -1
  135. package/dist/core/git-state.js.map +1 -1
  136. package/dist/core/packet-wire.d.ts +6 -3
  137. package/dist/core/packet-wire.d.ts.map +1 -1
  138. package/dist/core/packet-wire.js +257 -99
  139. package/dist/core/packet-wire.js.map +1 -1
  140. package/dist/core/provider-accounting.d.ts +24 -0
  141. package/dist/core/provider-accounting.d.ts.map +1 -0
  142. package/dist/core/provider-accounting.js +76 -0
  143. package/dist/core/provider-accounting.js.map +1 -0
  144. package/dist/core/scheme-types.d.ts +1 -1
  145. package/dist/core/scheme-types.d.ts.map +1 -1
  146. package/dist/core/search-gate.d.ts +2 -2
  147. package/dist/core/search-gate.d.ts.map +1 -1
  148. package/dist/core/search-gate.js +8 -8
  149. package/dist/core/search-gate.js.map +1 -1
  150. package/dist/core/turn-scheduler.js +1 -1
  151. package/dist/core/turn-scheduler.js.map +1 -1
  152. package/dist/digest/Digest.d.ts.map +1 -1
  153. package/dist/digest/Digest.js +221 -110
  154. package/dist/digest/Digest.js.map +1 -1
  155. package/dist/digest/digest.sql +40 -18
  156. package/dist/schemes/Exec.d.ts.map +1 -1
  157. package/dist/schemes/Exec.js +136 -110
  158. package/dist/schemes/Exec.js.map +1 -1
  159. package/dist/schemes/ExecOutputScheme.js +1 -1
  160. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  161. package/dist/schemes/File.d.ts +5 -4
  162. package/dist/schemes/File.d.ts.map +1 -1
  163. package/dist/schemes/File.js +25 -23
  164. package/dist/schemes/File.js.map +1 -1
  165. package/dist/schemes/Log.d.ts +11 -0
  166. package/dist/schemes/Log.d.ts.map +1 -1
  167. package/dist/schemes/Log.js +172 -107
  168. package/dist/schemes/Log.js.map +1 -1
  169. package/dist/schemes/Log.sql +48 -32
  170. package/dist/schemes/Prompt.d.ts +3 -3
  171. package/dist/schemes/Prompt.d.ts.map +1 -1
  172. package/dist/schemes/Prompt.js +4 -1
  173. package/dist/schemes/Prompt.js.map +1 -1
  174. package/dist/schemes/Skill.d.ts +4 -4
  175. package/dist/schemes/Skill.d.ts.map +1 -1
  176. package/dist/schemes/Skill.js +3 -0
  177. package/dist/schemes/Skill.js.map +1 -1
  178. package/dist/schemes/Worker.d.ts +4 -4
  179. package/dist/schemes/Worker.d.ts.map +1 -1
  180. package/dist/schemes/Worker.js +11 -7
  181. package/dist/schemes/Worker.js.map +1 -1
  182. package/dist/schemes/_entry-crud.d.ts +0 -1
  183. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  184. package/dist/schemes/_entry-crud.js +19 -13
  185. package/dist/schemes/_entry-crud.js.map +1 -1
  186. package/dist/schemes/_entry-crud.sql +4 -16
  187. package/dist/schemes/_entry-find.d.ts +17 -16
  188. package/dist/schemes/_entry-find.d.ts.map +1 -1
  189. package/dist/schemes/_entry-find.js +58 -52
  190. package/dist/schemes/_entry-find.js.map +1 -1
  191. package/dist/schemes/_entry-find.sql +2 -21
  192. package/dist/schemes/_entry-graph.sql +1 -1
  193. package/dist/schemes/_entry-manifest.d.ts +5 -17
  194. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  195. package/dist/schemes/_entry-manifest.js +32 -28
  196. package/dist/schemes/_entry-manifest.js.map +1 -1
  197. package/dist/schemes/_entry-ops.d.ts +5 -4
  198. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  199. package/dist/schemes/_entry-ops.js +89 -49
  200. package/dist/schemes/_entry-ops.js.map +1 -1
  201. package/dist/schemes/_entry-ops.sql +30 -4
  202. package/dist/schemes/_entry-send.js +4 -4
  203. package/dist/schemes/_entry-send.js.map +1 -1
  204. package/dist/schemes/_search-index.d.ts.map +1 -1
  205. package/dist/schemes/_search-index.js +10 -2
  206. package/dist/schemes/_search-index.js.map +1 -1
  207. package/dist/schemes/exec-abort.js +2 -2
  208. package/dist/schemes/exec-abort.js.map +1 -1
  209. package/dist/server/Daemon.d.ts +7 -42
  210. package/dist/server/Daemon.d.ts.map +1 -1
  211. package/dist/server/Daemon.js +139 -900
  212. package/dist/server/Daemon.js.map +1 -1
  213. package/dist/server/DrainSupervisor.d.ts +117 -0
  214. package/dist/server/DrainSupervisor.d.ts.map +1 -0
  215. package/dist/server/DrainSupervisor.js +802 -0
  216. package/dist/server/DrainSupervisor.js.map +1 -0
  217. package/dist/server/drain.sql +2 -2
  218. package/dist/server/envelope.d.ts +0 -2
  219. package/dist/server/envelope.d.ts.map +1 -1
  220. package/dist/server/envelope.js.map +1 -1
  221. package/dist/server/envelope.sql +2 -2
  222. package/dist/server/lifecycle-recovery.sql +28 -15
  223. package/dist/server/logEntry.d.ts +2 -1
  224. package/dist/server/logEntry.d.ts.map +1 -1
  225. package/dist/server/logEntry.js +14 -2
  226. package/dist/server/logEntry.js.map +1 -1
  227. package/dist/server/logEntry.sql +5 -1
  228. package/dist/server/seam-entry-read.sql +2 -2
  229. package/dist/service.js +1 -1
  230. package/dist/service.js.map +1 -1
  231. package/migrations/001_schema.sql +622 -216
  232. package/package.json +39 -34
  233. package/dist/core/BudgetOverflow.d.ts +0 -20
  234. package/dist/core/BudgetOverflow.d.ts.map +0 -1
  235. package/dist/core/BudgetOverflow.js +0 -49
  236. package/dist/core/BudgetOverflow.js.map +0 -1
  237. package/dist/core/caps/DbTagCaps.d.ts +0 -10
  238. package/dist/core/caps/DbTagCaps.d.ts.map +0 -1
  239. package/dist/core/caps/DbTagCaps.js +0 -46
  240. package/dist/core/caps/DbTagCaps.js.map +0 -1
  241. package/dist/core/ruler_count.d.ts +0 -4
  242. package/dist/core/ruler_count.d.ts.map +0 -1
  243. package/dist/core/ruler_count.js +0 -7
  244. package/dist/core/ruler_count.js.map +0 -1
  245. package/dist/core/token-ruler.d.ts +0 -2
  246. package/dist/core/token-ruler.d.ts.map +0 -1
  247. package/dist/core/token-ruler.js +0 -5
  248. package/dist/core/token-ruler.js.map +0 -1
@@ -5,7 +5,7 @@ SELECT status FROM loops WHERE id = $loop_id;
5
5
 
6
6
  -- PREP: engine_worker_has_live_child
7
7
  -- A non-terminal child worker (worker:// spawn/fork set parent_worker_id) — a "live thing the worker holds",
8
- -- like an open stream. A SEND[200] while one exists is a premature-terminate ({§send-premature-terminate}).
8
+ -- like an open stream. A SEND signal 200 while one exists is a premature-terminate ({§send-premature-terminate}).
9
9
  -- Live = a child whose LATEST loop is still pending/running/parked (100/102/202) — the SAME definition
10
10
  -- engine_child_workers_live uses for the Active Child Workers orientation, so the 409 gate and the section the model
11
11
  -- reads NEVER disagree: a refused termination is always backed by a child the model can SEE and KILL
@@ -66,7 +66,8 @@ LIMIT 1;
66
66
  -- PREP: engine_list_owner_entries
67
67
  -- {§entry-owner} — one principal's entries (catalogRowsFor source for an owner-scoped FIND/foist):
68
68
  -- the commons, a worker's own space, or a named space — exactly one owner's rows, its perspective.
69
- SELECT e.id AS entry_id, e.scheme, e.pathname, ec.name AS channel, ec.content, ec.mimetype, ec.tokens AS tokens, e.deep_hash,
69
+ SELECT e.id AS entry_id, e.scheme, e.pathname, ec.name AS channel, ec.content, ec.mimetype, ec.weight AS weight, e.deep_hash,
70
+ d.parse_issues,
70
71
  s.id AS subscription_id,
71
72
  CASE WHEN s.closed_at IS NULL
72
73
  THEN CAST(unixepoch('now') - unixepoch(s.opened_at) AS INTEGER)
@@ -75,6 +76,7 @@ SELECT e.id AS entry_id, e.scheme, e.pathname, ec.name AS channel, ec.content, e
75
76
  s.close_status
76
77
  FROM entries e
77
78
  JOIN entry_channels ec ON ec.entry_id = e.id
79
+ LEFT JOIN derivations d ON d.deep_hash = e.deep_hash
78
80
  LEFT JOIN subscriptions s ON s.id = (
79
81
  SELECT latest.id
80
82
  FROM subscriptions latest
@@ -85,51 +87,59 @@ LEFT JOIN subscriptions s ON s.id = (
85
87
  WHERE e.workspace_id = $workspace_id AND e.owner_id = $owner_id
86
88
  ORDER BY e.updated_at ASC, e.id ASC, ec.name;
87
89
 
88
- -- PREP: engine_list_owner_entry_tags
89
- -- {§entry-owner} — (entry, tag) for one principal's entries (the owner-scoped catalog's tags field).
90
- SELECT et.entry_id, et.tag
91
- FROM entry_tags et
92
- JOIN entries e ON e.id = et.entry_id
93
- WHERE e.workspace_id = $workspace_id AND e.owner_id = $owner_id
94
- ORDER BY et.entry_id, et.tag;
95
-
96
90
  -- PREP: engine_next_turn_sequence
97
91
  SELECT COALESCE(MAX(sequence), 0) + 1 AS next FROM turns WHERE loop_id = $loop_id;
98
92
 
99
93
  -- PREP: engine_loop_usage
100
- -- Per-loop usage totals and latest-turn gauge ({§tokenomics-client-gauge}),
101
- -- surfaced on {§notifications-loop-terminated}. `context` is the latest
102
- -- provider attempt on the latest turn, distinct from summed billed `prompt`.
103
- SELECT COALESCE(SUM(usage_prompt), 0) AS prompt,
104
- COALESCE(SUM(usage_completion), 0) AS completion,
105
- COALESCE(SUM(usage_reasoning), 0) AS reasoning,
106
- COALESCE(SUM(usage_cached), 0) AS cached,
107
- (SELECT cost_usd FROM loop_costs WHERE id = $loop_id) AS cost_usd,
108
- COALESCE((
109
- SELECT json_group_array(json(cost.value))
110
- FROM turns charged, json_each(charged.usage_cost) AS cost
111
- WHERE charged.loop_id = $loop_id
112
- ), '[]') AS costs,
113
- (
114
- SELECT a.usage_prompt
115
- FROM turn_attempts a
116
- WHERE a.turn_id = (
117
- SELECT latest.id
118
- FROM turns latest
119
- WHERE latest.loop_id = $loop_id
120
- ORDER BY latest.sequence DESC
121
- LIMIT 1
122
- )
123
- AND a.state = 'response'
124
- ORDER BY a.sequence DESC
125
- LIMIT 1
126
- ) AS context,
127
- -- Latest turn's effective packet allowance; NULL when uncapped or unknown.
128
- -- {§tokenomics-client-gauge}
129
- (SELECT usage_prompt_budget FROM turns WHERE loop_id = $loop_id ORDER BY sequence DESC LIMIT 1) AS context_size,
94
+ -- Latest-turn gauge ({§tokenomics-client-gauge}), surfaced beside the derived
95
+ -- accounting projection on {§notifications-loop-terminated}. Physical usage
96
+ -- and capacity bind to the same latest completed emission call. A preflight
97
+ -- rejection has capacity evidence but no physical input usage; neither fact
98
+ -- falls back to an earlier call or turn.
99
+ WITH latest_turn AS (
100
+ SELECT id, packet, usage_curation_budget, meta
101
+ FROM turns
102
+ WHERE loop_id = $loop_id
103
+ ORDER BY sequence DESC
104
+ LIMIT 1
105
+ ), latest_emission AS (
106
+ SELECT mc.id, mc.capacity
107
+ FROM model_calls mc
108
+ JOIN latest_turn turn ON turn.id = mc.turn_id
109
+ WHERE mc.kind = 'emission' AND mc.state != 'pending'
110
+ ORDER BY mc.sequence DESC
111
+ LIMIT 1
112
+ )
113
+ SELECT (
114
+ SELECT pr.usage_input
115
+ FROM provider_requests pr
116
+ WHERE pr.model_call_id = (SELECT id FROM latest_emission)
117
+ AND pr.state = 'settled'
118
+ ORDER BY pr.sequence DESC
119
+ LIMIT 1
120
+ ) AS context_tokens,
121
+ (SELECT json_extract(packet, '$.weight') FROM latest_turn) AS curation_weight,
122
+ (SELECT usage_curation_budget FROM latest_turn) AS curation_budget,
123
+ (SELECT json_extract(capacity, '$.inputCapacity') FROM latest_emission) AS context_capacity,
130
124
  -- Latest turn's opaque provider metadata. {§meta-passthrough}
131
- (SELECT meta FROM turns WHERE loop_id = $loop_id ORDER BY sequence DESC LIMIT 1) AS meta
132
- FROM turns WHERE loop_id = $loop_id;
125
+ (SELECT meta FROM latest_turn) AS meta
126
+ FROM loops
127
+ WHERE id = $loop_id;
128
+
129
+ -- PREP: engine_loop_provider_requests
130
+ -- Ordered cardinal accounting evidence. Aggregation belongs to the shared
131
+ -- provider accounting contract, not SQLite arithmetic or denormalized rows.
132
+ SELECT pr.provider, pr.model, pr.outcome, pr.status,
133
+ pr.usage_input, pr.usage_output, pr.usage_total,
134
+ pr.usage_input_no_cache, pr.usage_input_cache_read, pr.usage_input_cache_write,
135
+ pr.usage_output_text, pr.usage_output_reasoning,
136
+ pr.cost_kind, pr.cost_amount, pr.cost_currency, pr.cost_usd_equivalent,
137
+ pr.cost_source, pr.cost_reason
138
+ FROM provider_requests pr
139
+ JOIN model_calls mc ON mc.id = pr.model_call_id
140
+ JOIN turns t ON t.id = mc.turn_id
141
+ WHERE t.loop_id = $loop_id AND pr.state = 'settled'
142
+ ORDER BY t.sequence, mc.sequence, pr.sequence;
133
143
 
134
144
  -- PREP: engine_loop_attributions
135
145
  -- {§attribution} — derive the loop projection from exact response-attempt
@@ -142,9 +152,9 @@ FROM (
142
152
  WHERE t.loop_id = $loop_id
143
153
  UNION
144
154
  SELECT value AS attribution
145
- FROM turn_attempts a
146
- JOIN turns t ON t.id = a.turn_id,
147
- json_each(a.attributions)
155
+ FROM model_calls mc
156
+ JOIN turns t ON t.id = mc.turn_id,
157
+ json_each(mc.attributions)
148
158
  WHERE t.loop_id = $loop_id
149
159
  )
150
160
  ORDER BY attribution;
@@ -174,54 +184,75 @@ RETURNING id;
174
184
  UPDATE turns SET
175
185
  status = $status,
176
186
  packet = $packet,
177
- usage_prompt_budget = $usage_prompt_budget,
187
+ usage_curation_budget = $usage_curation_budget,
178
188
  finish_reason = $finish_reason,
179
189
  model = $model,
180
190
  meta = $meta
181
191
  WHERE id = $id;
182
192
 
183
- -- PREP: engine_open_turn_attempt
184
- -- Identity and request attribution become durable before provider I/O.
185
- INSERT INTO turn_attempts (turn_id, sequence, attributions, model)
186
- VALUES ($turn_id, $sequence, $attributions, $model)
193
+ -- PREP: engine_open_model_call
194
+ -- Logical identity and request attribution become durable before provider I/O.
195
+ INSERT INTO model_calls (turn_id, sequence, kind, attributions, model)
196
+ VALUES ($turn_id, $sequence, $kind, $attributions, $model)
187
197
  RETURNING id;
188
198
 
189
- -- PREP: engine_observe_turn_attempt_response
190
- -- Preserve the response and provider usage before parser/cost classification.
191
- -- Unknown is the safe monetary evidence until the following classification.
192
- UPDATE turn_attempts SET
199
+ -- PREP: engine_observe_model_call_response
200
+ -- Preserve the logical response before call-specific interpretation. Physical
201
+ -- request accounting has already settled through its cardinal observer path.
202
+ UPDATE model_calls SET
193
203
  state = 'response',
194
204
  response = $response,
195
- usage_prompt = $usage_prompt,
196
- usage_completion = $usage_completion,
197
- usage_reasoning = $usage_reasoning,
198
- usage_cached = $usage_cached,
199
- usage_cost = $usage_cost,
200
- usage_cost_usd = NULL,
205
+ failure = $failure,
206
+ capacity = $capacity,
201
207
  finish_reason = $finish_reason,
202
208
  model = $model,
203
209
  completed_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
204
210
  WHERE id = $id AND state = 'pending';
205
211
 
212
+ -- PREP: engine_fail_model_call
213
+ UPDATE model_calls SET
214
+ state = 'error',
215
+ failure = $failure,
216
+ capacity = $capacity,
217
+ completed_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
218
+ WHERE id = $id AND state = 'pending';
219
+
220
+ -- PREP: engine_open_turn_attempt
221
+ INSERT INTO turn_attempts (model_call_id)
222
+ VALUES ($model_call_id)
223
+ RETURNING id;
224
+
206
225
  -- PREP: engine_classify_turn_attempt_response
207
226
  UPDATE turn_attempts SET
208
227
  accepted = $accepted,
209
- parse_errors = $parse_errors,
210
- failure = $failure,
211
- usage_cost = $usage_cost,
212
- usage_cost_usd = $usage_cost_usd
213
- WHERE id = $id AND state = 'response';
228
+ parse_errors = $parse_errors
229
+ WHERE id = $id AND accepted IS NULL;
214
230
 
215
- -- PREP: engine_fail_turn_attempt
216
- UPDATE turn_attempts SET
217
- state = 'error',
218
- failure = $failure,
219
- usage_prompt = 0,
220
- usage_completion = 0,
221
- usage_reasoning = 0,
222
- usage_cached = 0,
223
- usage_cost = $usage_cost,
224
- usage_cost_usd = NULL,
231
+ -- PREP: engine_open_provider_request
232
+ -- The provider calls this immediately before physical I/O.
233
+ INSERT INTO provider_requests (model_call_id, sequence, provider, model)
234
+ VALUES ($model_call_id, $sequence, $provider, $model)
235
+ RETURNING id;
236
+
237
+ -- PREP: engine_settle_provider_request
238
+ UPDATE provider_requests SET
239
+ state = 'settled',
240
+ outcome = $outcome,
241
+ status = $status,
242
+ usage_input = $usage_input,
243
+ usage_output = $usage_output,
244
+ usage_total = $usage_total,
245
+ usage_input_no_cache = $usage_input_no_cache,
246
+ usage_input_cache_read = $usage_input_cache_read,
247
+ usage_input_cache_write = $usage_input_cache_write,
248
+ usage_output_text = $usage_output_text,
249
+ usage_output_reasoning = $usage_output_reasoning,
250
+ cost_kind = $cost_kind,
251
+ cost_amount = $cost_amount,
252
+ cost_currency = $cost_currency,
253
+ cost_usd_equivalent = $cost_usd_equivalent,
254
+ cost_source = $cost_source,
255
+ cost_reason = $cost_reason,
225
256
  completed_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
226
257
  WHERE id = $id AND state = 'pending';
227
258
 
@@ -232,7 +263,7 @@ WHERE id = $id AND state = 'pending';
232
263
  -- The latest subscription carries stream lifecycle into the catalog. `seconds`
233
264
  -- is the live age of an open stream; close_status is the exact terminal status
234
265
  -- of a closed one. Entries with no subscription remain ordinary static entries.
235
- SELECT e.id AS entry_id, e.scheme, e.pathname, ec.name AS channel, ec.content, ec.mimetype, ec.tokens AS tokens, e.deep_hash,
266
+ SELECT e.id AS entry_id, e.scheme, e.pathname, ec.name AS channel, ec.content, ec.mimetype, ec.weight AS weight, e.deep_hash,
236
267
  s.id AS subscription_id,
237
268
  CASE WHEN s.closed_at IS NULL
238
269
  THEN CAST(unixepoch('now') - unixepoch(s.opened_at) AS INTEGER)
@@ -299,7 +330,7 @@ WITH observation AS (
299
330
  SELECT o.cursor, o.boundary,
300
331
  ae.id AS event_id, ae.producer_worker_id, producer.name AS producer_worker_name,
301
332
  ae.kind, ae.source,
302
- ae.op, ae.scheme, ae.hostname, ae.pathname, ae.rx, ae.attrs,
333
+ ae.op, ae.scheme, ae.hostname, ae.pathname, ae.rx, ae.attrs, ae.tags,
303
334
  ae.status_rx, ae.terminated_by
304
335
  FROM observation o
305
336
  LEFT JOIN ambient_events ae
@@ -317,15 +348,20 @@ ORDER BY ae.id;
317
348
  INSERT INTO log_entries (
318
349
  worker_id, loop_id, turn_id, sequence, origin, source, ambient_event_id,
319
350
  op, scheme, hostname, pathname, tx, mimetype_tx,
320
- rx, mimetype_rx, status_rx, expanded, attrs
351
+ rx, mimetype_rx, status_rx, weight, expanded, attrs
321
352
  ) VALUES (
322
353
  $worker_id, $loop_id, $turn_id, $sequence, 'plurnk', $source, $event_id,
323
354
  $op, $scheme, $hostname, $pathname, '', 'text/plain',
324
- $rx, $mimetype_rx, $status, $expanded, $attrs
355
+ $rx, $mimetype_rx, $status, $weight, $expanded, $attrs
325
356
  )
326
357
  ON CONFLICT(worker_id, ambient_event_id) WHERE ambient_event_id IS NOT NULL DO NOTHING
327
358
  RETURNING id;
328
359
 
360
+ -- PREP: engine_ambient_delta_id
361
+ -- Crash replay may find the observation row already inserted but its copied
362
+ -- classifications incomplete. Resolve that row so idempotent tag writes can finish.
363
+ SELECT id FROM log_entries WHERE worker_id = $worker_id AND ambient_event_id = $event_id;
364
+
329
365
  -- PREP: engine_advance_ambient_cursor
330
366
  -- Advance only from the snapshot that was actually materialized. A concurrent
331
367
  -- pull winning the CAS is safe; a loser replays idempotently on its next turn.
@@ -367,16 +403,13 @@ ORDER BY id DESC LIMIT 1;
367
403
  -- the channel; attrs.streamEnd is the next turn's cursor; expanded=1 for a terminal
368
404
  -- observation, 0 for an ongoing observation. {§exec-stream}
369
405
  INSERT INTO log_entries (
370
- worker_id, loop_id, turn_id, sequence, origin, source,
371
- op, scheme, pathname, fragment, tx, mimetype_tx, rx, mimetype_rx, status_rx, attrs, expanded
406
+ worker_id, loop_id, turn_id, sequence, origin, source, model_call_id,
407
+ op, scheme, pathname, fragment, tx, mimetype_tx, rx, mimetype_rx, status_rx, weight, attrs, expanded
372
408
  ) VALUES (
373
- $worker_id, $loop_id, $turn_id, $sequence, 'plurnk', NULL,
374
- 'READ', $scheme, $pathname, $fragment, '', 'text/plain', $rx, 'application/json', $status, $attrs, $expanded
409
+ $worker_id, $loop_id, $turn_id, $sequence, 'plurnk', NULL, NULL,
410
+ 'READ', $scheme, $pathname, $fragment, '', 'text/plain', $rx, 'application/json', $status, $weight, $attrs, $expanded
375
411
  );
376
412
 
377
- -- PREP: engine_entry_tags
378
- SELECT tag FROM entry_tags WHERE entry_id = $entry_id ORDER BY tag;
379
-
380
413
  -- PREP: engine_child_workers_live
381
414
  -- The worker's LIVE child workers — latest loop non-terminal (100 pending / 102 processing / 202 parked).
382
415
  -- Powers the Active Child Workers orienting section ({§child-orientation}): terse `* <status> worker://<name>`
@@ -403,11 +436,10 @@ ORDER BY e.pathname;
403
436
  -- LogCoordinate pointers, forcing the model to confront failures instead of letting
404
437
  -- them rot in log:///. Window = the current turn AND the immediately-prior one
405
438
  -- (>= current_turn_seq - 1): prior-turn for action failures the model just caused,
406
- -- current-turn so a same-turn engine error (the grinder's budget-overflow row, minted
407
- -- pre-generate then re-derived) surfaces THIS turn rather than a turn late.
439
+ -- current-turn so a pre-generate engine error surfaces THIS turn rather than a turn late.
408
440
  -- {§operation-result-uniform-error-channel}
409
441
  SELECT
410
- le.op, le.sequence, le.status_rx, le.rx, le.mimetype_rx,
442
+ le.origin, le.op, le.attrs, le.sequence, le.status_rx, le.rx, le.mimetype_rx,
411
443
  le.scheme, le.pathname,
412
444
  t.sequence AS turn_seq, l.sequence AS loop_seq
413
445
  FROM log_entries le
@@ -422,21 +454,39 @@ ORDER BY t.sequence, le.sequence;
422
454
 
423
455
  -- TX: engine_grinder_fold_newest_turn
424
456
  -- {§grinder-layer1-rollback} — THE DOCTRINE: the log is the model's memory and the model ALONE
425
- -- curates it (FOLD/KILL). The grinder never touches history — it only blocks NEW memories from
426
- -- landing when there is no room: one set-op folds the still-open rows of the newest turn
427
- -- boundary — the immediately-prior turn's emissions and the current turn's pre-model rows
428
- -- (foists, wake surfaces). Turn 1 is the same rule (no prior turn; its foists are the newest).
457
+ -- curates it (FOLD/KILL). The grinder rolls back only context introduced by the newest turn
458
+ -- boundary: rows born in the immediately-prior/current turn plus exact older rows that a successful
459
+ -- OPEN in the immediately-prior turn transitioned from folded to open. The durable effect relation
460
+ -- owns that landed set; never re-run an authored glob/tag/matcher against later state. An OPEN no-op
461
+ -- contributes no older row. Turn 1 is the same rule (no prior turn; its foists are the newest).
429
462
  -- Folded, never deleted; THREE exemptions ({§grinder-errors-exempt}): op='error',
430
463
  -- the user prompt, and PLAN. The temporary set captures the
431
464
  -- selection once so folding and additive `overflow` tagging cannot diverge.
432
465
  CREATE TEMP TABLE IF NOT EXISTS engine_grinder_fold_set (id INTEGER PRIMARY KEY);
433
466
  DELETE FROM engine_grinder_fold_set;
467
+ WITH previous_turn AS (
468
+ SELECT MAX(id) AS id FROM turns WHERE loop_id = $loop_id AND id < $turn_id
469
+ )
434
470
  INSERT INTO engine_grinder_fold_set (id)
435
- SELECT id FROM log_entries
436
- WHERE loop_id = $loop_id AND expanded = 1 AND COALESCE(op, '') NOT IN ('error', 'PLAN')
437
- AND COALESCE(scheme, '') != 'prompt' -- the task frame ({§prompt-self-only}); NULL-safe: a model-emission row's scheme is NULL
438
- AND (turn_id = $turn_id
439
- OR turn_id = (SELECT MAX(id) FROM turns WHERE loop_id = $loop_id AND id < $turn_id));
471
+ SELECT boundary.id
472
+ FROM log_entries boundary
473
+ WHERE boundary.loop_id = $loop_id
474
+ AND boundary.expanded = 1
475
+ AND COALESCE(boundary.op, '') NOT IN ('error', 'PLAN')
476
+ AND COALESCE(boundary.scheme, '') != 'prompt' -- the task frame ({§prompt-self-only}); NULL-safe: a model-emission row's scheme is NULL
477
+ AND (boundary.turn_id = $turn_id OR boundary.turn_id = (SELECT id FROM previous_turn))
478
+ UNION
479
+ SELECT target.id
480
+ FROM log_curation_effects effect
481
+ JOIN log_entries operation ON operation.id = effect.operation_log_entry_id
482
+ JOIN log_entries target ON target.id = effect.target_log_entry_id
483
+ WHERE operation.turn_id = (SELECT id FROM previous_turn)
484
+ AND operation.op = 'OPEN'
485
+ AND operation.status_rx < 400
486
+ AND effect.expanded_before = 0
487
+ AND target.expanded = 1
488
+ AND COALESCE(target.op, '') NOT IN ('error', 'PLAN')
489
+ AND COALESCE(target.scheme, '') != 'prompt';
440
490
 
441
491
  UPDATE log_entries SET expanded = 0
442
492
  WHERE id IN (SELECT id FROM engine_grinder_fold_set);
@@ -472,7 +522,13 @@ SELECT
472
522
  le.query, le.fragment,
473
523
  le.status_rx, le.rx, le.mimetype_rx,
474
524
  le.tx, le.mimetype_tx,
475
- le.state, le.outcome, le.expanded, le.source, le.attrs
525
+ le.state, le.outcome, le.expanded, le.source, le.weight, le.attrs,
526
+ COALESCE((
527
+ SELECT json_group_array(ordered.tag)
528
+ FROM (
529
+ SELECT tag FROM log_tags WHERE log_entry_id = le.id ORDER BY tag
530
+ ) ordered
531
+ ), '[]') AS tags
476
532
  FROM log_entries le
477
533
  JOIN turns t ON t.id = le.turn_id
478
534
  JOIN loops l ON l.id = le.loop_id
@@ -494,18 +550,18 @@ ORDER BY l.sequence, t.sequence, le.sequence;
494
550
  -- triggers the proposal lifecycle (engine pauses dispatch; client resolves
495
551
  -- via proposal resolution; entry transitions through engine_resolve_log_entry).
496
552
  INSERT INTO log_entries (
497
- worker_id, loop_id, turn_id, sequence, origin, source,
553
+ worker_id, loop_id, turn_id, sequence, origin, source, model_call_id,
498
554
  op, suffix, signal,
499
555
  scheme, username, password, hostname, port,
500
556
  pathname, query, fragment, lineMarker,
501
- tx, mimetype_tx, rx, mimetype_rx, status_rx, tokens,
557
+ tx, mimetype_tx, rx, mimetype_rx, status_rx, weight,
502
558
  state, outcome, attrs
503
559
  ) VALUES (
504
- $worker_id, $loop_id, $turn_id, $sequence, $origin, $source,
560
+ $worker_id, $loop_id, $turn_id, $sequence, $origin, $source, $model_call_id,
505
561
  $op, $suffix, $signal,
506
562
  $scheme, $username, $password, $hostname, $port,
507
563
  $pathname, $query, $fragment, $lineMarker,
508
- $tx, $mimetype_tx, $rx, $mimetype_rx, $status_rx, $tokens,
564
+ $tx, $mimetype_tx, $rx, $mimetype_rx, $status_rx, $weight,
509
565
  $state, $outcome, $attrs
510
566
  )
511
567
  RETURNING id;
@@ -519,6 +575,7 @@ UPDATE log_entries
519
575
  outcome = $outcome,
520
576
  status_rx = $status_rx,
521
577
  rx = $rx,
578
+ weight = $weight,
522
579
  deep_hash = NULL
523
580
  WHERE id = $id
524
581
  AND state = 'proposed';
@@ -530,18 +587,25 @@ UPDATE log_entries
530
587
  SELECT l.sequence AS loop_seq,
531
588
  t.sequence AS turn_seq,
532
589
  le.sequence AS sequence,
533
- le.op AS op
590
+ le.op AS op,
591
+ le.attrs AS attrs,
592
+ le.tx AS tx,
593
+ le.mimetype_tx AS mimetype_tx,
594
+ le.mimetype_rx AS mimetype_rx
534
595
  FROM log_entries le
535
596
  JOIN turns t ON t.id = le.turn_id
536
597
  JOIN loops l ON l.id = le.loop_id
537
598
  WHERE le.id = $id;
538
599
 
539
- -- PREP: engine_turn_retrievals
540
- -- {§send-premature-terminate} — the pending set's retrieval leg: THIS turn's READ/FIND/OPEN rows,
541
- -- whose results the model cannot have seen (they fold back next packet). A [200] over them is
542
- -- discarding answers it asked for.
543
- SELECT id FROM log_entries
544
- WHERE turn_id = $turn_id AND origin = 'model' AND op IN ('READ', 'FIND', 'OPEN');
600
+ -- PREP: engine_turn_packet_boundaries
601
+ -- {§send-premature-terminate}/{§wait-obligation-matrix} — operations whose useful effect crosses
602
+ -- into the next packet: READ/FIND/OPEN/BARE results, plus successful FOLD context curation. Retrievals
603
+ -- block an explicit [200]; FOLD blocks only the empty-[202] inference because explicit final
604
+ -- housekeeping remains valid.
605
+ SELECT id, op FROM log_entries
606
+ WHERE turn_id = $turn_id
607
+ AND origin = 'model'
608
+ AND (op IN ('READ', 'FIND', 'OPEN', 'BARE') OR (op = 'FOLD' AND status_rx < 400));
545
609
 
546
610
  -- PREP: engine_worker_has_undelivered_stream_term
547
611
  -- A stream may finish between its EXEC and a same-turn SEND. It is then no longer
@@ -571,8 +635,8 @@ LIMIT 1;
571
635
  -- errors the model cannot have seen (they land next packet). A [200] or already-drained [202] over
572
636
  -- them concludes blind past a failure — refused 409; [499] abandons regardless (declaring failure
573
637
  -- IS weighing it).
574
- -- Actionless engine errors are excluded: the grinder's overflow row mints pre-packet, so the
575
- -- recovery turn already saw it ({§grinder-hard-413-recovery}). A model-authored statement that
638
+ -- Actionless engine errors are excluded because only model-authored failures can make
639
+ -- the model's concluding disposition blind. A model-authored statement that
576
640
  -- failed grammar parsing is different: source='grammar' records a bounded operation failure
577
641
  -- from the accepted emission, unseen until the next packet, so it gates completion like every
578
642
  -- other failed model operation.
@@ -606,6 +670,22 @@ WITH RECURSIVE lineage(id, parent_worker_id) AS (
606
670
  )
607
671
  SELECT id FROM lineage WHERE parent_worker_id IS NULL;
608
672
 
673
+ -- PREP: engine_worker_provider_identity
674
+ -- Provider routing uses globally unique opaque identities, while all relational
675
+ -- ownership and client coordinates retain the local integer worker id.
676
+ -- {§worker-provider-identity} {§worker-primary}
677
+ WITH RECURSIVE lineage(id, parent_worker_id, provider_identity) AS (
678
+ SELECT id, parent_worker_id, provider_identity FROM workers WHERE id = $worker_id
679
+ UNION ALL
680
+ SELECT w.id, w.parent_worker_id, w.provider_identity
681
+ FROM workers w JOIN lineage l ON w.id = l.parent_worker_id
682
+ )
683
+ SELECT current.provider_identity AS worker_id,
684
+ root.provider_identity AS primary_worker_id
685
+ FROM workers current
686
+ JOIN lineage root ON root.parent_worker_id IS NULL
687
+ WHERE current.id = $worker_id;
688
+
609
689
  -- PREP: engine_worker_has_undelivered_child_term
610
690
  -- A child conclusion newer than the parent's observation cursor is complete but
611
691
  -- not delivered. This is the same durable boundary the next packet consumes,
@@ -0,0 +1,10 @@
1
+ import type { RuntimeInvocationDecl } from "@plurnk/plurnk-execs";
2
+ interface ExecutableTool {
3
+ readonly runtime: string;
4
+ readonly invocation: RuntimeInvocationDecl;
5
+ }
6
+ export default class ExecutableTools {
7
+ static render(tools: readonly ExecutableTool[]): string;
8
+ }
9
+ export {};
10
+ //# sourceMappingURL=ExecutableTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutableTools.d.ts","sourceRoot":"","sources":["../../src/core/ExecutableTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,UAAU,cAAc;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;CAC9C;AAqBD,MAAM,CAAC,OAAO,OAAO,eAAe;IAChC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CAyBtD;CACJ"}
@@ -0,0 +1,41 @@
1
+ const escapeCell = (value) => value.replaceAll("|", "\\|");
2
+ const bucket = (role, required, exclusive) => {
3
+ const marker = exclusive ? " ↔" : required ? "" : " ?";
4
+ return `${escapeCell(role)}${marker}`;
5
+ };
6
+ const code = (value) => {
7
+ const longest = Math.max(0, ...[...value.matchAll(/`+/g)].map((match) => match[0].length));
8
+ const fence = "`".repeat(longest + 1);
9
+ const padding = value.startsWith("`") || value.endsWith("`") ? " " : "";
10
+ return `${fence}${padding}${escapeCell(value)}${padding}${fence}`;
11
+ };
12
+ const example = (runtime, invocation) => {
13
+ const heading = `## EXEC0 [${runtime}]${invocation.example.target === undefined ? "" : ` (${invocation.example.target})`}`;
14
+ return [heading, invocation.example.body].filter((line) => line !== undefined).map((line) => code(line)).join("<br>");
15
+ };
16
+ export default class ExecutableTools {
17
+ static render(tools) {
18
+ if (tools.length === 0)
19
+ return "";
20
+ const rows = tools
21
+ .toSorted((left, right) => left.runtime.localeCompare(right.runtime))
22
+ .map(({ runtime, invocation }) => {
23
+ const exclusive = invocation.exclusive === true;
24
+ const target = invocation.target === undefined
25
+ ? "—"
26
+ : bucket(`${invocation.target.role}${invocation.target.directory === "cwd" ? " or local directory with body" : ""}`, invocation.target.required, exclusive);
27
+ const body = bucket(invocation.body.role, invocation.body.required, exclusive);
28
+ return `| \`[${runtime}]\` | ${target} | ${body} | ${example(runtime, invocation)} |`;
29
+ });
30
+ return [
31
+ "YOU SHOULD use purpose-built Plurnk OPs when possible; use EXEC for scripts only when necessary.",
32
+ "",
33
+ "`?` optional · `↔` choose one · `—` unavailable · `<timeout,poll>` optional",
34
+ "",
35
+ "| `[executor]` | `(target)` | body | example |",
36
+ "| --- | --- | --- | --- |",
37
+ ...rows,
38
+ ].join("\n");
39
+ }
40
+ }
41
+ //# sourceMappingURL=ExecutableTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutableTools.js","sourceRoot":"","sources":["../../src/core/ExecutableTools.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ChannelDecl, ExecArgs, ExecResult, Effect, RuntimeAvailability } from "@plurnk/plurnk-execs";
1
+ import type { ChannelDecl, ExecArgs, ExecResult, Effect, RuntimeAvailability, RuntimeInvocationDecl } from "@plurnk/plurnk-execs";
2
2
  import { type PackageAttributions, type PluginAttribution, type PluginAttributionContext } from "@plurnk/plurnk-meta";
3
3
  import type { SchemeManifest } from "./types.ts";
4
4
  export interface Executor {
@@ -22,7 +22,7 @@ export interface RegistryEntry {
22
22
  readonly executor: Executor;
23
23
  readonly namespaceOwner: RuntimeNamespaceOwner;
24
24
  readonly glyph: string;
25
- readonly example: string;
25
+ readonly invocation: RuntimeInvocationDecl;
26
26
  readonly documentation: string;
27
27
  readonly available: boolean;
28
28
  readonly detail: string | undefined;
@@ -41,7 +41,7 @@ export default class ExecutorRegistry {
41
41
  registry: ReadonlyMap<string, {
42
42
  runtime: string;
43
43
  glyph: string;
44
- example?: string;
44
+ invocation: RuntimeInvocationDecl;
45
45
  documentation?: string;
46
46
  packageName: string;
47
47
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutorRegistry.d.ts","sourceRoot":"","sources":["../../src/core/ExecutorRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExecutorRegistry.d.ts","sourceRoot":"","sources":["../../src/core/ExecutorRegistry.ts"],"names":[],"mappings":"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"}
@@ -76,7 +76,7 @@ export default class ExecutorRegistry {
76
76
  }
77
77
  // {§operator-config-git-ceiling} PLURNK_SERVICE_GIT_ALLOWED=0 must drop every
78
78
  // Git-capability executor entirely: a denied host neither dispatches
79
- // EXEC[git]/EXEC[isogit] nor teaches them through the tools sheet.
79
+ // the Git/isogit EXEC runtimes nor teaches them through the tools sheet.
80
80
  const gitDenied = process.env.PLURNK_SERVICE_GIT_ALLOWED !== "1";
81
81
  const gitRuntimes = new Set(["git", "isogit"]);
82
82
  const infos = [...discovered.values()].filter((info) => !(gitDenied && gitRuntimes.has(info.runtime)));
@@ -95,7 +95,7 @@ export default class ExecutorRegistry {
95
95
  executor,
96
96
  namespaceOwner: { kind: "package", name: info.packageName },
97
97
  glyph: info.glyph,
98
- example: info.example ?? "",
98
+ invocation: info.invocation,
99
99
  documentation: info.documentation ?? "",
100
100
  available: availability.available,
101
101
  detail: availability.detail,
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutorRegistry.js","sourceRoot":"","sources":["../../src/core/ExecutorRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExecutorRegistry.js","sourceRoot":"","sources":["../../src/core/ExecutorRegistry.ts"],"names":[],"mappings":"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"}