@maka/maka-cli 5.66.0 → 5.67.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/bundle/typescript/package.json +1 -1
- package/bundle/typescript/src/commands/game/_index.d.ts +1 -0
- package/bundle/typescript/src/commands/game/_index.js +1 -0
- package/bundle/typescript/src/commands/game/_index.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.d.ts +103 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +423 -25
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.d.ts +15 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +61 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/review.d.ts +39 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/review.js +48 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/review.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +15 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.d.ts +87 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.js +320 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +32 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +8 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +48 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +91 -7
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/headless-harness.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js +23 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +26 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +55 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/repro.d.ts +106 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/repro.js +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/repro.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.d.ts +9 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.d.ts +17 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js +250 -36
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.d.ts +30 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.js +58 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.d.ts +85 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.js +100 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.d.ts +45 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js +45 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/commit-ref.d.ts +13 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/commit-ref.js +22 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/commit-ref.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/handoff.d.ts +42 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/handoff.js +57 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/handoff.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/repro-launch.d.ts +68 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/repro-launch.js +147 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/repro-launch.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +39 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js +46 -0
- package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.d.ts +3 -1
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +269 -42
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/tools/log/log.class.d.ts +17 -0
- package/bundle/typescript/src/tools/log/log.class.js +30 -1
- package/bundle/typescript/src/tools/log/log.class.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Command } from './command.js';
|
|
2
2
|
import { hint } from '../utilities/hints.js';
|
|
3
3
|
import { authToken } from '../utilities/cloud-saves.js';
|
|
4
|
-
import { submitBacklog, fetchBacklog, postBacklogComment, postBacklogSignoff, postBacklogReject, BACKLOG_STATUSES, } from '../utilities/backlog.js';
|
|
4
|
+
import { submitBacklog, fetchBacklog, postBacklogComment, postBacklogSignoff, postBacklogReject, postBacklogClose, BACKLOG_STATUSES, } from '../utilities/backlog.js';
|
|
5
5
|
import { noteBacklogOutcome } from '../utilities/playtester.js';
|
|
6
6
|
import { takeIndex } from '../utilities/fuzzy-match.js';
|
|
7
7
|
import { optionMark } from '../utilities/log-style.js';
|
|
8
|
-
import {
|
|
8
|
+
import { statusLabel, verdictLabel, boardPrintOrder } from '../utilities/backlog-vocab.js';
|
|
9
|
+
import { loadReviewQueue, reviewSnapshot, reviewItemAt, isValidationRow, reviewDisplayOrder, parseRejection, parseReproRequest, markReviewAnswered, rememberBoard, boardItemAt, boardSize, } from '../utilities/backlog-review.js';
|
|
9
10
|
/** One line of somebody's report, kept to a skimmable width. */
|
|
10
11
|
function truncate(text, max) {
|
|
11
12
|
const flat = text.replace(/\s+/g, ' ').trim();
|
|
@@ -36,7 +37,10 @@ export class BacklogCommand extends Command {
|
|
|
36
37
|
static description = 'File a play-tester item that somebody acts on -- it goes to maka-cli.com, keeps a link to this session, and comes back checked against the rulebooks. "backlog <what you noticed>" files one; "backlog list [status]" reads the board. For private scribbles, use "note".';
|
|
37
38
|
static subcommands = [
|
|
38
39
|
{ usage: 'backlog <text>', short: 'File an item against this session.' },
|
|
39
|
-
{ usage: 'backlog list', short: 'The whole board,
|
|
40
|
+
{ usage: 'backlog list', short: 'The whole board, what needs you last.' },
|
|
41
|
+
{ usage: 'backlog <n>', short: 'Read board item n in full.' },
|
|
42
|
+
{ usage: 'backlog repro <n>', short: 'Play the repro bench for board item n.' },
|
|
43
|
+
{ usage: 'backlog close <n> [why]', short: 'Close item n outright -- filed in error, duplicate, no longer real.' },
|
|
40
44
|
{ usage: 'backlog list <status>', short: `Filter: ${BACKLOG_STATUSES.join(', ')}.` },
|
|
41
45
|
{
|
|
42
46
|
usage: 'backlog review',
|
|
@@ -63,6 +67,44 @@ export class BacklogCommand extends Command {
|
|
|
63
67
|
if (args.length === 0 || sub === 'list') {
|
|
64
68
|
return this.list(args[1]);
|
|
65
69
|
}
|
|
70
|
+
// A BARE NUMBER READS THAT ROW OF THE BOARD, and it has to be caught
|
|
71
|
+
// here for the same reason `list` and `review` are: everything that
|
|
72
|
+
// reaches the bottom of this method FILES AN ITEM. Without this,
|
|
73
|
+
// "backlog 3" -- the obvious thing to type at a numbered list --
|
|
74
|
+
// would quietly file a new report whose entire text is "3".
|
|
75
|
+
//
|
|
76
|
+
// `backlog repro <n>` drops into that row's bench. Both resolve
|
|
77
|
+
// against the BOARD snapshot, never the review queue's: they are
|
|
78
|
+
// different sets, so a number cannot mean a row in both.
|
|
79
|
+
if (/^\d{1,3}$/.test(sub)) {
|
|
80
|
+
return this.readBoardItem(Number(sub));
|
|
81
|
+
}
|
|
82
|
+
if (sub === 'repro') {
|
|
83
|
+
return this.reproFromBoard(args[1]);
|
|
84
|
+
}
|
|
85
|
+
if (sub === 'close') {
|
|
86
|
+
return this.closeFromBoard(args[1], args.slice(2).join(' '));
|
|
87
|
+
}
|
|
88
|
+
// ACCEPT AND REJECT ARE COMMANDS, NOT REPORTS.
|
|
89
|
+
//
|
|
90
|
+
// Claimed here for the same reason `repro` was, and after the same
|
|
91
|
+
// kind of accident: on 2026-08-28 a play-tester in a bench typed
|
|
92
|
+
// "backlog accept" and this method filed a backlog item whose entire
|
|
93
|
+
// text was the word "accept" -- which then went off to be vetted
|
|
94
|
+
// against the rulebooks, came back "needs detail", and sat on the
|
|
95
|
+
// open board as noise (4svHkpnDhWcXDzPsX).
|
|
96
|
+
//
|
|
97
|
+
// The rule this keeps proving: on a verb whose default is to CREATE
|
|
98
|
+
// something, every unclaimed word is data. Any word a player could
|
|
99
|
+
// reasonably read as a command has to be claimed before they can
|
|
100
|
+
// reach for it -- and being in a bench is exactly when "accept" is
|
|
101
|
+
// the obvious thing to type.
|
|
102
|
+
if (sub === 'accept' || sub === 'reject') {
|
|
103
|
+
// Route to the review answer rather than refusing: in a bench this
|
|
104
|
+
// is precisely what they meant, and outside one the review path
|
|
105
|
+
// explains itself far better than an error here could.
|
|
106
|
+
return this.review(args);
|
|
107
|
+
}
|
|
66
108
|
// "review" is checked BEFORE the fall-through to file(), or
|
|
67
109
|
// answering an item would file a new one whose text begins with the
|
|
68
110
|
// word "review" -- the same shape as `backlog open` filing an item
|
|
@@ -118,6 +160,23 @@ export class BacklogCommand extends Command {
|
|
|
118
160
|
// numbering. This is the ONLY place the queue is refetched.
|
|
119
161
|
if (args.length === 0)
|
|
120
162
|
return this.showQueue();
|
|
163
|
+
// YOU ARE ALREADY REVIEWING ONE (player ruling 2026-08-28: "I
|
|
164
|
+
// shouldn't have to pick from the list of review items -- I AM
|
|
165
|
+
// reviewing an item").
|
|
166
|
+
//
|
|
167
|
+
// In a repro bench the session was stood up FOR a specific report,
|
|
168
|
+
// so "backlog review reject <why>" needs no number: asking which
|
|
169
|
+
// item is asking a question the launch already answered. Checked
|
|
170
|
+
// before the index resolver, because "reject" is not a number and
|
|
171
|
+
// takeIndex would refuse it with advice to go and read a list --
|
|
172
|
+
// which is the exact detour being removed.
|
|
173
|
+
//
|
|
174
|
+
// Outside a bench nothing changes: with no bound item there is
|
|
175
|
+
// genuinely more than one thing they could mean, and the list is
|
|
176
|
+
// the honest answer.
|
|
177
|
+
const boundId = this.game?.reproItemId;
|
|
178
|
+
if (boundId)
|
|
179
|
+
return this.answerBound(boundId, args.join(' ').trim());
|
|
121
180
|
const queue = reviewSnapshot();
|
|
122
181
|
if (queue.length === 0) {
|
|
123
182
|
// No snapshot means no list they could have counted on, so we do
|
|
@@ -164,6 +223,23 @@ export class BacklogCommand extends Command {
|
|
|
164
223
|
// status fallback renderItem uses, so both halves agree about which
|
|
165
224
|
// row this is.
|
|
166
225
|
const validation = isValidationRow(item);
|
|
226
|
+
// "repro" IS A COMMAND, NOT AN ANSWER, and it is claimed here --
|
|
227
|
+
// BEFORE the sign-off below -- because everything that reaches the
|
|
228
|
+
// sign-off is treated as the reporter's confirmation.
|
|
229
|
+
//
|
|
230
|
+
// Claimed the hard way. On 2026-08-28 the reporter typed
|
|
231
|
+
// "backlog review 1 repro" at a verb that did not exist yet; it fell
|
|
232
|
+
// through as their answer and closed b9YeNqTNBJuk9dbrk. A sign-off
|
|
233
|
+
// is irreversible from the client -- the reject route refuses any
|
|
234
|
+
// item already carrying one -- so a word had to be reserved the
|
|
235
|
+
// moment it was described to anybody, not the moment it worked.
|
|
236
|
+
//
|
|
237
|
+
// Reserved on BOTH kinds of row. On a question row it would only
|
|
238
|
+
// post a stray comment rather than close anything, but "repro"
|
|
239
|
+
// is no more an answer to a question than it is a confirmation.
|
|
240
|
+
if (parseReproRequest(text)) {
|
|
241
|
+
return this.repro(item, n);
|
|
242
|
+
}
|
|
167
243
|
// "backlog review 1 reject <why>" -- the reporter says NO (user
|
|
168
244
|
// request 2026-08-27). Until this existed the only answer a
|
|
169
245
|
// validation request could take was yes: saying "still broken" left
|
|
@@ -182,6 +258,8 @@ export class BacklogCommand extends Command {
|
|
|
182
258
|
if (!why) {
|
|
183
259
|
return `Say what's still wrong: {white-fg}backlog review ${n} reject <what you saw>{/white-fg}`;
|
|
184
260
|
}
|
|
261
|
+
// The INDEXED path is never a bench (a bench answers through
|
|
262
|
+
// answerBound), so the runner name here is a real one.
|
|
185
263
|
const rejOutcome = await postBacklogReject(item.id, why, this.actor?.name);
|
|
186
264
|
noteBacklogOutcome(rejOutcome);
|
|
187
265
|
if (rejOutcome !== 'ok')
|
|
@@ -244,7 +322,7 @@ export class BacklogCommand extends Command {
|
|
|
244
322
|
head,
|
|
245
323
|
`{white-fg}${left} still waiting on you:{/white-fg}`,
|
|
246
324
|
...this.renderRows(refreshed.items),
|
|
247
|
-
hint(`"backlog review <n> <your answer>" -- the numbers have been redealt from 1.`),
|
|
325
|
+
hint(`"backlog review <n> <your answer>" -- the numbers have been redealt from 1. "backlog review <n> repro" plays a bench.`),
|
|
248
326
|
].filter(Boolean).join('\n');
|
|
249
327
|
}
|
|
250
328
|
/**
|
|
@@ -281,7 +359,7 @@ export class BacklogCommand extends Command {
|
|
|
281
359
|
return [
|
|
282
360
|
`{cyan-fg}WAITING ON YOU{/cyan-fg}`,
|
|
283
361
|
...this.renderRows(items),
|
|
284
|
-
hint(`"backlog review <n> <your answer>" replies. "backlog review <n>"
|
|
362
|
+
hint(`"backlog review <n> <your answer>" replies, "reject <what is wrong>" sends it back. "backlog review <n> repro" drops you into its bench.`),
|
|
285
363
|
].filter(Boolean).join('\n');
|
|
286
364
|
}
|
|
287
365
|
/**
|
|
@@ -320,8 +398,292 @@ export class BacklogCommand extends Command {
|
|
|
320
398
|
if (validation && it.commits?.length) {
|
|
321
399
|
rows.push(` {white-fg}fixed by: ${it.commits.slice(0, 3).join(', ')}{/white-fg}`);
|
|
322
400
|
}
|
|
401
|
+
// A BENCH EXISTS -- said on the row, so it is visible while skimming
|
|
402
|
+
// rather than found by typing "repro" at each one in turn.
|
|
403
|
+
if (it.repro?.steps?.length) {
|
|
404
|
+
rows.push(` {green-fg}bench ready -- "backlog review ${n} repro"{/green-fg}`);
|
|
405
|
+
}
|
|
323
406
|
return rows.join('\n');
|
|
324
407
|
}
|
|
408
|
+
/**
|
|
409
|
+
* ANSWERING THE ITEM THIS SESSION IS ABOUT -- no index, because there
|
|
410
|
+
* is only one thing it could mean.
|
|
411
|
+
*
|
|
412
|
+
* backlog review reject <what is still wrong>
|
|
413
|
+
* backlog review accept [what you saw]
|
|
414
|
+
* backlog review <what you saw> (accept, said plainly)
|
|
415
|
+
* backlog review repro (re-read the steps)
|
|
416
|
+
*
|
|
417
|
+
* `accept` is spelled out as a keyword AND left optional, which looks
|
|
418
|
+
* redundant and is not. Bare prose has always signed an item off, and
|
|
419
|
+
* removing that would break the habit of everyone already using it --
|
|
420
|
+
* but a person who has just typed "reject <reason>" reasonably
|
|
421
|
+
* expects "accept <reason>" to exist, and finding that it does not is
|
|
422
|
+
* how somebody ends up typing "accept" alone as their whole
|
|
423
|
+
* confirmation note.
|
|
424
|
+
*/
|
|
425
|
+
async answerBound(itemId, text) {
|
|
426
|
+
// WHOSE WORD IS THIS? The account is the identity that matters and
|
|
427
|
+
// the server resolves it from the token -- but the runner NAME is
|
|
428
|
+
// read from the session, and in a bench that is the pregen. Your
|
|
429
|
+
// first playtest recorded six sign-offs as "signed by Testbed", a
|
|
430
|
+
// street name belonging to nobody. Omitted here so the board falls
|
|
431
|
+
// back to the handle: no name is more honest than a fictional one.
|
|
432
|
+
const asRunner = this.game?.isBench ? undefined : this.actor?.name;
|
|
433
|
+
const fresh = await loadReviewQueue();
|
|
434
|
+
if (fresh.outcome !== 'ok' || !fresh.items)
|
|
435
|
+
return this.explain(fresh.outcome);
|
|
436
|
+
const item = fresh.items.find(i => i.id === itemId);
|
|
437
|
+
if (!item) {
|
|
438
|
+
// Already answered, or moved on while the bench was open. Not an
|
|
439
|
+
// error -- say what is true and do not post anything.
|
|
440
|
+
return `This item isn't waiting on you any more -- it may already be answered.${hint(` ("backlog review" shows what is.)`)}`;
|
|
441
|
+
}
|
|
442
|
+
if (text.length === 0)
|
|
443
|
+
return this.renderItem(item, 1, { full: true });
|
|
444
|
+
if (parseReproRequest(text))
|
|
445
|
+
return this.repro(item, 1);
|
|
446
|
+
const validation = isValidationRow(item);
|
|
447
|
+
const why = validation ? parseRejection(text) : null;
|
|
448
|
+
if (why !== null) {
|
|
449
|
+
if (!why)
|
|
450
|
+
return `Say what's still wrong: {white-fg}backlog review reject <what you saw>{/white-fg}`;
|
|
451
|
+
const outcome = await postBacklogReject(item.id, why, asRunner);
|
|
452
|
+
noteBacklogOutcome(outcome);
|
|
453
|
+
if (outcome !== 'ok')
|
|
454
|
+
return this.explain(outcome);
|
|
455
|
+
markReviewAnswered(item.id);
|
|
456
|
+
return `{red-fg}Rejected. It's back on the board as open, with your reason on it.{/red-fg}`
|
|
457
|
+
+ this.closeBench('rejected');
|
|
458
|
+
}
|
|
459
|
+
// "accept" is stripped when it leads, so the note is what follows
|
|
460
|
+
// rather than the word itself.
|
|
461
|
+
const note = /^accepts?\b/i.test(text) ? text.replace(/^accepts?\b\s*/i, '').trim() : text;
|
|
462
|
+
const outcome = validation
|
|
463
|
+
? await postBacklogSignoff(item.id, note || 'Confirmed in play.', asRunner)
|
|
464
|
+
: await postBacklogComment(item.id, note, { kind: 'answer', awaitingReporter: false, runnerName: asRunner });
|
|
465
|
+
noteBacklogOutcome(outcome);
|
|
466
|
+
if (outcome !== 'ok')
|
|
467
|
+
return this.explain(outcome);
|
|
468
|
+
markReviewAnswered(item.id);
|
|
469
|
+
return (validation
|
|
470
|
+
? `{green-fg}Signed off. That closes it -- your word is what the board was waiting for.{/green-fg}`
|
|
471
|
+
: `{cyan-fg}Answered. It's on the record against your report.{/cyan-fg}`)
|
|
472
|
+
+ this.closeBench(validation ? 'signed off' : 'answered');
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* A BENCH IS DONE WHEN THE ITEM IS ANSWERED (player request
|
|
476
|
+
* 2026-08-28: "after accepting or rejecting, give a 3s timeout and
|
|
477
|
+
* then close the session").
|
|
478
|
+
*
|
|
479
|
+
* It exists to answer one report; once that is posted there is
|
|
480
|
+
* nothing left in it. Three seconds so the confirmation above can
|
|
481
|
+
* actually be read -- closing on the same frame would wipe the only
|
|
482
|
+
* evidence the answer went anywhere.
|
|
483
|
+
*
|
|
484
|
+
* ONLY in a bench, and only after a post that SUCCEEDED. Answering
|
|
485
|
+
* from an ordinary session must never shut the game down: that is
|
|
486
|
+
* somebody's run, not a scratch scene, and the failure would be
|
|
487
|
+
* spectacular.
|
|
488
|
+
*/
|
|
489
|
+
/**
|
|
490
|
+
* ASK THE LAUNCHER FOR THE BENCH, then leave so it can run it.
|
|
491
|
+
*
|
|
492
|
+
* Returns the line to print, or undefined when this session cannot
|
|
493
|
+
* hand off -- in which case the caller falls back to simply showing
|
|
494
|
+
* the steps, which is strictly better than an error.
|
|
495
|
+
*
|
|
496
|
+
* REFUSED DURING A SHARED RUN, and this is the guard that matters:
|
|
497
|
+
* quitting to a bench would drop the table and take everyone else's
|
|
498
|
+
* evening with it. The refusal names the route that IS safe from
|
|
499
|
+
* anywhere, because a refusal that does not is just a wall.
|
|
500
|
+
*/
|
|
501
|
+
async requestBenchHandoff(item) {
|
|
502
|
+
const game = this.game;
|
|
503
|
+
const dir = game?.sessionDir;
|
|
504
|
+
if (!game || !dir)
|
|
505
|
+
return undefined;
|
|
506
|
+
if (game.remoteSession) {
|
|
507
|
+
return `You're on a shared run -- dropping into a bench would end the table for everyone.`
|
|
508
|
+
+ `\n{white-fg}Outside the game: {/white-fg}maka play:shadowrun --repro ${item.id}`;
|
|
509
|
+
}
|
|
510
|
+
try {
|
|
511
|
+
const { writeHandoff } = await import('../utilities/handoff.js');
|
|
512
|
+
writeHandoff(dir, { kind: 'repro', itemId: item.id });
|
|
513
|
+
}
|
|
514
|
+
catch {
|
|
515
|
+
// Could not leave the note -- say nothing about benches and let
|
|
516
|
+
// the caller print the steps instead. Never strand the player.
|
|
517
|
+
return undefined;
|
|
518
|
+
}
|
|
519
|
+
// Exiting 0 is what seals the save (see the quit hook in ui.ts), so
|
|
520
|
+
// the resume the launcher performs picks up exactly here.
|
|
521
|
+
game.closeAfter(3000, `repro handoff for ${item.id}`);
|
|
522
|
+
return [
|
|
523
|
+
`{cyan-fg}Dropping into the bench for this item...{/cyan-fg}`,
|
|
524
|
+
`{white-fg}Your run is saved. You'll come straight back to it when you leave the bench.{/white-fg}`,
|
|
525
|
+
].join('\n');
|
|
526
|
+
}
|
|
527
|
+
closeBench(reason) {
|
|
528
|
+
if (!this.game?.isBench)
|
|
529
|
+
return '';
|
|
530
|
+
this.game.closeAfter(3000, reason);
|
|
531
|
+
return `\n{white-fg}Closing the bench...{/white-fg}`;
|
|
532
|
+
}
|
|
533
|
+
/**
|
|
534
|
+
* THE BENCH FOR ONE ITEM.
|
|
535
|
+
*
|
|
536
|
+
* Wired as far as it currently goes, and no further: the repro spec
|
|
537
|
+
* lives on the board (server work, not yet deployed), so today this
|
|
538
|
+
* can only report honestly that there is nothing attached. What it
|
|
539
|
+
* must NEVER do is fall through to the sign-off, which is the whole
|
|
540
|
+
* reason it exists this early.
|
|
541
|
+
*/
|
|
542
|
+
async repro(item, n) {
|
|
543
|
+
const repro = item.repro;
|
|
544
|
+
// IN A BENCH, "repro" RE-READS. You are already standing in it, so
|
|
545
|
+
// the only useful meaning is "show me the steps again".
|
|
546
|
+
//
|
|
547
|
+
// OUTSIDE ONE, it TAKES YOU THERE -- and it does that by leaving.
|
|
548
|
+
// The scene cannot be swapped underneath a live session: the game
|
|
549
|
+
// holds the terminal through blessed, and a second blessed screen
|
|
550
|
+
// on one terminal is the exact failure the parent-as-janitor rule
|
|
551
|
+
// exists to prevent. So the game seals its save, leaves a note for
|
|
552
|
+
// the launcher, and exits; the launcher plays the bench and brings
|
|
553
|
+
// the same runner back on a resume. Quit -> bench -> back, which is
|
|
554
|
+
// what was asked for, and it needs no new run lifecycle.
|
|
555
|
+
if (repro && repro.steps.length > 0 && !this.game?.isBench) {
|
|
556
|
+
const handoff = await this.requestBenchHandoff(item);
|
|
557
|
+
if (handoff)
|
|
558
|
+
return handoff;
|
|
559
|
+
}
|
|
560
|
+
if (!repro || repro.steps.length === 0) {
|
|
561
|
+
// ABSENCE IS ORDINARY, and must not read as breakage. Plenty of
|
|
562
|
+
// items are about a verb, a menu or a note and have no scene to
|
|
563
|
+
// stand in. Say so, and say the thing that actually matters here:
|
|
564
|
+
// nothing was recorded against the item.
|
|
565
|
+
return [
|
|
566
|
+
`{yellow-fg}No repro bench is attached to item ${n}.{/yellow-fg}`,
|
|
567
|
+
`{white-fg}Not every fix has one -- some are about a verb or a menu rather than a place.{/white-fg}`,
|
|
568
|
+
hint(` Nothing was posted, and the item was NOT signed off.`),
|
|
569
|
+
].filter(Boolean).join('\n');
|
|
570
|
+
}
|
|
571
|
+
const lines = [`{cyan-fg}REPRO -- item ${n}{/cyan-fg}`];
|
|
572
|
+
if (repro.premise)
|
|
573
|
+
lines.push(`{white-fg}${repro.premise}{/white-fg}`, '');
|
|
574
|
+
// The steps are printed 1..n whatever the queue does, because these
|
|
575
|
+
// are read top-down and typed in order -- the review LIST reverses
|
|
576
|
+
// for a scrolling terminal, and a sequence of instructions is the
|
|
577
|
+
// one thing that must not.
|
|
578
|
+
repro.steps.forEach((step, i) => lines.push(` ${i + 1}. {white-fg}${step}{/white-fg}`));
|
|
579
|
+
if (repro.expect)
|
|
580
|
+
lines.push('', `{white-fg}Passing looks like: ${repro.expect}{/white-fg}`);
|
|
581
|
+
lines.push('', `{white-fg}Play it: {/white-fg}maka play:shadowrun --repro ${item.id}`);
|
|
582
|
+
lines.push(hint(this.game?.isBench
|
|
583
|
+
? ` "review accept <what you saw>" or "review reject <what is wrong>" answers it -- no number needed.`
|
|
584
|
+
: ` Answer with "backlog review ${n} <what you saw>" when you have looked.`));
|
|
585
|
+
return lines.filter(Boolean).join('\n');
|
|
586
|
+
}
|
|
587
|
+
/**
|
|
588
|
+
* ONE ROW OF THE BOARD, in full.
|
|
589
|
+
*
|
|
590
|
+
* Resolved against the snapshot that was PRINTED, never a fresh
|
|
591
|
+
* fetch -- the same invariant the review queue holds, and for the
|
|
592
|
+
* same reason: a list that reshuffles between being read and being
|
|
593
|
+
* numbered at hands the player a different item than the one they
|
|
594
|
+
* counted. With no snapshot it shows the board rather than guessing
|
|
595
|
+
* which list they had in mind.
|
|
596
|
+
*/
|
|
597
|
+
async readBoardItem(n) {
|
|
598
|
+
if (boardSize() === 0) {
|
|
599
|
+
const shown = await this.list();
|
|
600
|
+
return `${shown}\n\n{white-fg}(Pick from the list above -- "backlog <n>".){/white-fg}`;
|
|
601
|
+
}
|
|
602
|
+
const item = boardItemAt(n);
|
|
603
|
+
if (!item)
|
|
604
|
+
return `There's no item ${n}. The board runs 1-${boardSize()}.`;
|
|
605
|
+
const lines = [`${this.statusMark(item.status)} ${item.text}`];
|
|
606
|
+
const who = [item.runnerName, item.reporterHandle].filter(Boolean).join(' / ');
|
|
607
|
+
if (who)
|
|
608
|
+
lines.push(` {white-fg}${who}{/white-fg}`);
|
|
609
|
+
const v = item.vetting;
|
|
610
|
+
if (v?.verdict) {
|
|
611
|
+
lines.push(` ${this.verdictTag(v.verdict)}${v.justification ? ` ${v.justification}` : ''}`);
|
|
612
|
+
}
|
|
613
|
+
for (const c of (v?.citations ?? []).slice(0, 3)) {
|
|
614
|
+
lines.push(` {cyan-fg}${c.book} p.${c.page ?? '?'}${c.section ? ` (${c.section})` : ''}{/cyan-fg}`);
|
|
615
|
+
}
|
|
616
|
+
if (item.commits?.length) {
|
|
617
|
+
lines.push(` {white-fg}fixed by: ${item.commits.map(c => c.slice(0, 8)).join(', ')}{/white-fg}`);
|
|
618
|
+
}
|
|
619
|
+
if (item.repro?.steps?.length) {
|
|
620
|
+
lines.push('', `{green-fg}BENCH -- "backlog repro ${n}" drops you into it{/green-fg}`);
|
|
621
|
+
if (item.repro.premise)
|
|
622
|
+
lines.push(` {white-fg}${item.repro.premise}{/white-fg}`);
|
|
623
|
+
item.repro.steps.forEach((step, i) => lines.push(` ${i + 1}. {white-fg}${step}{/white-fg}`));
|
|
624
|
+
if (item.repro.expect)
|
|
625
|
+
lines.push(` {white-fg}passing looks like: ${item.repro.expect}{/white-fg}`);
|
|
626
|
+
}
|
|
627
|
+
return lines.join('\n');
|
|
628
|
+
}
|
|
629
|
+
/**
|
|
630
|
+
* PLAY ANY BOARD ITEM'S BENCH, not just one awaiting review.
|
|
631
|
+
*
|
|
632
|
+
* The review queue holds only what is waiting on YOU, so once an item
|
|
633
|
+
* is answered its bench became unreachable from in-game -- even
|
|
634
|
+
* though checking a fix a second time, or showing somebody what you
|
|
635
|
+
* saw, are ordinary things to want. The board is the wider set and
|
|
636
|
+
* this is its verb.
|
|
637
|
+
*/
|
|
638
|
+
async reproFromBoard(arg) {
|
|
639
|
+
if (boardSize() === 0) {
|
|
640
|
+
const shown = await this.list();
|
|
641
|
+
return `${shown}\n\n{white-fg}(Pick from the list above -- "backlog repro <n>".){/white-fg}`;
|
|
642
|
+
}
|
|
643
|
+
const n = Number(arg);
|
|
644
|
+
const item = Number.isInteger(n) ? boardItemAt(n) : undefined;
|
|
645
|
+
if (!item)
|
|
646
|
+
return `Which one? "backlog repro <n>" -- the board runs 1-${boardSize()}.`;
|
|
647
|
+
if (!item.repro?.steps?.length) {
|
|
648
|
+
return `No bench is attached to that one.${hint(` Not every fix has a place to stand in -- "backlog list" marks the ones that do.`)}`;
|
|
649
|
+
}
|
|
650
|
+
// Same handoff the review path uses: the game cannot swap its own
|
|
651
|
+
// scene, so it leaves a note and the launcher does the rest.
|
|
652
|
+
const handoff = await this.requestBenchHandoff({ id: item._id, text: item.text });
|
|
653
|
+
return handoff ?? `Couldn't hand off to the bench from here.`;
|
|
654
|
+
}
|
|
655
|
+
/**
|
|
656
|
+
* CLOSE A BOARD ROW OUTRIGHT -- no verdict, no evidence, no sign-off.
|
|
657
|
+
*
|
|
658
|
+
* "backlog close <n> [why]". For an item that should never have been
|
|
659
|
+
* filed: a duplicate, a mis-typed command that became a report, or
|
|
660
|
+
* something you have since decided was never real.
|
|
661
|
+
*
|
|
662
|
+
* Deliberately NOT one of the review verbs. Accepting a mistake would
|
|
663
|
+
* record a confirmation nobody made; rejecting it would send
|
|
664
|
+
* imaginary work back to whoever fixed it. This says the third thing.
|
|
665
|
+
*/
|
|
666
|
+
async closeFromBoard(arg, why = '') {
|
|
667
|
+
if (boardSize() === 0) {
|
|
668
|
+
const shown = await this.list();
|
|
669
|
+
return `${shown}\n\n{white-fg}(Pick from the list above -- "backlog close <n> [why]".){/white-fg}`;
|
|
670
|
+
}
|
|
671
|
+
const n = Number(arg);
|
|
672
|
+
const item = Number.isInteger(n) ? boardItemAt(n) : undefined;
|
|
673
|
+
if (!item)
|
|
674
|
+
return `Which one? "backlog close <n> [why]" -- the board runs 1-${boardSize()}.`;
|
|
675
|
+
const outcome = await postBacklogClose(item._id, why.trim(), this.game?.isBench ? undefined : this.actor?.name);
|
|
676
|
+
noteBacklogOutcome(outcome);
|
|
677
|
+
if (outcome === 'forbidden') {
|
|
678
|
+
return `That one isn't yours to close -- only the play-tester who filed it, or an admin.`;
|
|
679
|
+
}
|
|
680
|
+
if (outcome !== 'ok')
|
|
681
|
+
return this.explain(outcome);
|
|
682
|
+
// The board is re-read on the next "backlog list"; the numbering
|
|
683
|
+
// belongs to what was printed, so it is not silently redealt here.
|
|
684
|
+
return `{white-fg}Closed: ${truncate(item.text, 60)}{/white-fg}`
|
|
685
|
+
+ hint(` It's off the board as "wont-fix", with your reason on the record.`);
|
|
686
|
+
}
|
|
325
687
|
async list(statusArg) {
|
|
326
688
|
let status;
|
|
327
689
|
if (statusArg) {
|
|
@@ -345,9 +707,37 @@ export class BacklogCommand extends Command {
|
|
|
345
707
|
// "headers like that are too cluttery"). The heading itself stays --
|
|
346
708
|
// it carries what the panel divider can't say for it.
|
|
347
709
|
const lines = [`BACKLOG (${items.length}${status ? `, ${status}` : ''})`];
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
710
|
+
// PRINTED LOWEST-PRIORITY FIRST, so the rows that need you land at
|
|
711
|
+
// the BOTTOM, closest to the prompt -- which is where a scrolling
|
|
712
|
+
// panel leaves your eye.
|
|
713
|
+
//
|
|
714
|
+
// The server sorts in-review first, and that is the right order for
|
|
715
|
+
// a CALLER to iterate. Printing it top-down put wont-fix under the
|
|
716
|
+
// cursor and scrolled the urgent rows off the top: reported here in
|
|
717
|
+
// exactly those words ("I see 'wont' items first"), and reported the
|
|
718
|
+
// same way about the out-of-game board an hour earlier -- which I
|
|
719
|
+
// fixed there and did not carry across, so the same list read
|
|
720
|
+
// correctly in one place and backwards in the other.
|
|
721
|
+
//
|
|
722
|
+
// Reversed at the point of PRINT, never in the data, so the
|
|
723
|
+
// server's priority and which end you read first stay separate
|
|
724
|
+
// facts. Same rule as reviewDisplayOrder and as the CLI dump.
|
|
725
|
+
// NUMBERED, so there is something to name. In-game the rows carried
|
|
726
|
+
// neither an id nor a number, which left the board readable and
|
|
727
|
+
// completely inert -- and an id would not have helped, because
|
|
728
|
+
// selecting text out of a blessed panel to paste back into it is
|
|
729
|
+
// not a thing anybody should be asked to do.
|
|
730
|
+
//
|
|
731
|
+
// Numbers are bound in the SERVER's order and only then reversed for
|
|
732
|
+
// printing, exactly as reviewDisplayOrder does: bind first, reverse
|
|
733
|
+
// second, or "3" labels one row and resolves to another.
|
|
734
|
+
rememberBoard(items);
|
|
735
|
+
const numbered = items.map((item, i) => ({ item, n: i + 1 }));
|
|
736
|
+
for (const { item, n } of boardPrintOrder(numbered)) {
|
|
737
|
+
const rows = this.row(item);
|
|
738
|
+
lines.push(`${optionMark(n)}${rows[0].trimStart()}`, ...rows.slice(1));
|
|
739
|
+
}
|
|
740
|
+
const footer = hint(`"backlog <n>" reads one in full, "backlog repro <n>" plays its bench. "backlog <what you noticed>" files one.`);
|
|
351
741
|
if (footer)
|
|
352
742
|
lines.push('', footer);
|
|
353
743
|
return lines.join('\n');
|
|
@@ -375,29 +765,37 @@ export class BacklogCommand extends Command {
|
|
|
375
765
|
}
|
|
376
766
|
return out;
|
|
377
767
|
}
|
|
768
|
+
/** Blessed's ink for a shared tone. Gray is deliberately absent: it
|
|
769
|
+
* reads as absent on this screen (playtest ruling), so 'dim' lands on
|
|
770
|
+
* plain white -- unemphatic without being unreadable. */
|
|
771
|
+
paint(tone, text) {
|
|
772
|
+
const fg = tone === 'good' ? 'green'
|
|
773
|
+
: tone === 'bad' ? 'red'
|
|
774
|
+
: tone === 'warn' ? 'yellow'
|
|
775
|
+
: tone === 'alert' ? 'magenta'
|
|
776
|
+
: tone === 'info' ? 'cyan'
|
|
777
|
+
: 'white';
|
|
778
|
+
return `{${fg}-fg}${text}{/${fg}-fg}`;
|
|
779
|
+
}
|
|
780
|
+
/** The label and its loudness both come from utilities/backlog-vocab,
|
|
781
|
+
* which the out-of-game dump reads too -- one place decides what a
|
|
782
|
+
* status is CALLED and how much it matters, and each surface maps
|
|
783
|
+
* that to its own palette.
|
|
784
|
+
*
|
|
785
|
+
* An in-review row now paints MAGENTA rather than the same cyan as
|
|
786
|
+
* in-progress. It is the one status that is waiting on the reader,
|
|
787
|
+
* and it did not look like it -- the same complaint, in a smaller
|
|
788
|
+
* font, as the board being unreadable out of game. */
|
|
378
789
|
statusMark(status) {
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
case 'in-progress': return '{cyan-fg}[wip] {/cyan-fg}';
|
|
382
|
-
// Fixed, and waiting on the reporter to confirm it in play. It
|
|
383
|
-
// used to fall through to the default and read "[open]" -- an
|
|
384
|
-
// item awaiting your word shown as one nobody had touched.
|
|
385
|
-
case 'in-review': return '{cyan-fg}[you?] {/cyan-fg}';
|
|
386
|
-
case 'wont-fix': return '{cyan-fg}[no] {/cyan-fg}';
|
|
387
|
-
default: return '{yellow-fg}[open]{/yellow-fg}';
|
|
388
|
-
}
|
|
790
|
+
const { label, tone } = statusLabel(status);
|
|
791
|
+
return this.paint(tone, label);
|
|
389
792
|
}
|
|
390
793
|
/** The verdict is about the GAME, not the rulebooks (reframed
|
|
391
794
|
* 2026-08-27). Asking canon whether a stale map mattered graded every
|
|
392
795
|
* real defect out of scope and cited a zoo at it. */
|
|
393
796
|
verdictTag(verdict) {
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
case 'bug': return `{red-fg}bug:{/red-fg}`;
|
|
397
|
-
case 'enhancement': return `{yellow-fg}wants building:{/yellow-fg}`;
|
|
398
|
-
case 'works-as-intended': return `{green-fg}working as meant:{/green-fg}`;
|
|
399
|
-
default: return `{cyan-fg}needs detail:{/cyan-fg}`;
|
|
400
|
-
}
|
|
797
|
+
const { label, tone } = verdictLabel(verdict);
|
|
798
|
+
return this.paint(tone, `${label}:`);
|
|
401
799
|
}
|
|
402
800
|
explain(outcome) {
|
|
403
801
|
switch (outcome) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/backlog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/backlog.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,5 +41,19 @@ export declare class BluffCommand extends Command implements ICommand {
|
|
|
41
41
|
/** Is there a barrier in this room at all? Only used to word the
|
|
42
42
|
* refusal correctly -- a player who typed "bluff" at a lock deserves
|
|
43
43
|
* to be pointed at the verbs that do work on it. */
|
|
44
|
-
|
|
44
|
+
/** The one barrier here, when there is exactly one -- for the case
|
|
45
|
+
* where nobody was named because nobody is here. */
|
|
46
|
+
private soleBarrier;
|
|
47
|
+
/**
|
|
48
|
+
* Did they name a BARRIER rather than a person?
|
|
49
|
+
*
|
|
50
|
+
* Matched loosely, and that is the right call here for the same
|
|
51
|
+
* reason it is right in bypass-command: this is resolving a word a
|
|
52
|
+
* human typed at an object they can see, not an identity already
|
|
53
|
+
* known. The generic-noun fallback is the same one bypass-command
|
|
54
|
+
* uses, so "bluff door" and "pick door" agree about what "door"
|
|
55
|
+
* means -- two commands disagreeing about the same word in the same
|
|
56
|
+
* room is its own bug.
|
|
57
|
+
*/
|
|
58
|
+
private namedBarrier;
|
|
45
59
|
}
|