@maka/maka-cli 5.65.2 → 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 +124 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +487 -29
- 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/crew.js +4 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/crew.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/note.d.ts +73 -14
- package/bundle/typescript/src/commands/game/sideQuest/commands/note.js +150 -40
- package/bundle/typescript/src/commands/game/sideQuest/commands/note.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/commands/sheet.js +4 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
- 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.d.ts +36 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +116 -3
- 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 +112 -13
- 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/headless.js +4 -1
- package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +32 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +122 -3
- 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 +67 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.js +99 -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 +58 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js +82 -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/identity.d.ts +36 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/identity.js +48 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/identity.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/room-grid.js +55 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.d.ts +27 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js +44 -11
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.d.ts +47 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js +76 -8
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js.map +1 -1
- 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/utilities/table-notes.d.ts +30 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/table-notes.js +46 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/table-notes.js.map +1 -0
- 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,4 +1,4 @@
|
|
|
1
|
-
import { appendFileSync, existsSync, mkdirSync, readFileSync } from 'fs';
|
|
1
|
+
import { appendFileSync, existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from 'fs';
|
|
2
2
|
import { dirname, join } from 'path';
|
|
3
3
|
import { homedir } from 'os';
|
|
4
4
|
import { Command } from './command.js';
|
|
@@ -16,13 +16,23 @@ import { hint } from '../utilities/hints.js';
|
|
|
16
16
|
* These are notes ABOUT the game, not IN it: nothing here touches the
|
|
17
17
|
* fiction, no NPC hears it, no world event fires.
|
|
18
18
|
*
|
|
19
|
-
* WHERE THEY LIVE
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
19
|
+
* WHERE THEY LIVE -- TWO PLACES, because two rulings are both true.
|
|
20
|
+
*
|
|
21
|
+
* The session's own folder, beside the game.log they annotate (player
|
|
22
|
+
* ruling 2026-08-25: "the actual session folder, to keep it organized").
|
|
23
|
+
* The first cut put every note a runner ever wrote into one lifelong
|
|
24
|
+
* file, which meant reading back a playtest started by working out which
|
|
25
|
+
* lines belonged to the run you cared about.
|
|
26
|
+
*
|
|
27
|
+
* AND a durable per-runner file, because a session folder dies with the
|
|
28
|
+
* launch (player 2026-08-27: "notes should persist for the job"). Notes
|
|
29
|
+
* already survived a job CHANGE -- sessionDir cannot change mid-launch,
|
|
30
|
+
* verified by running it -- and vanished when the player quit and came
|
|
31
|
+
* back to a new timestamped folder. The old file was never destroyed;
|
|
32
|
+
* the game had simply lost the address.
|
|
33
|
+
*
|
|
34
|
+
* Writing both keeps the 2026-08-25 organisation AND the durability,
|
|
35
|
+
* without relitigating a decision that was right for its own purpose.
|
|
26
36
|
*
|
|
27
37
|
* Deliberately NOT uploaded: session-telemetry's collectFiles() names
|
|
28
38
|
* the files it sends (the two logs, launch.json, scene-job-*.json), and
|
|
@@ -31,65 +41,165 @@ import { hint } from '../utilities/hints.js';
|
|
|
31
41
|
*/
|
|
32
42
|
export class NoteCommand extends Command {
|
|
33
43
|
static verb = 'note';
|
|
34
|
-
static description = 'Jot a playtest note to disk: "note the door is on the wrong wall". Nobody in the fiction hears it. Bare "note" reads back this
|
|
35
|
-
/**
|
|
36
|
-
*
|
|
37
|
-
|
|
38
|
-
|
|
44
|
+
static description = 'Jot a playtest note to disk: "note the door is on the wrong wall". Nobody in the fiction hears it. Bare "note" reads back this job\'s notes, which survive a relaunch.';
|
|
45
|
+
/** 100 KB, matching generator.ts's MAX_HISTORY_SIZE on history.json --
|
|
46
|
+
* the house answer for a file that would otherwise grow forever. */
|
|
47
|
+
static MAX_NOTES_SIZE = 100 * 1024;
|
|
48
|
+
/** `<session>/notes.md` -- alongside that run's logs and scenes. The
|
|
49
|
+
* organised per-playtest artifact (ruling 2026-08-25). Undefined for
|
|
50
|
+
* harnesses and headless clients, which have no session dir. */
|
|
51
|
+
sessionNotePath() {
|
|
39
52
|
const dir = this.game?.sessionDir;
|
|
40
|
-
|
|
41
|
-
|
|
53
|
+
return dir ? join(dir, 'notes.md') : undefined;
|
|
54
|
+
}
|
|
55
|
+
/** The DURABLE file, one per runner, which outlives the launch.
|
|
56
|
+
*
|
|
57
|
+
* NOTES USED TO EVAPORATE ON RELAUNCH (player, 2026-08-27: "notes
|
|
58
|
+
* should persist for the job"). Traced by running it rather than
|
|
59
|
+
* reading it: sessionDir is dirname(_logFilePath), assigned once in
|
|
60
|
+
* initEngine and never reassigned, and the sessionId is a launch-time
|
|
61
|
+
* timestamp computed the same way for a new game AND a resume. So
|
|
62
|
+
* notes already survived a job change within one launch -- verified,
|
|
63
|
+
* two notes either side of a job swap landed in one file -- and died
|
|
64
|
+
* the moment the player quit and came back.
|
|
65
|
+
*
|
|
66
|
+
* They were never destroyed, which is the detail that decided the
|
|
67
|
+
* fix: the old notes.md sits on disk exactly where it was written,
|
|
68
|
+
* and only the game had lost the address. So this is a second WRITE
|
|
69
|
+
* and a better READ, not a migration.
|
|
70
|
+
*
|
|
71
|
+
* DELIBERATELY NOT THE SAVE FILE. cloud-saves.ts pushSave() POSTs the
|
|
72
|
+
* whole save object, so anything added to ISavedGameState is uploaded
|
|
73
|
+
* -- and this command's own header rules that notes "stay on the
|
|
74
|
+
* machine that wrote them". Putting them in the save would have
|
|
75
|
+
* silently started shipping the player's private margin scribbles to
|
|
76
|
+
* a server, with no test covering what a save contains. */
|
|
77
|
+
durableNotePath() {
|
|
42
78
|
const who = (this.actor?.name ?? 'unknown').replace(/[^\w.-]+/g, '_');
|
|
43
79
|
return join(homedir(), '.meteor', '.maka', 'side-quest-notes', `${who}.md`);
|
|
44
80
|
}
|
|
81
|
+
/** The job a note was written on, so "persist for the job" is literal
|
|
82
|
+
* rather than merely durable. Absent at the hub, where there is no
|
|
83
|
+
* job to belong to. */
|
|
84
|
+
jobTag() {
|
|
85
|
+
return this.game?.currentJobName ?? 'no job';
|
|
86
|
+
}
|
|
45
87
|
async execute(args = []) {
|
|
46
|
-
const
|
|
88
|
+
const durable = this.durableNotePath();
|
|
47
89
|
const text = (args ?? []).join(' ').trim();
|
|
48
90
|
if (!text)
|
|
49
|
-
return this.recent(
|
|
91
|
+
return this.recent(durable);
|
|
50
92
|
// The path is worth showing once -- it's a long one, and repeating
|
|
51
93
|
// it after every note buries the log pane in the same string.
|
|
52
|
-
const first = !existsSync(
|
|
94
|
+
const first = !existsSync(durable);
|
|
95
|
+
const stamp = new Date().toISOString();
|
|
96
|
+
// MID-SHARED-RUN the local actor is still standing in the hub --
|
|
97
|
+
// the run itself is a server-side engine, and this command is
|
|
98
|
+
// deliberately routed home (see Game.LOCAL_ONLY_VERBS) so the note
|
|
99
|
+
// lands on the machine that typed it. Stamping the hub room onto a
|
|
100
|
+
// note written out on a job would be a plausible-looking lie, so
|
|
101
|
+
// say plainly where it came from instead.
|
|
102
|
+
const where = this.game?.remoteSession
|
|
103
|
+
? 'shared run'
|
|
104
|
+
: (this.actor?.currentLocation?.name ?? 'nowhere');
|
|
105
|
+
const line = `- [${stamp}] [${this.jobTag()}] (${where}) ${text}\n`;
|
|
106
|
+
// BOTH FILES, because both rulings are still true. The session copy
|
|
107
|
+
// is what makes a playtest read back cleanly (2026-08-25); the
|
|
108
|
+
// durable copy is what survives the player closing the game. Writing
|
|
109
|
+
// both satisfies each without relitigating either.
|
|
110
|
+
//
|
|
111
|
+
// The DURABLE write is the one that must not fail silently -- it is
|
|
112
|
+
// the one the player reads back from. A session-copy failure is
|
|
113
|
+
// logged and swallowed: losing the tidy duplicate is not worth
|
|
114
|
+
// refusing the note.
|
|
53
115
|
try {
|
|
54
|
-
mkdirSync(dirname(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
// the run itself is a server-side engine, and this command is
|
|
58
|
-
// deliberately routed home (see Game.LOCAL_ONLY_VERBS) so the note
|
|
59
|
-
// lands on the machine that typed it. Stamping the hub room onto a
|
|
60
|
-
// note written out on a job would be a plausible-looking lie, so
|
|
61
|
-
// say plainly where it came from instead.
|
|
62
|
-
const where = this.game?.remoteSession
|
|
63
|
-
? 'shared run'
|
|
64
|
-
: (this.actor?.currentLocation?.name ?? 'nowhere');
|
|
65
|
-
appendFileSync(path, `- [${stamp}] (${where}) ${text}\n`, 'utf8');
|
|
116
|
+
mkdirSync(dirname(durable), { recursive: true });
|
|
117
|
+
appendFileSync(durable, line, 'utf8');
|
|
118
|
+
this.pruneDurable(durable);
|
|
66
119
|
}
|
|
67
120
|
catch (err) {
|
|
68
|
-
this.logger.write(`NoteCommand: could not write ${
|
|
121
|
+
this.logger.write(`NoteCommand: could not write ${durable}: ${err instanceof Error ? err.message : String(err)}`);
|
|
69
122
|
return `Couldn't write that note down -- see the game log for why.`;
|
|
70
123
|
}
|
|
124
|
+
const sessionCopy = this.sessionNotePath();
|
|
125
|
+
if (sessionCopy) {
|
|
126
|
+
try {
|
|
127
|
+
mkdirSync(dirname(sessionCopy), { recursive: true });
|
|
128
|
+
appendFileSync(sessionCopy, line, 'utf8');
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
this.logger.write(`NoteCommand: kept the note but could not mirror it to ${sessionCopy}: ${err instanceof Error ? err.message : String(err)}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
71
134
|
this.logger.write(`NOTE [${this.actor?.name}]: ${text}`);
|
|
72
135
|
// NOT {gray-fg} (standing ruling): blessed gray is ANSI
|
|
73
136
|
// bright-black and vanishes on stock dark palettes. White is the
|
|
74
137
|
// established neutral for mechanics text.
|
|
75
|
-
return `{white-fg}Noted.${first ? hint(` (${
|
|
138
|
+
return `{white-fg}Noted.${first ? hint(` (${durable})`) : ''}{/white-fg}`;
|
|
76
139
|
}
|
|
77
|
-
/**
|
|
78
|
-
*
|
|
79
|
-
*
|
|
140
|
+
/**
|
|
141
|
+
* THE DURABLE FILE IS THE ONE THAT GROWS FOREVER, so it is capped.
|
|
142
|
+
*
|
|
143
|
+
* A per-session file emptied itself every launch; this one never does.
|
|
144
|
+
* 100 KB and prune-oldest is the house precedent (generator.ts's
|
|
145
|
+
* MAX_HISTORY_SIZE, on .maka/history.json) and there is no reason for
|
|
146
|
+
* notes to invent a second answer. At roughly 90 bytes a note that is
|
|
147
|
+
* on the order of a thousand notes -- far past any real playtest, and
|
|
148
|
+
* short enough that reading the whole file stays instant.
|
|
149
|
+
*
|
|
150
|
+
* Oldest-first is the right end to drop: a note's value decays, and
|
|
151
|
+
* the run you are on is the one you are reading back.
|
|
152
|
+
*/
|
|
153
|
+
pruneDurable(path) {
|
|
154
|
+
try {
|
|
155
|
+
if (statSync(path).size <= NoteCommand.MAX_NOTES_SIZE)
|
|
156
|
+
return;
|
|
157
|
+
const lines = readFileSync(path, 'utf8').split('\n').filter(l => l.trim().length > 0);
|
|
158
|
+
let kept = lines;
|
|
159
|
+
while (kept.length > 1 && Buffer.byteLength(kept.join('\n'), 'utf8') > NoteCommand.MAX_NOTES_SIZE) {
|
|
160
|
+
kept = kept.slice(1);
|
|
161
|
+
}
|
|
162
|
+
writeFileSync(path, `${kept.join('\n')}\n`, 'utf8');
|
|
163
|
+
this.logger.write(`NoteCommand: pruned ${lines.length - kept.length} old note(s) to stay under ${NoteCommand.MAX_NOTES_SIZE} bytes.`);
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
// A prune failure must never cost the player the note they just
|
|
167
|
+
// wrote -- the append already succeeded.
|
|
168
|
+
this.logger.write(`NoteCommand: could not prune ${path}: ${err instanceof Error ? err.message : String(err)}`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/** Bare "note": THIS JOB's notes, oldest first, read from the durable
|
|
172
|
+
* file so they survive a relaunch.
|
|
173
|
+
*
|
|
174
|
+
* Reads the job's notes rather than the launch's, which is the whole
|
|
175
|
+
* of the request -- "notes should persist FOR THE JOB". Falls back to
|
|
176
|
+
* the whole file when nothing matches the current job, because an
|
|
177
|
+
* empty answer in front of a file that plainly has notes in it is the
|
|
178
|
+
* same unhelpful lie the old "No notes this session" was. */
|
|
80
179
|
recent(path) {
|
|
81
180
|
if (!existsSync(path)) {
|
|
82
|
-
return `No notes
|
|
181
|
+
return `No notes yet.${hint(` ("note <something you noticed>" writes one down.)`)}`;
|
|
182
|
+
}
|
|
183
|
+
const all = readFileSync(path, 'utf8').split('\n').filter(l => l.trim().length > 0);
|
|
184
|
+
if (all.length === 0) {
|
|
185
|
+
return `No notes yet.${hint(` ("note <something you noticed>" writes one down.)`)}`;
|
|
83
186
|
}
|
|
84
|
-
const
|
|
187
|
+
const job = this.jobTag();
|
|
188
|
+
const mine = all.filter(l => l.includes(`[${job}]`));
|
|
189
|
+
const scoped = mine.length > 0;
|
|
190
|
+
const lines = scoped ? mine : all;
|
|
85
191
|
const tail = lines.slice(-20);
|
|
86
192
|
// BANNER RAILS REMOVED (playtest 2026-08-26, on the crew panel:
|
|
87
193
|
// "headers like that are too cluttery"). The heading itself stays --
|
|
88
194
|
// it carries what the panel divider can't say for it.
|
|
195
|
+
const scope = scoped ? `on "${job}"` : 'in all';
|
|
89
196
|
const header = tail.length < lines.length
|
|
90
|
-
? `NOTES (${lines.length}
|
|
91
|
-
: `NOTES (${lines.length}
|
|
92
|
-
|
|
197
|
+
? `NOTES (${lines.length} ${scope}, showing the last ${tail.length})`
|
|
198
|
+
: `NOTES (${lines.length} ${scope})`;
|
|
199
|
+
const older = scoped && all.length > lines.length
|
|
200
|
+
? hint(`\n(${all.length - lines.length} more from other jobs are in ${path}.)`)
|
|
201
|
+
: '';
|
|
202
|
+
return [header, ...tail].join('\n') + older;
|
|
93
203
|
}
|
|
94
204
|
}
|
|
95
205
|
//# sourceMappingURL=note.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/note.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"note.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/note.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ICommand } from './command.js';
|
|
2
|
+
import { BacklogCommand } from './backlog.js';
|
|
3
|
+
/**
|
|
4
|
+
* `review` -- the short way to answer the item you are standing in.
|
|
5
|
+
*
|
|
6
|
+
* Player ruling 2026-08-28: "I shouldn't have to pick from the list of
|
|
7
|
+
* review items -- I AM reviewing an item. So the commands should be
|
|
8
|
+
* straight forward: 'backlog review reject <message>' or, if we need to
|
|
9
|
+
* fork the command: 'review reject <message>' or 'review accept'."
|
|
10
|
+
*
|
|
11
|
+
* Both forms exist, and this one is the fork. Inside a repro bench the
|
|
12
|
+
* session already knows which report it was stood up for, so the whole
|
|
13
|
+
* `backlog review <n>` ceremony is noise -- the number names something
|
|
14
|
+
* there is only one of.
|
|
15
|
+
*
|
|
16
|
+
* A THIN DELEGATION, not a second implementation. Everything -- the
|
|
17
|
+
* reject keyword, the accept keyword, sign-off routing, the "already
|
|
18
|
+
* answered" case -- stays in BacklogCommand.review, because two code
|
|
19
|
+
* paths that post to the same board are two things that can disagree
|
|
20
|
+
* about what an answer means. This only supplies the word the player
|
|
21
|
+
* reaches for.
|
|
22
|
+
*
|
|
23
|
+
* Outside a bench it is still useful: bare `review` lists what is
|
|
24
|
+
* waiting on you, exactly as `backlog review` does.
|
|
25
|
+
*/
|
|
26
|
+
export declare class ReviewCommand extends BacklogCommand implements ICommand {
|
|
27
|
+
protected static verb: string;
|
|
28
|
+
protected static description: string;
|
|
29
|
+
protected static subcommands: ({
|
|
30
|
+
usage: string;
|
|
31
|
+
short: string;
|
|
32
|
+
long?: undefined;
|
|
33
|
+
} | {
|
|
34
|
+
usage: string;
|
|
35
|
+
short: string;
|
|
36
|
+
long: string;
|
|
37
|
+
})[];
|
|
38
|
+
execute(args?: string[]): Promise<string>;
|
|
39
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { BacklogCommand } from './backlog.js';
|
|
2
|
+
/**
|
|
3
|
+
* `review` -- the short way to answer the item you are standing in.
|
|
4
|
+
*
|
|
5
|
+
* Player ruling 2026-08-28: "I shouldn't have to pick from the list of
|
|
6
|
+
* review items -- I AM reviewing an item. So the commands should be
|
|
7
|
+
* straight forward: 'backlog review reject <message>' or, if we need to
|
|
8
|
+
* fork the command: 'review reject <message>' or 'review accept'."
|
|
9
|
+
*
|
|
10
|
+
* Both forms exist, and this one is the fork. Inside a repro bench the
|
|
11
|
+
* session already knows which report it was stood up for, so the whole
|
|
12
|
+
* `backlog review <n>` ceremony is noise -- the number names something
|
|
13
|
+
* there is only one of.
|
|
14
|
+
*
|
|
15
|
+
* A THIN DELEGATION, not a second implementation. Everything -- the
|
|
16
|
+
* reject keyword, the accept keyword, sign-off routing, the "already
|
|
17
|
+
* answered" case -- stays in BacklogCommand.review, because two code
|
|
18
|
+
* paths that post to the same board are two things that can disagree
|
|
19
|
+
* about what an answer means. This only supplies the word the player
|
|
20
|
+
* reaches for.
|
|
21
|
+
*
|
|
22
|
+
* Outside a bench it is still useful: bare `review` lists what is
|
|
23
|
+
* waiting on you, exactly as `backlog review` does.
|
|
24
|
+
*/
|
|
25
|
+
export class ReviewCommand extends BacklogCommand {
|
|
26
|
+
static verb = 'review';
|
|
27
|
+
static description = 'Answer the backlog item you are reviewing. In a repro bench it needs no number: "review reject <what is still wrong>", "review accept [what you saw]", or "review repro" to re-read the steps. Bare "review" lists what is waiting on you.';
|
|
28
|
+
static subcommands = [
|
|
29
|
+
{ usage: 'review', short: 'What the board is waiting on YOU for.' },
|
|
30
|
+
{
|
|
31
|
+
usage: 'review accept [what you saw]',
|
|
32
|
+
short: 'Confirm the fix works.',
|
|
33
|
+
long: 'Signs the item off, which is what closes it -- your word is the thing the board is waiting for. The note is optional; anything you type is recorded against your report.',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
usage: 'review reject <what is still wrong>',
|
|
37
|
+
short: 'Send it back, with your reason.',
|
|
38
|
+
long: 'Reopens the item as open and attaches your reason. The commits stay on it: knowing what was tried and did not work is worth keeping.',
|
|
39
|
+
},
|
|
40
|
+
{ usage: 'review repro', short: 'Re-read the steps for this bench.' },
|
|
41
|
+
];
|
|
42
|
+
async execute(args = []) {
|
|
43
|
+
// Straight through to the backlog verb's review branch, so there is
|
|
44
|
+
// exactly one implementation of "what an answer means".
|
|
45
|
+
return super.execute(['review', ...args]);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/review.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,aAAc,SAAQ,cAAc;IACrC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;IACvB,MAAM,CAAC,WAAW,GAAG,4OAA4O,CAAC;IAElQ,MAAM,CAAC,WAAW,GAAG;QAC7B,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,uCAAuC,EAAE;QACnE;YACE,KAAK,EAAE,8BAA8B;YACrC,KAAK,EAAE,wBAAwB;YAC/B,IAAI,EAAE,0KAA0K;SACjL;QACD;YACE,KAAK,EAAE,qCAAqC;YAC5C,KAAK,EAAE,iCAAiC;YACxC,IAAI,EAAE,sIAAsI;SAC7I;QACD,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,mCAAmC,EAAE;KACtE,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE;QAC/B,oEAAoE;QACpE,wDAAwD;QACxD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC5C,CAAC"}
|
|
@@ -194,7 +194,10 @@ export class SheetCommand extends Command {
|
|
|
194
194
|
skillRows.push(` ${(rated[i] ?? '').padEnd(22)}${rated[i + 1] ?? ''}`.trimEnd());
|
|
195
195
|
}
|
|
196
196
|
const roleLine = member.source === 'ghost'
|
|
197
|
-
|
|
197
|
+
// Their ACCOUNT is not a thing this panel is allowed to say --
|
|
198
|
+
// it used to read "(doubleglizzy's character)" for every live
|
|
199
|
+
// seat. See utilities/identity.ts.
|
|
200
|
+
? `live runner -- another player's character`
|
|
198
201
|
: member.source === 'contact' ? 'crew -- recruited local' : (member.archetypeName ?? 'hired runner');
|
|
199
202
|
const weapon = shell.getWeaponProfile();
|
|
200
203
|
const row = (label, value) => ` ${label.padEnd(11)} ${value}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sheet.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/sheet.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sheet.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/sheet.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,5 +55,19 @@
|
|
|
55
55
|
// types/save-file.ts).
|
|
56
56
|
// - The engine no longer accepts a seed's puzzles[] as live content;
|
|
57
57
|
// it migrates them on load (factories/seed-migration.ts).
|
|
58
|
-
|
|
58
|
+
// 1.15.0 (2026-08-28): A PICKET HOLDS ITS CELL. Two shared-session
|
|
59
|
+
// surfaces move, both about a guarding NPC:
|
|
60
|
+
// - COMMAND SEMANTICS: walking onto a guard's doorway no longer
|
|
61
|
+
// displaces them, so "go <dir>" is now refused where it used to
|
|
62
|
+
// succeed. Grid seats are derived in passes and an exact cell used
|
|
63
|
+
// to win, so stepping into the doorway re-seated the guard one
|
|
64
|
+
// square over and doorwayBlocker stopped seeing them (reported as
|
|
65
|
+
// "I was able to just, push Wraith away by moving to the vault
|
|
66
|
+
// door"). A shared table can now be blocked by a body that
|
|
67
|
+
// previously waved everyone through.
|
|
68
|
+
// - NPC BRIEFS, which the hosting server builds: a guarding NPC is
|
|
69
|
+
// told they ARE the barrier. They were told about every barrier
|
|
70
|
+
// around them and never about that, so a picket beside an open
|
|
71
|
+
// door offered to let people past while the geometry refused.
|
|
72
|
+
export const ENGINE_VERSION = '1.15.0';
|
|
59
73
|
//# sourceMappingURL=engine-version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-version.js","sourceRoot":"","sources":["../../../../../../src/commands/game/sideQuest/engine-version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,sEAAsE;AACtE,mEAAmE;AACnE,oEAAoE;AACpE,sEAAsE;AACtE,6CAA6C;AAC7C,iEAAiE;AACjE,qCAAqC;AACrC,oEAAoE;AACpE,6DAA6D;AAC7D,uEAAuE;AACvE,kDAAkD;AAClD,iEAAiE;AACjE,mEAAmE;AACnE,gEAAgE;AAChE,8DAA8D;AAC9D,kEAAkE;AAClE,kDAAkD;AAClD,kEAAkE;AAClE,4DAA4D;AAC5D,qEAAqE;AACrE,yDAAyD;AACzD,sEAAsE;AACtE,2CAA2C;AAC3C,qEAAqE;AACrE,yDAAyD;AACzD,iEAAiE;AACjE,qEAAqE;AACrE,qEAAqE;AACrE,uEAAuE;AACvE,wEAAwE;AACxE,oEAAoE;AACpE,wEAAwE;AACxE,6DAA6D;AAC7D,uEAAuE;AACvE,sEAAsE;AACtE,0DAA0D;AAC1D,2BAA2B;AAC3B,uEAAuE;AACvE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"engine-version.js","sourceRoot":"","sources":["../../../../../../src/commands/game/sideQuest/engine-version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,sEAAsE;AACtE,mEAAmE;AACnE,oEAAoE;AACpE,sEAAsE;AACtE,6CAA6C;AAC7C,iEAAiE;AACjE,qCAAqC;AACrC,oEAAoE;AACpE,6DAA6D;AAC7D,uEAAuE;AACvE,kDAAkD;AAClD,iEAAiE;AACjE,mEAAmE;AACnE,gEAAgE;AAChE,8DAA8D;AAC9D,kEAAkE;AAClE,kDAAkD;AAClD,kEAAkE;AAClE,4DAA4D;AAC5D,qEAAqE;AACrE,yDAAyD;AACzD,sEAAsE;AACtE,2CAA2C;AAC3C,qEAAqE;AACrE,yDAAyD;AACzD,iEAAiE;AACjE,qEAAqE;AACrE,qEAAqE;AACrE,uEAAuE;AACvE,wEAAwE;AACxE,oEAAoE;AACpE,wEAAwE;AACxE,6DAA6D;AAC7D,uEAAuE;AACvE,sEAAsE;AACtE,0DAA0D;AAC1D,2BAA2B;AAC3B,uEAAuE;AACvE,8DAA8D;AAC9D,mEAAmE;AACnE,4CAA4C;AAC5C,kEAAkE;AAClE,oEAAoE;AACpE,uEAAuE;AACvE,mEAAmE;AACnE,sEAAsE;AACtE,mEAAmE;AACnE,+DAA+D;AAC/D,yCAAyC;AACzC,qEAAqE;AACrE,oEAAoE;AACpE,mEAAmE;AACnE,kEAAkE;AAClE,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Direction } from '../types/shared/direction-enum.js';
|
|
2
|
+
import { ISceneSeedJson } from '../types/seed/scene-seed.js';
|
|
3
|
+
import { IReproFixture } from '../types/repro.js';
|
|
4
|
+
/**
|
|
5
|
+
* BUILDING THE BENCH A REVIEW ITEM SHIPS WITH.
|
|
6
|
+
*
|
|
7
|
+
* Two rooms and one sealed door between them. That is the whole scene,
|
|
8
|
+
* on purpose: a repro is a bench, not a run, and every room you have to
|
|
9
|
+
* walk through to reach the thing under test is a room the reproduction
|
|
10
|
+
* can go wrong in.
|
|
11
|
+
*
|
|
12
|
+
* THIS FILE OWNS THE INVARIANTS, and that is the reason it exists
|
|
13
|
+
* rather than the specs carrying raw seed JSON. The author of a repro
|
|
14
|
+
* states INTENT -- "a guard in the doorway", "a keypad sealing north" --
|
|
15
|
+
* and everything that intent implies is derived here, once, for every
|
|
16
|
+
* repro that will ever be written.
|
|
17
|
+
*
|
|
18
|
+
* The invariant that motivated the design: an NPC marked `guarding`
|
|
19
|
+
* whose startSpot is not the sealed exit's spot. Nothing throws.
|
|
20
|
+
* `holdsGround` is simply never consulted, because doorwayOccupants
|
|
21
|
+
* reads the exit cell and the guard is not standing in it. The scene
|
|
22
|
+
* builds, the walkthrough passes, and the repro demonstrates the
|
|
23
|
+
* opposite of what it claims -- a check whose two sides fail together
|
|
24
|
+
* cannot see the failure, which is the dominant defect shape in this
|
|
25
|
+
* codebase's history. An author cannot make that mistake here, because
|
|
26
|
+
* an author never supplies the spot.
|
|
27
|
+
*
|
|
28
|
+
* The other invariants are refusals rather than derivations, and they
|
|
29
|
+
* refuse LOUDLY rather than degrading. A repro that silently does less
|
|
30
|
+
* than it says is the failure mode this whole feature is built against,
|
|
31
|
+
* so "drop the field and carry on" -- which is what the runtime does
|
|
32
|
+
* with a code on a lock -- is exactly the wrong behaviour here.
|
|
33
|
+
*/
|
|
34
|
+
/** The room the device stands in, which is also the room that declares
|
|
35
|
+
* the exit it seals. */
|
|
36
|
+
export declare const REPRO_BARRIER_ROOM = "The Approach";
|
|
37
|
+
/** Through the door. */
|
|
38
|
+
export declare const REPRO_FAR_ROOM = "The Far Side";
|
|
39
|
+
/** The one spot that matters, and the one an author never has to name.
|
|
40
|
+
* Both rooms have it: a doorway has two sides, and a guard posted on
|
|
41
|
+
* the far side stands in their own. */
|
|
42
|
+
export declare const REPRO_DOORWAY_SPOT = "doorway";
|
|
43
|
+
/**
|
|
44
|
+
* Somewhere to stand that is NOT the doorway, so "move to the door" is
|
|
45
|
+
* a real move with a real before-state. Without it the runner starts in
|
|
46
|
+
* the doorway and the whole class of "I walked onto the guard's cell"
|
|
47
|
+
* items cannot be reproduced at all.
|
|
48
|
+
*
|
|
49
|
+
* NOT called "open floor", which was the first name and was wrong for a
|
|
50
|
+
* reason worth recording: "open floor" is the ENGINE's phrase for
|
|
51
|
+
* having no named spot at all (see move.ts -- "You peel off to the open
|
|
52
|
+
* floor"). Naming a real spot that made a positioned NPC render as
|
|
53
|
+
* "Grier at the open floor, Grier on the open floor" -- one clause from
|
|
54
|
+
* the spot, one from the generic fallback, reading exactly like a
|
|
55
|
+
* duplicate-render bug. Every reviewer sent to a bench would have filed
|
|
56
|
+
* it. A fixture must not borrow the engine's words for "none".
|
|
57
|
+
*/
|
|
58
|
+
export declare const REPRO_FLOOR_SPOT = "back wall";
|
|
59
|
+
/** A fixture that cannot be built into an honest bench. Thrown, never
|
|
60
|
+
* swallowed -- the caller turns it into a sentence for whoever wrote
|
|
61
|
+
* the spec. */
|
|
62
|
+
export declare class ReproFixtureError extends Error {
|
|
63
|
+
constructor(message: string);
|
|
64
|
+
}
|
|
65
|
+
export interface IReproBuild {
|
|
66
|
+
seed: ISceneSeedJson;
|
|
67
|
+
/** What the builder actually named things, so a caller can print
|
|
68
|
+
* steps that refer to them without guessing. */
|
|
69
|
+
names: {
|
|
70
|
+
device?: string;
|
|
71
|
+
npcs: string[];
|
|
72
|
+
direction: Direction;
|
|
73
|
+
barrierRoom: string;
|
|
74
|
+
farRoom: string;
|
|
75
|
+
startRoom: string;
|
|
76
|
+
};
|
|
77
|
+
/** Things worth saying that are not refusals -- a mundane sent to
|
|
78
|
+
* dispel a ward, a key stranded behind its own door. */
|
|
79
|
+
warnings: string[];
|
|
80
|
+
}
|
|
81
|
+
export declare function buildReproScene(fixture: IReproFixture): IReproBuild;
|
|
82
|
+
/** The archetype a fixture asks for, resolved. Separate from the build
|
|
83
|
+
* because the launcher hands the NAME to the game (which rolls the
|
|
84
|
+
* character itself) while the headless walkthrough needs the spread to
|
|
85
|
+
* make a save out of. */
|
|
86
|
+
export declare function reproArchetypeName(fixture: IReproFixture): string;
|
|
87
|
+
export declare function reproArchetype(fixture: IReproFixture): import("../archetypes.js").IArchetype;
|