@maka/maka-cli 5.72.0 → 5.74.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 +0 -4
- package/bundle/typescript/src/commands/game/_index.js +6 -5
- package/bundle/typescript/src/commands/game/_index.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +18 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/breach.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.d.ts +4 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +14 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.d.ts +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +25 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +17 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +8 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/snoop.js +8 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/snoop.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.d.ts +48 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.js +135 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +3 -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 +38 -2
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +49 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +93 -11
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/headless.js +44 -3
- package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +28 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +62 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +39 -6
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +74 -31
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js +6 -6
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +21 -7
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +50 -30
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.d.ts +63 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js +41 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-names.d.ts +43 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-names.js +83 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-names.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/identity.d.ts +26 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/identity.js +37 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/identity.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/map-view.d.ts +19 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/map-view.js +22 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/map-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/repro-launch.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/session-legs.d.ts +74 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/session-legs.js +74 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/session-legs.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/splash.d.ts +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/splash.js +60 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/splash.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js +15 -10
- package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +103 -56
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/commands/registry.js +1 -1
- package/bundle/typescript/src/commands/registry.js.map +1 -1
- package/package.json +1 -1
- package/bundle/typescript/src/commands/game/battleship.sub.cmd.d.ts +0 -1
- package/bundle/typescript/src/commands/game/battleship.sub.cmd.js +0 -12
- package/bundle/typescript/src/commands/game/battleship.sub.cmd.js.map +0 -1
- package/bundle/typescript/src/commands/game/play.command.d.ts +0 -3
- package/bundle/typescript/src/commands/game/play.command.js +0 -18
- package/bundle/typescript/src/commands/game/play.command.js.map +0 -1
- package/bundle/typescript/src/commands/game/pong.sub.cmd.d.ts +0 -1
- package/bundle/typescript/src/commands/game/pong.sub.cmd.js +0 -12
- package/bundle/typescript/src/commands/game/pong.sub.cmd.js.map +0 -1
- package/bundle/typescript/src/commands/game/snake.sub.cmd.d.ts +0 -1
- package/bundle/typescript/src/commands/game/snake.sub.cmd.js +0 -12
- package/bundle/typescript/src/commands/game/snake.sub.cmd.js.map +0 -1
- package/bundle/typescript/src/commands/game/tetris.sub.cmd.d.ts +0 -1
- package/bundle/typescript/src/commands/game/tetris.sub.cmd.js +0 -12
- package/bundle/typescript/src/commands/game/tetris.sub.cmd.js.map +0 -1
|
@@ -286,4 +286,26 @@ function renderDetailedFloor(l, here, rooms, eye) {
|
|
|
286
286
|
out.pop();
|
|
287
287
|
return [...out, ...fogNotes(l.notes, rooms, eye)];
|
|
288
288
|
}
|
|
289
|
+
/**
|
|
290
|
+
* THE LINE UNDER A DOCKED MAP -- where you are, in bold.
|
|
291
|
+
*
|
|
292
|
+
* ONE COPY, because there were two and only one of them ran on a shared
|
|
293
|
+
* run (RwPkFsRwd4c2uHvGN: "in a new shared run, there is no name on the
|
|
294
|
+
* area map"). The solo path built its caption inline in Game.updateExits
|
|
295
|
+
* and the server's per-player push in headless.ts built the ROOM
|
|
296
|
+
* caption inline too -- and simply never built the district one. Two
|
|
297
|
+
* inline copies is how a panel ends up captioned in one mode and blank
|
|
298
|
+
* in the other.
|
|
299
|
+
*
|
|
300
|
+
* `width` is OPTIONAL and that asymmetry is real, not an oversight: the
|
|
301
|
+
* solo renderer knows its box width and trims to it, while the server
|
|
302
|
+
* cannot know the client's box width -- it is a percentage of a
|
|
303
|
+
* terminal it never sees. The room overlay has shipped on that same
|
|
304
|
+
* compromise since 2026-08-24. Omitting the width means "do not trim",
|
|
305
|
+
* which is the honest behaviour for the side that cannot measure.
|
|
306
|
+
*/
|
|
307
|
+
export function mapCaption(text, width) {
|
|
308
|
+
const w = width ?? text.length;
|
|
309
|
+
return `{bold}${text.length > w ? `${text.slice(0, Math.max(1, w - 1))}…` : text}{/bold}`;
|
|
310
|
+
}
|
|
289
311
|
//# sourceMappingURL=map-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-view.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/map-view.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"map-view.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/map-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { IRepro } from '../types/repro.js';
|
|
|
3
3
|
/**
|
|
4
4
|
* FINDING THE ITEM A REPRO WAS ASKED FOR, and standing its bench up.
|
|
5
5
|
*
|
|
6
|
-
* Kept out of the launcher so `maka play
|
|
6
|
+
* Kept out of the launcher so `maka play --repro <id>` can
|
|
7
7
|
* pull the game graph in lazily, the same way `--backlog` does -- the
|
|
8
8
|
* launcher's own note explains why that matters: importing a model
|
|
9
9
|
* chains through game.ts, blessed and 150 files on every `maka`
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE LAUNCHER'S LEG LOOP: play, detour to a bench, come back.
|
|
3
|
+
*
|
|
4
|
+
* `backlog review <n> repro` cannot swap the live scene -- the child
|
|
5
|
+
* holds the terminal through blessed, and a second blessed screen on one
|
|
6
|
+
* terminal is the exact failure the "parent is the guaranteed janitor"
|
|
7
|
+
* rule exists to prevent. So the game seals its save, writes a handoff
|
|
8
|
+
* and exits 0; the parent reads the note, plays the bench, and relaunches
|
|
9
|
+
* the same runner on a resume.
|
|
10
|
+
*
|
|
11
|
+
* EXTRACTED SO IT CAN BE TESTED. It lived inline in the launcher's
|
|
12
|
+
* handler, which needs two interactive prompts, a session directory, a
|
|
13
|
+
* cloud reconcile and a spawned child before it reaches this loop -- so
|
|
14
|
+
* the one part with real cases in it was the one part nothing could
|
|
15
|
+
* exercise. The hooks are the process-level things a test cannot do
|
|
16
|
+
* (spawn a child, play a bench); the ORDER those happen in is the thing
|
|
17
|
+
* under test, and that is all here.
|
|
18
|
+
*/
|
|
19
|
+
export interface ILegHandoff {
|
|
20
|
+
itemId: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ILegHooks {
|
|
23
|
+
/** Spawn the game and wait for it. Resolves with the child's exit shape. */
|
|
24
|
+
playGame(): Promise<{
|
|
25
|
+
code: number | null;
|
|
26
|
+
signal: NodeJS.Signals | null;
|
|
27
|
+
}>;
|
|
28
|
+
/** Read and destroy the note the game left, if it left one. */
|
|
29
|
+
takeHandoff(): ILegHandoff | undefined;
|
|
30
|
+
/** Play the bench for this item. Failures are the hook's to narrate. */
|
|
31
|
+
playBench(itemId: string): Promise<void>;
|
|
32
|
+
/** Rewrite the launch file so the next `playGame` resumes the save. */
|
|
33
|
+
prepareResume(): void;
|
|
34
|
+
/** Called instead of a bench when the detour budget is spent. The
|
|
35
|
+
* player still goes back to their game -- see the loop below. */
|
|
36
|
+
onDetourLimit?(itemId: string): void;
|
|
37
|
+
}
|
|
38
|
+
export interface ILegResult {
|
|
39
|
+
code: number | null;
|
|
40
|
+
signal: NodeJS.Signals | null;
|
|
41
|
+
/** How many times the game was started. */
|
|
42
|
+
games: number;
|
|
43
|
+
/** How many benches were played. */
|
|
44
|
+
benches: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* HOW MANY BENCH DETOURS ONE SESSION MAY TAKE.
|
|
48
|
+
*
|
|
49
|
+
* A budget on DETOURS, never on games -- and that distinction is the
|
|
50
|
+
* whole of board item E2uH5tzywomMiWJ92. The original loop was
|
|
51
|
+
* `for (let leg = 0; leg < 3; leg++)` around the whole body, which
|
|
52
|
+
* bounds the number of times the game is STARTED. Three starts allow
|
|
53
|
+
* only two round trips: the third handoff is consumed, its bench is
|
|
54
|
+
* played, the resume file is written -- and then the loop condition
|
|
55
|
+
* fails and nobody ever launches it. The player is returned to a
|
|
56
|
+
* terminal, holding a saved game the launcher had already promised to
|
|
57
|
+
* reopen: "You'll come straight back to it when you leave the bench."
|
|
58
|
+
*
|
|
59
|
+
* The comment on the old bound said "a bound costs nothing". It cost a
|
|
60
|
+
* player their session on their third review, which is exactly the
|
|
61
|
+
* review a person doing a review PASS reaches.
|
|
62
|
+
*/
|
|
63
|
+
export declare const MAX_BENCH_DETOURS = 3;
|
|
64
|
+
/**
|
|
65
|
+
* Runs a session and every bench detour it asks for, and always leaves
|
|
66
|
+
* the player IN THE GAME.
|
|
67
|
+
*
|
|
68
|
+
* The loop is unbounded in games on purpose, and cannot spin: every
|
|
69
|
+
* further pass requires a FRESH handoff, a handoff is destroyed as it is
|
|
70
|
+
* read, and only the player typing the verb writes one. So the number of
|
|
71
|
+
* passes is bounded by the player's own actions and, above that, by the
|
|
72
|
+
* detour budget -- which stops the DETOUR and never the return leg.
|
|
73
|
+
*/
|
|
74
|
+
export declare function runSessionLegs(hooks: ILegHooks, maxDetours?: number): Promise<ILegResult>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE LAUNCHER'S LEG LOOP: play, detour to a bench, come back.
|
|
3
|
+
*
|
|
4
|
+
* `backlog review <n> repro` cannot swap the live scene -- the child
|
|
5
|
+
* holds the terminal through blessed, and a second blessed screen on one
|
|
6
|
+
* terminal is the exact failure the "parent is the guaranteed janitor"
|
|
7
|
+
* rule exists to prevent. So the game seals its save, writes a handoff
|
|
8
|
+
* and exits 0; the parent reads the note, plays the bench, and relaunches
|
|
9
|
+
* the same runner on a resume.
|
|
10
|
+
*
|
|
11
|
+
* EXTRACTED SO IT CAN BE TESTED. It lived inline in the launcher's
|
|
12
|
+
* handler, which needs two interactive prompts, a session directory, a
|
|
13
|
+
* cloud reconcile and a spawned child before it reaches this loop -- so
|
|
14
|
+
* the one part with real cases in it was the one part nothing could
|
|
15
|
+
* exercise. The hooks are the process-level things a test cannot do
|
|
16
|
+
* (spawn a child, play a bench); the ORDER those happen in is the thing
|
|
17
|
+
* under test, and that is all here.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* HOW MANY BENCH DETOURS ONE SESSION MAY TAKE.
|
|
21
|
+
*
|
|
22
|
+
* A budget on DETOURS, never on games -- and that distinction is the
|
|
23
|
+
* whole of board item E2uH5tzywomMiWJ92. The original loop was
|
|
24
|
+
* `for (let leg = 0; leg < 3; leg++)` around the whole body, which
|
|
25
|
+
* bounds the number of times the game is STARTED. Three starts allow
|
|
26
|
+
* only two round trips: the third handoff is consumed, its bench is
|
|
27
|
+
* played, the resume file is written -- and then the loop condition
|
|
28
|
+
* fails and nobody ever launches it. The player is returned to a
|
|
29
|
+
* terminal, holding a saved game the launcher had already promised to
|
|
30
|
+
* reopen: "You'll come straight back to it when you leave the bench."
|
|
31
|
+
*
|
|
32
|
+
* The comment on the old bound said "a bound costs nothing". It cost a
|
|
33
|
+
* player their session on their third review, which is exactly the
|
|
34
|
+
* review a person doing a review PASS reaches.
|
|
35
|
+
*/
|
|
36
|
+
export const MAX_BENCH_DETOURS = 3;
|
|
37
|
+
/**
|
|
38
|
+
* Runs a session and every bench detour it asks for, and always leaves
|
|
39
|
+
* the player IN THE GAME.
|
|
40
|
+
*
|
|
41
|
+
* The loop is unbounded in games on purpose, and cannot spin: every
|
|
42
|
+
* further pass requires a FRESH handoff, a handoff is destroyed as it is
|
|
43
|
+
* read, and only the player typing the verb writes one. So the number of
|
|
44
|
+
* passes is bounded by the player's own actions and, above that, by the
|
|
45
|
+
* detour budget -- which stops the DETOUR and never the return leg.
|
|
46
|
+
*/
|
|
47
|
+
export async function runSessionLegs(hooks, maxDetours = MAX_BENCH_DETOURS) {
|
|
48
|
+
let code = null;
|
|
49
|
+
let signal = null;
|
|
50
|
+
let games = 0;
|
|
51
|
+
let benches = 0;
|
|
52
|
+
for (;;) {
|
|
53
|
+
({ code, signal } = await hooks.playGame());
|
|
54
|
+
games += 1;
|
|
55
|
+
const handoff = hooks.takeHandoff();
|
|
56
|
+
// No note means the player simply left. That is the ONLY way out of
|
|
57
|
+
// this loop, and it is the one the player chose.
|
|
58
|
+
if (handoff === undefined)
|
|
59
|
+
break;
|
|
60
|
+
if (benches >= maxDetours) {
|
|
61
|
+
// Budget spent. Say so and GO BACK ANYWAY -- refusing the detour
|
|
62
|
+
// is a small disappointment, dropping someone to a terminal with
|
|
63
|
+
// an unopened save is the bug this whole module exists for.
|
|
64
|
+
hooks.onDetourLimit?.(handoff.itemId);
|
|
65
|
+
hooks.prepareResume();
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
await hooks.playBench(handoff.itemId);
|
|
69
|
+
benches += 1;
|
|
70
|
+
hooks.prepareResume();
|
|
71
|
+
}
|
|
72
|
+
return { code, signal, games, benches };
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=session-legs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-legs.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/session-legs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA6BH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAgB,EAChB,aAAqB,iBAAiB;IAEtC,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,MAAM,GAA0B,IAAI,CAAC;IACzC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,SAAS,CAAC;QACR,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,CAAC;QAEX,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACpC,oEAAoE;QACpE,iDAAiD;QACjD,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM;QAEjC,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;YAC1B,iEAAiE;YACjE,iEAAiE;YACjE,4DAA4D;YAC5D,KAAK,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtC,KAAK,CAAC,aAAa,EAAE,CAAC;YACtB,SAAS;QACX,CAAC;QAED,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,CAAC;QACb,KAAK,CAAC,aAAa,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** The uncolored splash, line by line. Pure so a test can pin the
|
|
2
|
+
* frame's geometry without capturing a stream. */
|
|
3
|
+
export declare function splashLines(): string[];
|
|
4
|
+
/** Colors, applied per line kind: cyan chrome for the frame, magenta
|
|
5
|
+
* neon for the name, dim for the subtitle, street-green for the motto. */
|
|
6
|
+
export declare function coloredSplash(): string;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
// The splash for `maka play` (user request 2026-08-29: "give it a
|
|
3
|
+
// 'splash screen' that fits the theme"). One neon frame, the game's
|
|
4
|
+
// name, and the oldest piece of Shadowrun street wisdom there is.
|
|
5
|
+
//
|
|
6
|
+
// BUILT, NOT DRAWN: the frame is computed around the content lines, so
|
|
7
|
+
// every border is exactly as wide as the widest line and a ragged edge
|
|
8
|
+
// cannot ship. Hand-drawn ASCII frames misalign silently the moment
|
|
9
|
+
// someone edits a line -- the same class of quiet drift as every other
|
|
10
|
+
// two-surfaces bug in this repo, solved the same way: one source.
|
|
11
|
+
//
|
|
12
|
+
// The gradient blocks are mirrored around the title to read as a neon
|
|
13
|
+
// sign flickering on; the motto sits OUTSIDE the frame, the way it
|
|
14
|
+
// would be sprayed under the sign rather than printed on it.
|
|
15
|
+
const TITLE = '░▒▓█ S I D E Q U E S T █▓▒░';
|
|
16
|
+
const SUBTITLE = 'a S h a d o w r u n s t o r y';
|
|
17
|
+
const MOTTO_1 = 'Watch your back. Shoot straight. Conserve ammo.';
|
|
18
|
+
const MOTTO_2 = 'And never, ever cut a deal with a dragon.';
|
|
19
|
+
/** The uncolored splash, line by line. Pure so a test can pin the
|
|
20
|
+
* frame's geometry without capturing a stream. */
|
|
21
|
+
export function splashLines() {
|
|
22
|
+
const content = [TITLE, SUBTITLE];
|
|
23
|
+
const inner = Math.max(...content.map(l => l.length)) + 6;
|
|
24
|
+
const centered = (l) => {
|
|
25
|
+
const pad = inner - l.length;
|
|
26
|
+
const left = Math.floor(pad / 2);
|
|
27
|
+
return `┃${' '.repeat(left)}${l}${' '.repeat(pad - left)}┃`;
|
|
28
|
+
};
|
|
29
|
+
const bar = '━'.repeat(inner);
|
|
30
|
+
return [
|
|
31
|
+
`┏${bar}┓`,
|
|
32
|
+
centered(''),
|
|
33
|
+
centered(TITLE),
|
|
34
|
+
centered(SUBTITLE),
|
|
35
|
+
centered(''),
|
|
36
|
+
`┗${bar}┛`,
|
|
37
|
+
'',
|
|
38
|
+
` ${MOTTO_1}`,
|
|
39
|
+
` ${MOTTO_2}`,
|
|
40
|
+
'',
|
|
41
|
+
];
|
|
42
|
+
}
|
|
43
|
+
/** Colors, applied per line kind: cyan chrome for the frame, magenta
|
|
44
|
+
* neon for the name, dim for the subtitle, street-green for the motto. */
|
|
45
|
+
export function coloredSplash() {
|
|
46
|
+
return splashLines().map(line => {
|
|
47
|
+
if (line.includes('S I D E')) {
|
|
48
|
+
const [l, r] = [line.indexOf('┃'), line.lastIndexOf('┃')];
|
|
49
|
+
return chalk.cyan(line[l]) + chalk.magentaBright.bold(line.slice(l + 1, r)) + chalk.cyan(line[r]);
|
|
50
|
+
}
|
|
51
|
+
if (line.includes(SUBTITLE)) {
|
|
52
|
+
const [l, r] = [line.indexOf('┃'), line.lastIndexOf('┃')];
|
|
53
|
+
return chalk.cyan(line[l]) + chalk.gray(line.slice(l + 1, r)) + chalk.cyan(line[r]);
|
|
54
|
+
}
|
|
55
|
+
if (line.includes(MOTTO_1) || line.includes(MOTTO_2))
|
|
56
|
+
return chalk.green.dim(line);
|
|
57
|
+
return chalk.cyan(line);
|
|
58
|
+
}).join('\n');
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=splash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"splash.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/splash.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import ShadowrunCommand from './sideQuest.sub.cmd.js';
|
|
1
|
+
import ShadowrunCommand, { ShadowrunCompat } from './sideQuest.sub.cmd.js';
|
|
2
2
|
import { Command } from '../../command.js';
|
|
3
|
-
|
|
3
|
+
// Registered under BOTH the new spelling (play:backlog) and the compat
|
|
4
|
+
// sub (play:shadowrun:backlog) from ONE definition -- two commands, one
|
|
5
|
+
// options object, one handler, so the pair cannot drift.
|
|
6
|
+
const registerBacklog = (parent) => Command.create({
|
|
4
7
|
name: 'backlog',
|
|
5
|
-
usage: 'maka play:
|
|
8
|
+
usage: 'maka play:backlog [<item id>]',
|
|
6
9
|
shortDesc: 'Read the play-tester board without starting a game.',
|
|
7
10
|
description: `The play-tester backlog on maka-cli.com: what has been reported, what
|
|
8
11
|
the rulebooks made of it, what closed it, and which items ship a repro
|
|
@@ -19,12 +22,12 @@ Command.create({
|
|
|
19
22
|
{ name: 'detach', description: 'With an item id: take a wrongly attached commit back off it (a full sha, or several separated by commas). Admin only. Remaining words say why.' },
|
|
20
23
|
],
|
|
21
24
|
examples: [
|
|
22
|
-
'maka play:
|
|
23
|
-
'maka play:
|
|
24
|
-
'maka play:
|
|
25
|
-
'maka play:
|
|
26
|
-
'maka play:
|
|
27
|
-
'maka play:
|
|
25
|
+
'maka play:backlog',
|
|
26
|
+
'maka play:backlog --filter in-review',
|
|
27
|
+
'maka play:backlog --commit 359ad1fe',
|
|
28
|
+
'maka play:backlog b9YeNqTNBJuk9dbrk',
|
|
29
|
+
'maka play:backlog 4svHkpnDhWcXDzPsX --close filed by mistake',
|
|
30
|
+
'maka play:backlog b9YeNqTNBJuk9dbrk --detach 7ed04359 attached to the wrong row',
|
|
28
31
|
],
|
|
29
32
|
}, async function (args, opts) {
|
|
30
33
|
const { dumpBacklog } = await import('./sideQuest/utilities/backlog-dump.js');
|
|
@@ -58,5 +61,7 @@ Command.create({
|
|
|
58
61
|
detach,
|
|
59
62
|
detachAsked,
|
|
60
63
|
});
|
|
61
|
-
},
|
|
64
|
+
}, parent);
|
|
65
|
+
registerBacklog(ShadowrunCommand);
|
|
66
|
+
registerBacklog(ShadowrunCompat);
|
|
62
67
|
//# sourceMappingURL=sideQuest-backlog.sub.cmd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sideQuest-backlog.sub.cmd.js","sourceRoot":"","sources":["../../../../../src/commands/game/sideQuest-backlog.sub.cmd.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"sideQuest-backlog.sub.cmd.js","sourceRoot":"","sources":["../../../../../src/commands/game/sideQuest-backlog.sub.cmd.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,EAAE,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAwC3C,uEAAuE;AACvE,wEAAwE;AACxE,yDAAyD;AACzD,MAAM,eAAe,GAAG,CAAC,MAA+B,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAC1E,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,+BAA+B;IACtC,SAAS,EAAE,qDAAqD;IAChE,WAAW,EAAE;;mEAEoD;IACjE,SAAS,EAAE;QACT,oEAAoE;QACpE,gEAAgE;QAChE,iEAAiE;QACjE,gDAAgD;QAChD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,WAAW,EAAE,iCAAiC,EAAE;QACxI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uEAAuE,EAAE;QACxG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oDAAoD,EAAE;QAClG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kHAAkH,EAAE;QAClK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gJAAgJ,EAAE;KAClL;IACD,QAAQ,EAAE;QACR,mBAAmB;QACnB,sCAAsC;QACtC,qCAAqC;QACrC,qCAAqC;QACrC,8DAA8D;QAC9D,iFAAiF;KAClF;CACF,EAAE,KAAK,WAAW,IAAc,EAAE,IAAqB;IACtD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;IAE9E,qEAAqE;IACrE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,4DAA4D;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;IAE/D,oEAAoE;IACpE,mEAAmE;IACnE,sEAAsE;IACtE,qEAAqE;IACrE,uEAAuE;IACvE,8DAA8D;IAC9D,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,sCAAsC,CAAC,CAAC;IACxG,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE1C,oEAAoE;IACpE,uEAAuE;IACvE,qDAAqD;IACrD,MAAM,MAAM,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAChF,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE7B,MAAM,WAAW,CAAC;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QACX,GAAG,EAAE,IAAI,CAAC,GAAG,KAAK,IAAI;QACtB,KAAK;QACL,MAAM;QACN,MAAM;QACN,WAAW;KACZ,CAAC,CAAC;AACL,CAAC,EAAE,MAAM,CAAC,CAAC;AAEX,eAAe,CAAC,gBAAgB,CAAC,CAAC;AAClC,eAAe,CAAC,eAAe,CAAC,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
import { createRequire } from 'module';
|
|
3
3
|
const require = createRequire(import.meta.url);
|
|
4
|
-
import PlayCommand from './play.command.js';
|
|
5
4
|
import { Command } from '../../command.js';
|
|
6
5
|
import { Actions } from '../../tools/actions/actions.class.js';
|
|
7
6
|
import { Log } from '../../tools/log/log.class.js';
|
|
@@ -223,37 +222,45 @@ async function staleBundleAgainstSrc() {
|
|
|
223
222
|
return undefined;
|
|
224
223
|
return src.at > built.at ? path.relative(root, src.file) : undefined;
|
|
225
224
|
}
|
|
225
|
+
// THERE IS ONLY ONE THING TO PLAY (user, 2026-08-29: "adjust 'maka
|
|
226
|
+
// play:shadowrun' to just be 'maka play' -- remove all other 'play'
|
|
227
|
+
// subcommands. There's only one thing to play now!"). `play` IS the
|
|
228
|
+
// game; the arcade stubs (pong, snake, battleship, and the tetris
|
|
229
|
+
// example that was never even registered) are gone. A hidden
|
|
230
|
+
// `shadowrun` sub below keeps the old spelling working for muscle
|
|
231
|
+
// memory and old docs -- it forwards here and adds nothing.
|
|
232
|
+
const PLAY_VALID_OPTS = [
|
|
233
|
+
{ name: 'player', description: 'Which runner to play (skips the character menu).' },
|
|
234
|
+
{ name: 'telemetry', boolFlag: true, description: 'Re-ask the play-session recording question for this account.' },
|
|
235
|
+
// MOVED TO play:backlog, and kept HERE as hidden options
|
|
236
|
+
// purely so the handler can say so. Removing them outright makes
|
|
237
|
+
// validateParams refuse with "Invalid option: backlog" and dump the
|
|
238
|
+
// usage block -- technically an error, and useless: it never names
|
|
239
|
+
// where the command went. Declared and hidden, the redirect below
|
|
240
|
+
// gets to run.
|
|
241
|
+
{ name: 'backlog', hidden: true, description: 'Moved to "maka play:backlog".' },
|
|
242
|
+
{ name: 'filter', hidden: true, description: 'Moved to "maka play:backlog".' },
|
|
243
|
+
{ name: 'commit', hidden: true, description: 'Moved to "maka play:backlog".' },
|
|
244
|
+
{ name: 'all', boolFlag: true, hidden: true, description: 'Moved to "maka play:backlog".' },
|
|
245
|
+
{ name: 'close', hidden: true, description: 'Moved to "maka play:backlog".' },
|
|
246
|
+
// SECOND COPY of the status vocabulary, and it had already drifted:
|
|
247
|
+
// `in-review` existed on the server while this list refused it as a
|
|
248
|
+
// typo. It cannot import BACKLOG_STATUSES -- that would chain the
|
|
249
|
+
// whole game graph into every `maka` invocation, which is why this
|
|
250
|
+
// file loads ./sideQuest lazily -- so the duplication stays, and
|
|
251
|
+
// stays annotated. Keep in step with utilities/backlog.ts.
|
|
252
|
+
{ name: 'repro', description: 'Play the repro bench for a review item: --repro <item id> (or its number in "backlog review").' },
|
|
253
|
+
{ name: 'dryRun', boolFlag: true, description: 'With --repro: replay the steps headlessly and print the transcript, without starting a game.' },
|
|
254
|
+
];
|
|
226
255
|
const ShadowrunCommand = Command.create({
|
|
227
|
-
name: '
|
|
228
|
-
usage: 'maka play
|
|
229
|
-
shortDesc: `Play a
|
|
230
|
-
aliases: [
|
|
256
|
+
name: 'play',
|
|
257
|
+
usage: 'maka play',
|
|
258
|
+
shortDesc: `Play SIDE QUEST -- a Shadowrun story.`,
|
|
259
|
+
aliases: [],
|
|
231
260
|
description: `Just a little pet project... I really liked the Dunnet game that
|
|
232
261
|
came with MacOS but has been removed. I really like the Shadowrun world, and
|
|
233
262
|
thought I'd mess around with a little text-based version of it.`,
|
|
234
|
-
validOpts:
|
|
235
|
-
{ name: 'player', description: 'Which runner to play (skips the character menu).' },
|
|
236
|
-
{ name: 'telemetry', boolFlag: true, description: 'Re-ask the play-session recording question for this account.' },
|
|
237
|
-
// MOVED TO play:shadowrun:backlog, and kept HERE as hidden options
|
|
238
|
-
// purely so the handler can say so. Removing them outright makes
|
|
239
|
-
// validateParams refuse with "Invalid option: backlog" and dump the
|
|
240
|
-
// usage block -- technically an error, and useless: it never names
|
|
241
|
-
// where the command went. Declared and hidden, the redirect below
|
|
242
|
-
// gets to run.
|
|
243
|
-
{ name: 'backlog', hidden: true, description: 'Moved to "maka play:shadowrun:backlog".' },
|
|
244
|
-
{ name: 'filter', hidden: true, description: 'Moved to "maka play:shadowrun:backlog".' },
|
|
245
|
-
{ name: 'commit', hidden: true, description: 'Moved to "maka play:shadowrun:backlog".' },
|
|
246
|
-
{ name: 'all', boolFlag: true, hidden: true, description: 'Moved to "maka play:shadowrun:backlog".' },
|
|
247
|
-
{ name: 'close', hidden: true, description: 'Moved to "maka play:shadowrun:backlog".' },
|
|
248
|
-
// SECOND COPY of the status vocabulary, and it had already drifted:
|
|
249
|
-
// `in-review` existed on the server while this list refused it as a
|
|
250
|
-
// typo. It cannot import BACKLOG_STATUSES -- that would chain the
|
|
251
|
-
// whole game graph into every `maka` invocation, which is why this
|
|
252
|
-
// file loads ./sideQuest lazily -- so the duplication stays, and
|
|
253
|
-
// stays annotated. Keep in step with utilities/backlog.ts.
|
|
254
|
-
{ name: 'repro', description: 'Play the repro bench for a review item: --repro <item id> (or its number in "backlog review").' },
|
|
255
|
-
{ name: 'dryRun', boolFlag: true, description: 'With --repro: replay the steps headlessly and print the transcript, without starting a game.' },
|
|
256
|
-
]
|
|
263
|
+
validOpts: PLAY_VALID_OPTS,
|
|
257
264
|
}, async function (args, opts) {
|
|
258
265
|
// BACKLOG DUMP, and nothing else. Deliberately the first thing in the
|
|
259
266
|
// handler: everything below starts a play session -- a session dir, a
|
|
@@ -262,7 +269,7 @@ const ShadowrunCommand = Command.create({
|
|
|
262
269
|
// This also sits OUTSIDE the handler's big try/catch, so it owns its
|
|
263
270
|
// own error reporting.
|
|
264
271
|
// THE BOARD MOVED OUT (player, 2026-08-28: "let's move --backlog to a
|
|
265
|
-
// subcommand"). It lives at `maka play:
|
|
272
|
+
// subcommand"). It lives at `maka play:backlog` -- see
|
|
266
273
|
// sideQuest-backlog.sub.cmd.ts for why reading a list had no business
|
|
267
274
|
// being a flag on the command that starts a game.
|
|
268
275
|
//
|
|
@@ -278,9 +285,18 @@ const ShadowrunCommand = Command.create({
|
|
|
278
285
|
if (moved) {
|
|
279
286
|
const id = typeof opts.backlog === 'string' ? ` ${opts.backlog.trim()}` : '';
|
|
280
287
|
Log.error(`${moved} has moved to its own command.`);
|
|
281
|
-
Log.info(` maka play:
|
|
288
|
+
Log.info(` maka play:backlog${id}`);
|
|
282
289
|
return;
|
|
283
290
|
}
|
|
291
|
+
// THE NEON COMES ON before any menu (user request 2026-08-29: "give
|
|
292
|
+
// it a 'splash screen' that fits the theme"). Interactive launches
|
|
293
|
+
// only: utility reads returned above, --dry-run never takes the
|
|
294
|
+
// terminal, and a piped stdout is somebody's script, not somebody's
|
|
295
|
+
// evening.
|
|
296
|
+
if (!opts.dryRun && process.stdout.isTTY) {
|
|
297
|
+
const { coloredSplash } = await import('./sideQuest/utilities/splash.js');
|
|
298
|
+
Log.plain(coloredSplash());
|
|
299
|
+
}
|
|
284
300
|
// THE REPRO BENCH. Sits here, beside --backlog, for the same reason:
|
|
285
301
|
// everything below stands up a play session, and a --dry-run replay
|
|
286
302
|
// needs none of it. The lazy import is what keeps the game graph out
|
|
@@ -313,7 +329,7 @@ const ShadowrunCommand = Command.create({
|
|
|
313
329
|
}
|
|
314
330
|
if (found.outcome === 'not-found') {
|
|
315
331
|
Log.error(`Nothing in your review queue matches "${reproTarget}".`);
|
|
316
|
-
Log.info('`maka play
|
|
332
|
+
Log.info('`maka play --backlog --filter in-review` lists them, with ids.');
|
|
317
333
|
return;
|
|
318
334
|
}
|
|
319
335
|
if (found.outcome === 'no-repro') {
|
|
@@ -936,33 +952,48 @@ const ShadowrunCommand = Command.create({
|
|
|
936
952
|
// escape.
|
|
937
953
|
let code = null;
|
|
938
954
|
let signal = null;
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
955
|
+
// THE LOOP ITSELF LIVES IN utilities/session-legs.ts, where it can
|
|
956
|
+
// be tested. It used to be `for (let leg = 0; leg < 3; leg++)`
|
|
957
|
+
// around this whole body, which bounded how many times the GAME was
|
|
958
|
+
// started rather than how many benches were taken -- so the third
|
|
959
|
+
// review played its bench, wrote the resume file, and then fell out
|
|
960
|
+
// of the loop with nobody left to launch it
|
|
961
|
+
// (E2uH5tzywomMiWJ92: "after reviewing my final item, I wasn't
|
|
962
|
+
// placed back into the game, but was kicked out to terminal").
|
|
963
|
+
const { takeHandoff } = await import('./sideQuest/utilities/handoff.js');
|
|
964
|
+
const { runSessionLegs } = await import('./sideQuest/utilities/session-legs.js');
|
|
965
|
+
({ code, signal } = await runSessionLegs({
|
|
966
|
+
playGame: () => spawnGame(launchFilePath, logFilePath),
|
|
967
|
+
takeHandoff: () => takeHandoff(sessionDir),
|
|
968
|
+
playBench: async (itemId) => {
|
|
969
|
+
const { resolveReproTarget } = await import("./sideQuest/utilities/repro-launch.js");
|
|
970
|
+
const found = await resolveReproTarget(itemId);
|
|
971
|
+
if (found.outcome === "ok" && found.repro) {
|
|
972
|
+
await launchReproBench(found.repro, found.item, makaDir);
|
|
973
|
+
}
|
|
974
|
+
else {
|
|
975
|
+
// Say why, and still go back to the game: losing someone's
|
|
976
|
+
// run because a bench could not be built would be a far
|
|
977
|
+
// worse failure than the missing bench.
|
|
978
|
+
Log.warn("That item has no repro bench to drop into.");
|
|
979
|
+
}
|
|
980
|
+
},
|
|
956
981
|
// BACK TO THE GAME, on a resume. The save was sealed when the
|
|
957
982
|
// game exited 0, so this picks the runner up where they left
|
|
958
983
|
// off -- same session dir, so the transcript stays continuous
|
|
959
984
|
// rather than splitting a single evening across two logs.
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
985
|
+
prepareResume: () => {
|
|
986
|
+
writeFileSync(launchFilePath, JSON.stringify({
|
|
987
|
+
playerName,
|
|
988
|
+
scene: sideQuestAnswer,
|
|
989
|
+
options: { ...gameOptions, resume: true },
|
|
990
|
+
}), "utf8");
|
|
991
|
+
},
|
|
992
|
+
onDetourLimit: () => {
|
|
993
|
+
Log.warn("That's enough bench detours for one sitting -- back to your run.");
|
|
994
|
+
Log.info(" Outside the game: maka play --repro <item id>");
|
|
995
|
+
},
|
|
996
|
+
}));
|
|
966
997
|
// The child can't log a death it never saw -- record the exit
|
|
967
998
|
// shape parent-side so the next hard crash leaves evidence. No
|
|
968
999
|
// longer the ONLY evidence: spawnGame now tees the child's stderr
|
|
@@ -1003,8 +1034,24 @@ const ShadowrunCommand = Command.create({
|
|
|
1003
1034
|
catch (error) {
|
|
1004
1035
|
console.log(error);
|
|
1005
1036
|
}
|
|
1006
|
-
}
|
|
1037
|
+
});
|
|
1038
|
+
// THE OLD SPELLING, kept working and kept honest. `maka play:shadowrun`
|
|
1039
|
+
// (and `play:sr`) forward to `maka play` with a one-line note naming
|
|
1040
|
+
// the new form -- muscle memory and every old doc keep resolving, and
|
|
1041
|
+
// nobody debugs a vanished command. Same validOpts by REFERENCE, so the
|
|
1042
|
+
// two surfaces cannot drift. sideQuest-backlog.sub.cmd.ts hangs a
|
|
1043
|
+
// second `backlog` here so `play:shadowrun:backlog` survives too.
|
|
1044
|
+
export const ShadowrunCompat = Command.create({
|
|
1045
|
+
name: 'shadowrun',
|
|
1046
|
+
usage: 'maka play',
|
|
1047
|
+
shortDesc: 'The old name for `maka play`.',
|
|
1048
|
+
aliases: ['sr'],
|
|
1049
|
+
validOpts: PLAY_VALID_OPTS,
|
|
1050
|
+
}, async function (args, opts) {
|
|
1051
|
+
Log.notice('`maka play:shadowrun` is now just `maka play`.');
|
|
1052
|
+
await ShadowrunCommand.run(args, opts);
|
|
1053
|
+
}, ShadowrunCommand);
|
|
1007
1054
|
// Exported so sub-commands can hang off it -- see
|
|
1008
|
-
// sideQuest-backlog.sub.cmd.ts, which owns "maka play:
|
|
1055
|
+
// sideQuest-backlog.sub.cmd.ts, which owns "maka play:backlog".
|
|
1009
1056
|
export default ShadowrunCommand;
|
|
1010
1057
|
//# sourceMappingURL=sideQuest.sub.cmd.js.map
|