@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.
- package/.env.defaults +2 -2
- package/SPEC.md +243 -173
- package/digest-sql/curation/curation.sql +1 -1
- package/dist/build-info.json +1 -1
- package/dist/content/byte-view.d.ts +14 -0
- package/dist/content/byte-view.d.ts.map +1 -0
- package/dist/content/byte-view.js +33 -0
- package/dist/content/byte-view.js.map +1 -0
- package/dist/content/edit-receipt.d.ts.map +1 -1
- package/dist/content/edit-receipt.js +12 -1
- package/dist/content/edit-receipt.js.map +1 -1
- package/dist/content/line-marker.d.ts +2 -1
- package/dist/content/line-marker.d.ts.map +1 -1
- package/dist/content/line-marker.js +1 -0
- package/dist/content/line-marker.js.map +1 -1
- package/dist/content/matcher.d.ts +1 -0
- package/dist/content/matcher.d.ts.map +1 -1
- package/dist/content/matcher.js +1 -0
- package/dist/content/matcher.js.map +1 -1
- package/dist/content/read-projector.d.ts +4 -1
- package/dist/content/read-projector.d.ts.map +1 -1
- package/dist/content/read-projector.js +80 -3
- package/dist/content/read-projector.js.map +1 -1
- package/dist/core/AdmittedTurnExecutor.d.ts +43 -0
- package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -0
- package/dist/core/AdmittedTurnExecutor.js +245 -0
- package/dist/core/AdmittedTurnExecutor.js.map +1 -0
- package/dist/core/BareBatchRunner.d.ts +26 -0
- package/dist/core/BareBatchRunner.d.ts.map +1 -0
- package/dist/core/BareBatchRunner.js +104 -0
- package/dist/core/BareBatchRunner.js.map +1 -0
- package/dist/core/BudgetReadout.d.ts +1 -1
- package/dist/core/BudgetReadout.d.ts.map +1 -1
- package/dist/core/BudgetReadout.js +42 -47
- package/dist/core/BudgetReadout.js.map +1 -1
- package/dist/core/CapabilityResolver.d.ts +2 -1
- package/dist/core/CapabilityResolver.d.ts.map +1 -1
- package/dist/core/CapabilityResolver.js +8 -9
- package/dist/core/CapabilityResolver.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +1 -1
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/DataStatementRunner.d.ts +35 -0
- package/dist/core/DataStatementRunner.d.ts.map +1 -0
- package/dist/core/DataStatementRunner.js +252 -0
- package/dist/core/DataStatementRunner.js.map +1 -0
- package/dist/core/Dispatcher.d.ts +8 -3
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +88 -738
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/EditMutations.d.ts +39 -0
- package/dist/core/EditMutations.d.ts.map +1 -0
- package/dist/core/EditMutations.js +418 -0
- package/dist/core/EditMutations.js.map +1 -0
- package/dist/core/Engine.d.ts +2 -23
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +18 -240
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +24 -23
- package/dist/core/KillHandler.d.ts +32 -0
- package/dist/core/KillHandler.d.ts.map +1 -0
- package/dist/core/KillHandler.js +179 -0
- package/dist/core/KillHandler.js.map +1 -0
- package/dist/core/LogVisibility.d.ts +1 -1
- package/dist/core/LogVisibility.d.ts.map +1 -1
- package/dist/core/LogVisibility.js +3 -4
- package/dist/core/LogVisibility.js.map +1 -1
- package/dist/core/LogWriter.d.ts +42 -0
- package/dist/core/LogWriter.d.ts.map +1 -0
- package/dist/core/LogWriter.js +136 -0
- package/dist/core/LogWriter.js.map +1 -0
- package/dist/core/LoopDriver.d.ts +46 -0
- package/dist/core/LoopDriver.d.ts.map +1 -0
- package/dist/core/LoopDriver.js +263 -0
- package/dist/core/LoopDriver.js.map +1 -0
- package/dist/core/LoopLifecycle.d.ts +2 -1
- package/dist/core/LoopLifecycle.d.ts.map +1 -1
- package/dist/core/MembershipMaterialization.d.ts +7 -0
- package/dist/core/MembershipMaterialization.d.ts.map +1 -0
- package/dist/core/MembershipMaterialization.js +283 -0
- package/dist/core/MembershipMaterialization.js.map +1 -0
- package/dist/core/MutationEffects.d.ts +29 -0
- package/dist/core/MutationEffects.d.ts.map +1 -0
- package/dist/core/MutationEffects.js +318 -0
- package/dist/core/MutationEffects.js.map +1 -0
- package/dist/core/OverflowTurn.d.ts +4 -4
- package/dist/core/OverflowTurn.d.ts.map +1 -1
- package/dist/core/OverflowTurn.js +6 -7
- package/dist/core/OverflowTurn.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +31 -9
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/ResourceMutations.d.ts +12 -36
- package/dist/core/ResourceMutations.d.ts.map +1 -1
- package/dist/core/ResourceMutations.js +27 -1351
- package/dist/core/ResourceMutations.js.map +1 -1
- package/dist/core/ResourceSelector.d.ts +21 -0
- package/dist/core/ResourceSelector.d.ts.map +1 -0
- package/dist/core/ResourceSelector.js +233 -0
- package/dist/core/ResourceSelector.js.map +1 -0
- package/dist/core/ResourceTransfers.d.ts +55 -0
- package/dist/core/ResourceTransfers.d.ts.map +1 -0
- package/dist/core/ResourceTransfers.js +525 -0
- package/dist/core/ResourceTransfers.js.map +1 -0
- package/dist/core/SchemeRegistry.js +2 -2
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/SendBroadcastHandler.d.ts +40 -0
- package/dist/core/SendBroadcastHandler.d.ts.map +1 -0
- package/dist/core/SendBroadcastHandler.js +159 -0
- package/dist/core/SendBroadcastHandler.js.map +1 -0
- package/dist/core/StoredPacket.d.ts +11 -0
- package/dist/core/StoredPacket.d.ts.map +1 -1
- package/dist/core/StoredPacket.js +22 -1
- package/dist/core/StoredPacket.js.map +1 -1
- package/dist/core/StrikeRail.d.ts.map +1 -1
- package/dist/core/StrikeRail.js +19 -9
- package/dist/core/StrikeRail.js.map +1 -1
- package/dist/core/TokenCalibration.d.ts +16 -0
- package/dist/core/TokenCalibration.d.ts.map +1 -0
- package/dist/core/TokenCalibration.js +35 -0
- package/dist/core/TokenCalibration.js.map +1 -0
- package/dist/core/ToolResources.d.ts.map +1 -1
- package/dist/core/ToolResources.js +15 -12
- package/dist/core/ToolResources.js.map +1 -1
- package/dist/core/TurnMaterialization.d.ts +37 -0
- package/dist/core/TurnMaterialization.d.ts.map +1 -0
- package/dist/core/TurnMaterialization.js +296 -0
- package/dist/core/TurnMaterialization.js.map +1 -0
- package/dist/core/TurnOps.d.ts.map +1 -1
- package/dist/core/TurnOps.js +6 -8
- package/dist/core/TurnOps.js.map +1 -1
- package/dist/core/TurnRunner.d.ts +15 -27
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +76 -670
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/WorkerControlHandler.d.ts +15 -0
- package/dist/core/WorkerControlHandler.d.ts.map +1 -0
- package/dist/core/WorkerControlHandler.js +89 -0
- package/dist/core/WorkerControlHandler.js.map +1 -0
- package/dist/core/attachments.d.ts +14 -0
- package/dist/core/attachments.d.ts.map +1 -0
- package/dist/core/attachments.js +18 -0
- package/dist/core/attachments.js.map +1 -0
- package/dist/core/fork.d.ts.map +1 -1
- package/dist/core/fork.js +0 -4
- package/dist/core/fork.js.map +1 -1
- package/dist/core/fork.sql +5 -16
- package/dist/core/git-membership.d.ts +15 -0
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +4 -273
- package/dist/core/git-membership.js.map +1 -1
- package/dist/core/git-state.d.ts +2 -1
- package/dist/core/git-state.d.ts.map +1 -1
- package/dist/core/mutation-types.d.ts +102 -0
- package/dist/core/mutation-types.d.ts.map +1 -0
- package/dist/core/mutation-types.js +2 -0
- package/dist/core/mutation-types.js.map +1 -0
- package/dist/core/operation-target-groups.js +1 -1
- package/dist/core/operation-target-groups.js.map +1 -1
- package/dist/core/packet-wire.d.ts +7 -6
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +96 -68
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plurnk-uri.d.ts +0 -1
- package/dist/core/plurnk-uri.d.ts.map +1 -1
- package/dist/core/plurnk-uri.js +1 -1
- package/dist/core/plurnk-uri.js.map +1 -1
- package/dist/core/statement-primary.d.ts +4 -0
- package/dist/core/statement-primary.d.ts.map +1 -0
- package/dist/core/statement-primary.js +3 -0
- package/dist/core/statement-primary.js.map +1 -0
- package/dist/core/teaching-corpus.d.ts +0 -1
- package/dist/core/teaching-corpus.d.ts.map +1 -1
- package/dist/core/teaching-corpus.js +0 -9
- package/dist/core/teaching-corpus.js.map +1 -1
- package/dist/core/turn-scheduler.js +3 -3
- package/dist/core/turn-scheduler.js.map +1 -1
- package/dist/core/turn-signals.d.ts +15 -0
- package/dist/core/turn-signals.d.ts.map +1 -0
- package/dist/core/turn-signals.js +19 -0
- package/dist/core/turn-signals.js.map +1 -0
- package/dist/core/worker-settings.d.ts +0 -1
- package/dist/core/worker-settings.d.ts.map +1 -1
- package/dist/core/worker-settings.js +1 -1
- package/dist/core/worker-settings.js.map +1 -1
- package/dist/digest/Digest.d.ts +3 -16
- package/dist/digest/Digest.d.ts.map +1 -1
- package/dist/digest/Digest.js +10 -958
- package/dist/digest/Digest.js.map +1 -1
- package/dist/digest/DigestRender.d.ts +12 -0
- package/dist/digest/DigestRender.d.ts.map +1 -0
- package/dist/digest/DigestRender.js +641 -0
- package/dist/digest/DigestRender.js.map +1 -0
- package/dist/digest/DigestRequiem.d.ts +13 -0
- package/dist/digest/DigestRequiem.d.ts.map +1 -0
- package/dist/digest/DigestRequiem.js +332 -0
- package/dist/digest/DigestRequiem.js.map +1 -0
- package/dist/digest/digest-rows.d.ts +303 -0
- package/dist/digest/digest-rows.d.ts.map +1 -0
- package/dist/digest/digest-rows.js +2 -0
- package/dist/digest/digest-rows.js.map +1 -0
- package/dist/digest/digest.sql +1 -7
- package/dist/observe/api.d.ts +0 -2
- package/dist/observe/api.d.ts.map +1 -1
- package/dist/observe/api.js +2 -2
- package/dist/observe/api.js.map +1 -1
- package/dist/observe/metrics.d.ts +0 -1
- package/dist/observe/metrics.d.ts.map +1 -1
- package/dist/observe/metrics.js +0 -1
- package/dist/observe/metrics.js.map +1 -1
- package/dist/schemes/Exec.d.ts +4 -1
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +89 -48
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts +2 -1
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +3 -3
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/File.d.ts +4 -1
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +100 -13
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts +4 -5
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +26 -118
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +1 -66
- package/dist/schemes/Prompt.js +1 -1
- package/dist/schemes/Prompt.js.map +1 -1
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +1 -13
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts +3 -1
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +18 -3
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-find.d.ts +4 -2
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +79 -10
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-manifest.d.ts +1 -2
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.d.ts +2 -1
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +20 -2
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-semantic.d.ts +1 -0
- package/dist/schemes/_entry-semantic.d.ts.map +1 -1
- package/dist/schemes/_entry-semantic.js +3 -0
- package/dist/schemes/_entry-semantic.js.map +1 -1
- package/dist/schemes/_entry-semantic.sql +2 -2
- package/dist/schemes/_entry-send.d.ts +0 -1
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js +5 -80
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/schemes/exec-runtime.d.ts +7 -0
- package/dist/schemes/exec-runtime.d.ts.map +1 -0
- package/dist/schemes/exec-runtime.js +2 -0
- package/dist/schemes/exec-runtime.js.map +1 -0
- package/dist/server/ClientReads.d.ts +34 -0
- package/dist/server/ClientReads.d.ts.map +1 -0
- package/dist/server/ClientReads.js +210 -0
- package/dist/server/ClientReads.js.map +1 -0
- package/dist/server/Daemon.d.ts +12 -22
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +31 -362
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DaemonModule.d.ts +6 -5
- package/dist/server/DaemonModule.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.d.ts +3 -2
- package/dist/server/DrainSupervisor.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.js +7 -3
- package/dist/server/DrainSupervisor.js.map +1 -1
- package/dist/server/Functionality.d.ts +0 -12
- package/dist/server/Functionality.d.ts.map +1 -1
- package/dist/server/Functionality.js.map +1 -1
- package/dist/server/FunctionalityManager.d.ts +0 -1
- package/dist/server/FunctionalityManager.d.ts.map +1 -1
- package/dist/server/FunctionalityManager.js +3 -3
- package/dist/server/FunctionalityManager.js.map +1 -1
- package/dist/server/MembersFunctionality.d.ts +2 -13
- package/dist/server/MembersFunctionality.d.ts.map +1 -1
- package/dist/server/MembersFunctionality.js +4 -4
- package/dist/server/MembersFunctionality.js.map +1 -1
- package/dist/server/SkillsFunctionality.d.ts +1 -7
- package/dist/server/SkillsFunctionality.d.ts.map +1 -1
- package/dist/server/SkillsFunctionality.js +3 -3
- package/dist/server/SkillsFunctionality.js.map +1 -1
- package/dist/server/WorkerModelResolver.d.ts +17 -0
- package/dist/server/WorkerModelResolver.d.ts.map +1 -0
- package/dist/server/WorkerModelResolver.js +166 -0
- package/dist/server/WorkerModelResolver.js.map +1 -0
- package/dist/server/daemon-results.d.ts +5 -0
- package/dist/server/daemon-results.d.ts.map +1 -0
- package/dist/server/daemon-results.js +7 -0
- package/dist/server/daemon-results.js.map +1 -0
- package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
- package/dist/server/dispatch-as-plurnk.js +4 -6
- package/dist/server/dispatch-as-plurnk.js.map +1 -1
- package/dist/server/logEntry.d.ts +0 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +1 -13
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/logEntry.sql +1 -5
- package/dist/server/loopDocs.d.ts.map +1 -1
- package/dist/server/loopDocs.js +11 -2
- package/dist/server/loopDocs.js.map +1 -1
- package/migrations/001_schema.sql +30 -347
- 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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
1554
|
+
NEW.op = 'KILL'
|
|
1767
1555
|
AND NEW.status_rx < 400
|
|
1768
|
-
AND
|
|
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
|
|
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
|
|
1571
|
+
WHEN NEW.op = 'KILL'
|
|
1782
1572
|
AND NEW.status_rx < 400
|
|
1783
|
-
AND
|
|
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
|
-
|
|
1860
|
-
AND
|
|
1861
|
-
json_extract(selected.value, '$.
|
|
1862
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
91
|
-
"@plurnk/plurnk-a2a": "1.
|
|
92
|
-
"@plurnk/plurnk-agui": "1.
|
|
93
|
-
"@plurnk/plurnk-contracts": "1.
|
|
94
|
-
"@plurnk/plurnk-execs": "1.
|
|
95
|
-
"@plurnk/plurnk-execs-common": "1.
|
|
96
|
-
"@plurnk/plurnk-execs-jq": "1.
|
|
97
|
-
"@plurnk/plurnk-execs-sqlite": "1.
|
|
98
|
-
"@plurnk/plurnk-hooks": "1.
|
|
99
|
-
"@plurnk/plurnk-mcp": "1.
|
|
100
|
-
"@plurnk/plurnk-meta": "1.
|
|
101
|
-
"@plurnk/plurnk-mimetypes": "1.
|
|
102
|
-
"@plurnk/plurnk-mimetypes-application-ipynb": "1.
|
|
103
|
-
"@plurnk/plurnk-mimetypes-application-json": "1.
|
|
104
|
-
"@plurnk/plurnk-mimetypes-application-jsonl": "1.
|
|
105
|
-
"@plurnk/plurnk-mimetypes-application-xml": "1.
|
|
106
|
-
"@plurnk/plurnk-mimetypes-embeddings": "1.
|
|
107
|
-
"@plurnk/plurnk-mimetypes-text-csv": "1.
|
|
108
|
-
"@plurnk/plurnk-mimetypes-text-diff": "1.
|
|
109
|
-
"@plurnk/plurnk-mimetypes-text-dotenv": "1.
|
|
110
|
-
"@plurnk/plurnk-mimetypes-text-html": "1.
|
|
111
|
-
"@plurnk/plurnk-mimetypes-text-ini": "1.
|
|
112
|
-
"@plurnk/plurnk-mimetypes-text-markdown": "1.
|
|
113
|
-
"@plurnk/plurnk-mimetypes-text-plain": "1.
|
|
114
|
-
"@plurnk/plurnk-models": "1.
|
|
115
|
-
"@plurnk/plurnk-providers": "1.
|
|
116
|
-
"@plurnk/plurnk-schemes": "1.
|
|
117
|
-
"@plurnk/plurnk-schemes-http": "1.
|
|
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.
|
|
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",
|