@plurnk/plurnk-service 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/.env.defaults +29 -42
  2. package/INSTALL.md +49 -10
  3. package/README.md +11 -1
  4. package/SPEC.md +631 -279
  5. package/digest-sql/channel-dispositions/dispositions.sql +15 -0
  6. package/digest-sql/channel-state/state.sql +6 -0
  7. package/digest-sql/curation/curation.sql +5 -0
  8. package/digest-sql/derivations/derivations.sql +4 -0
  9. package/digest-sql/embeddings/embeddings.sql +4 -0
  10. package/digest-sql/entry-dispositions/dispositions.sql +15 -0
  11. package/digest-sql/entry-state/state.sql +6 -0
  12. package/digest-sql/token-counts/token-counts.sql +2 -0
  13. package/dist/Paths.d.ts +2 -5
  14. package/dist/Paths.d.ts.map +1 -1
  15. package/dist/Paths.js +9 -21
  16. package/dist/Paths.js.map +1 -1
  17. package/dist/build-info.json +1 -1
  18. package/dist/content/read-projector.d.ts.map +1 -1
  19. package/dist/content/read-projector.js +4 -3
  20. package/dist/content/read-projector.js.map +1 -1
  21. package/dist/core/BudgetReadout.d.ts.map +1 -1
  22. package/dist/core/BudgetReadout.js +12 -22
  23. package/dist/core/BudgetReadout.js.map +1 -1
  24. package/dist/core/ChannelWrite.d.ts.map +1 -1
  25. package/dist/core/ChannelWrite.js.map +1 -1
  26. package/dist/core/ChannelWrite.sql +2 -1
  27. package/dist/core/Dispatcher.d.ts +7 -6
  28. package/dist/core/Dispatcher.d.ts.map +1 -1
  29. package/dist/core/Dispatcher.js +34 -88
  30. package/dist/core/Dispatcher.js.map +1 -1
  31. package/dist/core/Engine.d.ts +11 -8
  32. package/dist/core/Engine.d.ts.map +1 -1
  33. package/dist/core/Engine.js +45 -27
  34. package/dist/core/Engine.js.map +1 -1
  35. package/dist/core/Engine.sql +112 -107
  36. package/dist/core/ExecutorRegistry.d.ts +8 -2
  37. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  38. package/dist/core/ExecutorRegistry.js +6 -3
  39. package/dist/core/ExecutorRegistry.js.map +1 -1
  40. package/dist/core/HostPaths.d.ts +29 -0
  41. package/dist/core/HostPaths.d.ts.map +1 -0
  42. package/dist/core/HostPaths.js +74 -0
  43. package/dist/core/HostPaths.js.map +1 -0
  44. package/dist/core/LegacyHome.d.ts +10 -0
  45. package/dist/core/LegacyHome.d.ts.map +1 -0
  46. package/dist/core/LegacyHome.js +170 -0
  47. package/dist/core/LegacyHome.js.map +1 -0
  48. package/dist/core/LogBody.d.ts +1 -1
  49. package/dist/core/LogBody.d.ts.map +1 -1
  50. package/dist/core/LogBody.js +2 -2
  51. package/dist/core/LogBody.js.map +1 -1
  52. package/dist/core/LogEntryProjection.js +1 -1
  53. package/dist/core/LogEntryProjection.js.map +1 -1
  54. package/dist/core/LogVisibility.d.ts +28 -0
  55. package/dist/core/LogVisibility.d.ts.map +1 -0
  56. package/dist/core/LogVisibility.js +215 -0
  57. package/dist/core/LogVisibility.js.map +1 -0
  58. package/dist/core/LoopLifecycle.d.ts +1 -0
  59. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  60. package/dist/core/LoopLifecycle.js +8 -0
  61. package/dist/core/LoopLifecycle.js.map +1 -1
  62. package/dist/core/LoopLifecycle.sql +10 -0
  63. package/dist/core/OperatorConfig.d.ts +6 -0
  64. package/dist/core/OperatorConfig.d.ts.map +1 -0
  65. package/dist/core/OperatorConfig.js +92 -0
  66. package/dist/core/OperatorConfig.js.map +1 -0
  67. package/dist/core/OverflowTurn.d.ts +11 -0
  68. package/dist/core/OverflowTurn.d.ts.map +1 -0
  69. package/dist/core/OverflowTurn.js +77 -0
  70. package/dist/core/OverflowTurn.js.map +1 -0
  71. package/dist/core/Owner.js +2 -2
  72. package/dist/core/Owner.js.map +1 -1
  73. package/dist/core/PacketBuilder.d.ts +3 -15
  74. package/dist/core/PacketBuilder.d.ts.map +1 -1
  75. package/dist/core/PacketBuilder.js +48 -121
  76. package/dist/core/PacketBuilder.js.map +1 -1
  77. package/dist/core/ProblemLog.js +1 -1
  78. package/dist/core/ProblemLog.js.map +1 -1
  79. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  80. package/dist/core/ProposalLifecycle.js +3 -23
  81. package/dist/core/ProposalLifecycle.js.map +1 -1
  82. package/dist/core/ProviderInstantiate.d.ts +9 -5
  83. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  84. package/dist/core/ProviderInstantiate.js +99 -104
  85. package/dist/core/ProviderInstantiate.js.map +1 -1
  86. package/dist/core/ResourceMutations.d.ts.map +1 -1
  87. package/dist/core/ResourceMutations.js +5 -3
  88. package/dist/core/ResourceMutations.js.map +1 -1
  89. package/dist/core/SchemeRegistry.d.ts +0 -1
  90. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  91. package/dist/core/SchemeRegistry.js +7 -11
  92. package/dist/core/SchemeRegistry.js.map +1 -1
  93. package/dist/core/ToolResources.d.ts +19 -0
  94. package/dist/core/ToolResources.d.ts.map +1 -0
  95. package/dist/core/ToolResources.js +122 -0
  96. package/dist/core/ToolResources.js.map +1 -0
  97. package/dist/core/Turn.d.ts +27 -0
  98. package/dist/core/Turn.d.ts.map +1 -0
  99. package/dist/core/Turn.js +43 -0
  100. package/dist/core/Turn.js.map +1 -0
  101. package/dist/core/Turn.sql +72 -0
  102. package/dist/core/TurnOps.d.ts +7 -0
  103. package/dist/core/TurnOps.d.ts.map +1 -0
  104. package/dist/core/TurnOps.js +63 -0
  105. package/dist/core/TurnOps.js.map +1 -0
  106. package/dist/core/TurnRunner.d.ts +12 -4
  107. package/dist/core/TurnRunner.d.ts.map +1 -1
  108. package/dist/core/TurnRunner.js +1045 -898
  109. package/dist/core/TurnRunner.js.map +1 -1
  110. package/dist/core/WorkerName.d.ts +1 -1
  111. package/dist/core/WorkerName.d.ts.map +1 -1
  112. package/dist/core/env-defaults.d.ts.map +1 -1
  113. package/dist/core/env-defaults.js +7 -5
  114. package/dist/core/env-defaults.js.map +1 -1
  115. package/dist/core/fork.d.ts.map +1 -1
  116. package/dist/core/fork.js +15 -4
  117. package/dist/core/fork.js.map +1 -1
  118. package/dist/core/fork.sql +57 -27
  119. package/dist/core/git-env.d.ts +0 -1
  120. package/dist/core/git-env.d.ts.map +1 -1
  121. package/dist/core/git-env.js +0 -3
  122. package/dist/core/git-env.js.map +1 -1
  123. package/dist/core/git-membership.d.ts.map +1 -1
  124. package/dist/core/git-membership.js +10 -26
  125. package/dist/core/git-membership.js.map +1 -1
  126. package/dist/core/git-state.d.ts.map +1 -1
  127. package/dist/core/git-state.js +13 -14
  128. package/dist/core/git-state.js.map +1 -1
  129. package/dist/core/operation-target-groups.d.ts +3 -0
  130. package/dist/core/operation-target-groups.d.ts.map +1 -0
  131. package/dist/core/operation-target-groups.js +53 -0
  132. package/dist/core/operation-target-groups.js.map +1 -0
  133. package/dist/core/packet-inject.d.ts +0 -1
  134. package/dist/core/packet-inject.d.ts.map +1 -1
  135. package/dist/core/packet-inject.js +6 -13
  136. package/dist/core/packet-inject.js.map +1 -1
  137. package/dist/core/packet-wire.d.ts +4 -0
  138. package/dist/core/packet-wire.d.ts.map +1 -1
  139. package/dist/core/packet-wire.js +208 -44
  140. package/dist/core/packet-wire.js.map +1 -1
  141. package/dist/core/plurnk-uri.d.ts +1 -1
  142. package/dist/core/plurnk-uri.d.ts.map +1 -1
  143. package/dist/core/plurnk-uri.js +3 -3
  144. package/dist/core/plurnk-uri.js.map +1 -1
  145. package/dist/core/teaching.d.ts.map +1 -1
  146. package/dist/core/teaching.js +4 -5
  147. package/dist/core/teaching.js.map +1 -1
  148. package/dist/core/worker-settings.d.ts +9 -0
  149. package/dist/core/worker-settings.d.ts.map +1 -0
  150. package/dist/core/worker-settings.js +25 -0
  151. package/dist/core/worker-settings.js.map +1 -0
  152. package/dist/core/workspace-settings.d.ts +0 -11
  153. package/dist/core/workspace-settings.d.ts.map +1 -1
  154. package/dist/core/workspace-settings.js +3 -47
  155. package/dist/core/workspace-settings.js.map +1 -1
  156. package/dist/digest/Digest.d.ts.map +1 -1
  157. package/dist/digest/Digest.js +164 -92
  158. package/dist/digest/Digest.js.map +1 -1
  159. package/dist/digest/digest.sql +8 -2
  160. package/dist/observe/genai.d.ts +9 -0
  161. package/dist/observe/genai.d.ts.map +1 -0
  162. package/dist/observe/genai.js +31 -0
  163. package/dist/observe/genai.js.map +1 -0
  164. package/dist/observe/spans.d.ts +3 -3
  165. package/dist/observe/spans.d.ts.map +1 -1
  166. package/dist/observe/spans.js +20 -5
  167. package/dist/observe/spans.js.map +1 -1
  168. package/dist/schemes/EffectPolicy.d.ts +3 -0
  169. package/dist/schemes/EffectPolicy.d.ts.map +1 -1
  170. package/dist/schemes/EffectPolicy.js +38 -6
  171. package/dist/schemes/EffectPolicy.js.map +1 -1
  172. package/dist/schemes/Exec.d.ts.map +1 -1
  173. package/dist/schemes/Exec.js +55 -13
  174. package/dist/schemes/Exec.js.map +1 -1
  175. package/dist/schemes/Log.d.ts +6 -2
  176. package/dist/schemes/Log.d.ts.map +1 -1
  177. package/dist/schemes/Log.js +73 -22
  178. package/dist/schemes/Log.js.map +1 -1
  179. package/dist/schemes/Log.sql +25 -7
  180. package/dist/schemes/Prompt.d.ts.map +1 -1
  181. package/dist/schemes/Prompt.js +1 -2
  182. package/dist/schemes/Prompt.js.map +1 -1
  183. package/dist/schemes/QuestionTool.d.ts +10 -0
  184. package/dist/schemes/QuestionTool.d.ts.map +1 -0
  185. package/dist/schemes/QuestionTool.js +81 -0
  186. package/dist/schemes/QuestionTool.js.map +1 -0
  187. package/dist/schemes/Skill.d.ts.map +1 -1
  188. package/dist/schemes/Skill.js +4 -1
  189. package/dist/schemes/Skill.js.map +1 -1
  190. package/dist/schemes/Worker.d.ts.map +1 -1
  191. package/dist/schemes/Worker.js +20 -3
  192. package/dist/schemes/Worker.js.map +1 -1
  193. package/dist/schemes/_entry-crud.sql +19 -1
  194. package/dist/schemes/_entry-find.d.ts +5 -3
  195. package/dist/schemes/_entry-find.d.ts.map +1 -1
  196. package/dist/schemes/_entry-find.js +102 -22
  197. package/dist/schemes/_entry-find.js.map +1 -1
  198. package/dist/schemes/_entry-find.sql +8 -6
  199. package/dist/schemes/_entry-graph.sql +2 -6
  200. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  201. package/dist/schemes/_entry-manifest.js +12 -1
  202. package/dist/schemes/_entry-manifest.js.map +1 -1
  203. package/dist/schemes/_search-index.d.ts.map +1 -1
  204. package/dist/schemes/_search-index.js +37 -25
  205. package/dist/schemes/_search-index.js.map +1 -1
  206. package/dist/server/Daemon.d.ts +58 -7
  207. package/dist/server/Daemon.d.ts.map +1 -1
  208. package/dist/server/Daemon.js +551 -113
  209. package/dist/server/Daemon.js.map +1 -1
  210. package/dist/server/DrainSupervisor.d.ts +12 -9
  211. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  212. package/dist/server/DrainSupervisor.js +59 -10
  213. package/dist/server/DrainSupervisor.js.map +1 -1
  214. package/dist/server/client-input.d.ts +5 -2
  215. package/dist/server/client-input.d.ts.map +1 -1
  216. package/dist/server/client-input.js +53 -34
  217. package/dist/server/client-input.js.map +1 -1
  218. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  219. package/dist/server/dispatch-as-plurnk.js +28 -6
  220. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  221. package/dist/server/drain.sql +26 -11
  222. package/dist/server/envelope.d.ts +1 -1
  223. package/dist/server/envelope.d.ts.map +1 -1
  224. package/dist/server/envelope.js +4 -4
  225. package/dist/server/envelope.js.map +1 -1
  226. package/dist/server/envelope.sql +25 -1
  227. package/dist/server/lifecycle-recovery.sql +11 -1
  228. package/dist/server/logEntry.d.ts +2 -1
  229. package/dist/server/logEntry.d.ts.map +1 -1
  230. package/dist/server/logEntry.js +3 -2
  231. package/dist/server/logEntry.js.map +1 -1
  232. package/dist/server/logEntry.sql +7 -0
  233. package/dist/server/loop-model.d.ts +2 -2
  234. package/dist/server/loop-model.d.ts.map +1 -1
  235. package/dist/server/loop-model.js +23 -33
  236. package/dist/server/loop-model.js.map +1 -1
  237. package/dist/server/loopDocs.d.ts.map +1 -1
  238. package/dist/server/loopDocs.js +61 -10
  239. package/dist/server/loopDocs.js.map +1 -1
  240. package/dist/server/loopDocs.sql +4 -2
  241. package/dist/server/model-catalog.d.ts +3 -0
  242. package/dist/server/model-catalog.d.ts.map +1 -0
  243. package/dist/server/model-catalog.js +83 -0
  244. package/dist/server/model-catalog.js.map +1 -0
  245. package/dist/server/model-route.d.ts +7 -0
  246. package/dist/server/model-route.d.ts.map +1 -0
  247. package/dist/server/model-route.js +47 -0
  248. package/dist/server/model-route.js.map +1 -0
  249. package/dist/server/module-discovery.d.ts +13 -0
  250. package/dist/server/module-discovery.d.ts.map +1 -0
  251. package/dist/server/module-discovery.js +78 -0
  252. package/dist/server/module-discovery.js.map +1 -0
  253. package/dist/server/skillDocs.d.ts +9 -0
  254. package/dist/server/skillDocs.d.ts.map +1 -0
  255. package/dist/server/skillDocs.js +212 -0
  256. package/dist/server/skillDocs.js.map +1 -0
  257. package/dist/server/skillDocs.sql +14 -0
  258. package/dist/service.d.ts.map +1 -1
  259. package/dist/service.js +182 -123
  260. package/dist/service.js.map +1 -1
  261. package/migrations/001_schema.sql +424 -65
  262. package/package.json +37 -37
  263. package/dist/core/ExecutableTools.d.ts +0 -11
  264. package/dist/core/ExecutableTools.d.ts.map +0 -1
  265. package/dist/core/ExecutableTools.js +0 -49
  266. package/dist/core/ExecutableTools.js.map +0 -1
  267. package/dist/core/JournalTurn.d.ts +0 -9
  268. package/dist/core/JournalTurn.d.ts.map +0 -1
  269. package/dist/core/JournalTurn.js +0 -14
  270. package/dist/core/JournalTurn.js.map +0 -1
  271. package/dist/core/JournalTurn.sql +0 -10
  272. package/dist/core/git-iso.d.ts +0 -13
  273. package/dist/core/git-iso.d.ts.map +0 -1
  274. package/dist/core/git-iso.js +0 -267
  275. package/dist/core/git-iso.js.map +0 -1
  276. package/dist/core/search-gate.d.ts +0 -17
  277. package/dist/core/search-gate.d.ts.map +0 -1
  278. package/dist/core/search-gate.js +0 -77
  279. package/dist/core/search-gate.js.map +0 -1
  280. package/dist/digest/Digest.sql +0 -1
@@ -36,9 +36,18 @@ UPDATE loops SET flags = $flags WHERE id = $loop_id;
36
36
  UPDATE loops SET open_paths = $open_paths WHERE id = $loop_id;
37
37
 
38
38
  -- PREP: engine_get_loop_prompt
39
- -- Initial prompt frame. On turn 1, runTurn stores the owner-keyed
40
- -- prompt:///<loop>/1 entry with its selected paths and publishes it.
41
- SELECT prompt, sequence, open_paths FROM loops WHERE id = $loop_id;
39
+ -- Initial prompt frame. Its durable log occurrence, not a process-local/model
40
+ -- ordinal, decides whether runTurn still needs to publish it.
41
+ SELECT l.prompt, l.sequence, l.open_paths,
42
+ EXISTS (
43
+ SELECT 1
44
+ FROM log_entries le
45
+ WHERE le.loop_id = l.id
46
+ AND le.op = 'prompt'
47
+ AND le.pathname = '/' || l.sequence || '/1'
48
+ ) AS prompt_published
49
+ FROM loops l
50
+ WHERE l.id = $loop_id;
42
51
 
43
52
  -- PREP: engine_reclaim_queued_loop
44
53
  -- {§worker-lifecycle-wake-requeue-not-terminal} — atomic 100→102 re-claim by loop id. A wake
@@ -59,15 +68,15 @@ SELECT settings FROM workspaces WHERE id = $workspace_id;
59
68
  SELECT 1 AS hit
60
69
  FROM log_entries
61
70
  WHERE worker_id = $worker_id AND turn_id = $turn_id
62
- AND origin = 'plurnk' AND source = 'file' AND op = 'EDIT'
71
+ AND origin = '_plurnk' AND source = 'file' AND op = 'EDIT'
63
72
  AND scheme IS $scheme AND pathname = $pathname
64
73
  LIMIT 1;
65
74
 
66
75
  -- PREP: engine_list_owner_entries
67
76
  -- {§entry-owner} — one principal's entries (catalogRowsFor source for an owner-scoped FIND/foist):
68
77
  -- 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.weight AS weight, e.deep_hash,
70
- d.parse_issues,
78
+ SELECT e.id AS entry_id, e.scheme, e.pathname, ec.name AS channel, ec.content, ec.mimetype, ec.weight AS weight, ec.deep_hash,
79
+ d.parse_issues, d.summary,
71
80
  s.id AS subscription_id,
72
81
  CASE WHEN s.closed_at IS NULL
73
82
  THEN CAST(unixepoch('now') - unixepoch(s.opened_at) AS INTEGER)
@@ -76,7 +85,7 @@ SELECT e.id AS entry_id, e.scheme, e.pathname, ec.name AS channel, ec.content, e
76
85
  s.close_status
77
86
  FROM entries e
78
87
  JOIN entry_channels ec ON ec.entry_id = e.id
79
- LEFT JOIN derivations d ON d.deep_hash = e.deep_hash
88
+ LEFT JOIN derivations d ON d.deep_hash = ec.deep_hash
80
89
  LEFT JOIN subscriptions s ON s.id = (
81
90
  SELECT latest.id
82
91
  FROM subscriptions latest
@@ -91,15 +100,16 @@ ORDER BY e.updated_at ASC, e.id ASC, ec.name;
91
100
  SELECT COALESCE(MAX(sequence), 0) + 1 AS next FROM turns WHERE loop_id = $loop_id;
92
101
 
93
102
  -- PREP: engine_loop_usage
94
- -- Latest-turn gauge ({§tokenomics-client-gauge}), surfaced beside the derived
103
+ -- Latest packet-bearing model-turn gauge ({§tokenomics-client-gauge}), surfaced beside the derived
95
104
  -- accounting projection on {§notifications-loop-terminated}. Physical usage
96
105
  -- and capacity bind to the same latest completed emission call. A preflight
97
106
  -- rejection has capacity evidence but no physical input usage; neither fact
98
- -- falls back to an earlier call or turn.
107
+ -- falls back to an earlier call. Packetless chronology cannot erase the latest
108
+ -- assembled model request.
99
109
  WITH latest_turn AS (
100
110
  SELECT id, packet, usage_curation_budget, meta
101
111
  FROM turns
102
- WHERE loop_id = $loop_id
112
+ WHERE loop_id = $loop_id AND packet IS NOT NULL
103
113
  ORDER BY sequence DESC
104
114
  LIMIT 1
105
115
  ), latest_emission AS (
@@ -167,29 +177,6 @@ SELECT l.sequence AS loop_seq, t.sequence AS turn_seq
167
177
  FROM loops l, turns t
168
178
  WHERE l.id = $loop_id AND t.id = $turn_id;
169
179
 
170
- -- PREP: engine_open_turn
171
- -- Turn-as-container model: insert a turn row at runTurn open with no assembled
172
- -- model request and status=102 (in-progress). Pre-model writes
173
- -- (the user prompt; later, system signals/notices) land into
174
- -- this row before the provider is called. The turn is then "closed"
175
- -- via engine_close_turn with the final packet + status + usage stats
176
- -- after dispatch completes.
177
- INSERT INTO turns (loop_id, sequence, status)
178
- VALUES ($loop_id, $sequence, 102)
179
- RETURNING id;
180
-
181
- -- PREP: engine_close_turn
182
- -- Updates the turn with the response packet and terminal metadata once dispatch
183
- -- is complete. Provider attempts own and materialize usage/cost above this path.
184
- UPDATE turns SET
185
- status = $status,
186
- packet = $packet,
187
- usage_curation_budget = $usage_curation_budget,
188
- finish_reason = $finish_reason,
189
- model = $model,
190
- meta = $meta
191
- WHERE id = $id;
192
-
193
180
  -- PREP: engine_open_model_call
194
181
  -- Logical identity and request attribution become durable before provider I/O.
195
182
  INSERT INTO model_calls (turn_id, sequence, kind, attributions, model)
@@ -263,7 +250,7 @@ WHERE id = $id AND state = 'pending';
263
250
  -- The latest subscription carries stream lifecycle into the catalog. `seconds`
264
251
  -- is the live age of an open stream; close_status is the exact terminal status
265
252
  -- of a closed one. Entries with no subscription remain ordinary static entries.
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,
253
+ SELECT e.id AS entry_id, e.scheme, e.pathname, ec.name AS channel, ec.content, ec.mimetype, ec.weight AS weight, ec.deep_hash,
267
254
  s.id AS subscription_id,
268
255
  CASE WHEN s.closed_at IS NULL
269
256
  THEN CAST(unixepoch('now') - unixepoch(s.opened_at) AS INTEGER)
@@ -348,11 +335,11 @@ ORDER BY ae.id;
348
335
  INSERT INTO log_entries (
349
336
  worker_id, loop_id, turn_id, sequence, origin, source, ambient_event_id,
350
337
  op, scheme, hostname, pathname, tx, mimetype_tx,
351
- rx, mimetype_rx, status_rx, weight, expanded, attrs
338
+ rx, mimetype_rx, status_rx, weight, folded, attrs
352
339
  ) VALUES (
353
- $worker_id, $loop_id, $turn_id, $sequence, 'plurnk', $source, $event_id,
340
+ $worker_id, $loop_id, $turn_id, $sequence, '_plurnk', $source, $event_id,
354
341
  $op, $scheme, $hostname, $pathname, '', 'text/plain',
355
- $rx, $mimetype_rx, $status, $weight, $expanded, $attrs
342
+ $rx, $mimetype_rx, $status, $weight, $folded, $attrs
356
343
  )
357
344
  ON CONFLICT(worker_id, ambient_event_id) WHERE ambient_event_id IS NOT NULL DO NOTHING
358
345
  RETURNING id;
@@ -393,21 +380,21 @@ ORDER BY s.id, ec.name;
393
380
  -- foisted observation (the caller defaults to 0 when none exists yet).
394
381
  SELECT attrs
395
382
  FROM log_entries
396
- WHERE worker_id = $worker_id AND origin = 'plurnk' AND op = 'READ'
383
+ WHERE worker_id = $worker_id AND origin = '_plurnk' AND op = 'READ'
397
384
  AND scheme = $scheme AND pathname = $pathname AND fragment IS $fragment
398
385
  ORDER BY id DESC LIMIT 1;
399
386
 
400
387
  -- PREP: engine_insert_stream_delta
401
388
  -- {§exec-stream} / {§env-delta} — materialize a channel's next publishable content as a
402
- -- foisted READ row (the model READs the stream it never typed). origin=plurnk; fragment is
403
- -- the channel; attrs.streamEnd is the next turn's cursor; expanded=1 for a terminal
404
- -- observation, 0 for an ongoing observation. {§exec-stream}
389
+ -- foisted READ row (the model READs the stream it never typed). origin=_plurnk; fragment is
390
+ -- the channel; attrs.streamEnd is the next turn's cursor; terminal observations
391
+ -- are born open and ongoing observations wholly folded. {§exec-stream}
405
392
  INSERT INTO log_entries (
406
393
  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
394
+ op, scheme, pathname, fragment, tx, mimetype_tx, rx, mimetype_rx, status_rx, weight, attrs, folded
408
395
  ) VALUES (
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
396
+ $worker_id, $loop_id, $turn_id, $sequence, '_plurnk', NULL, NULL,
397
+ 'READ', $scheme, $pathname, $fragment, '', 'text/plain', $rx, 'application/json', $status, $weight, $attrs, $folded
411
398
  );
412
399
 
413
400
  -- PREP: engine_child_workers_live
@@ -434,10 +421,22 @@ ORDER BY e.pathname;
434
421
  -- PREP: engine_render_errors
435
422
  -- SPEC {§operation-results}: 4xx/5xx log rows are indexed in the packet's errors as
436
423
  -- LogCoordinate pointers, forcing the model to confront failures instead of letting
437
- -- them rot in log:///. Window = the current turn AND the immediately-prior one
438
- -- (>= current_turn_seq - 1): prior-turn for action failures the model just caused,
439
- -- current-turn so a pre-generate engine error surfaces THIS turn rather than a turn late.
424
+ -- them rot in log:///. Window = the current would-be model turn AND the immediately
425
+ -- preceding completed model turn: prior-model-turn for action failures the
426
+ -- model just caused, current-turn so a pre-generate engine error surfaces THIS turn
427
+ -- rather than a turn late. Packetless chronology never hides a model failure.
440
428
  -- {§operation-result-uniform-error-channel}
429
+ WITH previous_model_turn AS (
430
+ SELECT id
431
+ FROM turns
432
+ WHERE loop_id = $loop_id
433
+ AND sequence < $current_turn_seq
434
+ AND producer = 'model'
435
+ AND kind = 'inference'
436
+ AND completed_at IS NOT NULL
437
+ ORDER BY sequence DESC
438
+ LIMIT 1
439
+ )
441
440
  SELECT
442
441
  le.origin, le.op, le.attrs, le.sequence, le.status_rx, le.rx, le.mimetype_rx,
443
442
  le.scheme, le.pathname,
@@ -449,57 +448,68 @@ WHERE le.loop_id = $loop_id
449
448
  AND le.status_rx >= 400
450
449
  -- {§log-row-self-explains}: every >=400 row points at ITSELF — the op row carries its failure
451
450
  -- message on its meta line (packet-wire), so the pointer leads to a record that states its why.
452
- AND t.sequence >= $current_turn_seq - 1
451
+ AND (
452
+ t.sequence = $current_turn_seq
453
+ OR t.id = (SELECT id FROM previous_model_turn)
454
+ )
453
455
  ORDER BY t.sequence, le.sequence;
454
456
 
455
- -- TX: engine_grinder_fold_newest_turn
456
- -- {§grinder-layer1-rollback} — THE DOCTRINE: the log is the model's memory and the model ALONE
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).
462
- -- Folded, never deleted; THREE exemptions ({§grinder-errors-exempt}): op='error',
463
- -- the user prompt, and PLAN. The temporary set captures the
464
- -- selection once so folding and additive `overflow` tagging cannot diverge.
465
- CREATE TEMP TABLE IF NOT EXISTS engine_grinder_fold_set (id INTEGER PRIMARY KEY);
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
457
+ -- PREP: overflow_turn_causal_rows
458
+ -- {§overflow-turn-curation} — one deterministic causal set: rows already in
459
+ -- the packetless candidate, rows from the worker's immediately preceding turn,
460
+ -- and older bodies that preceding turn actually made more visible.
461
+ WITH current_turn AS (
462
+ SELECT turn.id, turn.sequence AS turn_seq,
463
+ loop.id AS loop_id, loop.sequence AS loop_seq, loop.worker_id
464
+ FROM turns turn
465
+ JOIN loops loop ON loop.id = turn.loop_id
466
+ WHERE turn.id = $turn_id AND loop.id = $loop_id
467
+ ),
468
+ previous_turn AS (
469
+ SELECT prior.id
470
+ FROM turns prior
471
+ JOIN loops prior_loop ON prior_loop.id = prior.loop_id
472
+ JOIN current_turn current ON current.worker_id = prior_loop.worker_id
473
+ WHERE prior.completed_at IS NOT NULL
474
+ AND (
475
+ prior_loop.sequence < current.loop_seq
476
+ OR (
477
+ prior_loop.sequence = current.loop_seq
478
+ AND prior.sequence < current.turn_seq
479
+ )
480
+ )
481
+ ORDER BY prior_loop.sequence DESC, prior.sequence DESC
482
+ LIMIT 1
483
+ ),
484
+ causal_rows(id) AS (
485
+ SELECT row.id
486
+ FROM log_entries row
487
+ WHERE row.turn_id = $turn_id
488
+ OR row.turn_id = (SELECT id FROM previous_turn)
489
+ UNION
490
+ SELECT effect.target_log_entry_id
491
+ FROM log_curation_effects effect
492
+ JOIN log_entries operation ON operation.id = effect.operation_log_entry_id
493
+ WHERE operation.turn_id = (SELECT id FROM previous_turn)
494
+ AND operation.op = 'OPEN'
495
+ AND operation.status_rx < 400
496
+ AND effect.folded_before != effect.folded_after
469
497
  )
470
- INSERT INTO engine_grinder_fold_set (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';
490
-
491
- UPDATE log_entries SET expanded = 0
492
- WHERE id IN (SELECT id FROM engine_grinder_fold_set);
493
-
494
- INSERT OR IGNORE INTO log_tags (log_entry_id, tag)
495
- SELECT id, 'overflow' FROM engine_grinder_fold_set;
496
-
497
- DELETE FROM engine_grinder_fold_set;
498
+ SELECT row.id,
499
+ (loop.sequence || '/' || turn.sequence || '/' || row.sequence) AS coordinate,
500
+ row.origin, row.op, row.attrs,
501
+ row.tx, row.mimetype_tx, row.rx, row.mimetype_rx,
502
+ row.folded
503
+ FROM causal_rows causal
504
+ JOIN log_entries row ON row.id = causal.id
505
+ JOIN turns turn ON turn.id = row.turn_id
506
+ JOIN loops loop ON loop.id = row.loop_id
507
+ ORDER BY loop.sequence, turn.sequence, row.sequence;
498
508
 
499
509
  -- PREP: engine_fold_log_entry
500
510
  -- Fold one known log row by id. Model-emission rows use this after insertion so
501
511
  -- the complete admitted emission remains available without opening by default.
502
- UPDATE log_entries SET expanded = 0 WHERE id = $id;
512
+ UPDATE log_entries SET folded = '[[1,-1]]' WHERE id = $id;
503
513
 
504
514
  -- PREP: engine_render_log
505
515
  -- Render-time log-section assembly ({§body-projection}).
@@ -507,8 +517,8 @@ UPDATE log_entries SET expanded = 0 WHERE id = $id;
507
517
  -- memory carries across loops within a worker, not just the
508
518
  -- current loop. Coordinates append /<op> only for rows that represent an operation.
509
519
  -- Status 202 entries in state='proposed' are model-invisible until resolved.
510
- -- `expanded = 0` rows are FOLDED — listed but collapsed to their coordinate
511
- -- (FOLD); the renderer elides the body. {§open-fold}: folded rows stay listed, re-OPENable.
520
+ -- Folded intervals are projected against the canonical body by packet-wire;
521
+ -- wholly folded rows remain listed and re-OPENable. {§open-fold}
512
522
  SELECT
513
523
  le.id,
514
524
  l.sequence AS loop_seq,
@@ -516,13 +526,13 @@ SELECT
516
526
  le.sequence,
517
527
  -- le.origin is attribution, never a render filter; the worker's actor — {§actor-boundary-origin-not-filter} {§machine-processes-worker-origin}
518
528
  le.origin,
519
- le.op, le.suffix, le.signal,
529
+ le.op, le.delimiter, le.signal,
520
530
  le.scheme, le.username, le.password,
521
531
  le.hostname, le.port, le.pathname,
522
532
  le.query, le.fragment,
523
533
  le.status_rx, le.rx, le.mimetype_rx,
524
534
  le.tx, le.mimetype_tx,
525
- le.state, le.outcome, le.expanded, le.source, le.weight, le.attrs,
535
+ le.state, le.outcome, le.folded, le.source, le.weight, le.attrs,
526
536
  COALESCE((
527
537
  SELECT json_group_array(ordered.tag)
528
538
  FROM (
@@ -540,7 +550,10 @@ JOIN loops l ON l.id = le.loop_id
540
550
  -- {§operation-result-uniform-error-channel}.
541
551
  WHERE le.worker_id = $worker_id
542
552
  AND NOT (le.status_rx = 202 AND le.state = 'proposed')
543
- AND NOT (COALESCE(le.op, '') IN ('OPEN', 'FOLD') AND le.status_rx < 400)
553
+ AND NOT (
554
+ COALESCE(le.op, '') IN ('OPEN', 'FOLD')
555
+ AND le.status_rx < 400
556
+ )
544
557
  AND NOT (COALESCE(le.op, '') = 'KILL' AND le.scheme = 'log' AND le.status_rx < 400)
545
558
  ORDER BY l.sequence, t.sequence, le.sequence;
546
559
 
@@ -551,14 +564,14 @@ ORDER BY l.sequence, t.sequence, le.sequence;
551
564
  -- via proposal resolution; entry transitions through engine_resolve_log_entry).
552
565
  INSERT INTO log_entries (
553
566
  worker_id, loop_id, turn_id, sequence, origin, source, model_call_id,
554
- op, suffix, signal,
567
+ op, delimiter, signal,
555
568
  scheme, username, password, hostname, port,
556
569
  pathname, query, fragment, lineMarker,
557
570
  tx, mimetype_tx, rx, mimetype_rx, status_rx, weight,
558
571
  state, outcome, attrs
559
572
  ) VALUES (
560
573
  $worker_id, $loop_id, $turn_id, $sequence, $origin, $source, $model_call_id,
561
- $op, $suffix, $signal,
574
+ $op, $delimiter, $signal,
562
575
  $scheme, $username, $password, $hostname, $port,
563
576
  $pathname, $query, $fragment, $lineMarker,
564
577
  $tx, $mimetype_tx, $rx, $mimetype_rx, $status_rx, $weight,
@@ -622,7 +635,7 @@ WHERE s.worker_id = $worker_id
622
635
  AND NOT EXISTS (
623
636
  SELECT 1 FROM log_entries le
624
637
  WHERE le.worker_id = $worker_id
625
- AND le.origin = 'plurnk'
638
+ AND le.origin = '_plurnk'
626
639
  AND le.op = 'READ'
627
640
  AND le.scheme = e.scheme
628
641
  AND le.pathname = e.pathname
@@ -646,14 +659,6 @@ WHERE turn_id = $turn_id
646
659
  AND status_rx >= 400
647
660
  AND (op != 'error' OR source = 'grammar');
648
661
 
649
- -- PREP: engine_reconcile_turn_status
650
- -- A SEND's signal is only provisional until dispatch adjudicates live obligations and failures.
651
- -- The close writes packet+usage before ops dispatch, so reconcile the persisted turn whenever
652
- -- dispatch changes that disposition (for example refused 200 -> 102 or drained 202 -> 200).
653
- UPDATE turns SET status = $status WHERE id = $id;
654
-
655
-
656
-
657
662
  -- PREP: engine_loop_sequence
658
663
  -- The loop's per-worker sequence — the model-facing coordinate (prompt/<worker>/<loop-seq>/<turn-seq>,
659
664
  -- matching the log's loop-relative numbering). The raw db id leaked into prompt paths and the
@@ -23,8 +23,11 @@ export interface RegistryEntry {
23
23
  readonly executor: Executor;
24
24
  readonly namespaceOwner: RuntimeNamespaceOwner;
25
25
  readonly glyph: string;
26
+ readonly summary: string;
26
27
  readonly invocation: RuntimeInvocationDecl;
27
- readonly documentation: string;
28
+ readonly details: string;
29
+ readonly resourcesPath?: string;
30
+ readonly expandTools?: boolean;
28
31
  readonly available: boolean;
29
32
  readonly detail: string | undefined;
30
33
  }
@@ -48,8 +51,11 @@ export default class ExecutorRegistry {
48
51
  registry: ReadonlyMap<string, {
49
52
  runtime: string;
50
53
  glyph: string;
54
+ summary: string;
51
55
  invocation: RuntimeInvocationDecl;
52
- documentation?: string;
56
+ details: string;
57
+ resourcesPath?: string;
58
+ expandTools?: boolean;
53
59
  packageName: string;
54
60
  }>;
55
61
  packageAttributions?: PackageAttributions;
@@ -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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"}
@@ -169,7 +169,7 @@ class ExecutorRegistry {
169
169
  }
170
170
  // {§operator-config-git-ceiling} PLURNK_SERVICE_GIT_ALLOWED=0 must drop every
171
171
  // Git-capability executor entirely: a denied host neither dispatches
172
- // the Git/isogit EXEC runtimes nor teaches them through the tools sheet.
172
+ // nor publishes the Git/isogit EXEC runtimes.
173
173
  const gitDenied = process.env.PLURNK_SERVICE_GIT_ALLOWED !== "1";
174
174
  const gitRuntimes = new Set(["git", "isogit"]);
175
175
  const infos = [...discovered.values()].filter((info) => !(gitDenied && gitRuntimes.has(info.runtime)));
@@ -188,8 +188,11 @@ class ExecutorRegistry {
188
188
  executor,
189
189
  namespaceOwner: { kind: "package", name: info.packageName },
190
190
  glyph: info.glyph,
191
+ summary: info.summary,
191
192
  invocation: info.invocation,
192
- documentation: info.documentation ?? "",
193
+ details: info.details,
194
+ ...(info.resourcesPath === undefined ? {} : { resourcesPath: info.resourcesPath }),
195
+ ...(info.expandTools === undefined ? {} : { expandTools: info.expandTools }),
193
196
  available: availability.available,
194
197
  detail: availability.detail,
195
198
  });
@@ -240,7 +243,7 @@ class ExecutorRegistry {
240
243
  }
241
244
  return this.#byTag.get(tag);
242
245
  }
243
- // A family runtime's exact tools, invocation contracts, and pull document
246
+ // A family runtime's exact tools, summaries, and invocation contracts
244
247
  // cross the plugin boundary as one validated snapshot. Absence means the
245
248
  // runtime's static invocation declaration is authoritative.
246
249
  toolRegistry(tag, workspaceId) {
@@ -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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"}
@@ -0,0 +1,29 @@
1
+ type HostPathsOptions = {
2
+ readonly env?: NodeJS.ProcessEnv;
3
+ readonly home?: string;
4
+ };
5
+ type XdgVariable = "XDG_CONFIG_HOME" | "XDG_DATA_HOME" | "XDG_STATE_HOME" | "XDG_CACHE_HOME" | "XDG_RUNTIME_DIR";
6
+ export default class HostPaths {
7
+ readonly home: string;
8
+ readonly configHome: string;
9
+ readonly dataHome: string;
10
+ readonly stateHome: string;
11
+ readonly cacheHome: string;
12
+ readonly runtimeHome: string | null;
13
+ readonly invalidXdg: readonly XdgVariable[];
14
+ readonly configDir: string;
15
+ readonly dataDir: string;
16
+ readonly stateDir: string;
17
+ readonly cacheDir: string;
18
+ readonly runtimeDir: string | null;
19
+ readonly configFile: string;
20
+ readonly policyFile: string;
21
+ readonly databaseFile: string;
22
+ readonly globalSkillsDir: string;
23
+ readonly legacyDir: string;
24
+ constructor({ env, home }?: HostPathsOptions);
25
+ projectSkillsDir(projectRoot: string): string;
26
+ expandUserPath(value: string): string;
27
+ }
28
+ export {};
29
+ //# sourceMappingURL=HostPaths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HostPaths.d.ts","sourceRoot":"","sources":["../../src/core/HostPaths.ts"],"names":[],"mappings":"AAGA,KAAK,gBAAgB,GAAG;IACpB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,KAAK,WAAW,GAAG,iBAAiB,GAAG,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;AAMjH,MAAM,CAAC,OAAO,OAAO,SAAS;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;IAE5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,YAAY,EAAE,GAAiB,EAAE,IAAgB,EAAE,GAAE,gBAAqB,EAsCzE;IAED,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5C;IAED,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGpC;CACJ"}
@@ -0,0 +1,74 @@
1
+ import { homedir } from "node:os";
2
+ import { isAbsolute, join, resolve } from "node:path";
3
+ const APP_DIRECTORY = "plurnk";
4
+ // {§host-path-layout} — one host-boundary resolver. Package-relative assets
5
+ // remain owned by ../Paths.ts; this class owns only user and runtime locations.
6
+ export default class HostPaths {
7
+ home;
8
+ configHome;
9
+ dataHome;
10
+ stateHome;
11
+ cacheHome;
12
+ runtimeHome;
13
+ invalidXdg;
14
+ configDir;
15
+ dataDir;
16
+ stateDir;
17
+ cacheDir;
18
+ runtimeDir;
19
+ configFile;
20
+ policyFile;
21
+ databaseFile;
22
+ globalSkillsDir;
23
+ legacyDir;
24
+ constructor({ env = process.env, home = homedir() } = {}) {
25
+ this.home = resolve(home);
26
+ const invalid = [];
27
+ const base = (name, fallback) => {
28
+ const value = env[name];
29
+ if (value === undefined || value.length === 0)
30
+ return resolve(this.home, fallback);
31
+ if (isAbsolute(value))
32
+ return resolve(value);
33
+ invalid.push(name);
34
+ return resolve(this.home, fallback);
35
+ };
36
+ this.configHome = base("XDG_CONFIG_HOME", ".config");
37
+ this.dataHome = base("XDG_DATA_HOME", join(".local", "share"));
38
+ this.stateHome = base("XDG_STATE_HOME", join(".local", "state"));
39
+ this.cacheHome = base("XDG_CACHE_HOME", ".cache");
40
+ const runtime = env.XDG_RUNTIME_DIR;
41
+ if (runtime === undefined || runtime.length === 0) {
42
+ this.runtimeHome = null;
43
+ }
44
+ else if (isAbsolute(runtime)) {
45
+ this.runtimeHome = resolve(runtime);
46
+ }
47
+ else {
48
+ invalid.push("XDG_RUNTIME_DIR");
49
+ this.runtimeHome = null;
50
+ }
51
+ this.invalidXdg = Object.freeze(invalid);
52
+ this.configDir = join(this.configHome, APP_DIRECTORY);
53
+ this.dataDir = join(this.dataHome, APP_DIRECTORY);
54
+ this.stateDir = join(this.stateHome, APP_DIRECTORY);
55
+ this.cacheDir = join(this.cacheHome, APP_DIRECTORY);
56
+ this.runtimeDir = this.runtimeHome === null ? null : join(this.runtimeHome, APP_DIRECTORY);
57
+ this.configFile = join(this.configDir, ".env");
58
+ this.policyFile = join(this.configDir, "AGENTS.md");
59
+ this.databaseFile = join(this.dataDir, "plurnk.db");
60
+ // The upstream `skills` CLI's universal global target is deliberately
61
+ // shared across agents and is rooted independently of application config.
62
+ this.globalSkillsDir = join(this.home, ".agents", "skills");
63
+ this.legacyDir = join(this.home, ".plurnk");
64
+ }
65
+ projectSkillsDir(projectRoot) {
66
+ return join(resolve(projectRoot), ".agents", "skills");
67
+ }
68
+ expandUserPath(value) {
69
+ if (value === "~")
70
+ return this.home;
71
+ return value.startsWith("~/") ? resolve(this.home, value.slice(2)) : value;
72
+ }
73
+ }
74
+ //# sourceMappingURL=HostPaths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HostPaths.js","sourceRoot":"","sources":["../../src/core/HostPaths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type HostPaths from "./HostPaths.ts";
2
+ export interface LegacyMigrationMove {
3
+ readonly source: string;
4
+ readonly destination: string;
5
+ }
6
+ export default class LegacyHome {
7
+ static assertCanonical(paths: HostPaths): Promise<void>;
8
+ static migrate(paths: HostPaths): Promise<readonly LegacyMigrationMove[]>;
9
+ }
10
+ //# sourceMappingURL=LegacyHome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegacyHome.d.ts","sourceRoot":"","sources":["../../src/core/LegacyHome.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AA0C5C,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAChC;AAID,MAAM,CAAC,OAAO,OAAO,UAAU;IAC3B,OAAa,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5D;IAED,OAAa,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,CAmG9E;CACJ"}