@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,170 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- import { createReadStream } from "node:fs";
3
- import { constants } from "node:fs";
4
- import { access, chmod, copyFile, lstat, mkdir, readdir, rmdir, stat, unlink, } from "node:fs/promises";
5
- import { join } from "node:path";
6
- import DaemonLock from "../server/DaemonLock.js";
7
- const CONFIG_MEMBERS = new Map([
8
- [".env", ".env"],
9
- ["AGENTS.md", "AGENTS.md"],
10
- ]);
11
- const DATA_MEMBERS = new Map([
12
- ["plurnk.db", "plurnk.db"],
13
- ["plurnk.db-wal", "plurnk.db-wal"],
14
- ["plurnk.db-shm", "plurnk.db-shm"],
15
- ]);
16
- const GENERATED_MEMBERS = new Set([".env.defaults", ".env.example", "INSTALL.md"]);
17
- const LOCK_MEMBER = "plurnk.db.lock";
18
- const exists = async (path) => access(path, constants.F_OK)
19
- .then(() => true)
20
- .catch(() => false);
21
- const hashFile = async (path) => {
22
- const hash = createHash("sha256");
23
- for await (const chunk of createReadStream(path))
24
- hash.update(chunk);
25
- return hash.digest("hex");
26
- };
27
- const copyVerified = async (source, destination) => {
28
- const sourceStat = await stat(source);
29
- let created = false;
30
- try {
31
- await copyFile(source, destination, constants.COPYFILE_EXCL);
32
- created = true;
33
- await chmod(destination, sourceStat.mode & 0o777);
34
- const [sourceHash, destinationHash] = await Promise.all([hashFile(source), hashFile(destination)]);
35
- if (sourceHash !== destinationHash) {
36
- throw new Error(`copy verification failed: ${source} -> ${destination}`);
37
- }
38
- }
39
- catch (cause) {
40
- if (created)
41
- await unlink(destination).catch(() => { });
42
- throw cause;
43
- }
44
- };
45
- // {§legacy-home-transition} — the only reader of the retired mixed home. It is
46
- // an explicit one-way operation, not a compatibility path used by the daemon.
47
- export default class LegacyHome {
48
- static async assertCanonical(paths) {
49
- if (!await exists(paths.legacyDir))
50
- return;
51
- const canonical = await Promise.all([exists(paths.configDir), exists(paths.dataDir)]);
52
- if (canonical.some(Boolean)) {
53
- throw new Error(`legacy ${paths.legacyDir} and canonical Plurnk paths both exist; `
54
- + "resolve the conflict without guessing, then run plurnk-service paths migrate");
55
- }
56
- throw new Error(`legacy Plurnk home found at ${paths.legacyDir}; run plurnk-service paths migrate`);
57
- }
58
- static async migrate(paths) {
59
- if (!await exists(paths.legacyDir))
60
- return [];
61
- const legacyStat = await lstat(paths.legacyDir);
62
- if (!legacyStat.isDirectory())
63
- throw new Error(`legacy Plurnk home is not a directory: ${paths.legacyDir}`);
64
- const entries = await readdir(paths.legacyDir, { withFileTypes: true });
65
- const known = new Set([
66
- ...CONFIG_MEMBERS.keys(),
67
- ...DATA_MEMBERS.keys(),
68
- ...GENERATED_MEMBERS,
69
- LOCK_MEMBER,
70
- ]);
71
- const unknown = entries.filter((entry) => !known.has(entry.name)).map((entry) => entry.name).sort();
72
- if (unknown.length > 0) {
73
- throw new Error(`legacy Plurnk home contains unknown member(s): ${unknown.join(", ")}`);
74
- }
75
- const nonFiles = entries
76
- .filter((entry) => !entry.isFile())
77
- .map((entry) => entry.name)
78
- .sort();
79
- if (nonFiles.length > 0) {
80
- throw new Error(`legacy Plurnk member(s) are not regular files: ${nonFiles.join(", ")}`);
81
- }
82
- const existingDestinations = (await Promise.all([
83
- paths.configDir,
84
- paths.dataDir,
85
- ].map(async (path) => await exists(path) ? path : null))).filter((path) => path !== null);
86
- if (existingDestinations.length > 0) {
87
- throw new Error(`canonical Plurnk destination(s) already exist: ${existingDestinations.join(", ")}`);
88
- }
89
- const names = new Set(entries.map((entry) => entry.name));
90
- const hasDatabaseState = [...DATA_MEMBERS.keys(), LOCK_MEMBER].some((name) => names.has(name));
91
- const lock = hasDatabaseState ? await DaemonLock.acquire(join(paths.legacyDir, "plurnk.db")) : null;
92
- const moves = [
93
- ...[...CONFIG_MEMBERS].flatMap(([sourceName, destinationName]) => names.has(sourceName) ? [{
94
- source: join(paths.legacyDir, sourceName),
95
- destination: join(paths.configDir, destinationName),
96
- }] : []),
97
- ...[...DATA_MEMBERS].flatMap(([sourceName, destinationName]) => names.has(sourceName) ? [{
98
- source: join(paths.legacyDir, sourceName),
99
- destination: join(paths.dataDir, destinationName),
100
- }] : []),
101
- ];
102
- const createdDirectories = [];
103
- const copied = [];
104
- let commitStarted = false;
105
- try {
106
- if ([...CONFIG_MEMBERS.keys()].some((name) => names.has(name))) {
107
- await mkdir(paths.configDir, { recursive: true, mode: 0o700 });
108
- createdDirectories.push(paths.configDir);
109
- }
110
- if ([...DATA_MEMBERS.keys()].some((name) => names.has(name))) {
111
- await mkdir(paths.dataDir, { recursive: true, mode: 0o700 });
112
- createdDirectories.push(paths.dataDir);
113
- }
114
- // Always copy first, including on one filesystem. Every source stays
115
- // authoritative until every destination has passed byte verification.
116
- for (const { source, destination } of moves) {
117
- await copyVerified(source, destination);
118
- copied.push(destination);
119
- }
120
- for (const { destination } of moves) {
121
- if (!await exists(destination))
122
- throw new Error(`migration destination verification failed: ${destination}`);
123
- }
124
- for (const sourceName of GENERATED_MEMBERS) {
125
- if (names.has(sourceName))
126
- await unlink(join(paths.legacyDir, sourceName));
127
- }
128
- commitStarted = true;
129
- for (const { source } of moves)
130
- await unlink(source);
131
- }
132
- catch (cause) {
133
- if (!commitStarted) {
134
- const rollbackErrors = [];
135
- for (const destination of copied.toReversed()) {
136
- try {
137
- await unlink(destination);
138
- }
139
- catch (rollbackCause) {
140
- if (rollbackCause.code !== "ENOENT")
141
- rollbackErrors.push(rollbackCause);
142
- }
143
- }
144
- for (const directory of createdDirectories.toReversed()) {
145
- try {
146
- await rmdir(directory);
147
- }
148
- catch (rollbackCause) {
149
- if (rollbackCause.code !== "ENOENT")
150
- rollbackErrors.push(rollbackCause);
151
- }
152
- }
153
- if (rollbackErrors.length > 0) {
154
- throw new AggregateError([cause, ...rollbackErrors], "legacy path migration failed and rollback was incomplete");
155
- }
156
- }
157
- throw cause;
158
- }
159
- finally {
160
- await lock?.release();
161
- }
162
- const survivors = await readdir(paths.legacyDir);
163
- if (survivors.length > 0) {
164
- throw new Error(`legacy Plurnk home was not emptied: ${survivors.join(", ")}`);
165
- }
166
- await rmdir(paths.legacyDir);
167
- return moves;
168
- }
169
- }
170
- //# sourceMappingURL=LegacyHome.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LegacyHome.js","sourceRoot":"","sources":["../../src/core/LegacyHome.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { type LoopPolicy, type LoopPolicyRequest } from "@plurnk/plurnk-contracts";
2
- export default class LoopPolicies {
3
- #private;
4
- static compose(stated: LoopPolicyRequest): LoopPolicy;
5
- static validateConfiguration(): void;
6
- }
7
- //# sourceMappingURL=LoopPolicies.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoopPolicies.d.ts","sourceRoot":"","sources":["../../src/core/LoopPolicies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAOjH,MAAM,CAAC,OAAO,OAAO,YAAY;;IAI7B,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,UAAU,CAuBpD;IAGD,MAAM,CAAC,qBAAqB,IAAI,IAAI,CAInC;CAOJ"}
@@ -1,42 +0,0 @@
1
- import { PROPOSAL_POLICIES, Validator } from "@plurnk/plurnk-contracts";
2
- import { ConfigurationError, Knob } from "@plurnk/plurnk-meta";
3
- import Results, { OperationFailureError } from "./results.js";
4
- // {§loop-policy-composition} — a loop's policy is what its creator stated over what the panel
5
- // says, composed once, where the loop is persisted. Every panel state is lawful: attendance picks
6
- // which disposition knob answers, so only a creator's own statement can contradict itself.
7
- export default class LoopPolicies {
8
- // Nobody is present to review in an unattended loop, so review is not a choice there.
9
- static #UNATTENDED = PROPOSAL_POLICIES.filter((policy) => policy !== "review");
10
- static compose(stated) {
11
- let policy;
12
- try {
13
- const attended = stated.attended ?? Knob.flag("PLURNK_SERVICE_ATTENDED");
14
- policy = { proposals: stated.proposals ?? LoopPolicies.#proposals(attended), attended };
15
- }
16
- catch (cause) {
17
- if (!(cause instanceof ConfigurationError))
18
- throw cause;
19
- throw new OperationFailureError(Results.configurationFailure(cause), { cause });
20
- }
21
- if (Validator.validateLoopPolicy(policy).valid)
22
- return policy;
23
- throw new OperationFailureError(Results.failure("daemon:input", "loop-policy-invalid", 400, "An unattended loop cannot hold a proposal for review: nobody is present to answer.", {}, {
24
- field: "policy",
25
- stage: "loop-policy-composition",
26
- recovery: "State proposals accept or reject, or attend the loop.",
27
- retryable: false,
28
- }));
29
- }
30
- // Startup diagnoses invalid defaults; explicit valid policy remains usable.
31
- static validateConfiguration() {
32
- Knob.flag("PLURNK_SERVICE_ATTENDED");
33
- LoopPolicies.#proposals(true);
34
- LoopPolicies.#proposals(false);
35
- }
36
- static #proposals(attended) {
37
- return attended
38
- ? Knob.choice("PLURNK_SERVICE_PROPOSALS", PROPOSAL_POLICIES)
39
- : Knob.choice("PLURNK_SERVICE_UNATTENDED_PROPOSALS", LoopPolicies.#UNATTENDED);
40
- }
41
- }
42
- //# sourceMappingURL=LoopPolicies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoopPolicies.js","sourceRoot":"","sources":["../../src/core/LoopPolicies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAA2C,MAAM,0BAA0B,CAAC;AACjH,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,OAAO,EAAE,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE9D,8FAA8F;AAC9F,kGAAkG;AAClG,2FAA2F;AAC3F,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,sFAAsF;IACtF,MAAM,CAAU,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAExF,MAAM,CAAC,OAAO,CAAC,MAAyB;QACpC,IAAI,MAAkB,CAAC;QACvB,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACzE,MAAM,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC5F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC;gBAAE,MAAM,KAAK,CAAC;YACxD,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,KAAK;YAAE,OAAO,MAAM,CAAC;QAC9D,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAC3C,cAAc,EACd,qBAAqB,EACrB,GAAG,EACH,oFAAoF,EACpF,EAAE,EACF;YACI,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,yBAAyB;YAChC,QAAQ,EAAE,uDAAuD;YACjE,SAAS,EAAE,KAAK;SACnB,CACJ,CAAC,CAAC;IACP,CAAC;IAED,4EAA4E;IAC5E,MAAM,CAAC,qBAAqB;QACxB,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACrC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,QAAiB;QAC/B,OAAO,QAAQ;YACX,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,iBAAiB,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,qCAAqC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACvF,CAAC;CACJ"}
@@ -1,7 +0,0 @@
1
- import { type LoopPolicy } from "@plurnk/plurnk-contracts";
2
- import type { Db } from "./Db.ts";
3
- export default class LoopPolicyReader {
4
- static parse(raw: string, loopId: number): LoopPolicy;
5
- static read(db: Db, loopId: number): Promise<LoopPolicy>;
6
- }
7
- //# sourceMappingURL=LoopPolicyReader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoopPolicyReader.d.ts","sourceRoot":"","sources":["../../src/core/LoopPolicyReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAIlC,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAmBpD;IAED,OAAa,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAM7D;CACJ"}
@@ -1,33 +0,0 @@
1
- import { Validator } from "@plurnk/plurnk-contracts";
2
- // {§loop-policy-effective-read} — persistence contains one complete immutable
3
- // contracts-owned policy snapshot.
4
- export default class LoopPolicyReader {
5
- static parse(raw, loopId) {
6
- let partial;
7
- try {
8
- partial = JSON.parse(raw);
9
- }
10
- catch (cause) {
11
- throw new Error(`Loop ${loopId} has invalid persisted policy JSON.`, { cause });
12
- }
13
- if (partial === null || typeof partial !== "object" || Array.isArray(partial)) {
14
- throw new Error(`Loop ${loopId} has invalid persisted policy.`, {
15
- cause: new TypeError("Persisted loop policy must be a JSON object."),
16
- });
17
- }
18
- try {
19
- return Validator.assertLoopPolicy(partial);
20
- }
21
- catch (cause) {
22
- throw new Error(`Loop ${loopId} has invalid persisted policy.`, { cause });
23
- }
24
- }
25
- static async read(db, loopId) {
26
- const row = await db.engine_get_loop_policy.get({ loop_id: loopId });
27
- if (row === undefined) {
28
- throw new Error(`Loop ${loopId} does not exist while reading its persisted policy.`);
29
- }
30
- return LoopPolicyReader.parse(row.policy, loopId);
31
- }
32
- }
33
- //# sourceMappingURL=LoopPolicyReader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoopPolicyReader.js","sourceRoot":"","sources":["../../src/core/LoopPolicyReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,0BAA0B,CAAC;AAGtE,8EAA8E;AAC9E,mCAAmC;AACnC,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,MAAM,CAAC,KAAK,CAAC,GAAW,EAAE,MAAc;QACpC,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,qCAAqC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,gCAAgC,EAAE;gBAC5D,KAAK,EAAE,IAAI,SAAS,CAAC,8CAA8C,CAAC;aACvE,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC;YACD,OAAO,SAAS,CAAC,gBAAgB,CAAC,OAAqB,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,gCAAgC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAM,EAAE,MAAc;QACpC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACzF,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,qDAAqD,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;CACJ"}
@@ -1,6 +0,0 @@
1
- -- LoopPolicyReader: the loop's immutable policy.
2
-
3
- -- PREP: engine_get_loop_policy
4
- -- Complete persisted policy. LoopPolicyReader is the sole validation path
5
- -- ({§loop-policy-effective-read}).
6
- SELECT policy FROM loops WHERE id = $loop_id;
package/dist/index.d.ts DELETED
@@ -1,14 +0,0 @@
1
- export { default as Engine } from "./core/Engine.ts";
2
- export { default as SchemeRegistry } from "./core/SchemeRegistry.ts";
3
- export { Mimetypes } from "@plurnk/plurnk-mimetypes";
4
- export { default as Daemon } from "./server/Daemon.ts";
5
- export { default as Log } from "./schemes/Log.ts";
6
- export { default as Exec } from "./schemes/Exec.ts";
7
- export { default as File } from "./schemes/File.ts";
8
- export { Mock } from "@plurnk/plurnk-providers";
9
- export type { MockResponse, MockAssistant, ChatMessage } from "@plurnk/plurnk-providers";
10
- export type { EditResult, ReadResult, OpenFoldResult, } from "./schemes/_entry-ops.ts";
11
- export { default as Paths } from "./Paths.ts";
12
- export { default as EnvFlags } from "./core/EnvFlags.ts";
13
- export type { FlagDescriptor } from "./core/EnvFlags.ts";
14
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEzF,YAAY,EACR,UAAU,EACV,UAAU,EACV,cAAc,GACjB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAK9C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js DELETED
@@ -1,21 +0,0 @@
1
- // Legacy internal exports ({§service-package-exports}). Clients use AG-UI;
2
- // new library APIs belong to their owning packages, not this barrel.
3
- export { default as Engine } from "./core/Engine.js";
4
- export { default as SchemeRegistry } from "./core/SchemeRegistry.js";
5
- // Mimetype handling is owned by @plurnk/plurnk-mimetypes. Consumers needing
6
- // the orchestrator import directly from there.
7
- export { Mimetypes } from "@plurnk/plurnk-mimetypes";
8
- export { default as Daemon } from "./server/Daemon.js";
9
- export { default as Log } from "./schemes/Log.js";
10
- export { default as Exec } from "./schemes/Exec.js";
11
- export { default as File } from "./schemes/File.js";
12
- export { Mock } from "@plurnk/plurnk-providers";
13
- // Package-relative paths to non-code artifacts (migrations, the upstream
14
- // grammar's plurnk.md, default Recap). Resolution lives in the
15
- // Paths class so this entry stays a pure re-export barrel.
16
- export { default as Paths } from "./Paths.js";
17
- // CLI-flag derivation from .env.defaults (PLURNK_X → --x, the comment above
18
- // becomes help text, flags top the cascade) — the shared lib both the service
19
- // CLI and the client TUI consume, so a flag set stays single-sourced.
20
- export { default as EnvFlags } from "./core/EnvFlags.js";
21
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,qEAAqE;AAErE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrE,4EAA4E;AAC5E,+CAA+C;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAShD,yEAAyE;AACzE,+DAA+D;AAC/D,2DAA2D;AAC3D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAE9C,4EAA4E;AAC5E,8EAA8E;AAC9E,sEAAsE;AACtE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,oBAAoB,CAAC"}