@plurnk/plurnk-service 1.14.2 → 1.16.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 (308) hide show
  1. package/.env.defaults +2 -2
  2. package/SPEC.md +243 -173
  3. package/digest-sql/curation/curation.sql +1 -1
  4. package/dist/build-info.json +1 -1
  5. package/dist/content/byte-view.d.ts +14 -0
  6. package/dist/content/byte-view.d.ts.map +1 -0
  7. package/dist/content/byte-view.js +33 -0
  8. package/dist/content/byte-view.js.map +1 -0
  9. package/dist/content/edit-receipt.d.ts.map +1 -1
  10. package/dist/content/edit-receipt.js +12 -1
  11. package/dist/content/edit-receipt.js.map +1 -1
  12. package/dist/content/line-marker.d.ts +2 -1
  13. package/dist/content/line-marker.d.ts.map +1 -1
  14. package/dist/content/line-marker.js +1 -0
  15. package/dist/content/line-marker.js.map +1 -1
  16. package/dist/content/matcher.d.ts +1 -0
  17. package/dist/content/matcher.d.ts.map +1 -1
  18. package/dist/content/matcher.js +1 -0
  19. package/dist/content/matcher.js.map +1 -1
  20. package/dist/content/read-projector.d.ts +4 -1
  21. package/dist/content/read-projector.d.ts.map +1 -1
  22. package/dist/content/read-projector.js +80 -3
  23. package/dist/content/read-projector.js.map +1 -1
  24. package/dist/core/AdmittedTurnExecutor.d.ts +43 -0
  25. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -0
  26. package/dist/core/AdmittedTurnExecutor.js +245 -0
  27. package/dist/core/AdmittedTurnExecutor.js.map +1 -0
  28. package/dist/core/BareBatchRunner.d.ts +26 -0
  29. package/dist/core/BareBatchRunner.d.ts.map +1 -0
  30. package/dist/core/BareBatchRunner.js +104 -0
  31. package/dist/core/BareBatchRunner.js.map +1 -0
  32. package/dist/core/BudgetReadout.d.ts +1 -1
  33. package/dist/core/BudgetReadout.d.ts.map +1 -1
  34. package/dist/core/BudgetReadout.js +42 -47
  35. package/dist/core/BudgetReadout.js.map +1 -1
  36. package/dist/core/CapabilityResolver.d.ts +2 -1
  37. package/dist/core/CapabilityResolver.d.ts.map +1 -1
  38. package/dist/core/CapabilityResolver.js +8 -9
  39. package/dist/core/CapabilityResolver.js.map +1 -1
  40. package/dist/core/ChannelWrite.d.ts +1 -1
  41. package/dist/core/ChannelWrite.d.ts.map +1 -1
  42. package/dist/core/DataStatementRunner.d.ts +35 -0
  43. package/dist/core/DataStatementRunner.d.ts.map +1 -0
  44. package/dist/core/DataStatementRunner.js +252 -0
  45. package/dist/core/DataStatementRunner.js.map +1 -0
  46. package/dist/core/Dispatcher.d.ts +8 -3
  47. package/dist/core/Dispatcher.d.ts.map +1 -1
  48. package/dist/core/Dispatcher.js +88 -738
  49. package/dist/core/Dispatcher.js.map +1 -1
  50. package/dist/core/EditMutations.d.ts +39 -0
  51. package/dist/core/EditMutations.d.ts.map +1 -0
  52. package/dist/core/EditMutations.js +418 -0
  53. package/dist/core/EditMutations.js.map +1 -0
  54. package/dist/core/Engine.d.ts +2 -23
  55. package/dist/core/Engine.d.ts.map +1 -1
  56. package/dist/core/Engine.js +18 -240
  57. package/dist/core/Engine.js.map +1 -1
  58. package/dist/core/Engine.sql +24 -23
  59. package/dist/core/KillHandler.d.ts +32 -0
  60. package/dist/core/KillHandler.d.ts.map +1 -0
  61. package/dist/core/KillHandler.js +179 -0
  62. package/dist/core/KillHandler.js.map +1 -0
  63. package/dist/core/LogVisibility.d.ts +1 -1
  64. package/dist/core/LogVisibility.d.ts.map +1 -1
  65. package/dist/core/LogVisibility.js +3 -4
  66. package/dist/core/LogVisibility.js.map +1 -1
  67. package/dist/core/LogWriter.d.ts +42 -0
  68. package/dist/core/LogWriter.d.ts.map +1 -0
  69. package/dist/core/LogWriter.js +136 -0
  70. package/dist/core/LogWriter.js.map +1 -0
  71. package/dist/core/LoopDriver.d.ts +46 -0
  72. package/dist/core/LoopDriver.d.ts.map +1 -0
  73. package/dist/core/LoopDriver.js +263 -0
  74. package/dist/core/LoopDriver.js.map +1 -0
  75. package/dist/core/LoopLifecycle.d.ts +2 -1
  76. package/dist/core/LoopLifecycle.d.ts.map +1 -1
  77. package/dist/core/MembershipMaterialization.d.ts +7 -0
  78. package/dist/core/MembershipMaterialization.d.ts.map +1 -0
  79. package/dist/core/MembershipMaterialization.js +283 -0
  80. package/dist/core/MembershipMaterialization.js.map +1 -0
  81. package/dist/core/MutationEffects.d.ts +29 -0
  82. package/dist/core/MutationEffects.d.ts.map +1 -0
  83. package/dist/core/MutationEffects.js +318 -0
  84. package/dist/core/MutationEffects.js.map +1 -0
  85. package/dist/core/OverflowTurn.d.ts +4 -4
  86. package/dist/core/OverflowTurn.d.ts.map +1 -1
  87. package/dist/core/OverflowTurn.js +6 -7
  88. package/dist/core/OverflowTurn.js.map +1 -1
  89. package/dist/core/PacketBuilder.d.ts.map +1 -1
  90. package/dist/core/PacketBuilder.js +31 -9
  91. package/dist/core/PacketBuilder.js.map +1 -1
  92. package/dist/core/ResourceMutations.d.ts +12 -36
  93. package/dist/core/ResourceMutations.d.ts.map +1 -1
  94. package/dist/core/ResourceMutations.js +27 -1351
  95. package/dist/core/ResourceMutations.js.map +1 -1
  96. package/dist/core/ResourceSelector.d.ts +21 -0
  97. package/dist/core/ResourceSelector.d.ts.map +1 -0
  98. package/dist/core/ResourceSelector.js +233 -0
  99. package/dist/core/ResourceSelector.js.map +1 -0
  100. package/dist/core/ResourceTransfers.d.ts +55 -0
  101. package/dist/core/ResourceTransfers.d.ts.map +1 -0
  102. package/dist/core/ResourceTransfers.js +525 -0
  103. package/dist/core/ResourceTransfers.js.map +1 -0
  104. package/dist/core/SchemeRegistry.js +2 -2
  105. package/dist/core/SchemeRegistry.js.map +1 -1
  106. package/dist/core/SendBroadcastHandler.d.ts +40 -0
  107. package/dist/core/SendBroadcastHandler.d.ts.map +1 -0
  108. package/dist/core/SendBroadcastHandler.js +159 -0
  109. package/dist/core/SendBroadcastHandler.js.map +1 -0
  110. package/dist/core/StoredPacket.d.ts +11 -0
  111. package/dist/core/StoredPacket.d.ts.map +1 -1
  112. package/dist/core/StoredPacket.js +22 -1
  113. package/dist/core/StoredPacket.js.map +1 -1
  114. package/dist/core/StrikeRail.d.ts.map +1 -1
  115. package/dist/core/StrikeRail.js +19 -9
  116. package/dist/core/StrikeRail.js.map +1 -1
  117. package/dist/core/TokenCalibration.d.ts +16 -0
  118. package/dist/core/TokenCalibration.d.ts.map +1 -0
  119. package/dist/core/TokenCalibration.js +35 -0
  120. package/dist/core/TokenCalibration.js.map +1 -0
  121. package/dist/core/ToolResources.d.ts.map +1 -1
  122. package/dist/core/ToolResources.js +15 -12
  123. package/dist/core/ToolResources.js.map +1 -1
  124. package/dist/core/TurnMaterialization.d.ts +37 -0
  125. package/dist/core/TurnMaterialization.d.ts.map +1 -0
  126. package/dist/core/TurnMaterialization.js +296 -0
  127. package/dist/core/TurnMaterialization.js.map +1 -0
  128. package/dist/core/TurnOps.d.ts.map +1 -1
  129. package/dist/core/TurnOps.js +6 -8
  130. package/dist/core/TurnOps.js.map +1 -1
  131. package/dist/core/TurnRunner.d.ts +15 -27
  132. package/dist/core/TurnRunner.d.ts.map +1 -1
  133. package/dist/core/TurnRunner.js +76 -670
  134. package/dist/core/TurnRunner.js.map +1 -1
  135. package/dist/core/WorkerControlHandler.d.ts +15 -0
  136. package/dist/core/WorkerControlHandler.d.ts.map +1 -0
  137. package/dist/core/WorkerControlHandler.js +89 -0
  138. package/dist/core/WorkerControlHandler.js.map +1 -0
  139. package/dist/core/attachments.d.ts +14 -0
  140. package/dist/core/attachments.d.ts.map +1 -0
  141. package/dist/core/attachments.js +18 -0
  142. package/dist/core/attachments.js.map +1 -0
  143. package/dist/core/fork.d.ts.map +1 -1
  144. package/dist/core/fork.js +0 -4
  145. package/dist/core/fork.js.map +1 -1
  146. package/dist/core/fork.sql +5 -16
  147. package/dist/core/git-membership.d.ts +15 -0
  148. package/dist/core/git-membership.d.ts.map +1 -1
  149. package/dist/core/git-membership.js +4 -273
  150. package/dist/core/git-membership.js.map +1 -1
  151. package/dist/core/git-state.d.ts +2 -1
  152. package/dist/core/git-state.d.ts.map +1 -1
  153. package/dist/core/mutation-types.d.ts +102 -0
  154. package/dist/core/mutation-types.d.ts.map +1 -0
  155. package/dist/core/mutation-types.js +2 -0
  156. package/dist/core/mutation-types.js.map +1 -0
  157. package/dist/core/operation-target-groups.js +1 -1
  158. package/dist/core/operation-target-groups.js.map +1 -1
  159. package/dist/core/packet-wire.d.ts +7 -6
  160. package/dist/core/packet-wire.d.ts.map +1 -1
  161. package/dist/core/packet-wire.js +96 -68
  162. package/dist/core/packet-wire.js.map +1 -1
  163. package/dist/core/plurnk-uri.d.ts +0 -1
  164. package/dist/core/plurnk-uri.d.ts.map +1 -1
  165. package/dist/core/plurnk-uri.js +1 -1
  166. package/dist/core/plurnk-uri.js.map +1 -1
  167. package/dist/core/statement-primary.d.ts +4 -0
  168. package/dist/core/statement-primary.d.ts.map +1 -0
  169. package/dist/core/statement-primary.js +3 -0
  170. package/dist/core/statement-primary.js.map +1 -0
  171. package/dist/core/teaching-corpus.d.ts +0 -1
  172. package/dist/core/teaching-corpus.d.ts.map +1 -1
  173. package/dist/core/teaching-corpus.js +0 -9
  174. package/dist/core/teaching-corpus.js.map +1 -1
  175. package/dist/core/turn-scheduler.js +3 -3
  176. package/dist/core/turn-scheduler.js.map +1 -1
  177. package/dist/core/turn-signals.d.ts +15 -0
  178. package/dist/core/turn-signals.d.ts.map +1 -0
  179. package/dist/core/turn-signals.js +19 -0
  180. package/dist/core/turn-signals.js.map +1 -0
  181. package/dist/core/worker-settings.d.ts +0 -1
  182. package/dist/core/worker-settings.d.ts.map +1 -1
  183. package/dist/core/worker-settings.js +1 -1
  184. package/dist/core/worker-settings.js.map +1 -1
  185. package/dist/digest/Digest.d.ts +3 -16
  186. package/dist/digest/Digest.d.ts.map +1 -1
  187. package/dist/digest/Digest.js +10 -958
  188. package/dist/digest/Digest.js.map +1 -1
  189. package/dist/digest/DigestRender.d.ts +12 -0
  190. package/dist/digest/DigestRender.d.ts.map +1 -0
  191. package/dist/digest/DigestRender.js +641 -0
  192. package/dist/digest/DigestRender.js.map +1 -0
  193. package/dist/digest/DigestRequiem.d.ts +13 -0
  194. package/dist/digest/DigestRequiem.d.ts.map +1 -0
  195. package/dist/digest/DigestRequiem.js +332 -0
  196. package/dist/digest/DigestRequiem.js.map +1 -0
  197. package/dist/digest/digest-rows.d.ts +303 -0
  198. package/dist/digest/digest-rows.d.ts.map +1 -0
  199. package/dist/digest/digest-rows.js +2 -0
  200. package/dist/digest/digest-rows.js.map +1 -0
  201. package/dist/digest/digest.sql +1 -7
  202. package/dist/observe/api.d.ts +0 -2
  203. package/dist/observe/api.d.ts.map +1 -1
  204. package/dist/observe/api.js +2 -2
  205. package/dist/observe/api.js.map +1 -1
  206. package/dist/observe/metrics.d.ts +0 -1
  207. package/dist/observe/metrics.d.ts.map +1 -1
  208. package/dist/observe/metrics.js +0 -1
  209. package/dist/observe/metrics.js.map +1 -1
  210. package/dist/schemes/Exec.d.ts +4 -1
  211. package/dist/schemes/Exec.d.ts.map +1 -1
  212. package/dist/schemes/Exec.js +89 -48
  213. package/dist/schemes/Exec.js.map +1 -1
  214. package/dist/schemes/ExecOutputScheme.d.ts +2 -1
  215. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  216. package/dist/schemes/ExecOutputScheme.js +3 -3
  217. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  218. package/dist/schemes/File.d.ts +4 -1
  219. package/dist/schemes/File.d.ts.map +1 -1
  220. package/dist/schemes/File.js +100 -13
  221. package/dist/schemes/File.js.map +1 -1
  222. package/dist/schemes/Log.d.ts +4 -5
  223. package/dist/schemes/Log.d.ts.map +1 -1
  224. package/dist/schemes/Log.js +26 -118
  225. package/dist/schemes/Log.js.map +1 -1
  226. package/dist/schemes/Log.sql +1 -66
  227. package/dist/schemes/Prompt.js +1 -1
  228. package/dist/schemes/Prompt.js.map +1 -1
  229. package/dist/schemes/Worker.d.ts.map +1 -1
  230. package/dist/schemes/Worker.js +1 -13
  231. package/dist/schemes/Worker.js.map +1 -1
  232. package/dist/schemes/_entry-crud.d.ts +3 -1
  233. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  234. package/dist/schemes/_entry-crud.js +18 -3
  235. package/dist/schemes/_entry-crud.js.map +1 -1
  236. package/dist/schemes/_entry-find.d.ts +4 -2
  237. package/dist/schemes/_entry-find.d.ts.map +1 -1
  238. package/dist/schemes/_entry-find.js +79 -10
  239. package/dist/schemes/_entry-find.js.map +1 -1
  240. package/dist/schemes/_entry-manifest.d.ts +1 -2
  241. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  242. package/dist/schemes/_entry-ops.d.ts +2 -1
  243. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  244. package/dist/schemes/_entry-ops.js +20 -2
  245. package/dist/schemes/_entry-ops.js.map +1 -1
  246. package/dist/schemes/_entry-semantic.d.ts +1 -0
  247. package/dist/schemes/_entry-semantic.d.ts.map +1 -1
  248. package/dist/schemes/_entry-semantic.js +3 -0
  249. package/dist/schemes/_entry-semantic.js.map +1 -1
  250. package/dist/schemes/_entry-semantic.sql +2 -2
  251. package/dist/schemes/_entry-send.d.ts +0 -1
  252. package/dist/schemes/_entry-send.d.ts.map +1 -1
  253. package/dist/schemes/_entry-send.js +5 -80
  254. package/dist/schemes/_entry-send.js.map +1 -1
  255. package/dist/schemes/exec-runtime.d.ts +7 -0
  256. package/dist/schemes/exec-runtime.d.ts.map +1 -0
  257. package/dist/schemes/exec-runtime.js +2 -0
  258. package/dist/schemes/exec-runtime.js.map +1 -0
  259. package/dist/server/ClientReads.d.ts +34 -0
  260. package/dist/server/ClientReads.d.ts.map +1 -0
  261. package/dist/server/ClientReads.js +210 -0
  262. package/dist/server/ClientReads.js.map +1 -0
  263. package/dist/server/Daemon.d.ts +12 -22
  264. package/dist/server/Daemon.d.ts.map +1 -1
  265. package/dist/server/Daemon.js +31 -362
  266. package/dist/server/Daemon.js.map +1 -1
  267. package/dist/server/DaemonModule.d.ts +6 -5
  268. package/dist/server/DaemonModule.d.ts.map +1 -1
  269. package/dist/server/DrainSupervisor.d.ts +3 -2
  270. package/dist/server/DrainSupervisor.d.ts.map +1 -1
  271. package/dist/server/DrainSupervisor.js +7 -3
  272. package/dist/server/DrainSupervisor.js.map +1 -1
  273. package/dist/server/Functionality.d.ts +0 -12
  274. package/dist/server/Functionality.d.ts.map +1 -1
  275. package/dist/server/Functionality.js.map +1 -1
  276. package/dist/server/FunctionalityManager.d.ts +0 -1
  277. package/dist/server/FunctionalityManager.d.ts.map +1 -1
  278. package/dist/server/FunctionalityManager.js +3 -3
  279. package/dist/server/FunctionalityManager.js.map +1 -1
  280. package/dist/server/MembersFunctionality.d.ts +2 -13
  281. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  282. package/dist/server/MembersFunctionality.js +4 -4
  283. package/dist/server/MembersFunctionality.js.map +1 -1
  284. package/dist/server/SkillsFunctionality.d.ts +1 -7
  285. package/dist/server/SkillsFunctionality.d.ts.map +1 -1
  286. package/dist/server/SkillsFunctionality.js +3 -3
  287. package/dist/server/SkillsFunctionality.js.map +1 -1
  288. package/dist/server/WorkerModelResolver.d.ts +17 -0
  289. package/dist/server/WorkerModelResolver.d.ts.map +1 -0
  290. package/dist/server/WorkerModelResolver.js +166 -0
  291. package/dist/server/WorkerModelResolver.js.map +1 -0
  292. package/dist/server/daemon-results.d.ts +5 -0
  293. package/dist/server/daemon-results.d.ts.map +1 -0
  294. package/dist/server/daemon-results.js +7 -0
  295. package/dist/server/daemon-results.js.map +1 -0
  296. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  297. package/dist/server/dispatch-as-plurnk.js +4 -6
  298. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  299. package/dist/server/logEntry.d.ts +0 -1
  300. package/dist/server/logEntry.d.ts.map +1 -1
  301. package/dist/server/logEntry.js +1 -13
  302. package/dist/server/logEntry.js.map +1 -1
  303. package/dist/server/logEntry.sql +1 -5
  304. package/dist/server/loopDocs.d.ts.map +1 -1
  305. package/dist/server/loopDocs.js +11 -2
  306. package/dist/server/loopDocs.js.map +1 -1
  307. package/migrations/001_schema.sql +30 -347
  308. package/package.json +30 -30
@@ -165,7 +165,6 @@ CREATE TABLE IF NOT EXISTS ambient_events (
165
165
  state TEXT NOT NULL CHECK (state IN ('resolved', 'failed', 'cancelled')),
166
166
  outcome TEXT,
167
167
  attrs TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(attrs)),
168
- tags TEXT NOT NULL DEFAULT '[]' CHECK (json_valid(tags) AND json_type(tags) = 'array'),
169
168
  terminated_by TEXT CHECK (terminated_by IS NULL OR terminated_by = 'cancel'),
170
169
  created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
171
170
  CHECK (target_parent_worker_id IS NOT NULL OR workspace_broadcast = 1),
@@ -1432,173 +1431,7 @@ BEGIN
1432
1431
  SELECT RAISE(ABORT, 'log entry model call does not match its represented result');
1433
1432
  END;
1434
1433
 
1435
- -- {§log-item-tags} — log classification plus OPEN/FOLD selection and mutation.
1436
- -- A containing-history teardown cascades its classifications; log KILL leaves
1437
- -- both the event and its forensic classifications intact.
1438
- CREATE TABLE IF NOT EXISTS log_tags (
1439
- log_entry_id INTEGER NOT NULL,
1440
- tag TEXT NOT NULL,
1441
- PRIMARY KEY (log_entry_id, tag),
1442
- FOREIGN KEY (log_entry_id) REFERENCES log_entries(id) ON DELETE CASCADE
1443
- ) STRICT, WITHOUT ROWID;
1444
-
1445
- -- The relational table owns stored tag identity. Producers and curation
1446
- -- signals carry signs, but the stored name never does; delimiters, whitespace,
1447
- -- and control characters cannot become durable classifications through a
1448
- -- private SQL caller either.
1449
- CREATE TRIGGER IF NOT EXISTS log_tags_name_valid
1450
- BEFORE INSERT ON log_tags
1451
- WHEN length(NEW.tag) = 0
1452
- OR substr(NEW.tag, 1, 1) IN ('+', '-')
1453
- OR instr(NEW.tag, '[') > 0
1454
- OR instr(NEW.tag, ']') > 0
1455
- OR instr(NEW.tag, ',') > 0
1456
- OR instr(NEW.tag, char(0)) > 0
1457
- OR EXISTS (
1458
- WITH RECURSIVE offsets(position) AS (
1459
- SELECT 1
1460
- UNION ALL
1461
- SELECT position + 1 FROM offsets WHERE position < length(NEW.tag)
1462
- )
1463
- SELECT 1
1464
- FROM offsets
1465
- WHERE unicode(substr(NEW.tag, position, 1)) BETWEEN 0 AND 32
1466
- OR unicode(substr(NEW.tag, position, 1)) BETWEEN 127 AND 159
1467
- OR unicode(substr(NEW.tag, position, 1)) IN (160, 5760, 8232, 8233, 8239, 8287, 12288, 65279)
1468
- OR unicode(substr(NEW.tag, position, 1)) BETWEEN 8192 AND 8202
1469
- )
1470
- BEGIN
1471
- SELECT RAISE(ABORT, 'log tag name is invalid');
1472
- END;
1473
-
1474
- CREATE INDEX IF NOT EXISTS log_tags_tag ON log_tags (tag);
1475
1434
 
1476
- -- Signal-derived classification is part of the log-row insert, not a later JS
1477
- -- write. This keeps the operation, its ambient occurrence, and its complete
1478
- -- initial folksonomy inside one SQLite commit.
1479
- CREATE TRIGGER IF NOT EXISTS log_entries_classify_signal
1480
- AFTER INSERT ON log_entries
1481
- WHEN NEW.op IN ('FIND', 'READ', 'EDIT', 'COPY', 'MOVE', 'BARE')
1482
- AND NEW.signal IS NOT NULL
1483
- BEGIN
1484
- SELECT CASE
1485
- WHEN json_type(NEW.signal) != 'array'
1486
- OR EXISTS (
1487
- SELECT 1 FROM json_each(NEW.signal)
1488
- WHERE type != 'text'
1489
- OR length(value) = 0
1490
- OR substr(value, 1, 1) = '-'
1491
- OR (
1492
- substr(value, 1, 1) = '+'
1493
- AND (length(value) < 2 OR substr(value, 2, 1) IN ('+', '-'))
1494
- )
1495
- OR instr(value, '[') > 0
1496
- OR instr(value, ']') > 0
1497
- OR instr(value, ',') > 0
1498
- OR instr(value, char(0)) > 0
1499
- OR EXISTS (
1500
- WITH RECURSIVE offsets(position) AS (
1501
- SELECT 1
1502
- UNION ALL
1503
- SELECT position + 1 FROM offsets WHERE position < length(value)
1504
- )
1505
- SELECT 1
1506
- FROM offsets
1507
- WHERE unicode(substr(value, position, 1)) BETWEEN 0 AND 32
1508
- OR unicode(substr(value, position, 1)) BETWEEN 127 AND 159
1509
- OR unicode(substr(value, position, 1)) IN (160, 5760, 8232, 8233, 8239, 8287, 12288, 65279)
1510
- OR unicode(substr(value, position, 1)) BETWEEN 8192 AND 8202
1511
- )
1512
- )
1513
- THEN RAISE(ABORT, 'classifying log operation signal accepts only tag or +tag additions')
1514
- END;
1515
- INSERT OR IGNORE INTO log_tags (log_entry_id, tag)
1516
- SELECT NEW.id, CASE WHEN substr(value, 1, 1) = '+' THEN substr(value, 2) ELSE value END
1517
- FROM json_each(NEW.signal);
1518
-
1519
- -- The ambient-event and classification AFTER INSERT triggers may run in
1520
- -- either order. If the event already exists, finish its initial
1521
- -- snapshot here; otherwise its own trigger aggregates these rows later.
1522
- UPDATE ambient_events
1523
- SET tags = COALESCE((
1524
- SELECT json_group_array(tag)
1525
- FROM (SELECT tag FROM log_tags WHERE log_entry_id = NEW.id ORDER BY tag)
1526
- ), '[]')
1527
- WHERE kind = 'activity'
1528
- AND producer_worker_id = NEW.worker_id
1529
- AND source_record_id = NEW.id;
1530
- END;
1531
-
1532
- -- {§worker-initialization-entry} {§overflow-turn-script} — the turn identity
1533
- -- classifies every row in a kernel-authored recovery/orientation turn. No
1534
- -- caller can omit provenance from either its exact turnOps or its operation
1535
- -- outcomes.
1536
- CREATE TRIGGER IF NOT EXISTS log_entries_classify_plurnk_turn
1537
- AFTER INSERT ON log_entries
1538
- WHEN EXISTS (
1539
- SELECT 1
1540
- FROM turns
1541
- WHERE turns.id = NEW.turn_id
1542
- AND turns.producer = '_plurnk'
1543
- AND turns.kind IN ('initialization', 'overflow')
1544
- )
1545
- BEGIN
1546
- INSERT OR IGNORE INTO log_tags (log_entry_id, tag)
1547
- VALUES (NEW.id, '_plurnk');
1548
- INSERT OR IGNORE INTO log_tags (log_entry_id, tag)
1549
- SELECT NEW.id, CASE turns.kind
1550
- WHEN 'initialization' THEN 'init'
1551
- ELSE 'overflow'
1552
- END
1553
- FROM turns
1554
- WHERE turns.id = NEW.turn_id;
1555
-
1556
- UPDATE ambient_events
1557
- SET tags = COALESCE((
1558
- SELECT json_group_array(tag)
1559
- FROM (SELECT tag FROM log_tags WHERE log_entry_id = NEW.id ORDER BY tag)
1560
- ), '[]')
1561
- WHERE kind = 'activity'
1562
- AND producer_worker_id = NEW.worker_id
1563
- AND source_record_id = NEW.id;
1564
- END;
1565
-
1566
- -- Overflow admission reclassifies a would-be inference turn only after its
1567
- -- pre-model rows exist. Apply the same turn-owned classification to those
1568
- -- rows; later rows are covered by log_entries_classify_plurnk_turn above.
1569
- CREATE TRIGGER IF NOT EXISTS turns_classify_existing_plurnk_rows
1570
- AFTER UPDATE OF producer, kind ON turns
1571
- WHEN NEW.producer = '_plurnk'
1572
- AND NEW.kind IN ('initialization', 'overflow')
1573
- BEGIN
1574
- INSERT OR IGNORE INTO log_tags (log_entry_id, tag)
1575
- SELECT id, '_plurnk' FROM log_entries WHERE turn_id = NEW.id;
1576
- INSERT OR IGNORE INTO log_tags (log_entry_id, tag)
1577
- SELECT id, CASE NEW.kind
1578
- WHEN 'initialization' THEN 'init'
1579
- ELSE 'overflow'
1580
- END
1581
- FROM log_entries
1582
- WHERE turn_id = NEW.id;
1583
-
1584
- UPDATE ambient_events
1585
- SET tags = COALESCE((
1586
- SELECT json_group_array(tag)
1587
- FROM (
1588
- SELECT lt.tag
1589
- FROM log_tags lt
1590
- WHERE lt.log_entry_id = ambient_events.source_record_id
1591
- ORDER BY lt.tag
1592
- )
1593
- ), '[]')
1594
- WHERE kind = 'activity'
1595
- AND producer_worker_id = (
1596
- SELECT l.worker_id FROM loops l WHERE l.id = NEW.loop_id
1597
- )
1598
- AND source_record_id IN (
1599
- SELECT id FROM log_entries WHERE turn_id = NEW.id
1600
- );
1601
- END;
1602
1435
 
1603
1436
  -- Successful OPEN/FOLD/log-KILL rows are durable curation events even though
1604
1437
  -- their ordinary packet projection is suppressed. Preserve the exact selected
@@ -1613,10 +1446,6 @@ CREATE TABLE IF NOT EXISTS log_curation_effects (
1613
1446
  CHECK (json_valid(folded_before) AND json_type(folded_before) = 'array'),
1614
1447
  folded_after TEXT NOT NULL
1615
1448
  CHECK (json_valid(folded_after) AND json_type(folded_after) = 'array'),
1616
- tags_added TEXT NOT NULL DEFAULT '[]'
1617
- CHECK (json_valid(tags_added) AND json_type(tags_added) = 'array'),
1618
- tags_removed TEXT NOT NULL DEFAULT '[]'
1619
- CHECK (json_valid(tags_removed) AND json_type(tags_removed) = 'array'),
1620
1449
  PRIMARY KEY (operation_log_entry_id, target_log_entry_id),
1621
1450
  CHECK (operation_log_entry_id != target_log_entry_id),
1622
1451
  FOREIGN KEY (operation_log_entry_id) REFERENCES log_entries(id) ON DELETE CASCADE,
@@ -1649,7 +1478,7 @@ END;
1649
1478
 
1650
1479
  -- Make an invalid curation record structurally unavailable: the event must be
1651
1480
  -- one successful OPEN/FOLD/log-KILL row, both rows must belong to the same
1652
- -- worker, and its state transition and exact tag deltas must match that op.
1481
+ -- worker, and its state transition must match that op.
1653
1482
  CREATE TRIGGER IF NOT EXISTS log_curation_effects_valid
1654
1483
  BEFORE INSERT ON log_curation_effects
1655
1484
  BEGIN
@@ -1659,28 +1488,24 @@ BEGIN
1659
1488
  FROM log_entries operation
1660
1489
  JOIN log_entries target ON target.id = NEW.target_log_entry_id
1661
1490
  WHERE operation.id = NEW.operation_log_entry_id
1662
- AND operation.op IN ('OPEN', 'FOLD', 'KILL')
1491
+ AND operation.op = 'KILL'
1663
1492
  AND operation.status_rx < 400
1664
1493
  AND operation.worker_id = target.worker_id
1665
1494
  )
1666
1495
  OR NOT EXISTS (
1496
+ -- {§log-kill-scope} — a scoped KILL keeps the row active and changes its visibility;
1497
+ -- a whole KILL retires it with its visibility untouched.
1667
1498
  SELECT 1
1668
1499
  FROM log_entries operation
1669
1500
  WHERE operation.id = NEW.operation_log_entry_id
1501
+ AND operation.op = 'KILL'
1502
+ AND operation.scheme = 'log'
1503
+ AND NEW.active_before = 1
1670
1504
  AND (
1671
- (
1672
- operation.op IN ('OPEN', 'FOLD')
1673
- AND NEW.active_before = 1
1674
- AND NEW.active_after = 1
1675
- )
1505
+ NEW.active_after = 1
1676
1506
  OR (
1677
- operation.op = 'KILL'
1678
- AND operation.scheme = 'log'
1679
- AND NEW.active_before = 1
1680
- AND NEW.active_after = 0
1507
+ NEW.active_after = 0
1681
1508
  AND json(NEW.folded_before) = json(NEW.folded_after)
1682
- AND json_array_length(NEW.tags_added) = 0
1683
- AND json_array_length(NEW.tags_removed) = 0
1684
1509
  )
1685
1510
  )
1686
1511
  )
@@ -1717,55 +1542,18 @@ BEGIN
1717
1542
  )
1718
1543
  )
1719
1544
  )
1720
- OR EXISTS (
1721
- SELECT 1
1722
- FROM (
1723
- SELECT value, type FROM json_each(NEW.tags_added)
1724
- UNION ALL
1725
- SELECT value, type FROM json_each(NEW.tags_removed)
1726
- ) tag
1727
- WHERE tag.type != 'text'
1728
- OR length(tag.value) = 0
1729
- OR substr(tag.value, 1, 1) IN ('+', '-')
1730
- OR instr(tag.value, '[') > 0
1731
- OR instr(tag.value, ']') > 0
1732
- OR instr(tag.value, ',') > 0
1733
- OR instr(tag.value, char(0)) > 0
1734
- OR EXISTS (
1735
- WITH RECURSIVE offsets(position) AS (
1736
- SELECT 1
1737
- UNION ALL
1738
- SELECT position + 1 FROM offsets WHERE position < length(tag.value)
1739
- )
1740
- SELECT 1
1741
- FROM offsets
1742
- WHERE unicode(substr(tag.value, position, 1)) BETWEEN 0 AND 32
1743
- OR unicode(substr(tag.value, position, 1)) BETWEEN 127 AND 159
1744
- OR unicode(substr(tag.value, position, 1)) IN (160, 5760, 8232, 8233, 8239, 8287, 12288, 65279)
1745
- OR unicode(substr(tag.value, position, 1)) BETWEEN 8192 AND 8202
1746
- )
1747
- )
1748
- OR (SELECT COUNT(*) FROM json_each(NEW.tags_added))
1749
- != (SELECT COUNT(DISTINCT value) FROM json_each(NEW.tags_added))
1750
- OR (SELECT COUNT(*) FROM json_each(NEW.tags_removed))
1751
- != (SELECT COUNT(DISTINCT value) FROM json_each(NEW.tags_removed))
1752
- OR EXISTS (
1753
- SELECT 1
1754
- FROM json_each(NEW.tags_added) addition
1755
- JOIN json_each(NEW.tags_removed) removal ON removal.value = addition.value
1756
- )
1757
1545
  THEN RAISE(ABORT, 'invalid log curation effect') END;
1758
1546
  END;
1759
1547
 
1760
1548
  -- The dispatcher binds an exact, transient curation plan into attrs on the
1761
- -- successful OPEN/FOLD/log-KILL row. No other row may carry that payload.
1549
+ -- successful log-KILL row. No other row may carry that payload.
1762
1550
  CREATE TRIGGER IF NOT EXISTS log_entries_curation_payload_valid
1763
1551
  BEFORE INSERT ON log_entries
1764
1552
  WHEN json_type(NEW.attrs, '$.__plurnk_curation') IS NOT NULL
1765
1553
  AND NOT (
1766
- NEW.op IN ('OPEN', 'FOLD', 'KILL')
1554
+ NEW.op = 'KILL'
1767
1555
  AND NEW.status_rx < 400
1768
- AND (NEW.op != 'KILL' OR NEW.scheme = 'log')
1556
+ AND NEW.scheme = 'log'
1769
1557
  AND json_type(NEW.attrs, '$.__plurnk_curation') = 'object'
1770
1558
  )
1771
1559
  BEGIN
@@ -1773,20 +1561,20 @@ BEGIN
1773
1561
  END;
1774
1562
 
1775
1563
  -- One outer INSERT owns the whole landed curation event: exact selected rows,
1776
- -- their before/after projection and tag deltas, and the resulting current
1564
+ -- their before/after projection, and the resulting current
1777
1565
  -- state. Trigger failure rolls the operation row and all effects back together.
1778
1566
  -- The private plan is erased before INSERT returns.
1567
+ -- {§log-kill-scope} — a log KILL either retires a row whole (active 1→0, visibility untouched)
1568
+ -- or folds a span of its body (active stays 1, visibility changes).
1779
1569
  CREATE TRIGGER IF NOT EXISTS log_entries_apply_curation
1780
1570
  AFTER INSERT ON log_entries
1781
- WHEN NEW.op IN ('OPEN', 'FOLD', 'KILL')
1571
+ WHEN NEW.op = 'KILL'
1782
1572
  AND NEW.status_rx < 400
1783
- AND (NEW.op != 'KILL' OR NEW.scheme = 'log')
1573
+ AND NEW.scheme = 'log'
1784
1574
  AND json_type(NEW.attrs, '$.__plurnk_curation') = 'object'
1785
1575
  BEGIN
1786
1576
  SELECT CASE WHEN
1787
1577
  COALESCE(json_type(NEW.attrs, '$.__plurnk_curation.targets'), '') != 'array'
1788
- OR COALESCE(json_type(NEW.attrs, '$.__plurnk_curation.add'), '') != 'array'
1789
- OR COALESCE(json_type(NEW.attrs, '$.__plurnk_curation.remove'), '') != 'array'
1790
1578
  OR json_array_length(NEW.attrs, '$.__plurnk_curation.targets') = 0
1791
1579
  OR EXISTS (
1792
1580
  SELECT 1
@@ -1855,66 +1643,14 @@ BEGIN
1855
1643
  OR target.id = NEW.id
1856
1644
  OR projection.active != json_extract(selected.value, '$.activeBefore')
1857
1645
  OR json(projection.folded) != json(json_extract(selected.value, '$.foldedBefore'))
1858
- OR (
1859
- NEW.op IN ('OPEN', 'FOLD')
1860
- AND NOT (
1861
- json_extract(selected.value, '$.activeBefore') = 1
1862
- AND json_extract(selected.value, '$.activeAfter') = 1
1863
- )
1864
- )
1865
- OR (
1866
- NEW.op = 'KILL'
1867
- AND NOT (
1868
- json_extract(selected.value, '$.activeBefore') = 1
1869
- AND json_extract(selected.value, '$.activeAfter') = 0
1870
- AND json(json_extract(selected.value, '$.foldedBefore')) = json(json_extract(selected.value, '$.foldedAfter'))
1646
+ OR NOT (
1647
+ json_extract(selected.value, '$.activeBefore') = 1
1648
+ AND (
1649
+ json_extract(selected.value, '$.activeAfter') = 1
1650
+ OR json(json_extract(selected.value, '$.foldedBefore')) = json(json_extract(selected.value, '$.foldedAfter'))
1871
1651
  )
1872
1652
  )
1873
1653
  )
1874
- OR EXISTS (
1875
- SELECT 1
1876
- FROM (
1877
- SELECT value, type FROM json_each(NEW.attrs, '$.__plurnk_curation.add')
1878
- UNION ALL
1879
- SELECT value, type FROM json_each(NEW.attrs, '$.__plurnk_curation.remove')
1880
- ) tag
1881
- WHERE tag.type != 'text'
1882
- OR length(tag.value) = 0
1883
- OR substr(tag.value, 1, 1) IN ('+', '-')
1884
- OR instr(tag.value, '[') > 0
1885
- OR instr(tag.value, ']') > 0
1886
- OR instr(tag.value, ',') > 0
1887
- OR instr(tag.value, char(0)) > 0
1888
- OR EXISTS (
1889
- WITH RECURSIVE offsets(position) AS (
1890
- SELECT 1
1891
- UNION ALL
1892
- SELECT position + 1 FROM offsets WHERE position < length(tag.value)
1893
- )
1894
- SELECT 1
1895
- FROM offsets
1896
- WHERE unicode(substr(tag.value, position, 1)) BETWEEN 0 AND 32
1897
- OR unicode(substr(tag.value, position, 1)) BETWEEN 127 AND 159
1898
- OR unicode(substr(tag.value, position, 1)) IN (160, 5760, 8232, 8233, 8239, 8287, 12288, 65279)
1899
- OR unicode(substr(tag.value, position, 1)) BETWEEN 8192 AND 8202
1900
- )
1901
- )
1902
- OR (
1903
- SELECT COUNT(*) FROM json_each(NEW.attrs, '$.__plurnk_curation.add')
1904
- ) != (
1905
- SELECT COUNT(DISTINCT value) FROM json_each(NEW.attrs, '$.__plurnk_curation.add')
1906
- )
1907
- OR (
1908
- SELECT COUNT(*) FROM json_each(NEW.attrs, '$.__plurnk_curation.remove')
1909
- ) != (
1910
- SELECT COUNT(DISTINCT value) FROM json_each(NEW.attrs, '$.__plurnk_curation.remove')
1911
- )
1912
- OR EXISTS (
1913
- SELECT 1
1914
- FROM json_each(NEW.attrs, '$.__plurnk_curation.add') addition
1915
- JOIN json_each(NEW.attrs, '$.__plurnk_curation.remove') removal
1916
- ON removal.value = addition.value
1917
- )
1918
1654
  THEN RAISE(ABORT, 'invalid private log curation payload') END;
1919
1655
 
1920
1656
  INSERT INTO log_curation_effects (
@@ -1923,9 +1659,7 @@ BEGIN
1923
1659
  active_before,
1924
1660
  active_after,
1925
1661
  folded_before,
1926
- folded_after,
1927
- tags_added,
1928
- tags_removed
1662
+ folded_after
1929
1663
  )
1930
1664
  SELECT
1931
1665
  NEW.id,
@@ -1933,31 +1667,7 @@ BEGIN
1933
1667
  json_extract(selected.value, '$.activeBefore'),
1934
1668
  json_extract(selected.value, '$.activeAfter'),
1935
1669
  json_extract(selected.value, '$.foldedBefore'),
1936
- json_extract(selected.value, '$.foldedAfter'),
1937
- COALESCE((
1938
- SELECT json_group_array(ordered.tag)
1939
- FROM (
1940
- SELECT addition.value AS tag
1941
- FROM json_each(NEW.attrs, '$.__plurnk_curation.add') addition
1942
- WHERE NOT EXISTS (
1943
- SELECT 1 FROM log_tags
1944
- WHERE log_entry_id = target.id AND tag = addition.value
1945
- )
1946
- ORDER BY addition.value
1947
- ) ordered
1948
- ), '[]'),
1949
- COALESCE((
1950
- SELECT json_group_array(ordered.tag)
1951
- FROM (
1952
- SELECT removal.value AS tag
1953
- FROM json_each(NEW.attrs, '$.__plurnk_curation.remove') removal
1954
- WHERE EXISTS (
1955
- SELECT 1 FROM log_tags
1956
- WHERE log_entry_id = target.id AND tag = removal.value
1957
- )
1958
- ORDER BY removal.value
1959
- ) ordered
1960
- ), '[]')
1670
+ json_extract(selected.value, '$.foldedAfter')
1961
1671
  FROM json_each(NEW.attrs, '$.__plurnk_curation.targets') selected
1962
1672
  JOIN log_entries target ON target.id = json_extract(selected.value, '$.id');
1963
1673
 
@@ -1977,20 +1687,6 @@ BEGIN
1977
1687
  FROM json_each(NEW.attrs, '$.__plurnk_curation.targets')
1978
1688
  );
1979
1689
 
1980
- DELETE FROM log_tags
1981
- WHERE log_entry_id IN (
1982
- SELECT json_extract(value, '$.id')
1983
- FROM json_each(NEW.attrs, '$.__plurnk_curation.targets')
1984
- )
1985
- AND tag IN (
1986
- SELECT value FROM json_each(NEW.attrs, '$.__plurnk_curation.remove')
1987
- );
1988
-
1989
- INSERT OR IGNORE INTO log_tags (log_entry_id, tag)
1990
- SELECT json_extract(selected.value, '$.id'), addition.value
1991
- FROM json_each(NEW.attrs, '$.__plurnk_curation.targets') selected
1992
- CROSS JOIN json_each(NEW.attrs, '$.__plurnk_curation.add') addition;
1993
-
1994
1690
  UPDATE log_entries
1995
1691
  SET attrs = json_remove(attrs, '$.__plurnk_curation')
1996
1692
  WHERE id = NEW.id;
@@ -2051,14 +1747,7 @@ FROM (
2051
1747
  AND le.status_rx != 304
2052
1748
  AND (
2053
1749
  (
2054
- (
2055
- le.op IN ('EDIT', 'KILL')
2056
- OR (
2057
- le.op = 'SEND'
2058
- AND json_valid(le.signal)
2059
- AND json_extract(le.signal, '$') = 410
2060
- )
2061
- )
1750
+ le.op IN ('EDIT', 'KILL')
2062
1751
  AND le.scheme = 'worker'
2063
1752
  AND le.hostname IS NULL
2064
1753
  AND le.pathname IS NOT NULL
@@ -2097,13 +1786,7 @@ FROM (
2097
1786
  le.status_rx,
2098
1787
  le.state,
2099
1788
  le.outcome,
2100
- json_remove(le.attrs, '$.__plurnk_curation') AS attrs,
2101
- COALESCE((
2102
- SELECT json_group_array(ordered.tag)
2103
- FROM (
2104
- SELECT tag FROM log_tags WHERE log_entry_id = le.id ORDER BY tag
2105
- ) ordered
2106
- ), '[]') AS tags
1789
+ json_remove(le.attrs, '$.__plurnk_curation') AS attrs
2107
1790
  FROM log_entries le
2108
1791
  JOIN workers w ON w.id = le.worker_id
2109
1792
  JOIN loops l ON l.id = le.loop_id
@@ -2133,14 +1816,14 @@ BEGIN
2133
1816
  op, delimiter, signal,
2134
1817
  scheme, username, password, hostname, port, pathname, query, fragment,
2135
1818
  line_marker, tx, mimetype_tx, rx, mimetype_rx, status_rx,
2136
- state, outcome, attrs, tags
1819
+ state, outcome, attrs
2137
1820
  )
2138
1821
  SELECT workspace_id, producer_worker_id, target_parent_worker_id,
2139
1822
  workspace_broadcast, 'activity', source_record_id, at, source,
2140
1823
  op, delimiter, signal,
2141
1824
  scheme, username, password, hostname, port, pathname, query, fragment,
2142
1825
  line_marker, tx, mimetype_tx, rx, mimetype_rx, status_rx,
2143
- state, outcome, attrs, tags
1826
+ state, outcome, attrs
2144
1827
  FROM ambient_activity_candidates
2145
1828
  WHERE source_record_id = NEW.id;
2146
1829
 
@@ -2171,14 +1854,14 @@ BEGIN
2171
1854
  op, delimiter, signal,
2172
1855
  scheme, username, password, hostname, port, pathname, query, fragment,
2173
1856
  line_marker, tx, mimetype_tx, rx, mimetype_rx, status_rx,
2174
- state, outcome, attrs, tags
1857
+ state, outcome, attrs
2175
1858
  )
2176
1859
  SELECT workspace_id, producer_worker_id, target_parent_worker_id,
2177
1860
  workspace_broadcast, 'activity', source_record_id, at, source,
2178
1861
  op, delimiter, signal,
2179
1862
  scheme, username, password, hostname, port, pathname, query, fragment,
2180
1863
  line_marker, tx, mimetype_tx, rx, mimetype_rx, status_rx,
2181
- state, outcome, attrs, tags
1864
+ state, outcome, attrs
2182
1865
  FROM ambient_activity_candidates
2183
1866
  WHERE source_record_id = NEW.id;
2184
1867
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-service",
3
- "version": "1.14.2",
3
+ "version": "1.16.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",
@@ -87,41 +87,41 @@
87
87
  "@opentelemetry/resources": "^2.11.0",
88
88
  "@opentelemetry/sdk-metrics": "^2.11.0",
89
89
  "@opentelemetry/sdk-trace-base": "^2.11.0",
90
- "@plurnk/gbnf": "1.14.2",
91
- "@plurnk/plurnk-a2a": "1.14.2",
92
- "@plurnk/plurnk-agui": "1.14.2",
93
- "@plurnk/plurnk-contracts": "1.14.2",
94
- "@plurnk/plurnk-execs": "1.14.2",
95
- "@plurnk/plurnk-execs-common": "1.14.2",
96
- "@plurnk/plurnk-execs-jq": "1.14.2",
97
- "@plurnk/plurnk-execs-sqlite": "1.14.2",
98
- "@plurnk/plurnk-hooks": "1.14.2",
99
- "@plurnk/plurnk-mcp": "1.14.2",
100
- "@plurnk/plurnk-meta": "1.14.2",
101
- "@plurnk/plurnk-mimetypes": "1.14.2",
102
- "@plurnk/plurnk-mimetypes-application-ipynb": "1.14.2",
103
- "@plurnk/plurnk-mimetypes-application-json": "1.14.2",
104
- "@plurnk/plurnk-mimetypes-application-jsonl": "1.14.2",
105
- "@plurnk/plurnk-mimetypes-application-xml": "1.14.2",
106
- "@plurnk/plurnk-mimetypes-embeddings": "1.14.2",
107
- "@plurnk/plurnk-mimetypes-text-csv": "1.14.2",
108
- "@plurnk/plurnk-mimetypes-text-diff": "1.14.2",
109
- "@plurnk/plurnk-mimetypes-text-dotenv": "1.14.2",
110
- "@plurnk/plurnk-mimetypes-text-html": "1.14.2",
111
- "@plurnk/plurnk-mimetypes-text-ini": "1.14.2",
112
- "@plurnk/plurnk-mimetypes-text-markdown": "1.14.2",
113
- "@plurnk/plurnk-mimetypes-text-plain": "1.14.2",
114
- "@plurnk/plurnk-models": "1.14.2",
115
- "@plurnk/plurnk-providers": "1.14.2",
116
- "@plurnk/plurnk-schemes": "1.14.2",
117
- "@plurnk/plurnk-schemes-http": "1.14.2",
90
+ "@plurnk/gbnf": "1.16.0",
91
+ "@plurnk/plurnk-a2a": "1.16.0",
92
+ "@plurnk/plurnk-agui": "1.16.0",
93
+ "@plurnk/plurnk-contracts": "1.16.0",
94
+ "@plurnk/plurnk-execs": "1.16.0",
95
+ "@plurnk/plurnk-execs-common": "1.16.0",
96
+ "@plurnk/plurnk-execs-jq": "1.16.0",
97
+ "@plurnk/plurnk-execs-sqlite": "1.16.0",
98
+ "@plurnk/plurnk-hooks": "1.16.0",
99
+ "@plurnk/plurnk-mcp": "1.16.0",
100
+ "@plurnk/plurnk-meta": "1.16.0",
101
+ "@plurnk/plurnk-mimetypes": "1.16.0",
102
+ "@plurnk/plurnk-mimetypes-application-ipynb": "1.16.0",
103
+ "@plurnk/plurnk-mimetypes-application-json": "1.16.0",
104
+ "@plurnk/plurnk-mimetypes-application-jsonl": "1.16.0",
105
+ "@plurnk/plurnk-mimetypes-application-xml": "1.16.0",
106
+ "@plurnk/plurnk-mimetypes-embeddings": "1.16.0",
107
+ "@plurnk/plurnk-mimetypes-text-csv": "1.16.0",
108
+ "@plurnk/plurnk-mimetypes-text-diff": "1.16.0",
109
+ "@plurnk/plurnk-mimetypes-text-dotenv": "1.16.0",
110
+ "@plurnk/plurnk-mimetypes-text-html": "1.16.0",
111
+ "@plurnk/plurnk-mimetypes-text-ini": "1.16.0",
112
+ "@plurnk/plurnk-mimetypes-text-markdown": "1.16.0",
113
+ "@plurnk/plurnk-mimetypes-text-plain": "1.16.0",
114
+ "@plurnk/plurnk-models": "1.16.0",
115
+ "@plurnk/plurnk-providers": "1.16.0",
116
+ "@plurnk/plurnk-schemes": "1.16.0",
117
+ "@plurnk/plurnk-schemes-http": "1.16.0",
118
118
  "@possumtech/sqlrite": "^6.5.2",
119
119
  "diff": "^9.0.0",
120
120
  "yaml": "^2.9.0"
121
121
  },
122
122
  "devDependencies": {
123
123
  "@opentelemetry/core": "^2.11.0",
124
- "@plurnk/plurnk-mimetypes-tokenizers": "1.14.2",
124
+ "@plurnk/plurnk-mimetypes-tokenizers": "1.16.0",
125
125
  "@types/diff": "^7.0.2"
126
126
  },
127
127
  "homepage": "https://github.com/plurnk/plurnk-service/tree/main/plurnk-core#readme",