@stage5/lumine 0.2.47 → 0.2.48
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/lib/admin.js +9 -1
- package/lib/commands.js +1 -1
- package/package.json +1 -1
- package/sdk/LUMINE_ADMIN.md +21 -10
package/lib/admin.js
CHANGED
|
@@ -1151,6 +1151,11 @@ export function parseAdminOperation(options) {
|
|
|
1151
1151
|
}
|
|
1152
1152
|
|
|
1153
1153
|
if (namespace === "bot-output" && !action) {
|
|
1154
|
+
if (options.adminDays && options.adminCursor) {
|
|
1155
|
+
throw cliValidationError(
|
|
1156
|
+
"Continue a bot-output --cursor without changing its --days window.",
|
|
1157
|
+
);
|
|
1158
|
+
}
|
|
1154
1159
|
if (options.adminDays) {
|
|
1155
1160
|
const days = Number(options.adminDays);
|
|
1156
1161
|
if (!Number.isInteger(days) || days < 1 || days > 30) {
|
|
@@ -1159,7 +1164,10 @@ export function parseAdminOperation(options) {
|
|
|
1159
1164
|
}
|
|
1160
1165
|
return readOperation(
|
|
1161
1166
|
"bot.output",
|
|
1162
|
-
withQuery("/cli/admin/bot-output", {
|
|
1167
|
+
withQuery("/cli/admin/bot-output", {
|
|
1168
|
+
days: options.adminDays,
|
|
1169
|
+
cursor: options.adminCursor,
|
|
1170
|
+
}),
|
|
1163
1171
|
);
|
|
1164
1172
|
}
|
|
1165
1173
|
|
package/lib/commands.js
CHANGED
|
@@ -2767,7 +2767,7 @@ export function printHelp() {
|
|
|
2767
2767
|
lumine admin comment post --draft-id <id> [--json]
|
|
2768
2768
|
lumine admin comment edit <comment-id> --file <comment.md> [--json]
|
|
2769
2769
|
lumine admin brief [--days <1..30>] [--json]
|
|
2770
|
-
lumine admin bot-output [--days <1..30>] [--json]
|
|
2770
|
+
lumine admin bot-output [--days <1..30>|--cursor <cursor>] [--json]
|
|
2771
2771
|
lumine admin announcement post --file <announcement.md> [--json]
|
|
2772
2772
|
lumine admin chat send <user-id|username> --file <message.md> [--json]
|
|
2773
2773
|
lumine admin news claim [--date YYYY-MM-DD] [--output <claim.json>] [--scaffold <editorial.json>] [--json]
|
package/package.json
CHANGED
package/sdk/LUMINE_ADMIN.md
CHANGED
|
@@ -802,11 +802,13 @@ type BuildCandidates = Success<{
|
|
|
802
802
|
}>;
|
|
803
803
|
```
|
|
804
804
|
|
|
805
|
-
Subject cursors freeze a primary-key high-water mark
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
805
|
+
Subject cursors freeze a primary-key high-water mark plus the server snapshot
|
|
806
|
+
timestamp and traverse descending IDs; bounded scans keep creation timestamps
|
|
807
|
+
inside that confirmed interval. Bounded recommendation cursors freeze both the
|
|
808
|
+
feed-ID high-water mark and the server timestamp, then traverse the indexed
|
|
809
|
+
`(timeStamp, id)` order; this also catches a Daily Reflection whose old feed
|
|
810
|
+
row moved forward when it was reshared. Explicit legacy scans retain the
|
|
811
|
+
descending primary-key walk. A page
|
|
810
812
|
can be empty while `hasMore` remains true; continue until `exhausted`. `--all`
|
|
811
813
|
does that automatically and writes a private checkpoint after every
|
|
812
814
|
server-confirmed page; `--resume` continues only when the checkpoint belongs to
|
|
@@ -1449,6 +1451,7 @@ type NewsSubmit = NewsStatus; // "success"; newspaper includes revisionNumber
|
|
|
1449
1451
|
```bash
|
|
1450
1452
|
lumine admin bot-output --json
|
|
1451
1453
|
lumine admin bot-output --days 3 --json
|
|
1454
|
+
lumine admin bot-output --cursor '<pagination.nextCursor>' --json
|
|
1452
1455
|
```
|
|
1453
1456
|
|
|
1454
1457
|
**Every run reviews what Zero and Ciel themselves said since the last run.**
|
|
@@ -1463,11 +1466,19 @@ Reflections — and it surfaced only because the kid showed Mikey).
|
|
|
1463
1466
|
(`--days 1..30` overrides): `chatMessages` (every stored Zero/Ciel chat and
|
|
1464
1467
|
reflection reply, with full text and recipient metadata when its best-effort
|
|
1465
1468
|
prompt audit exists) and `comments`
|
|
1466
|
-
(every public bot comment/reply).
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1469
|
+
(every public bot comment/reply). Individual utterances are returned in full;
|
|
1470
|
+
the API never clips their tails. The first response freezes a canonical
|
|
1471
|
+
high-water mark for both sources. Truncation flags mark another page beyond
|
|
1472
|
+
the 400-row or bounded-response-size budget; continue with the exact
|
|
1473
|
+
`pagination.nextCursor` until
|
|
1474
|
+
`pagination.exhausted` is true and both flags are false. A cursor retains the
|
|
1475
|
+
original time window and cannot be combined with `--days`. Do not complete the
|
|
1476
|
+
run while either flag remains true. The default window deliberately overlaps
|
|
1477
|
+
from the previous completed run's start, so output created after its review
|
|
1478
|
+
snapshot but before completion is reviewed again instead of being lost. Run it
|
|
1479
|
+
right after the brief, and **read every row** — the tool deliberately does no
|
|
1480
|
+
filtering, scoring, or keyword matching, because the judgment is the reviewing
|
|
1481
|
+
agent's.
|
|
1471
1482
|
|
|
1472
1483
|
**Purpose and privacy boundary:** this audits how Twinkle's bots treated
|
|
1473
1484
|
members; it is not thought-policing or a moderation queue for members' private
|