@plurnk/plurnk-service 1.4.0 → 1.6.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 (302) hide show
  1. package/.env.defaults +37 -31
  2. package/INSTALL.md +16 -11
  3. package/README.md +1 -0
  4. package/SPEC.md +631 -397
  5. package/dist/Paths.d.ts.map +1 -1
  6. package/dist/Paths.js +2 -3
  7. package/dist/Paths.js.map +1 -1
  8. package/dist/build-info.json +1 -1
  9. package/dist/content/edit-collision.d.ts +5 -0
  10. package/dist/content/edit-collision.d.ts.map +1 -0
  11. package/dist/content/edit-collision.js +14 -0
  12. package/dist/content/edit-collision.js.map +1 -0
  13. package/dist/content/edit-receipt.d.ts +3 -2
  14. package/dist/content/edit-receipt.d.ts.map +1 -1
  15. package/dist/content/edit-receipt.js +58 -13
  16. package/dist/content/edit-receipt.js.map +1 -1
  17. package/dist/content/index.d.ts +5 -1
  18. package/dist/content/index.d.ts.map +1 -1
  19. package/dist/content/index.js +4 -1
  20. package/dist/content/index.js.map +1 -1
  21. package/dist/content/line-anchors.d.ts +41 -0
  22. package/dist/content/line-anchors.d.ts.map +1 -0
  23. package/dist/content/line-anchors.js +191 -0
  24. package/dist/content/line-anchors.js.map +1 -0
  25. package/dist/content/line-marker.d.ts +7 -3
  26. package/dist/content/line-marker.d.ts.map +1 -1
  27. package/dist/content/line-marker.js +2 -1
  28. package/dist/content/line-marker.js.map +1 -1
  29. package/dist/content/matcher.d.ts +1 -1
  30. package/dist/content/matcher.d.ts.map +1 -1
  31. package/dist/content/matcher.js +2 -2
  32. package/dist/content/matcher.js.map +1 -1
  33. package/dist/content/read-projector.d.ts +20 -0
  34. package/dist/content/read-projector.d.ts.map +1 -0
  35. package/dist/content/read-projector.js +122 -0
  36. package/dist/content/read-projector.js.map +1 -0
  37. package/dist/content/read-resolve.d.ts +2 -7
  38. package/dist/content/read-resolve.d.ts.map +1 -1
  39. package/dist/content/read-resolve.js +32 -107
  40. package/dist/content/read-resolve.js.map +1 -1
  41. package/dist/core/BranchReceipt.d.ts +0 -1
  42. package/dist/core/BranchReceipt.d.ts.map +1 -1
  43. package/dist/core/BranchReceipt.js +0 -3
  44. package/dist/core/BranchReceipt.js.map +1 -1
  45. package/dist/core/BudgetReadout.d.ts.map +1 -1
  46. package/dist/core/BudgetReadout.js +9 -2
  47. package/dist/core/BudgetReadout.js.map +1 -1
  48. package/dist/core/ChannelWrite.d.ts +3 -0
  49. package/dist/core/ChannelWrite.d.ts.map +1 -1
  50. package/dist/core/ChannelWrite.js +3 -3
  51. package/dist/core/ChannelWrite.js.map +1 -1
  52. package/dist/core/ChannelWrite.sql +4 -3
  53. package/dist/core/CoreSchemeServices.d.ts +10 -2
  54. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  55. package/dist/core/CoreSchemeServices.js.map +1 -1
  56. package/dist/core/Dispatcher.d.ts +14 -8
  57. package/dist/core/Dispatcher.d.ts.map +1 -1
  58. package/dist/core/Dispatcher.js +656 -312
  59. package/dist/core/Dispatcher.js.map +1 -1
  60. package/dist/core/DurableStatement.d.ts.map +1 -1
  61. package/dist/core/DurableStatement.js +2 -0
  62. package/dist/core/DurableStatement.js.map +1 -1
  63. package/dist/core/Engine.d.ts +24 -18
  64. package/dist/core/Engine.d.ts.map +1 -1
  65. package/dist/core/Engine.js +620 -392
  66. package/dist/core/Engine.js.map +1 -1
  67. package/dist/core/Engine.sql +188 -119
  68. package/dist/core/ExecutableTools.d.ts +10 -0
  69. package/dist/core/ExecutableTools.d.ts.map +1 -0
  70. package/dist/core/ExecutableTools.js +41 -0
  71. package/dist/core/ExecutableTools.js.map +1 -0
  72. package/dist/core/ExecutorRegistry.d.ts +3 -3
  73. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  74. package/dist/core/ExecutorRegistry.js +2 -2
  75. package/dist/core/ExecutorRegistry.js.map +1 -1
  76. package/dist/core/LogBody.d.ts +4 -1
  77. package/dist/core/LogBody.d.ts.map +1 -1
  78. package/dist/core/LogBody.js +46 -2
  79. package/dist/core/LogBody.js.map +1 -1
  80. package/dist/core/LogEntryProjection.d.ts +14 -0
  81. package/dist/core/LogEntryProjection.d.ts.map +1 -0
  82. package/dist/core/LogEntryProjection.js +38 -0
  83. package/dist/core/LogEntryProjection.js.map +1 -0
  84. package/dist/core/LoopLifecycle.d.ts +1 -2
  85. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  86. package/dist/core/LoopLifecycle.js +1 -4
  87. package/dist/core/LoopLifecycle.js.map +1 -1
  88. package/dist/core/LoopLifecycle.sql +1 -4
  89. package/dist/core/ModelCall.d.ts +27 -0
  90. package/dist/core/ModelCall.d.ts.map +1 -0
  91. package/dist/core/ModelCall.js +125 -0
  92. package/dist/core/ModelCall.js.map +1 -0
  93. package/dist/core/PacketBuilder.d.ts +13 -12
  94. package/dist/core/PacketBuilder.d.ts.map +1 -1
  95. package/dist/core/PacketBuilder.js +146 -118
  96. package/dist/core/PacketBuilder.js.map +1 -1
  97. package/dist/core/ProblemLog.d.ts.map +1 -1
  98. package/dist/core/ProblemLog.js +1 -0
  99. package/dist/core/ProblemLog.js.map +1 -1
  100. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  101. package/dist/core/ProposalLifecycle.js +3 -4
  102. package/dist/core/ProposalLifecycle.js.map +1 -1
  103. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  104. package/dist/core/ProviderInstantiate.js +23 -6
  105. package/dist/core/ProviderInstantiate.js.map +1 -1
  106. package/dist/core/SchemeRegistry.js +7 -7
  107. package/dist/core/SchemeRegistry.js.map +1 -1
  108. package/dist/core/StrikeRail.d.ts +5 -2
  109. package/dist/core/StrikeRail.d.ts.map +1 -1
  110. package/dist/core/StrikeRail.js +10 -7
  111. package/dist/core/StrikeRail.js.map +1 -1
  112. package/dist/core/TerminalResult.d.ts +16 -0
  113. package/dist/core/TerminalResult.d.ts.map +1 -0
  114. package/dist/core/TerminalResult.js +49 -0
  115. package/dist/core/TerminalResult.js.map +1 -0
  116. package/dist/core/caps/CapsResolve.d.ts +5 -1
  117. package/dist/core/caps/CapsResolve.d.ts.map +1 -1
  118. package/dist/core/caps/CapsResolve.js +9 -5
  119. package/dist/core/caps/CapsResolve.js.map +1 -1
  120. package/dist/core/caps/DbChannelCaps.d.ts +1 -1
  121. package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
  122. package/dist/core/caps/DbChannelCaps.js +6 -4
  123. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  124. package/dist/core/caps/DbEntryCaps.d.ts +2 -1
  125. package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
  126. package/dist/core/caps/DbEntryCaps.js +21 -8
  127. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  128. package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
  129. package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
  130. package/dist/core/caps/DbNotifyCaps.js +6 -4
  131. package/dist/core/caps/DbNotifyCaps.js.map +1 -1
  132. package/dist/core/caps/DbProjectionCaps.d.ts +1 -0
  133. package/dist/core/caps/DbProjectionCaps.d.ts.map +1 -1
  134. package/dist/core/caps/DbProjectionCaps.js +29 -0
  135. package/dist/core/caps/DbProjectionCaps.js.map +1 -1
  136. package/dist/core/caps/DbSubscriptionCaps.d.ts +4 -6
  137. package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
  138. package/dist/core/caps/DbSubscriptionCaps.js +27 -13
  139. package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
  140. package/dist/core/caps/SchemeCtxImpl.d.ts +11 -3
  141. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  142. package/dist/core/caps/SchemeCtxImpl.js +10 -8
  143. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  144. package/dist/core/fork.d.ts.map +1 -1
  145. package/dist/core/fork.js +23 -7
  146. package/dist/core/fork.js.map +1 -1
  147. package/dist/core/fork.sql +35 -14
  148. package/dist/core/git-iso.d.ts +3 -2
  149. package/dist/core/git-iso.d.ts.map +1 -1
  150. package/dist/core/git-iso.js +27 -12
  151. package/dist/core/git-iso.js.map +1 -1
  152. package/dist/core/git-membership.d.ts +1 -0
  153. package/dist/core/git-membership.d.ts.map +1 -1
  154. package/dist/core/git-membership.js +87 -26
  155. package/dist/core/git-membership.js.map +1 -1
  156. package/dist/core/git-state.d.ts +8 -1
  157. package/dist/core/git-state.d.ts.map +1 -1
  158. package/dist/core/git-state.js +36 -17
  159. package/dist/core/git-state.js.map +1 -1
  160. package/dist/core/namespace.d.ts +1 -0
  161. package/dist/core/namespace.d.ts.map +1 -1
  162. package/dist/core/namespace.js +20 -0
  163. package/dist/core/namespace.js.map +1 -1
  164. package/dist/core/optimistic-settlement.d.ts +2 -0
  165. package/dist/core/optimistic-settlement.d.ts.map +1 -0
  166. package/dist/core/optimistic-settlement.js +14 -0
  167. package/dist/core/optimistic-settlement.js.map +1 -0
  168. package/dist/core/packet-wire.d.ts +5 -2
  169. package/dist/core/packet-wire.d.ts.map +1 -1
  170. package/dist/core/packet-wire.js +318 -114
  171. package/dist/core/packet-wire.js.map +1 -1
  172. package/dist/core/provider-accounting.d.ts +24 -0
  173. package/dist/core/provider-accounting.d.ts.map +1 -0
  174. package/dist/core/provider-accounting.js +76 -0
  175. package/dist/core/provider-accounting.js.map +1 -0
  176. package/dist/core/results.d.ts +4 -2
  177. package/dist/core/results.d.ts.map +1 -1
  178. package/dist/core/results.js +6 -0
  179. package/dist/core/results.js.map +1 -1
  180. package/dist/core/scheme-types.d.ts +0 -12
  181. package/dist/core/scheme-types.d.ts.map +1 -1
  182. package/dist/core/scheme-types.js.map +1 -1
  183. package/dist/core/search-gate.d.ts +2 -2
  184. package/dist/core/search-gate.d.ts.map +1 -1
  185. package/dist/core/search-gate.js +8 -8
  186. package/dist/core/search-gate.js.map +1 -1
  187. package/dist/core/token-ruler.js +1 -1
  188. package/dist/core/token-ruler.js.map +1 -1
  189. package/dist/core/turn-scheduler.js +1 -1
  190. package/dist/core/turn-scheduler.js.map +1 -1
  191. package/dist/core/worker-ops.sql +4 -4
  192. package/dist/core/workspace-settings.js +1 -1
  193. package/dist/core/workspace-settings.js.map +1 -1
  194. package/dist/digest/Digest.d.ts.map +1 -1
  195. package/dist/digest/Digest.js +349 -76
  196. package/dist/digest/Digest.js.map +1 -1
  197. package/dist/digest/digest.sql +42 -16
  198. package/dist/schemes/Exec.d.ts +4 -4
  199. package/dist/schemes/Exec.d.ts.map +1 -1
  200. package/dist/schemes/Exec.js +167 -134
  201. package/dist/schemes/Exec.js.map +1 -1
  202. package/dist/schemes/ExecOutputScheme.d.ts +4 -5
  203. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  204. package/dist/schemes/ExecOutputScheme.js +12 -20
  205. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  206. package/dist/schemes/File.d.ts +5 -6
  207. package/dist/schemes/File.d.ts.map +1 -1
  208. package/dist/schemes/File.js +35 -41
  209. package/dist/schemes/File.js.map +1 -1
  210. package/dist/schemes/Log.d.ts +16 -5
  211. package/dist/schemes/Log.d.ts.map +1 -1
  212. package/dist/schemes/Log.js +229 -262
  213. package/dist/schemes/Log.js.map +1 -1
  214. package/dist/schemes/Log.sql +50 -27
  215. package/dist/schemes/Prompt.d.ts +3 -4
  216. package/dist/schemes/Prompt.d.ts.map +1 -1
  217. package/dist/schemes/Prompt.js +5 -5
  218. package/dist/schemes/Prompt.js.map +1 -1
  219. package/dist/schemes/Skill.d.ts +4 -5
  220. package/dist/schemes/Skill.d.ts.map +1 -1
  221. package/dist/schemes/Skill.js +3 -3
  222. package/dist/schemes/Skill.js.map +1 -1
  223. package/dist/schemes/Worker.d.ts +7 -7
  224. package/dist/schemes/Worker.d.ts.map +1 -1
  225. package/dist/schemes/Worker.js +99 -84
  226. package/dist/schemes/Worker.js.map +1 -1
  227. package/dist/schemes/_entry-crud.d.ts +2 -2
  228. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  229. package/dist/schemes/_entry-crud.js +29 -10
  230. package/dist/schemes/_entry-crud.js.map +1 -1
  231. package/dist/schemes/_entry-crud.sql +11 -17
  232. package/dist/schemes/_entry-find.d.ts +41 -14
  233. package/dist/schemes/_entry-find.d.ts.map +1 -1
  234. package/dist/schemes/_entry-find.js +159 -166
  235. package/dist/schemes/_entry-find.js.map +1 -1
  236. package/dist/schemes/_entry-find.sql +2 -21
  237. package/dist/schemes/_entry-graph.sql +1 -1
  238. package/dist/schemes/_entry-manifest.d.ts +5 -17
  239. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  240. package/dist/schemes/_entry-manifest.js +28 -24
  241. package/dist/schemes/_entry-manifest.js.map +1 -1
  242. package/dist/schemes/_entry-ops.d.ts +13 -8
  243. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  244. package/dist/schemes/_entry-ops.js +98 -119
  245. package/dist/schemes/_entry-ops.js.map +1 -1
  246. package/dist/schemes/_entry-ops.sql +31 -6
  247. package/dist/schemes/_entry-semantic.d.ts +5 -7
  248. package/dist/schemes/_entry-semantic.d.ts.map +1 -1
  249. package/dist/schemes/_entry-semantic.js +10 -31
  250. package/dist/schemes/_entry-semantic.js.map +1 -1
  251. package/dist/schemes/_entry-semantic.sql +2 -2
  252. package/dist/schemes/_entry-send.js +4 -4
  253. package/dist/schemes/_entry-send.js.map +1 -1
  254. package/dist/schemes/_search-index.d.ts.map +1 -1
  255. package/dist/schemes/_search-index.js +16 -6
  256. package/dist/schemes/_search-index.js.map +1 -1
  257. package/dist/schemes/exec-abort.js +2 -2
  258. package/dist/schemes/exec-abort.js.map +1 -1
  259. package/dist/server/BranchBatches.d.ts +1 -0
  260. package/dist/server/BranchBatches.d.ts.map +1 -1
  261. package/dist/server/BranchBatches.js +1 -0
  262. package/dist/server/BranchBatches.js.map +1 -1
  263. package/dist/server/Daemon.d.ts +6 -8
  264. package/dist/server/Daemon.d.ts.map +1 -1
  265. package/dist/server/Daemon.js +238 -68
  266. package/dist/server/Daemon.js.map +1 -1
  267. package/dist/server/DaemonModule.d.ts +3 -3
  268. package/dist/server/DaemonModule.d.ts.map +1 -1
  269. package/dist/server/branch-batch.sql +3 -1
  270. package/dist/server/client-input.d.ts +2 -1
  271. package/dist/server/client-input.d.ts.map +1 -1
  272. package/dist/server/client-input.js +7 -1
  273. package/dist/server/client-input.js.map +1 -1
  274. package/dist/server/drain.sql +8 -7
  275. package/dist/server/envelope.d.ts +0 -2
  276. package/dist/server/envelope.d.ts.map +1 -1
  277. package/dist/server/envelope.js +0 -1
  278. package/dist/server/envelope.js.map +1 -1
  279. package/dist/server/envelope.sql +3 -4
  280. package/dist/server/lifecycle-recovery.sql +44 -1
  281. package/dist/server/logEntry.d.ts +2 -1
  282. package/dist/server/logEntry.d.ts.map +1 -1
  283. package/dist/server/logEntry.js +15 -2
  284. package/dist/server/logEntry.js.map +1 -1
  285. package/dist/server/logEntry.sql +5 -1
  286. package/dist/service.d.ts.map +1 -1
  287. package/dist/service.js +13 -1
  288. package/dist/service.js.map +1 -1
  289. package/migrations/001_schema.sql +730 -221
  290. package/package.json +53 -46
  291. package/dist/core/BudgetOverflow.d.ts +0 -23
  292. package/dist/core/BudgetOverflow.d.ts.map +0 -1
  293. package/dist/core/BudgetOverflow.js +0 -61
  294. package/dist/core/BudgetOverflow.js.map +0 -1
  295. package/dist/core/caps/DbTagCaps.d.ts +0 -10
  296. package/dist/core/caps/DbTagCaps.d.ts.map +0 -1
  297. package/dist/core/caps/DbTagCaps.js +0 -44
  298. package/dist/core/caps/DbTagCaps.js.map +0 -1
  299. package/dist/matrix/live-specimen.d.ts +0 -9
  300. package/dist/matrix/live-specimen.d.ts.map +0 -1
  301. package/dist/matrix/live-specimen.js +0 -37
  302. package/dist/matrix/live-specimen.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-service",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "description": "Plurnk agent runtime — the server / engine / core. Implements the @plurnk/plurnk-contracts contract.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -37,22 +37,27 @@
37
37
  "scripts": {
38
38
  "start": "node --conditions=plurnk-dev src/service.ts",
39
39
  "types:sqlrite": "node scripts/sqlrite-types.mjs --write",
40
- "test:sqlrite-types": "node scripts/sqlrite-types.mjs",
41
- "test:artifacts:begin": "node ../scripts/test-artifacts.mjs begin",
42
- "pretest:intg": "npm run test:artifacts:begin",
43
- "test:lint": "npm run test:sqlrite-types && tsc --noEmit && tsc --noEmit -p tsconfig.test.json",
44
- "test:unit": "node --conditions=plurnk-dev --import=./test/setup.ts --env-file-if-exists=.env.defaults --test --test-timeout=30000 src/**/*.test.ts",
40
+ "types:sqlrite:check": "node scripts/sqlrite-types.mjs",
41
+ "artifacts:begin": "node ../scripts/test-artifacts.mjs begin",
42
+ "pretest:intg": "npm run artifacts:begin",
43
+ "test:lint": "npm run types:sqlrite:check && tsc --noEmit && tsc --noEmit -p tsconfig.test.json",
44
+ "test:unit": "node --conditions=plurnk-dev --import=./test/setup.ts --env-file-if-exists=.env.defaults --test --test-timeout=30000 scripts/*.test.mjs src/**/*.test.ts",
45
45
  "test:intg": "PLURNK_SERVICE_FILES_ITEMS=0 node --conditions=plurnk-dev --import=./test/setup.ts --env-file-if-exists=.env.defaults --test --test-concurrency=8 --test-timeout=30000 test/intg/*.test.ts",
46
- "test:live": "PLURNK_SERVICE_POLICY=../plurnk-meta/PLURNK_PERSONALITY.md node --conditions=plurnk-dev --import=./test/floor.ts --env-file-if-exists=.env.defaults --env-file-if-exists=$HOME/.plurnk/.env --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 test/live/*.test.ts",
47
- "test:live:specimen": "node --conditions=plurnk-dev bin/live-specimen.ts",
48
- "test:live:zeropin": "PLURNK_ZERO_PIN=1 PLURNK_SERVICE_POLICY=../plurnk-meta/PLURNK_PERSONALITY.md node --conditions=plurnk-dev --import=./test/floor.ts --env-file-if-exists=.env.defaults --env-file-if-exists=$HOME/.plurnk/.env --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 test/live/*.test.ts",
49
- "test:demo": "PLURNK_SERVICE_POLICY=../plurnk-meta/PLURNK_PERSONALITY.md node --conditions=plurnk-dev --import=./test/floor.ts --env-file-if-exists=.env.defaults --env-file-if-exists=$HOME/.plurnk/.env --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 test/demo/*.test.ts",
50
- "test:demo:zeropin": "PLURNK_ZERO_PIN=1 PLURNK_SERVICE_POLICY=../plurnk-meta/PLURNK_PERSONALITY.md node --conditions=plurnk-dev --import=./test/floor.ts --env-file-if-exists=.env.defaults --env-file-if-exists=$HOME/.plurnk/.env --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 test/demo/*.test.ts",
46
+ "build:rail": "npm run build:gbnf -w @plurnk/plurnk-contracts",
47
+ "pretest:live": "npm run build:rail",
48
+ "test:live": "bash ../scripts/operator-environment.sh node --conditions=plurnk-dev scripts/live.mjs",
49
+ "pretest:live:specimen": "npm run build:rail",
50
+ "test:live:specimen": "bash ../scripts/operator-environment.sh node --conditions=plurnk-dev scripts/live.mjs --specimen",
51
+ "test:live:zeropin": "PLURNK_ZERO_PIN=1 npm run test:live",
52
+ "pretest:demo": "npm run build:rail",
53
+ "test:demo": "bash ../scripts/operator-environment.sh env PLURNK_SERVICE_POLICY=../plurnk-meta/PLURNK_PERSONALITY.md node --conditions=plurnk-dev --import=./test/floor.ts --env-file-if-exists=.env.defaults --env-file-if-exists=$HOME/.plurnk/.env --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 test/demo/*.test.ts",
54
+ "pretest:demo:zeropin": "npm run build:rail",
55
+ "test:demo:zeropin": "bash ../scripts/operator-environment.sh env PLURNK_ZERO_PIN=1 PLURNK_SERVICE_POLICY=../plurnk-meta/PLURNK_PERSONALITY.md node --conditions=plurnk-dev --import=./test/floor.ts --env-file-if-exists=.env.defaults --env-file-if-exists=$HOME/.plurnk/.env --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 test/demo/*.test.ts",
56
+ "test:benchlet": "node scripts/benchlet.mjs",
51
57
  "fixture:demo": "node --conditions=plurnk-dev test/demo/_fixture.ts",
52
- "test:all": "npm run test:lint && npm run test:unit && npm run test:intg && npm run test:demo",
53
- "test:digest": "node --conditions=plurnk-dev bin/digest.ts",
58
+ "test": "npm run test:lint && npm run test:unit && npm run test:intg",
54
59
  "digest:missing": "node --conditions=plurnk-dev bin/digest-missing.ts",
55
- "test:clean-tmp": "node ../scripts/test-artifacts.mjs clean",
60
+ "artifacts:clean": "node ../scripts/test-artifacts.mjs clean",
56
61
  "dev:digest": "node --conditions=plurnk-dev bin/digest.ts",
57
62
  "build:clean": "rm -rf dist",
58
63
  "build:dist": "tsc -p tsconfig.build.json",
@@ -65,6 +70,7 @@
65
70
  "build:local:uninstall": "node --conditions=plurnk-dev scripts/install-sandbox.mjs uninstall",
66
71
  "test:installation": "node --conditions=plurnk-dev scripts/test-installation.mjs",
67
72
  "deps:audit": "node --conditions=plurnk-dev scripts/deps-audit.ts",
73
+ "release:check": "npm run deps:audit && npm run test:installation",
68
74
  "prepublishOnly": "npm run deps:audit && npm run test:installation",
69
75
  "prepack": "npm run build"
70
76
  },
@@ -76,41 +82,42 @@
76
82
  "@opentelemetry/resources": "^2.10.0",
77
83
  "@opentelemetry/sdk-metrics": "^2.10.0",
78
84
  "@opentelemetry/sdk-trace-base": "^2.10.0",
79
- "@plurnk/gbnf": "1.4.0",
80
- "@plurnk/plurnk-agui": "1.4.0",
81
- "@plurnk/plurnk-contracts": "1.4.0",
82
- "@plurnk/plurnk-execs": "1.4.0",
83
- "@plurnk/plurnk-execs-common": "1.4.0",
84
- "@plurnk/plurnk-execs-git": "1.4.0",
85
- "@plurnk/plurnk-execs-jq": "1.4.0",
86
- "@plurnk/plurnk-execs-search": "1.4.0",
87
- "@plurnk/plurnk-execs-sqlite": "1.4.0",
88
- "@plurnk/plurnk-execs-wasm": "1.4.0",
89
- "@plurnk/plurnk-mcp": "1.4.0",
90
- "@plurnk/plurnk-meta": "1.4.0",
91
- "@plurnk/plurnk-mimetypes": "1.4.0",
92
- "@plurnk/plurnk-mimetypes-application-ipynb": "1.4.0",
93
- "@plurnk/plurnk-mimetypes-application-json": "1.4.0",
94
- "@plurnk/plurnk-mimetypes-application-jsonl": "1.4.0",
95
- "@plurnk/plurnk-mimetypes-application-pdf": "1.4.0",
96
- "@plurnk/plurnk-mimetypes-application-xml": "1.4.0",
97
- "@plurnk/plurnk-mimetypes-embeddings": "1.4.0",
98
- "@plurnk/plurnk-mimetypes-text-csv": "1.4.0",
99
- "@plurnk/plurnk-mimetypes-text-diff": "1.4.0",
100
- "@plurnk/plurnk-mimetypes-text-dotenv": "1.4.0",
101
- "@plurnk/plurnk-mimetypes-text-html": "1.4.0",
102
- "@plurnk/plurnk-mimetypes-text-ini": "1.4.0",
103
- "@plurnk/plurnk-mimetypes-text-markdown": "1.4.0",
104
- "@plurnk/plurnk-mimetypes-text-plain": "1.4.0",
105
- "@plurnk/plurnk-mimetypes-tokenizers": "1.4.0",
106
- "@plurnk/plurnk-models": "1.4.0",
107
- "@plurnk/plurnk-providers": "1.4.0",
108
- "@plurnk/plurnk-schemes": "1.4.0",
109
- "@plurnk/plurnk-schemes-http": "1.4.0",
85
+ "@plurnk/gbnf": "1.6.0",
86
+ "@plurnk/plurnk-agui": "1.6.0",
87
+ "@plurnk/plurnk-contracts": "1.6.0",
88
+ "@plurnk/plurnk-execs": "1.6.0",
89
+ "@plurnk/plurnk-execs-common": "1.6.0",
90
+ "@plurnk/plurnk-execs-git": "1.6.0",
91
+ "@plurnk/plurnk-execs-jq": "1.6.0",
92
+ "@plurnk/plurnk-execs-search": "1.6.0",
93
+ "@plurnk/plurnk-execs-sqlite": "1.6.0",
94
+ "@plurnk/plurnk-execs-wasm": "1.6.0",
95
+ "@plurnk/plurnk-hooks": "1.6.0",
96
+ "@plurnk/plurnk-mcp": "1.6.0",
97
+ "@plurnk/plurnk-meta": "1.6.0",
98
+ "@plurnk/plurnk-mimetypes": "1.6.0",
99
+ "@plurnk/plurnk-mimetypes-application-ipynb": "1.6.0",
100
+ "@plurnk/plurnk-mimetypes-application-json": "1.6.0",
101
+ "@plurnk/plurnk-mimetypes-application-jsonl": "1.6.0",
102
+ "@plurnk/plurnk-mimetypes-application-pdf": "1.6.0",
103
+ "@plurnk/plurnk-mimetypes-application-xml": "1.6.0",
104
+ "@plurnk/plurnk-mimetypes-embeddings": "1.6.0",
105
+ "@plurnk/plurnk-mimetypes-text-csv": "1.6.0",
106
+ "@plurnk/plurnk-mimetypes-text-diff": "1.6.0",
107
+ "@plurnk/plurnk-mimetypes-text-dotenv": "1.6.0",
108
+ "@plurnk/plurnk-mimetypes-text-html": "1.6.0",
109
+ "@plurnk/plurnk-mimetypes-text-ini": "1.6.0",
110
+ "@plurnk/plurnk-mimetypes-text-markdown": "1.6.0",
111
+ "@plurnk/plurnk-mimetypes-text-plain": "1.6.0",
112
+ "@plurnk/plurnk-mimetypes-tokenizers": "1.6.0",
113
+ "@plurnk/plurnk-models": "1.6.0",
114
+ "@plurnk/plurnk-providers": "1.6.0",
115
+ "@plurnk/plurnk-schemes": "1.6.0",
116
+ "@plurnk/plurnk-schemes-http": "1.6.0",
110
117
  "@possumtech/sqlrite": "^6.5.2",
111
118
  "diff": "^9.0.0",
112
119
  "ignore": "7.0.6",
113
- "isomorphic-git": "1.40.0"
120
+ "isomorphic-git": "1.41.4"
114
121
  },
115
122
  "devDependencies": {
116
123
  "@opentelemetry/core": "^2.10.0",
@@ -1,23 +0,0 @@
1
- import { type OperationResult } from "@plurnk/plurnk-contracts";
2
- import type { PlurnkOp } from "@plurnk/plurnk-contracts";
3
- export interface BudgetOverflowMeasurement {
4
- readonly usage: number;
5
- readonly ceiling: number;
6
- readonly deficit: number;
7
- }
8
- export interface BudgetOverflowPhysicalFailure {
9
- readonly reason: string;
10
- readonly detail: string;
11
- readonly capacity: number | null;
12
- readonly tokens?: number;
13
- readonly tokenKind?: string;
14
- readonly tokenSource?: string;
15
- }
16
- export default class BudgetOverflow {
17
- static readonly recoveryOperations: readonly ["PLAN", "FOLD", "KILL", "SEND"];
18
- static permits(operation: PlurnkOp): boolean;
19
- static measure(usage: number, ceiling: number): BudgetOverflowMeasurement;
20
- static result(usage: number, ceiling: number, recovery: boolean, physical?: BudgetOverflowPhysicalFailure): OperationResult;
21
- static foldedResult(usage: number, ceiling: number): OperationResult;
22
- }
23
- //# sourceMappingURL=BudgetOverflow.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BudgetOverflow.d.ts","sourceRoot":"","sources":["../../src/core/BudgetOverflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,eAAe,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,WAAW,yBAAyB;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,6BAA6B;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CACjC;AAID,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,QAAQ,CAAC,kBAAkB,4CAKQ;IAE1C,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAE3C;IAED,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,yBAAyB,CAMxE;IAED,MAAM,CAAC,MAAM,CACT,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,OAAO,EACjB,QAAQ,CAAC,EAAE,6BAA6B,GACzC,eAAe,CAiCjB;IAED,MAAM,CAAC,YAAY,CACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAChB,eAAe,CAmBjB;CACJ"}
@@ -1,61 +0,0 @@
1
- import { Problems, Validator, } from "@plurnk/plurnk-contracts";
2
- const formatTokens = (tokens) => tokens.toLocaleString("en-US");
3
- export default class BudgetOverflow {
4
- static recoveryOperations = Object.freeze([
5
- "PLAN",
6
- "FOLD",
7
- "KILL",
8
- "SEND",
9
- ]);
10
- static permits(operation) {
11
- return BudgetOverflow.recoveryOperations.some((allowed) => allowed === operation);
12
- }
13
- static measure(usage, ceiling) {
14
- return {
15
- usage,
16
- ceiling,
17
- deficit: Math.max(0, usage - ceiling),
18
- };
19
- }
20
- static result(usage, ceiling, recovery, physical) {
21
- const measurement = BudgetOverflow.measure(usage, ceiling);
22
- const physicalDetail = physical === undefined
23
- ? ""
24
- : ` Physical recovery was not admitted: ${physical.detail}.`;
25
- return Validator.assertOperationResult({
26
- status: 413,
27
- problem: Problems.create("engine:grinder", "budget-overflow", 413, `At overflow detection, Token Usage ${formatTokens(measurement.usage)} exceeds Token Ceiling ${formatTokens(measurement.ceiling)} by ${formatTokens(measurement.deficit)}. No working room remains.${physicalDetail}`, {
28
- ...measurement,
29
- stage: "overflow-detection",
30
- retryable: false,
31
- ...(physical === undefined ? {} : {
32
- physicalAdmission: physical.reason,
33
- physicalCapacity: physical.capacity,
34
- ...(physical.tokens === undefined ? {} : { physicalTokens: physical.tokens }),
35
- ...(physical.tokenKind === undefined ? {} : { physicalTokenKind: physical.tokenKind }),
36
- ...(physical.tokenSource === undefined ? {} : { physicalTokenSource: physical.tokenSource }),
37
- }),
38
- ...(recovery
39
- ? {
40
- allowedOperations: [...BudgetOverflow.recoveryOperations],
41
- recovery: "Curate context by FOLDing or KILLing irrelevant log items to restore working room.",
42
- }
43
- : {}),
44
- }, { title: "Prompt budget exceeded" }),
45
- });
46
- }
47
- static foldedResult(usage, ceiling) {
48
- const measurement = BudgetOverflow.measure(usage, ceiling);
49
- return Validator.assertOperationResult({
50
- status: 413,
51
- problem: Problems.create("engine:grinder", "budget-overflow", 413, `At overflow detection, Token Usage ${formatTokens(measurement.usage)} exceeded Token Ceiling ${formatTokens(measurement.ceiling)} by ${formatTokens(measurement.deficit)}. The newest open log items were FOLDed, and the rebuilt packet now fits.`, {
52
- ...measurement,
53
- stage: "overflow-detection",
54
- resolution: "newest-log-items-folded",
55
- recovery: "Keep irrelevant log items FOLDed or KILL them, and use smaller retrieval ranges.",
56
- retryable: false,
57
- }, { title: "Prompt budget exceeded" }),
58
- });
59
- }
60
- }
61
- //# sourceMappingURL=BudgetOverflow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BudgetOverflow.js","sourceRoot":"","sources":["../../src/core/BudgetOverflow.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { type SchemeResult, type TagCaps, type TagListResult } from "@plurnk/plurnk-schemes";
2
- import type { PlurnkSchemeContext } from "../scheme-types.ts";
3
- export default class DbTagCaps implements TagCaps {
4
- #private;
5
- constructor(ctx: PlurnkSchemeContext, scheme: string);
6
- add(pathname: string, tags: ReadonlyArray<string>): Promise<SchemeResult>;
7
- remove(pathname: string, tags: ReadonlyArray<string>): Promise<SchemeResult>;
8
- list(pathname: string): Promise<TagListResult>;
9
- }
10
- //# sourceMappingURL=DbTagCaps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DbTagCaps.d.ts","sourceRoot":"","sources":["../../../src/core/caps/DbTagCaps.ts"],"names":[],"mappings":"AAMA,OAAO,EAAW,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACtG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAI9D,MAAM,CAAC,OAAO,OAAO,SAAU,YAAW,OAAO;;IAI7C,YAAY,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAGnD;IAcK,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAK9E;IAEK,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAKjF;IAEK,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAKnD;CACJ"}
@@ -1,44 +0,0 @@
1
- // Db-backed implementation of the tag namespace in plurnk-schemes
2
- // {§capability-ctx}.
3
- // add/remove/list folksonomic tags on an entry, addressed by pathname. add is
4
- // INSERT OR IGNORE (idempotent — re-adding a tag is a no-op); list returns them
5
- // tag-sorted; remove drops the named tags. Absent entry → 404.
6
- import { Results } from "@plurnk/plurnk-schemes";
7
- import CapsResolve from "./CapsResolve.js";
8
- import { renderAddress } from "../plurnk-uri.js";
9
- export default class DbTagCaps {
10
- #ctx;
11
- #scheme;
12
- constructor(ctx, scheme) {
13
- this.#ctx = ctx;
14
- this.#scheme = scheme;
15
- }
16
- #missing(pathname, fields = {}) {
17
- const target = renderAddress(this.#scheme, pathname);
18
- return Results.failure(`scheme:${this.#scheme}`, "entry-not-found", 404, `No entry exists at ${target}.`, fields, { target });
19
- }
20
- async add(pathname, tags) {
21
- const entryId = await CapsResolve.entryId(this.#ctx, this.#scheme, pathname);
22
- if (entryId === null)
23
- return this.#missing(pathname);
24
- for (const tag of tags)
25
- await this.#ctx.db.crud_write_tag.run({ entry_id: entryId, tag });
26
- return Results.assert({ status: 200 });
27
- }
28
- async remove(pathname, tags) {
29
- const entryId = await CapsResolve.entryId(this.#ctx, this.#scheme, pathname);
30
- if (entryId === null)
31
- return this.#missing(pathname);
32
- for (const tag of tags)
33
- await this.#ctx.db.crud_delete_tag.run({ entry_id: entryId, tag });
34
- return Results.assert({ status: 200 });
35
- }
36
- async list(pathname) {
37
- const entryId = await CapsResolve.entryId(this.#ctx, this.#scheme, pathname);
38
- if (entryId === null)
39
- return this.#missing(pathname, { tags: [] });
40
- const rows = await this.#ctx.db.crud_read_tags.all({ entry_id: entryId });
41
- return Results.assert({ status: 200, tags: rows.map((r) => r.tag) });
42
- }
43
- }
44
- //# sourceMappingURL=DbTagCaps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DbTagCaps.js","sourceRoot":"","sources":["../../../src/core/caps/DbTagCaps.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,qBAAqB;AACrB,8EAA8E;AAC9E,gFAAgF;AAChF,+DAA+D;AAE/D,OAAO,EAAE,OAAO,EAAuD,MAAM,wBAAwB,CAAC;AAEtG,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,SAAS;IACjB,IAAI,CAAsB;IAC1B,OAAO,CAAS;IAEzB,YAAY,GAAwB,EAAE,MAAc;QAChD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,QAAQ,CAAC,QAAgB,EAAE,MAAM,GAAsC,EAAE;QACrE,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,OAAO,CAClB,UAAU,IAAI,CAAC,OAAO,EAAE,EACxB,iBAAiB,EACjB,GAAG,EACH,sBAAsB,MAAM,GAAG,EAC/B,MAAM,EACN,EAAE,MAAM,EAAE,CACb,CAAC;IACN,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE,IAA2B;QACnD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7E,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrD,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1F,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,IAA2B;QACtD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7E,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrD,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3F,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB;QACvB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7E,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAkB,CAAC;QACpF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3F,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;CACJ"}
@@ -1,9 +0,0 @@
1
- declare const LIVE_ENV: {
2
- readonly PLURNK_SERVICE_POLICY: "../plurnk-meta/PLURNK_PERSONALITY.md";
3
- };
4
- export declare const liveSpecimenInvocation: (pattern: string) => {
5
- args: string[];
6
- env: typeof LIVE_ENV;
7
- };
8
- export {};
9
- //# sourceMappingURL=live-specimen.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"live-specimen.d.ts","sourceRoot":"","sources":["../../src/matrix/live-specimen.ts"],"names":[],"mappings":"AAUA,QAAA,MAAM,QAAQ;aACV,qBAAqB,EAAE,sCAAsC;CACvD,CAAC;AAKX,eAAO,MAAM,sBAAsB,YAAa,MAAM,KAAG;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,OAAO,QAAQ,CAAA;CAoB9F,CAAC"}
@@ -1,37 +0,0 @@
1
- // The configured-provider packet matrix's deterministic single-specimen
2
- // selector ({§provider-conformance-matrix}). The matrix procedure must run ONE
3
- // named live specimen without replaying the whole tier: npm appends trailing
4
- // arguments AFTER a script's expanded file list, so `--test-name-pattern` alone
5
- // lands in a position that does not narrow the suite. This builder inserts the
6
- // pattern BEFORE the expanded live file list in otherwise the exact test:live
7
- // invocation, keeping the standard gate command unchanged.
8
- import { readdirSync } from "node:fs";
9
- const LIVE_ENV = {
10
- PLURNK_SERVICE_POLICY: "../plurnk-meta/PLURNK_PERSONALITY.md",
11
- };
12
- // The exact file set the `test:live` script's shell glob selects — expanded
13
- // deterministically here (never a shell glob) so pattern position is the only
14
- // difference from the standard command.
15
- export const liveSpecimenInvocation = (pattern) => {
16
- const files = readdirSync("test/live").filter((f) => f.endsWith(".test.ts")).sort();
17
- if (files.length === 0)
18
- throw new Error("no live specimens found under test/live");
19
- const home = process.env.HOME ?? "";
20
- return {
21
- args: [
22
- "--conditions=plurnk-dev",
23
- "--import=./test/floor.ts",
24
- "--env-file-if-exists=.env.defaults",
25
- `--env-file-if-exists=${home}/.plurnk/.env`,
26
- "--env-file-if-exists=.env",
27
- "--env-file-if-exists=.env.test",
28
- "--test",
29
- "--test-concurrency=1",
30
- "--test-name-pattern",
31
- pattern,
32
- ...files.map((f) => `test/live/${f}`),
33
- ],
34
- env: LIVE_ENV,
35
- };
36
- };
37
- //# sourceMappingURL=live-specimen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"live-specimen.js","sourceRoot":"","sources":["../../src/matrix/live-specimen.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,+EAA+E;AAC/E,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,2DAA2D;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,QAAQ,GAAG;IACb,qBAAqB,EAAE,sCAAsC;CACvD,CAAC;AAEX,4EAA4E;AAC5E,8EAA8E;AAC9E,wCAAwC;AACxC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAe,EAA4C,EAAE;IAChG,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACpC,OAAO;QACH,IAAI,EAAE;YACF,yBAAyB;YACzB,0BAA0B;YAC1B,oCAAoC;YACpC,wBAAwB,IAAI,eAAe;YAC3C,2BAA2B;YAC3B,gCAAgC;YAChC,QAAQ;YACR,sBAAsB;YACtB,qBAAqB;YACrB,OAAO;YACP,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;SACxC;QACD,GAAG,EAAE,QAAQ;KAChB,CAAC;AACN,CAAC,CAAC"}