@plurnk/plurnk-service 2.0.0 → 3.1.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 (333) hide show
  1. package/.env.defaults +27 -19
  2. package/INSTALL.md +21 -2
  3. package/README.md +4 -2
  4. package/SPEC.md +644 -467
  5. package/dist/build-info.json +1 -1
  6. package/dist/completions/_plurnk-service +13 -0
  7. package/dist/completions/plurnk-service.bash +19 -0
  8. package/dist/completions/plurnk-service.fish +93 -0
  9. package/dist/content/edit-receipt.d.ts +1 -1
  10. package/dist/content/edit-receipt.d.ts.map +1 -1
  11. package/dist/content/edit-receipt.js +1 -1
  12. package/dist/content/edit-receipt.js.map +1 -1
  13. package/dist/content/read-projector.d.ts.map +1 -1
  14. package/dist/content/read-projector.js +3 -12
  15. package/dist/content/read-projector.js.map +1 -1
  16. package/dist/core/AdministrativeLoop.d.ts +1 -1
  17. package/dist/core/AdministrativeLoop.d.ts.map +1 -1
  18. package/dist/core/AdministrativeLoop.js +2 -6
  19. package/dist/core/AdministrativeLoop.js.map +1 -1
  20. package/dist/core/AdmittedTurnExecutor.d.ts +2 -2
  21. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
  22. package/dist/core/AdmittedTurnExecutor.js +16 -24
  23. package/dist/core/AdmittedTurnExecutor.js.map +1 -1
  24. package/dist/core/BudgetReadout.d.ts +8 -2
  25. package/dist/core/BudgetReadout.d.ts.map +1 -1
  26. package/dist/core/BudgetReadout.js +48 -5
  27. package/dist/core/BudgetReadout.js.map +1 -1
  28. package/dist/core/CapabilityPolicies.d.ts +2 -4
  29. package/dist/core/CapabilityPolicies.d.ts.map +1 -1
  30. package/dist/core/CapabilityPolicies.js +3 -23
  31. package/dist/core/CapabilityPolicies.js.map +1 -1
  32. package/dist/core/CapabilityResolver.d.ts +9 -2
  33. package/dist/core/CapabilityResolver.d.ts.map +1 -1
  34. package/dist/core/CapabilityResolver.js +34 -5
  35. package/dist/core/CapabilityResolver.js.map +1 -1
  36. package/dist/core/ChannelWrite.d.ts +0 -2
  37. package/dist/core/ChannelWrite.d.ts.map +1 -1
  38. package/dist/core/ChannelWrite.js.map +1 -1
  39. package/dist/core/ClientInteractions.d.ts +3 -2
  40. package/dist/core/ClientInteractions.d.ts.map +1 -1
  41. package/dist/core/ClientInteractions.js +21 -12
  42. package/dist/core/ClientInteractions.js.map +1 -1
  43. package/dist/core/ClientInteractions.sql +8 -2
  44. package/dist/core/CoreSchemeServices.d.ts +1 -0
  45. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  46. package/dist/core/CoreSchemeServices.js +1 -0
  47. package/dist/core/CoreSchemeServices.js.map +1 -1
  48. package/dist/core/DataStatementRunner.js +1 -1
  49. package/dist/core/DataStatementRunner.js.map +1 -1
  50. package/dist/core/Dispatcher.d.ts +3 -2
  51. package/dist/core/Dispatcher.d.ts.map +1 -1
  52. package/dist/core/Dispatcher.js +55 -52
  53. package/dist/core/Dispatcher.js.map +1 -1
  54. package/dist/core/Engine.d.ts +1 -1
  55. package/dist/core/Engine.d.ts.map +1 -1
  56. package/dist/core/Engine.js +4 -6
  57. package/dist/core/Engine.js.map +1 -1
  58. package/dist/core/EnvFlags.d.ts.map +1 -1
  59. package/dist/core/EnvFlags.js +5 -4
  60. package/dist/core/EnvFlags.js.map +1 -1
  61. package/dist/core/FabricatedLog.d.ts +1 -0
  62. package/dist/core/FabricatedLog.d.ts.map +1 -1
  63. package/dist/core/FabricatedLog.js +9 -1
  64. package/dist/core/FabricatedLog.js.map +1 -1
  65. package/dist/core/HostPaths.d.ts +0 -1
  66. package/dist/core/HostPaths.d.ts.map +1 -1
  67. package/dist/core/HostPaths.js +0 -2
  68. package/dist/core/HostPaths.js.map +1 -1
  69. package/dist/core/KillHandler.d.ts.map +1 -1
  70. package/dist/core/KillHandler.js +3 -1
  71. package/dist/core/KillHandler.js.map +1 -1
  72. package/dist/core/LiveSubscription.d.ts.map +1 -1
  73. package/dist/core/LiveSubscription.js +14 -2
  74. package/dist/core/LiveSubscription.js.map +1 -1
  75. package/dist/core/LiveSubscriptions.d.ts +3 -1
  76. package/dist/core/LiveSubscriptions.d.ts.map +1 -1
  77. package/dist/core/LiveSubscriptions.js +16 -1
  78. package/dist/core/LiveSubscriptions.js.map +1 -1
  79. package/dist/core/LogBody.d.ts.map +1 -1
  80. package/dist/core/LogBody.js +3 -1
  81. package/dist/core/LogBody.js.map +1 -1
  82. package/dist/core/LogVisibility.d.ts.map +1 -1
  83. package/dist/core/LogVisibility.js +8 -17
  84. package/dist/core/LogVisibility.js.map +1 -1
  85. package/dist/core/LoopDriver.js +7 -6
  86. package/dist/core/LoopDriver.js.map +1 -1
  87. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  88. package/dist/core/LoopLifecycle.js +4 -9
  89. package/dist/core/LoopLifecycle.js.map +1 -1
  90. package/dist/core/LoopLifecycle.sql +7 -6
  91. package/dist/core/MessageResources.sql +31 -0
  92. package/dist/core/OperatorConfig.d.ts +1 -0
  93. package/dist/core/OperatorConfig.d.ts.map +1 -1
  94. package/dist/core/OperatorConfig.js +10 -2
  95. package/dist/core/OperatorConfig.js.map +1 -1
  96. package/dist/core/PacketBuilder.d.ts +5 -7
  97. package/dist/core/PacketBuilder.d.ts.map +1 -1
  98. package/dist/core/PacketBuilder.js +160 -158
  99. package/dist/core/PacketBuilder.js.map +1 -1
  100. package/dist/core/PacketBuilder.sql +20 -6
  101. package/dist/core/ProposalLifecycle.d.ts +1 -1
  102. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  103. package/dist/core/ProposalLifecycle.js +18 -20
  104. package/dist/core/ProposalLifecycle.js.map +1 -1
  105. package/dist/core/ProposalPolicies.d.ts +6 -0
  106. package/dist/core/ProposalPolicies.d.ts.map +1 -0
  107. package/dist/core/ProposalPolicies.js +28 -0
  108. package/dist/core/ProposalPolicies.js.map +1 -0
  109. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  110. package/dist/core/ProviderInstantiate.js +3 -4
  111. package/dist/core/ProviderInstantiate.js.map +1 -1
  112. package/dist/core/ReplyMetadata.d.ts +10 -0
  113. package/dist/core/ReplyMetadata.d.ts.map +1 -0
  114. package/dist/core/ReplyMetadata.js +20 -0
  115. package/dist/core/ReplyMetadata.js.map +1 -0
  116. package/dist/core/ResourceSelector.js +2 -2
  117. package/dist/core/ResourceSelector.js.map +1 -1
  118. package/dist/core/ResourceTransfers.js +3 -3
  119. package/dist/core/ResourceTransfers.js.map +1 -1
  120. package/dist/core/RuntimeWorker.sql +1 -2
  121. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  122. package/dist/core/SchemeRegistry.js +4 -5
  123. package/dist/core/SchemeRegistry.js.map +1 -1
  124. package/dist/core/ServiceHelp.d.ts +6 -0
  125. package/dist/core/ServiceHelp.d.ts.map +1 -0
  126. package/dist/core/ServiceHelp.js +35 -0
  127. package/dist/core/ServiceHelp.js.map +1 -0
  128. package/dist/core/StoredPacket.d.ts +1 -0
  129. package/dist/core/StoredPacket.d.ts.map +1 -1
  130. package/dist/core/StoredPacket.js +4 -1
  131. package/dist/core/StoredPacket.js.map +1 -1
  132. package/dist/core/StrikeRail.d.ts.map +1 -1
  133. package/dist/core/StrikeRail.js +2 -2
  134. package/dist/core/StrikeRail.js.map +1 -1
  135. package/dist/core/TokenCalibration.d.ts +2 -2
  136. package/dist/core/TokenCalibration.d.ts.map +1 -1
  137. package/dist/core/TokenCalibration.js +12 -16
  138. package/dist/core/TokenCalibration.js.map +1 -1
  139. package/dist/core/TokenCalibration.sql +29 -6
  140. package/dist/core/ToolInputSchema.d.ts +1 -0
  141. package/dist/core/ToolInputSchema.d.ts.map +1 -1
  142. package/dist/core/ToolInputSchema.js +8 -2
  143. package/dist/core/ToolInputSchema.js.map +1 -1
  144. package/dist/core/ToolResources.d.ts +1 -0
  145. package/dist/core/ToolResources.d.ts.map +1 -1
  146. package/dist/core/ToolResources.js +7 -1
  147. package/dist/core/ToolResources.js.map +1 -1
  148. package/dist/core/TurnDispositionHandler.d.ts +1 -2
  149. package/dist/core/TurnDispositionHandler.d.ts.map +1 -1
  150. package/dist/core/TurnDispositionHandler.js +31 -33
  151. package/dist/core/TurnDispositionHandler.js.map +1 -1
  152. package/dist/core/TurnMaterialization.d.ts.map +1 -1
  153. package/dist/core/TurnMaterialization.js +12 -2
  154. package/dist/core/TurnMaterialization.js.map +1 -1
  155. package/dist/core/TurnOps.d.ts +5 -1
  156. package/dist/core/TurnOps.d.ts.map +1 -1
  157. package/dist/core/TurnOps.js +29 -2
  158. package/dist/core/TurnOps.js.map +1 -1
  159. package/dist/core/TurnRunner.d.ts.map +1 -1
  160. package/dist/core/TurnRunner.js +184 -103
  161. package/dist/core/TurnRunner.js.map +1 -1
  162. package/dist/core/TurnSources.sql +2 -2
  163. package/dist/core/WorkerControlHandler.d.ts.map +1 -1
  164. package/dist/core/WorkerControlHandler.js +1 -8
  165. package/dist/core/WorkerControlHandler.js.map +1 -1
  166. package/dist/core/WorkerName.d.ts +1 -0
  167. package/dist/core/WorkerName.d.ts.map +1 -1
  168. package/dist/core/WorkerName.js +2 -0
  169. package/dist/core/WorkerName.js.map +1 -1
  170. package/dist/core/WorkerName.sql +2 -2
  171. package/dist/core/WorkerOwners.d.ts +13 -0
  172. package/dist/core/WorkerOwners.d.ts.map +1 -0
  173. package/dist/core/WorkerOwners.js +44 -0
  174. package/dist/core/WorkerOwners.js.map +1 -0
  175. package/dist/core/WorkerOwners.sql +55 -0
  176. package/dist/core/env-catalog.d.ts +3 -0
  177. package/dist/core/env-catalog.d.ts.map +1 -1
  178. package/dist/core/env-catalog.js +44 -9
  179. package/dist/core/env-catalog.js.map +1 -1
  180. package/dist/core/fork.sql +3 -4
  181. package/dist/core/packet-inject.js +0 -2
  182. package/dist/core/packet-inject.js.map +1 -1
  183. package/dist/core/packet-wire.d.ts +9 -11
  184. package/dist/core/packet-wire.d.ts.map +1 -1
  185. package/dist/core/packet-wire.js +103 -126
  186. package/dist/core/packet-wire.js.map +1 -1
  187. package/dist/core/plurnk-uri.d.ts +1 -1
  188. package/dist/core/plurnk-uri.d.ts.map +1 -1
  189. package/dist/core/plurnk-uri.js +4 -4
  190. package/dist/core/plurnk-uri.js.map +1 -1
  191. package/dist/core/recap-lines.d.ts +4 -0
  192. package/dist/core/recap-lines.d.ts.map +1 -0
  193. package/dist/core/recap-lines.js +11 -0
  194. package/dist/core/recap-lines.js.map +1 -0
  195. package/dist/core/scheme-types.d.ts +2 -1
  196. package/dist/core/scheme-types.d.ts.map +1 -1
  197. package/dist/core/sql-functions.d.ts +2 -0
  198. package/dist/core/sql-functions.d.ts.map +1 -0
  199. package/dist/core/sql-functions.js +5 -0
  200. package/dist/core/sql-functions.js.map +1 -0
  201. package/dist/core/turn-scheduler.d.ts.map +1 -1
  202. package/dist/core/turn-scheduler.js +1 -1
  203. package/dist/core/turn-scheduler.js.map +1 -1
  204. package/dist/core/types.d.ts +0 -1
  205. package/dist/core/types.d.ts.map +1 -1
  206. package/dist/core/unregistered-scheme.d.ts +1 -3
  207. package/dist/core/unregistered-scheme.d.ts.map +1 -1
  208. package/dist/core/unregistered-scheme.js +3 -11
  209. package/dist/core/unregistered-scheme.js.map +1 -1
  210. package/dist/evidence/EvidenceReader.d.ts.map +1 -1
  211. package/dist/evidence/EvidenceReader.js +18 -2
  212. package/dist/evidence/EvidenceReader.js.map +1 -1
  213. package/dist/evidence/digest.sql +2 -2
  214. package/dist/man/plurnk-service.1 +488 -0
  215. package/dist/schemes/EffectPolicy.d.ts.map +1 -1
  216. package/dist/schemes/EffectPolicy.js +1 -10
  217. package/dist/schemes/EffectPolicy.js.map +1 -1
  218. package/dist/schemes/Env.d.ts +26 -0
  219. package/dist/schemes/Env.d.ts.map +1 -0
  220. package/dist/schemes/Env.js +133 -0
  221. package/dist/schemes/Env.js.map +1 -0
  222. package/dist/schemes/Exec.d.ts.map +1 -1
  223. package/dist/schemes/Exec.js +30 -37
  224. package/dist/schemes/Exec.js.map +1 -1
  225. package/dist/schemes/ExecOutputScheme.d.ts +3 -2
  226. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  227. package/dist/schemes/ExecOutputScheme.js +9 -0
  228. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  229. package/dist/schemes/File.d.ts.map +1 -1
  230. package/dist/schemes/File.js +10 -16
  231. package/dist/schemes/File.js.map +1 -1
  232. package/dist/schemes/Log.d.ts.map +1 -1
  233. package/dist/schemes/Log.js +33 -10
  234. package/dist/schemes/Log.js.map +1 -1
  235. package/dist/schemes/Log.sql +9 -0
  236. package/dist/schemes/QuestionTool.d.ts.map +1 -1
  237. package/dist/schemes/QuestionTool.js +1 -3
  238. package/dist/schemes/QuestionTool.js.map +1 -1
  239. package/dist/schemes/Worker.d.ts.map +1 -1
  240. package/dist/schemes/Worker.js +6 -8
  241. package/dist/schemes/Worker.js.map +1 -1
  242. package/dist/schemes/_entry-find.d.ts +1 -1
  243. package/dist/schemes/_entry-find.d.ts.map +1 -1
  244. package/dist/schemes/_entry-find.js +16 -9
  245. package/dist/schemes/_entry-find.js.map +1 -1
  246. package/dist/schemes/_entry-fts.d.ts.map +1 -1
  247. package/dist/schemes/_entry-fts.js +3 -9
  248. package/dist/schemes/_entry-fts.js.map +1 -1
  249. package/dist/schemes/_entry-manifest.js +3 -3
  250. package/dist/schemes/_entry-manifest.js.map +1 -1
  251. package/dist/schemes/_entry-ops.js +1 -1
  252. package/dist/schemes/_entry-ops.js.map +1 -1
  253. package/dist/schemes/exec-abort.js +2 -2
  254. package/dist/schemes/exec-abort.js.map +1 -1
  255. package/dist/server/ConfigurationDiagnostics.d.ts +1 -0
  256. package/dist/server/ConfigurationDiagnostics.d.ts.map +1 -1
  257. package/dist/server/ConfigurationDiagnostics.js +9 -0
  258. package/dist/server/ConfigurationDiagnostics.js.map +1 -1
  259. package/dist/server/Daemon.d.ts +13 -8
  260. package/dist/server/Daemon.d.ts.map +1 -1
  261. package/dist/server/Daemon.js +57 -53
  262. package/dist/server/Daemon.js.map +1 -1
  263. package/dist/server/DrainSupervisor.d.ts +2 -4
  264. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  265. package/dist/server/DrainSupervisor.js +5 -12
  266. package/dist/server/DrainSupervisor.js.map +1 -1
  267. package/dist/server/EnvFunctionality.d.ts +6 -6
  268. package/dist/server/EnvFunctionality.d.ts.map +1 -1
  269. package/dist/server/EnvFunctionality.js +7 -6
  270. package/dist/server/EnvFunctionality.js.map +1 -1
  271. package/dist/server/Functionality.d.ts.map +1 -1
  272. package/dist/server/Functionality.js +42 -13
  273. package/dist/server/Functionality.js.map +1 -1
  274. package/dist/server/FunctionalityManager.d.ts +3 -4
  275. package/dist/server/FunctionalityManager.d.ts.map +1 -1
  276. package/dist/server/FunctionalityManager.js +17 -9
  277. package/dist/server/FunctionalityManager.js.map +1 -1
  278. package/dist/server/HttpListener.d.ts.map +1 -1
  279. package/dist/server/HttpListener.js +9 -3
  280. package/dist/server/HttpListener.js.map +1 -1
  281. package/dist/server/MembersFunctionality.d.ts +2 -5
  282. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  283. package/dist/server/MembersFunctionality.js +5 -3
  284. package/dist/server/MembersFunctionality.js.map +1 -1
  285. package/dist/server/WorkspaceStorage.d.ts +0 -1
  286. package/dist/server/WorkspaceStorage.d.ts.map +1 -1
  287. package/dist/server/WorkspaceStorage.js +1 -24
  288. package/dist/server/WorkspaceStorage.js.map +1 -1
  289. package/dist/server/client-input.d.ts +1 -2
  290. package/dist/server/client-input.d.ts.map +1 -1
  291. package/dist/server/client-input.js +13 -15
  292. package/dist/server/client-input.js.map +1 -1
  293. package/dist/server/dispatch-as-plurnk.js +1 -1
  294. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  295. package/dist/server/drain.sql +16 -15
  296. package/dist/server/envelope.d.ts +2 -1
  297. package/dist/server/envelope.d.ts.map +1 -1
  298. package/dist/server/envelope.js +7 -17
  299. package/dist/server/envelope.js.map +1 -1
  300. package/dist/server/envelope.sql +5 -5
  301. package/dist/server/seam-proposal-list.sql +6 -4
  302. package/dist/server/workspace-storage.sql +0 -5
  303. package/dist/service.d.ts.map +1 -1
  304. package/dist/service.js +28 -64
  305. package/dist/service.js.map +1 -1
  306. package/docs/env.md +22 -0
  307. package/migrations/003_loops.sql +2 -2
  308. package/migrations/006_log.sql +1 -1
  309. package/migrations/016_selection_statements.sql +1 -0
  310. package/migrations/017_skills_module.sql +1 -0
  311. package/migrations/018_worker_owners.sql +103 -0
  312. package/migrations/019_interactive_owners.sql +7 -0
  313. package/migrations/020_log_projection.sql +144 -0
  314. package/migrations/021_packet_roles.sql +86 -0
  315. package/migrations/022_message_completion.sql +24 -0
  316. package/package.json +41 -43
  317. package/dist/core/LegacyHome.d.ts +0 -10
  318. package/dist/core/LegacyHome.d.ts.map +0 -1
  319. package/dist/core/LegacyHome.js +0 -170
  320. package/dist/core/LegacyHome.js.map +0 -1
  321. package/dist/core/LoopPolicies.d.ts +0 -7
  322. package/dist/core/LoopPolicies.d.ts.map +0 -1
  323. package/dist/core/LoopPolicies.js +0 -42
  324. package/dist/core/LoopPolicies.js.map +0 -1
  325. package/dist/core/LoopPolicyReader.d.ts +0 -7
  326. package/dist/core/LoopPolicyReader.d.ts.map +0 -1
  327. package/dist/core/LoopPolicyReader.js +0 -33
  328. package/dist/core/LoopPolicyReader.js.map +0 -1
  329. package/dist/core/LoopPolicyReader.sql +0 -6
  330. package/dist/index.d.ts +0 -14
  331. package/dist/index.d.ts.map +0 -1
  332. package/dist/index.js +0 -21
  333. package/dist/index.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  -- MIGRATE: 16 selection_statements
2
+ -- Released in 2.0.0 and frozen ({§db-migrations}): a shape change is the next MIGRATE version, never an edit here.
2
3
  -- {§target-group} {§db-migrations}: normalize derived ASTs, never original emissions or reasoning.
3
4
  -- Historical group members determined dispatch; duplicated top-level fields did not override them.
4
5
  UPDATE turns
@@ -1,4 +1,5 @@
1
1
  -- MIGRATE: 17 skills module
2
+ -- Released in 2.0.0 and frozen ({§db-migrations}): a shape change is the next MIGRATE version, never an edit here.
2
3
  -- {§skills-module} — rename ownership; definitions and enabledness remain exact.
3
4
  UPDATE workspace_module_state
4
5
  SET namespace_owner = '@plurnk/plurnk-skills'
@@ -0,0 +1,103 @@
1
+ -- MIGRATE: 18 worker owners
2
+ -- Released in 3.0.0 and frozen ({§db-migrations}): a shape change is the next MIGRATE version, never an edit here.
3
+ -- {§worker-owner-creation} Ownership is durable; incoming messages confer no authority.
4
+
5
+ CREATE TABLE worker_owners (
6
+ workspace_id INTEGER NOT NULL REFERENCES workspaces(id) ON DELETE CASCADE,
7
+ address TEXT NOT NULL CHECK (length(address) > 0),
8
+ tools TEXT NOT NULL CHECK (json_valid(tools) AND json_type(tools) = 'array'),
9
+ PRIMARY KEY (workspace_id, address),
10
+ CHECK (address != '_plurnk' OR tools = '[]')
11
+ ) STRICT;
12
+
13
+ INSERT INTO worker_owners (workspace_id, address, tools)
14
+ SELECT id, '_plurnk', '[]' FROM workspaces;
15
+
16
+ ALTER TABLE workers ADD COLUMN owner TEXT NOT NULL DEFAULT '_plurnk' CHECK (length(owner) > 0);
17
+
18
+ -- SQLite cannot add a composite foreign key to an existing table. These guards enforce
19
+ -- the same workspace/address reference without rebuilding workers and their descendants.
20
+ CREATE TRIGGER worker_owner_insert
21
+ BEFORE INSERT ON workers
22
+ WHEN EXISTS (SELECT 1 FROM workspaces WHERE id = NEW.workspace_id) AND NOT EXISTS (
23
+ SELECT 1 FROM worker_owners WHERE workspace_id = NEW.workspace_id AND address = NEW.owner
24
+ )
25
+ OR (NEW.origin = '_plurnk' AND NEW.owner != '_plurnk')
26
+ OR (NEW.parent_worker_id IS NOT NULL AND EXISTS (
27
+ SELECT 1 FROM workers WHERE id = NEW.parent_worker_id AND workspace_id != NEW.workspace_id
28
+ ))
29
+ BEGIN
30
+ SELECT RAISE(ABORT, 'worker owner or parent does not belong to its workspace');
31
+ END;
32
+
33
+ CREATE TRIGGER worker_owner_update
34
+ BEFORE UPDATE OF owner, workspace_id ON workers
35
+ WHEN NOT EXISTS (
36
+ SELECT 1 FROM worker_owners WHERE workspace_id = NEW.workspace_id AND address = NEW.owner
37
+ )
38
+ OR (NEW.origin = '_plurnk' AND NEW.owner != '_plurnk')
39
+ BEGIN
40
+ SELECT RAISE(ABORT, 'worker owner does not belong to its workspace');
41
+ END;
42
+
43
+ CREATE TRIGGER worker_owner_identity
44
+ BEFORE UPDATE OF workspace_id, address ON worker_owners
45
+ BEGIN
46
+ SELECT RAISE(ABORT, 'worker owner identity is immutable');
47
+ END;
48
+
49
+ CREATE TRIGGER worker_owner_referenced
50
+ BEFORE DELETE ON worker_owners
51
+ WHEN EXISTS (SELECT 1 FROM workspaces WHERE id = OLD.workspace_id)
52
+ AND EXISTS (SELECT 1 FROM workers WHERE workspace_id = OLD.workspace_id AND owner = OLD.address)
53
+ BEGIN
54
+ SELECT RAISE(ABORT, 'worker owner is still referenced');
55
+ END;
56
+
57
+ CREATE INDEX workers_owner ON workers (workspace_id, owner);
58
+
59
+ -- {§a2a-worker-ownership} Released A2A contexts were roots. Retained causal
60
+ -- message identities distinguish them from ordinary model conversations.
61
+ CREATE TEMP TABLE a2a_context_parents AS
62
+ SELECT DISTINCT context.id, context.workspace_id
63
+ FROM workers context
64
+ JOIN workers task ON task.parent_worker_id = context.id
65
+ JOIN loops l ON l.worker_id = task.id
66
+ WHERE context.origin = 'model' AND context.parent_worker_id IS NULL
67
+ AND context.default_conversation = 0 AND task.origin = 'model'
68
+ AND l.prompt_source GLOB 'a2a://*'
69
+ AND instr(l.prompt_source, '/contexts/' || context.name || '/tasks/' || task.name || '/messages/') > 0
70
+ AND substr(l.prompt_source, -1) != '/';
71
+
72
+ INSERT INTO workers (workspace_id, name, origin)
73
+ SELECT DISTINCT context.workspace_id, '_plurnk', '_plurnk'
74
+ FROM a2a_context_parents context
75
+ WHERE NOT EXISTS (SELECT 1 FROM workers runtime WHERE runtime.workspace_id = context.workspace_id AND runtime.origin = '_plurnk');
76
+
77
+ UPDATE workers SET parent_worker_id = (
78
+ SELECT runtime.id FROM workers runtime
79
+ WHERE runtime.workspace_id = workers.workspace_id AND runtime.origin = '_plurnk'
80
+ )
81
+ WHERE id IN (SELECT id FROM a2a_context_parents);
82
+ DROP TABLE a2a_context_parents;
83
+
84
+ -- Old process-local interaction waiters cannot survive a daemon restart; ordinary
85
+ -- orphan recovery settles these rows without inventing a client for them.
86
+ ALTER TABLE client_interactions ADD COLUMN recipient TEXT NOT NULL DEFAULT '_plurnk';
87
+
88
+ -- The runtime installs the current fork trigger after migrations.
89
+ DROP TRIGGER IF EXISTS workers_fork_copies_history;
90
+ ALTER TABLE loops DROP COLUMN policy;
91
+
92
+ -- {§schedule-delivery} A stored schedule remains a message definition, not an
93
+ -- approval grant. Preserve its rule, target, prompt, enabled state and provenance.
94
+ UPDATE workspace_module_state
95
+ SET state = json_set(state, '$.definitions', (
96
+ SELECT json_group_object(key, json_remove(value, '$.definition.policy'))
97
+ FROM json_each(state, '$.definitions')
98
+ ))
99
+ WHERE namespace_owner = '@plurnk/plurnk-schedule'
100
+ AND EXISTS (
101
+ SELECT 1 FROM json_each(state, '$.definitions')
102
+ WHERE json_type(value, '$.definition.policy') IS NOT NULL
103
+ );
@@ -0,0 +1,7 @@
1
+ -- MIGRATE: 19 interactive owners
2
+ -- Released in 3.0.0 and frozen ({§db-migrations}): a shape change is the next MIGRATE version, never an edit here.
3
+ -- {§worker-ownership} An owner states whether a person attends it. Existing owners are
4
+ -- unattended until their client declares otherwise; the runtime owner never is.
5
+
6
+ ALTER TABLE worker_owners ADD COLUMN interactive INTEGER NOT NULL DEFAULT 0
7
+ CHECK (interactive IN (0, 1) AND (address != '_plurnk' OR interactive = 0));
@@ -0,0 +1,144 @@
1
+ -- MIGRATE: 20 log projection
2
+ -- Released in 3.0.0 and frozen ({§db-migrations}): a shape change is the next MIGRATE version, never an edit here.
3
+ -- {§worker-wait-timing} A WAIT receipt's `waiting` is the accepted maximum in non-negative seconds;
4
+ -- a receipt without one carries no bound. The attrs guard is redeclared around this one rewrite.
5
+ DROP TRIGGER IF EXISTS log_entries_immutable_attrs;
6
+
7
+ UPDATE log_entries
8
+ SET attrs = json_remove(attrs, '$.waiting')
9
+ WHERE op = 'WAIT' AND json_extract(attrs, '$.waiting') = -1;
10
+
11
+ CREATE TRIGGER log_entries_immutable_attrs
12
+ BEFORE UPDATE OF attrs ON log_entries
13
+ WHEN COALESCE((
14
+ json_type(OLD.attrs, '$.__plurnk_curation') = 'object'
15
+ AND NEW.attrs = json_remove(OLD.attrs, '$.__plurnk_curation')
16
+ ), 0) = 0
17
+ BEGIN
18
+ SELECT RAISE(ABORT, 'log_entries attrs are immutable outside curation payload removal');
19
+ END;
20
+
21
+ -- {§log-history-projection} A projection row is its event's membership and folded intervals.
22
+ -- No foreign key points at log_entry_projections, so the table is rebuilt with those columns
23
+ -- ({§db-migrations}). The view that reads it and the process triggers that name it would be
24
+ -- re-resolved by the RENAME while the table is absent, so they are dropped first: the view is
25
+ -- redeclared below and the processes on the next open ({§db-process-triggers}).
26
+ CREATE TABLE log_entry_projections_rebuilt (
27
+ log_entry_id INTEGER NOT NULL PRIMARY KEY,
28
+ active INTEGER NOT NULL DEFAULT 1 CHECK (active IN (0, 1)),
29
+ folded TEXT NOT NULL DEFAULT '[]'
30
+ CHECK (json_valid(folded) AND json_type(folded) = 'array'),
31
+ FOREIGN KEY (log_entry_id) REFERENCES log_entries(id) ON DELETE CASCADE
32
+ ) STRICT, WITHOUT ROWID;
33
+
34
+ INSERT INTO log_entry_projections_rebuilt (log_entry_id, active, folded)
35
+ SELECT log_entry_id, active, folded FROM log_entry_projections;
36
+
37
+ DROP VIEW IF EXISTS active_log_entries;
38
+ DROP TRIGGER IF EXISTS log_entries_initialize_projection;
39
+ DROP TRIGGER IF EXISTS log_entries_apply_curation;
40
+ DROP TRIGGER IF EXISTS workers_fork_copies_history;
41
+ DROP TRIGGER IF EXISTS log_output_admission_immutable;
42
+ DROP TRIGGER IF EXISTS log_output_admission_owner;
43
+ DROP TABLE log_entry_projections;
44
+ ALTER TABLE log_entry_projections_rebuilt RENAME TO log_entry_projections;
45
+
46
+ -- A folded interval is an inclusive [start,end] pair. Ranges are positive,
47
+ -- sorted, disjoint, and non-adjacent; -1 is the final open-ended endpoint.
48
+ -- Canonical intervals make visibility equality and curation effects exact.
49
+ CREATE TRIGGER log_entry_projections_folded_valid_insert
50
+ BEFORE INSERT ON log_entry_projections
51
+ WHEN EXISTS (
52
+ SELECT 1
53
+ FROM json_each(NEW.folded) range
54
+ WHERE range.type != 'array'
55
+ OR json_array_length(range.value) != 2
56
+ OR COALESCE(json_type(range.value, '$[0]'), '') != 'integer'
57
+ OR COALESCE(json_type(range.value, '$[1]'), '') != 'integer'
58
+ OR json_extract(range.value, '$[0]') < 1
59
+ OR (
60
+ json_extract(range.value, '$[1]') != -1
61
+ AND json_extract(range.value, '$[1]') < json_extract(range.value, '$[0]')
62
+ )
63
+ OR EXISTS (
64
+ SELECT 1
65
+ FROM json_each(NEW.folded) previous
66
+ WHERE previous.key = range.key - 1
67
+ AND (
68
+ json_extract(previous.value, '$[1]') = -1
69
+ OR json_extract(range.value, '$[0]') <= json_extract(previous.value, '$[1]') + 1
70
+ )
71
+ )
72
+ )
73
+ BEGIN
74
+ SELECT RAISE(ABORT, 'log entry projection folded ranges are invalid');
75
+ END;
76
+
77
+ CREATE TRIGGER log_entry_projections_folded_valid_update
78
+ BEFORE UPDATE OF folded ON log_entry_projections
79
+ WHEN EXISTS (
80
+ SELECT 1
81
+ FROM json_each(NEW.folded) range
82
+ WHERE range.type != 'array'
83
+ OR json_array_length(range.value) != 2
84
+ OR COALESCE(json_type(range.value, '$[0]'), '') != 'integer'
85
+ OR COALESCE(json_type(range.value, '$[1]'), '') != 'integer'
86
+ OR json_extract(range.value, '$[0]') < 1
87
+ OR (
88
+ json_extract(range.value, '$[1]') != -1
89
+ AND json_extract(range.value, '$[1]') < json_extract(range.value, '$[0]')
90
+ )
91
+ OR EXISTS (
92
+ SELECT 1
93
+ FROM json_each(NEW.folded) previous
94
+ WHERE previous.key = range.key - 1
95
+ AND (
96
+ json_extract(previous.value, '$[1]') = -1
97
+ OR json_extract(range.value, '$[0]') <= json_extract(previous.value, '$[1]') + 1
98
+ )
99
+ )
100
+ )
101
+ BEGIN
102
+ SELECT RAISE(ABORT, 'log entry projection folded ranges are invalid');
103
+ END;
104
+
105
+ CREATE TRIGGER log_entry_projections_kill_terminal
106
+ BEFORE UPDATE OF active ON log_entry_projections
107
+ WHEN OLD.active = 0 AND NEW.active != 0
108
+ BEGIN
109
+ SELECT RAISE(ABORT, 'a killed log entry cannot re-enter the active projection');
110
+ END;
111
+
112
+ CREATE TRIGGER log_entry_projections_delete_with_event_only
113
+ BEFORE DELETE ON log_entry_projections
114
+ WHEN EXISTS (SELECT 1 FROM log_entries WHERE id = OLD.log_entry_id)
115
+ BEGIN
116
+ SELECT RAISE(ABORT, 'a durable log event must retain its projection');
117
+ END;
118
+
119
+ -- {§emission-row} An emission is curated whole: its projection is retired, never trimmed.
120
+ CREATE TRIGGER log_entry_projections_emission_whole
121
+ BEFORE UPDATE OF folded ON log_entry_projections
122
+ WHEN json(NEW.folded) != json('[]')
123
+ AND EXISTS (
124
+ SELECT 1 FROM log_entries
125
+ WHERE id = NEW.log_entry_id AND json_extract(attrs, '$.kind') = 'emission'
126
+ )
127
+ BEGIN
128
+ SELECT RAISE(ABORT, 'an emission row is curated whole');
129
+ END;
130
+
131
+ -- The ordinary operation surface reads this view. Forensic and lifecycle
132
+ -- machinery names log_entries directly and therefore retains complete history.
133
+ CREATE VIEW active_log_entries AS
134
+ SELECT le.id, le.version, le.worker_id, le.loop_id, le.turn_id, le.sequence,
135
+ le.at, le.origin, le.source, le.ambient_event_id, le.inherited_history,
136
+ le.deep_hash, le.model_call_id, le.subscription_publication_id,
137
+ le.op, le.signal, le.scheme, le.username, le.password,
138
+ le.hostname, le.port, le.pathname, le.query, le.fragment, le.lineMarker,
139
+ le.tx, le.mimetype_tx,
140
+ le.rx, le.mimetype_rx, le.status_rx, le.weight,
141
+ le.state, le.outcome, le.attrs, le.initial_folded, projection.folded
142
+ FROM log_entries le
143
+ JOIN log_entry_projections projection ON projection.log_entry_id = le.id
144
+ WHERE projection.active = 1;
@@ -0,0 +1,86 @@
1
+ -- MIGRATE: 21 packet roles
2
+ -- Released in 3.1.0 and frozen ({§db-migrations}): a shape change is the next MIGRATE version, never an edit here.
3
+ -- {§packet-wire-envelope} {§packet-items}: preserve every retained role, position and item.
4
+ -- Both sides of the section-membership foreign key are copied before either old table is
5
+ -- dropped. Foreign keys remain enabled; no dependent rows rely on surviving a parent DROP.
6
+ CREATE TABLE turn_sections_rebuilt (
7
+ turn_id INTEGER NOT NULL REFERENCES turns(id) ON DELETE CASCADE,
8
+ position INTEGER NOT NULL CHECK (position >= 0),
9
+ name TEXT NOT NULL CHECK (length(name) > 0),
10
+ slot TEXT NOT NULL CHECK (slot IN ('system', 'user', 'assistant')),
11
+ header TEXT,
12
+ weight INTEGER NOT NULL CHECK (weight >= 0),
13
+ PRIMARY KEY (turn_id, position),
14
+ UNIQUE (turn_id, name)
15
+ ) STRICT, WITHOUT ROWID;
16
+
17
+ CREATE TABLE turn_section_items_rebuilt (
18
+ turn_id INTEGER NOT NULL,
19
+ section INTEGER NOT NULL,
20
+ position INTEGER NOT NULL CHECK (position >= 0),
21
+ item_hash TEXT NOT NULL REFERENCES packet_items(hash),
22
+ PRIMARY KEY (turn_id, section, position),
23
+ FOREIGN KEY (turn_id, section) REFERENCES turn_sections_rebuilt(turn_id, position) ON DELETE CASCADE
24
+ ) STRICT, WITHOUT ROWID;
25
+
26
+ INSERT INTO turn_sections_rebuilt (turn_id, position, name, slot, header, weight)
27
+ SELECT turn_id, position, name, slot, header, weight FROM turn_sections;
28
+ INSERT INTO turn_section_items_rebuilt (turn_id, section, position, item_hash)
29
+ SELECT turn_id, section, position, item_hash FROM turn_section_items;
30
+
31
+ DROP VIEW turn_packets;
32
+ DROP TRIGGER turn_inference_evidence_insert;
33
+ -- {§db-process-triggers}: reinstalled from its owning INIT after migration.
34
+ DROP TRIGGER IF EXISTS workers_fork_copies_history;
35
+ DROP TABLE turn_section_items;
36
+ DROP TABLE turn_sections;
37
+ ALTER TABLE turn_sections_rebuilt RENAME TO turn_sections;
38
+ ALTER TABLE turn_section_items_rebuilt RENAME TO turn_section_items;
39
+ CREATE INDEX turn_section_items_item_hash ON turn_section_items (item_hash);
40
+
41
+ CREATE TRIGGER turn_inference_evidence_insert
42
+ INSTEAD OF INSERT ON turn_inference_evidence
43
+ BEGIN
44
+ SELECT RAISE(ABORT, 'turn is not an open model inference turn')
45
+ WHERE NOT EXISTS (
46
+ SELECT 1 FROM turns
47
+ WHERE id = NEW.turn_id AND producer = 'model' AND kind = 'inference'
48
+ AND completed_at IS NULL AND packet IS NULL
49
+ );
50
+ SELECT RAISE(ABORT, 'packet sections must be a JSON array of {name, slot, header, weight, items}')
51
+ WHERE json_type(NEW.sections) IS NOT 'array';
52
+ INSERT OR IGNORE INTO packet_items (hash, text)
53
+ SELECT sha256(item.value), item.value
54
+ FROM json_each(NEW.sections) AS section, json_each(section.value, '$.items') AS item;
55
+ INSERT INTO turn_sections (turn_id, position, name, slot, header, weight)
56
+ SELECT NEW.turn_id, section.key,
57
+ json_extract(section.value, '$.name'), json_extract(section.value, '$.slot'),
58
+ json_extract(section.value, '$.header'), json_extract(section.value, '$.weight')
59
+ FROM json_each(NEW.sections) AS section;
60
+ INSERT INTO turn_section_items (turn_id, section, position, item_hash)
61
+ SELECT NEW.turn_id, section.key, item.key, sha256(item.value)
62
+ FROM json_each(NEW.sections) AS section, json_each(section.value, '$.items') AS item;
63
+ UPDATE turns
64
+ SET packet = NEW.packet,
65
+ usage_curation_budget = NEW.usage_curation_budget,
66
+ finish_reason = NEW.finish_reason,
67
+ model = NEW.model,
68
+ meta = NEW.meta
69
+ WHERE id = NEW.turn_id;
70
+ END;
71
+
72
+ CREATE VIEW turn_packets AS
73
+ SELECT t.id, t.loop_id, t.sequence, t.timestamp, t.producer, t.kind, t.status, t.completed_at,
74
+ t.usage_curation_budget, t.finish_reason, t.model, t.meta, t.version,
75
+ CASE WHEN t.packet IS NULL THEN NULL ELSE json_set(t.packet, '$.sections', json((
76
+ SELECT COALESCE(json_group_array(json_object(
77
+ 'name', ts.name, 'slot', ts.slot, 'header', ts.header, 'weight', ts.weight,
78
+ 'content', COALESCE((
79
+ SELECT group_concat(pi.text, char(10) || char(10) ORDER BY tsi.position)
80
+ FROM turn_section_items tsi JOIN packet_items pi ON pi.hash = tsi.item_hash
81
+ WHERE tsi.turn_id = ts.turn_id AND tsi.section = ts.position
82
+ ), '')
83
+ ) ORDER BY ts.position), '[]')
84
+ FROM turn_sections ts WHERE ts.turn_id = t.id
85
+ ))) END AS packet
86
+ FROM turns t;
@@ -0,0 +1,24 @@
1
+ -- MIGRATE: 22 message completion
2
+ -- Released in 3.1.0 and frozen ({§db-migrations}): a shape change is the next MIGRATE version, never an edit here.
3
+ -- {§message-completion}: message outcome is independent of reply delivery and log curation.
4
+ CREATE TABLE message_completions (
5
+ message_id INTEGER PRIMARY KEY REFERENCES loop_messages(id) ON DELETE CASCADE,
6
+ response_id INTEGER NOT NULL REFERENCES log_entries(id),
7
+ status INTEGER NOT NULL CHECK (status IN (200, 499))
8
+ ) STRICT;
9
+ CREATE INDEX message_completions_response_id ON message_completions(response_id);
10
+
11
+ -- Before this contract, every delivered reply resolved its messages. Preserve that
12
+ -- established state without rewriting immutable operation evidence.
13
+ INSERT INTO message_completions (message_id, response_id, status)
14
+ SELECT m.id, MAX(r.id), 200
15
+ FROM message_sources m
16
+ JOIN workers w ON w.workspace_id = m.workspace_id
17
+ JOIN log_responses r ON r.worker_id = w.id
18
+ JOIN json_each(r.rx, '$.answers') a ON a.value = m.path
19
+ GROUP BY m.id;
20
+
21
+ DROP VIEW unanswered_messages;
22
+ CREATE VIEW unanswered_messages AS
23
+ SELECT m.* FROM message_sources m
24
+ WHERE NOT EXISTS (SELECT 1 FROM message_completions c WHERE c.message_id = m.id);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-service",
3
- "version": "2.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Plurnk agent runtime — the server / engine / core. Implements the @plurnk/plurnk-contracts contract.",
5
5
  "keywords": [
6
6
  "plurnk",
@@ -17,10 +17,6 @@
17
17
  "node": ">=26"
18
18
  },
19
19
  "exports": {
20
- ".": {
21
- "types": "./dist/index.d.ts",
22
- "default": "./dist/index.js"
23
- },
24
20
  "./launch": {
25
21
  "types": "./dist/launch/Launch.d.ts",
26
22
  "default": "./dist/launch/Launch.js"
@@ -71,7 +67,8 @@
71
67
  "build:dist": "tsc -p tsconfig.build.json",
72
68
  "build:sql": "node --conditions=plurnk-dev scripts/copy-sql.mjs",
73
69
  "build:info": "node scripts/write-build-info.mjs",
74
- "build": "npm run build:clean && npm run build:dist && npm run build:sql && npm run build:info",
70
+ "build:posix": "node --conditions=plurnk-dev scripts/generate-posix.mjs",
71
+ "build": "npm run build:clean && npm run build:dist && npm run build:sql && npm run build:info && npm run build:posix",
75
72
  "build:global:install": "npm run build && npm install -g .",
76
73
  "build:global:uninstall": "npm uninstall -g @plurnk/plurnk-service",
77
74
  "build:local:install": "node --conditions=plurnk-dev scripts/install-sandbox.mjs install",
@@ -81,7 +78,8 @@
81
78
  "release:check": "npm run deps:audit && npm run test:installation",
82
79
  "prepublishOnly": "npm run deps:audit && npm run test:installation",
83
80
  "prepack": "npm run build",
84
- "report:floor": "node --conditions=plurnk-dev --import=./test/setup.ts --env-file-if-exists=.env.defaults scripts/floor-report.mjs"
81
+ "report:floor": "node --conditions=plurnk-dev --import=./test/setup.ts --env-file-if-exists=.env.defaults scripts/floor-report.mjs",
82
+ "report:sql": "node --conditions=plurnk-dev scripts/sql-report.mjs"
85
83
  },
86
84
  "dependencies": {
87
85
  "@opentelemetry/api": "^1.9.1",
@@ -91,26 +89,26 @@
91
89
  "@opentelemetry/resources": "^2.11.0",
92
90
  "@opentelemetry/sdk-metrics": "^2.11.0",
93
91
  "@opentelemetry/sdk-trace-base": "^2.11.0",
94
- "@plurnk/plurnk-a2a": "2.0.0",
95
- "@plurnk/plurnk-agui": "2.0.0",
96
- "@plurnk/plurnk-contracts": "2.0.0",
97
- "@plurnk/plurnk-parser": "2.0.0",
98
- "@plurnk/plurnk-schedule": "2.0.0",
99
- "@plurnk/plurnk-skills": "2.0.0",
100
- "@plurnk/plurnk-execs": "2.0.0",
101
- "@plurnk/plurnk-execs-common": "2.0.0",
102
- "@plurnk/plurnk-execs-jq": "2.0.0",
103
- "@plurnk/plurnk-execs-sqlite": "2.0.0",
104
- "@plurnk/plurnk-hooks": "2.0.0",
105
- "@plurnk/plurnk-mcp": "2.0.0",
106
- "@plurnk/plurnk-meta": "2.0.0",
92
+ "@plurnk/plurnk-a2a": "3.1.0",
93
+ "@plurnk/plurnk-agui": "3.0.0",
94
+ "@plurnk/plurnk-contracts": "3.1.0",
95
+ "@plurnk/plurnk-parser": "3.0.2",
96
+ "@plurnk/plurnk-schedule": "3.0.0",
97
+ "@plurnk/plurnk-skills": "3.0.0",
98
+ "@plurnk/plurnk-execs": "3.1.0",
99
+ "@plurnk/plurnk-execs-common": "2.0.2",
100
+ "@plurnk/plurnk-execs-jq": "2.0.1",
101
+ "@plurnk/plurnk-execs-sqlite": "2.0.1",
102
+ "@plurnk/plurnk-hooks": "2.0.1",
103
+ "@plurnk/plurnk-mcp": "3.0.0",
104
+ "@plurnk/plurnk-meta": "2.1.0",
107
105
  "@plurnk/plurnk-agent-plugins": "2.0.0",
108
- "@plurnk/plurnk-agent-skills": "2.0.0",
109
- "@plurnk/plurnk-mimetypes": "2.0.0",
110
- "@plurnk/plurnk-mimetypes-application-ipynb": "2.0.0",
111
- "@plurnk/plurnk-mimetypes-application-json": "2.0.0",
112
- "@plurnk/plurnk-mimetypes-application-jsonl": "2.0.0",
113
- "@plurnk/plurnk-mimetypes-application-xml": "2.0.0",
106
+ "@plurnk/plurnk-agent-skills": "2.0.1",
107
+ "@plurnk/plurnk-mimetypes": "3.0.1",
108
+ "@plurnk/plurnk-mimetypes-application-ipynb": "2.0.1",
109
+ "@plurnk/plurnk-mimetypes-application-json": "2.0.1",
110
+ "@plurnk/plurnk-mimetypes-application-jsonl": "2.0.1",
111
+ "@plurnk/plurnk-mimetypes-application-xml": "2.0.1",
114
112
  "@plurnk/plurnk-mimetypes-grammar-bash": "2.0.0",
115
113
  "@plurnk/plurnk-mimetypes-grammar-c": "2.0.0",
116
114
  "@plurnk/plurnk-mimetypes-grammar-cpp": "2.0.0",
@@ -137,24 +135,24 @@
137
135
  "@plurnk/plurnk-mimetypes-grammar-typescript": "2.0.0",
138
136
  "@plurnk/plurnk-mimetypes-grammar-yaml": "2.0.0",
139
137
  "@plurnk/plurnk-mimetypes-grammar-zig": "2.0.0",
140
- "@plurnk/plurnk-mimetypes-application-pdf": "2.0.0",
141
- "@plurnk/plurnk-mimetypes-image": "2.0.0",
142
- "@plurnk/plurnk-mimetypes-audio": "2.0.0",
143
- "@plurnk/plurnk-mimetypes-text-csv": "2.0.0",
144
- "@plurnk/plurnk-mimetypes-text-diff": "2.0.0",
145
- "@plurnk/plurnk-mimetypes-text-dotenv": "2.0.0",
146
- "@plurnk/plurnk-mimetypes-text-html": "2.0.0",
147
- "@plurnk/plurnk-mimetypes-text-ini": "2.0.0",
148
- "@plurnk/plurnk-mimetypes-text-markdown": "2.0.0",
149
- "@plurnk/plurnk-mimetypes-text-plain": "2.0.0",
150
- "@plurnk/plurnk-models": "2.0.0",
151
- "@plurnk/plurnk-modules": "2.0.0",
152
- "@plurnk/plurnk-providers": "2.0.0",
153
- "@plurnk/plurnk-schemes": "2.0.0",
154
- "@plurnk/plurnk-schemes-http": "2.0.0",
138
+ "@plurnk/plurnk-mimetypes-application-pdf": "2.0.1",
139
+ "@plurnk/plurnk-mimetypes-image": "2.0.1",
140
+ "@plurnk/plurnk-mimetypes-audio": "2.0.1",
141
+ "@plurnk/plurnk-mimetypes-text-csv": "2.0.1",
142
+ "@plurnk/plurnk-mimetypes-text-diff": "2.0.1",
143
+ "@plurnk/plurnk-mimetypes-text-dotenv": "2.0.1",
144
+ "@plurnk/plurnk-mimetypes-text-html": "2.0.1",
145
+ "@plurnk/plurnk-mimetypes-text-ini": "2.0.1",
146
+ "@plurnk/plurnk-mimetypes-text-markdown": "2.0.1",
147
+ "@plurnk/plurnk-mimetypes-text-plain": "2.0.1",
148
+ "@plurnk/plurnk-models": "3.0.0",
149
+ "@plurnk/plurnk-modules": "3.0.0",
150
+ "@plurnk/plurnk-providers": "3.0.1",
151
+ "@plurnk/plurnk-schemes": "3.1.0",
152
+ "@plurnk/plurnk-schemes-http": "2.0.1",
155
153
  "@possumtech/sqlrite": "^6.5.3",
156
154
  "diff": "^9.0.0",
157
- "@plurnk/plurnk-digest": "2.0.0"
155
+ "@plurnk/plurnk-digest": "3.1.0"
158
156
  },
159
157
  "devDependencies": {
160
158
  "@a2a-js/sdk": "1.3.0",
@@ -172,5 +170,5 @@
172
170
  "url": "git+https://github.com/plurnk/plurnk-service.git",
173
171
  "directory": "plurnk-core"
174
172
  },
175
- "gitHead": "3b2cae63115333d1b2e820abcf44b0fe4959d9ea"
173
+ "gitHead": "70dd06512f02f66f94a1dae7702085f4980f1686"
176
174
  }
@@ -1,10 +0,0 @@
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
@@ -1 +0,0 @@
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"}