@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.
Files changed (88) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/_index.d.ts +0 -4
  3. package/bundle/typescript/src/commands/game/_index.js +6 -5
  4. package/bundle/typescript/src/commands/game/_index.js.map +1 -1
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +18 -3
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js.map +1 -1
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/breach.d.ts +1 -0
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js +3 -0
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js.map +1 -1
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.d.ts +4 -0
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +14 -0
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.d.ts +2 -0
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +25 -6
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +17 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +8 -3
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +2 -2
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/snoop.js +8 -1
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/snoop.js.map +1 -1
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.d.ts +48 -0
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.js +135 -0
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.js.map +1 -0
  27. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +3 -0
  28. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
  29. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +38 -2
  30. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
  31. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +49 -0
  32. package/bundle/typescript/src/commands/game/sideQuest/game.js +93 -11
  33. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  34. package/bundle/typescript/src/commands/game/sideQuest/headless.js +44 -3
  35. package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +28 -0
  37. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +62 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
  39. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +39 -6
  40. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +74 -31
  41. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  42. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js +6 -6
  43. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js.map +1 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +21 -7
  45. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +50 -30
  46. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  47. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.d.ts +63 -0
  48. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js +41 -0
  49. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js.map +1 -1
  50. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-names.d.ts +43 -0
  51. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-names.js +83 -0
  52. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-names.js.map +1 -0
  53. package/bundle/typescript/src/commands/game/sideQuest/utilities/identity.d.ts +26 -0
  54. package/bundle/typescript/src/commands/game/sideQuest/utilities/identity.js +37 -0
  55. package/bundle/typescript/src/commands/game/sideQuest/utilities/identity.js.map +1 -1
  56. package/bundle/typescript/src/commands/game/sideQuest/utilities/map-view.d.ts +19 -0
  57. package/bundle/typescript/src/commands/game/sideQuest/utilities/map-view.js +22 -0
  58. package/bundle/typescript/src/commands/game/sideQuest/utilities/map-view.js.map +1 -1
  59. package/bundle/typescript/src/commands/game/sideQuest/utilities/repro-launch.d.ts +1 -1
  60. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-legs.d.ts +74 -0
  61. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-legs.js +74 -0
  62. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-legs.js.map +1 -0
  63. package/bundle/typescript/src/commands/game/sideQuest/utilities/splash.d.ts +6 -0
  64. package/bundle/typescript/src/commands/game/sideQuest/utilities/splash.js +60 -0
  65. package/bundle/typescript/src/commands/game/sideQuest/utilities/splash.js.map +1 -0
  66. package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js +15 -10
  67. package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js.map +1 -1
  68. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.d.ts +1 -0
  69. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +103 -56
  70. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  71. package/bundle/typescript/src/commands/registry.js +1 -1
  72. package/bundle/typescript/src/commands/registry.js.map +1 -1
  73. package/package.json +1 -1
  74. package/bundle/typescript/src/commands/game/battleship.sub.cmd.d.ts +0 -1
  75. package/bundle/typescript/src/commands/game/battleship.sub.cmd.js +0 -12
  76. package/bundle/typescript/src/commands/game/battleship.sub.cmd.js.map +0 -1
  77. package/bundle/typescript/src/commands/game/play.command.d.ts +0 -3
  78. package/bundle/typescript/src/commands/game/play.command.js +0 -18
  79. package/bundle/typescript/src/commands/game/play.command.js.map +0 -1
  80. package/bundle/typescript/src/commands/game/pong.sub.cmd.d.ts +0 -1
  81. package/bundle/typescript/src/commands/game/pong.sub.cmd.js +0 -12
  82. package/bundle/typescript/src/commands/game/pong.sub.cmd.js.map +0 -1
  83. package/bundle/typescript/src/commands/game/snake.sub.cmd.d.ts +0 -1
  84. package/bundle/typescript/src/commands/game/snake.sub.cmd.js +0 -12
  85. package/bundle/typescript/src/commands/game/snake.sub.cmd.js.map +0 -1
  86. package/bundle/typescript/src/commands/game/tetris.sub.cmd.d.ts +0 -1
  87. package/bundle/typescript/src/commands/game/tetris.sub.cmd.js +0 -12
  88. 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:shadowrun --repro <id>` can
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
- Command.create({
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:shadowrun:backlog [<item id>]',
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:shadowrun:backlog',
23
- 'maka play:shadowrun:backlog --filter in-review',
24
- 'maka play:shadowrun:backlog --commit 359ad1fe',
25
- 'maka play:shadowrun:backlog b9YeNqTNBJuk9dbrk',
26
- 'maka play:shadowrun:backlog 4svHkpnDhWcXDzPsX --close filed by mistake',
27
- 'maka play:shadowrun:backlog b9YeNqTNBJuk9dbrk --detach 7ed04359 attached to the wrong row',
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
- }, ShadowrunCommand);
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;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAwC3C,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,yCAAyC;IAChD,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,6BAA6B;QAC7B,gDAAgD;QAChD,+CAA+C;QAC/C,+CAA+C;QAC/C,wEAAwE;QACxE,2FAA2F;KAC5F;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,gBAAgB,CAAC,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"}
@@ -33,4 +33,5 @@ export declare function spawnGame(launchFilePath: string, logFilePath?: string):
33
33
  signal: NodeJS.Signals | null;
34
34
  }>;
35
35
  declare const ShadowrunCommand: Command;
36
+ export declare const ShadowrunCompat: Command;
36
37
  export default ShadowrunCommand;
@@ -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: 'shadowrun',
228
- usage: 'maka play:shadowrun',
229
- shortDesc: `Play a little side-quest`,
230
- aliases: ['sr'],
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:shadowrun:backlog` -- see
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:shadowrun:backlog${id}`);
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:shadowrun --backlog --filter in-review` lists them, with ids.');
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
- for (let leg = 0; leg < 3; leg++) {
940
- ({ code, signal } = await spawnGame(launchFilePath, logFilePath));
941
- const { takeHandoff } = await import('./sideQuest/utilities/handoff.js');
942
- const handoff = takeHandoff(sessionDir);
943
- if (!handoff)
944
- break;
945
- const { resolveReproTarget } = await import("./sideQuest/utilities/repro-launch.js");
946
- const found = await resolveReproTarget(handoff.itemId);
947
- if (found.outcome === "ok" && found.repro) {
948
- await launchReproBench(found.repro, found.item, makaDir);
949
- }
950
- else {
951
- // Say why, and still go back to the game: losing someone's run
952
- // because a bench could not be built would be a far worse
953
- // failure than the missing bench.
954
- Log.warn("That item has no repro bench to drop into.");
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
- writeFileSync(launchFilePath, JSON.stringify({
961
- playerName,
962
- scene: sideQuestAnswer,
963
- options: { ...gameOptions, resume: true },
964
- }), "utf8");
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
- }, PlayCommand);
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:shadowrun:backlog".
1055
+ // sideQuest-backlog.sub.cmd.ts, which owns "maka play:backlog".
1009
1056
  export default ShadowrunCommand;
1010
1057
  //# sourceMappingURL=sideQuest.sub.cmd.js.map