@maka/maka-cli 5.11.0 → 5.12.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 (86) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js +6 -5
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js +1 -1
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js.map +1 -1
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +18 -1
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +1 -1
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/catalog.d.ts +13 -0
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/catalog.js +99 -0
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/catalog.js.map +1 -0
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js +12 -2
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js.map +1 -1
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js +8 -8
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js.map +1 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/deck.d.ts +30 -0
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/deck.js +142 -0
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/deck.js.map +1 -0
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/docwagon.js +4 -3
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/docwagon.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js +1 -1
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js.map +1 -1
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +11 -0
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +29 -3
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  27. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js +1 -1
  28. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js.map +1 -1
  29. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +3 -1
  30. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  31. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +7 -6
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +1 -1
  33. package/bundle/typescript/src/commands/game/sideQuest/commands/install.js +4 -1
  34. package/bundle/typescript/src/commands/game/sideQuest/commands/install.js.map +1 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js +1 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js.map +1 -1
  37. package/bundle/typescript/src/commands/game/sideQuest/commands/lead.js +2 -2
  38. package/bundle/typescript/src/commands/game/sideQuest/commands/lead.js.map +1 -1
  39. package/bundle/typescript/src/commands/game/sideQuest/commands/pan.js +3 -2
  40. package/bundle/typescript/src/commands/game/sideQuest/commands/pan.js.map +1 -1
  41. package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js +8 -7
  42. package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js.map +1 -1
  43. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +3 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
  45. package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js +3 -2
  46. package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js.map +1 -1
  47. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.d.ts +6 -4
  48. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +80 -65
  49. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
  50. package/bundle/typescript/src/commands/game/sideQuest/commands/source.d.ts +4 -2
  51. package/bundle/typescript/src/commands/game/sideQuest/commands/source.js +34 -17
  52. package/bundle/typescript/src/commands/game/sideQuest/commands/source.js.map +1 -1
  53. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +14 -0
  54. package/bundle/typescript/src/commands/game/sideQuest/game.js +98 -16
  55. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  56. package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +28 -0
  57. package/bundle/typescript/src/commands/game/sideQuest/models/item.js +83 -0
  58. package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
  59. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +25 -6
  60. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
  61. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +4 -2
  62. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +31 -9
  63. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  64. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +3 -0
  65. package/bundle/typescript/src/commands/game/sideQuest/ui.js +73 -3
  66. package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
  67. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.d.ts +32 -0
  68. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js +112 -0
  69. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js.map +1 -0
  70. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.d.ts +28 -0
  71. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js +128 -0
  72. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js.map +1 -0
  73. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +8 -0
  74. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
  75. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +4 -2
  76. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +35 -4
  77. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
  78. package/bundle/typescript/src/commands/game/sideQuest/utilities/programs.d.ts +39 -0
  79. package/bundle/typescript/src/commands/game/sideQuest/utilities/programs.js +63 -0
  80. package/bundle/typescript/src/commands/game/sideQuest/utilities/programs.js.map +1 -0
  81. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-lock.d.ts +18 -0
  82. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-lock.js +91 -0
  83. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-lock.js.map +1 -0
  84. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +18 -0
  85. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  86. package/package.json +1 -1
@@ -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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"}
@@ -3,7 +3,9 @@ export declare class SourceCommand extends Command implements ICommand {
3
3
  protected static verb: string;
4
4
  protected static description: string;
5
5
  execute(args?: string[]): Promise<string>;
6
- /** AI-first item spec, strict-validated; catalog for AI-off; too
7
- * exotic otherwise. */
6
+ /** Resolution chain (player direction: the CATALOG on maka-cli.com is
7
+ * the source of truth -- utilities/catalog.ts): catalog row first
8
+ * (exact gear-table figures, zero AI variance), AI spec only for
9
+ * genuinely off-book requests, honest refusal past that. */
8
10
  private resolveSpec;
9
11
  }
@@ -4,6 +4,8 @@ import { rollPool, formatRoll } from '../utilities/dice.js';
4
4
  import { fuzzyPickName } from '../utilities/fuzzy-match.js';
5
5
  import { AI } from '../../../../tools/ai/ai.class.js';
6
6
  import { Size, Category, Rating } from '../types/shared/item-enum.js';
7
+ import { findCatalogItem, ROLE_DOMAINS } from '../utilities/catalog.js';
8
+ import { findAug } from '../augmentations.js';
7
9
  // Canon-approximate street classics for AI-off sessions (exact book
8
10
  // rows aren't load-bearing -- the MECHANIC is the RAW part).
9
11
  const FALLBACK_CATALOG = [
@@ -14,21 +16,10 @@ const FALLBACK_CATALOG = [
14
16
  { match: /lock ?pick|picks/i, spec: { name: 'Lockpick Set', category: 'Electronics', rating: 'Standard', size: 'Tiny', shape: 'roll', color: 'black', texture: 'leather', weight: 0.3, price: 250, availability: 6, description: 'Manual picks and a shim set, wrapped like surgeon\'s tools.' } },
15
17
  { match: /ammo|rounds|magazine/i, spec: { name: 'Ammunition', category: 'Ammunition', rating: 'Standard', size: 'Tiny', shape: 'box', color: 'brass', texture: 'metal', weight: 0.5, price: 100, availability: 3, description: 'A box of clean rounds, serial numbers politely absent.' } },
16
18
  ];
17
- /**
18
- * DOMAIN AFFINITY (player ruling: don't overload the Johnson -- the
19
- * specialists are the point of having a roster). Sourcing IN a
20
- * contact's own trade rides +2 dice: shock gloves through the arms
21
- * dealer, foci through the talismonger. The Job Broker has no gear
22
- * domain -- his juice is Connection, not shelves.
23
- */
24
- const ROLE_DOMAINS = {
25
- 'Arms Dealer': ['Weapon', 'MeleeWeapon', 'RangedWeapon', 'Ammunition', 'Explosive', 'BodyArmor', 'Armor', 'Shield', 'Helmet', 'ArmArmor', 'LegArmor', 'Boots', 'Gloves'],
26
- 'Talismonger': ['Focus', 'SpellFormula', 'Grimoire'],
27
- 'Street Doc': ['Medical', 'StimPatch', 'SlapPatch', 'Bioware', 'Cyberware', 'Nanoware', 'Geneware'],
28
- 'Mechanic': ['Drone', 'RCC'],
29
- 'Data Broker': ['Cyberdeck', 'Software', 'Commlink', 'Electronics'],
30
- 'Vendor': ['Food', 'Drink'],
31
- };
19
+ // DOMAIN AFFINITY: sourcing IN a contact's own trade rides +2 dice --
20
+ // shock gloves through the arms dealer, foci through the talismonger.
21
+ // The map itself lives in utilities/catalog.ts (the contact's AI is
22
+ // briefed on the same stock -- see npc.ts's swag note).
32
23
  const AFFINITY_DICE = 2;
33
24
  export class SourceCommand extends Command {
34
25
  static verb = 'source';
@@ -48,6 +39,14 @@ export class SourceCommand extends Command {
48
39
  if (!request) {
49
40
  return `Source what? Try: source <item>[ from <contact>]`;
50
41
  }
42
+ // Chrome isn't a parcel. Wired reflexes don't arrive in a duffel bag
43
+ // -- they arrive on an operating table (commands/install.ts). A real
44
+ // catalog row wins a loose aug match ("meta link" is a commlink, not
45
+ // a smartlink).
46
+ const aug = findCatalogItem(request) ? undefined : findAug(request);
47
+ if (aug) {
48
+ return `${aug.name} isn't something the network drops at your door -- it goes in on a table. Find the clinic and "install ${aug.name.toLowerCase()}" (${aug.cost} nuyen, ${aug.essence.toFixed(1)} essence).${hint(` "catalog chrome" lists the full surgery menu.`)}`;
49
+ }
51
50
  // The contact must be REACHABLE -- in the room or on the line -- and
52
51
  // on the roster (swag is a relationship service, not retail).
53
52
  const partner = this.actor.activeCallPartner;
@@ -124,9 +123,27 @@ export class SourceCommand extends Command {
124
123
  hint(`(Sourced gear lands automatically when you get home.)`),
125
124
  ].filter(Boolean).join('\n');
126
125
  }
127
- /** AI-first item spec, strict-validated; catalog for AI-off; too
128
- * exotic otherwise. */
126
+ /** Resolution chain (player direction: the CATALOG on maka-cli.com is
127
+ * the source of truth -- utilities/catalog.ts): catalog row first
128
+ * (exact gear-table figures, zero AI variance), AI spec only for
129
+ * genuinely off-book requests, honest refusal past that. */
129
130
  async resolveSpec(request) {
131
+ const listed = findCatalogItem(request);
132
+ if (listed) {
133
+ return {
134
+ name: listed.name,
135
+ category: listed.category,
136
+ rating: listed.rating,
137
+ size: listed.size,
138
+ shape: listed.shape,
139
+ color: listed.color,
140
+ texture: listed.texture,
141
+ weight: listed.weight,
142
+ price: listed.price,
143
+ availability: listed.availability,
144
+ description: listed.description,
145
+ };
146
+ }
130
147
  if (AI.isConfigured()) {
131
148
  try {
132
149
  const reply = await AI.ask(`You are the gear catalog of a Shadowrun text adventure. The player wants to buy: "${request}".
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/source.ts"],"names":[],"mappings":"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"}
@@ -175,6 +175,12 @@ export default class Game {
175
175
  /** A hub-cast member by name, for roster displays that need the live
176
176
  * actor (contacts.ts reads their commlink to show reachability). */
177
177
  hubActor(name: string): Player | NPC | undefined;
178
+ /** The whole hub cast -- call.ts merges these into its candidates so
179
+ * a linked contact answers from ANYWHERE (a real mid-run session:
180
+ * "call Ratchet" bounced with "you don't know anyone by that name"
181
+ * while the roster promised 📞). The hub Scene instance survives
182
+ * runs, so these are live actors, not ghosts. */
183
+ hubCast(): (Player | NPC)[];
178
184
  touchContact(name: string, kind: 'trade' | 'gig', spent?: number): string | null;
179
185
  pendingSale?: {
180
186
  itemName: string;
@@ -431,6 +437,14 @@ export default class Game {
431
437
  updateExits(_room: Room): void;
432
438
  updateInventory(_playerInventory: Inventory, _currencyName?: string): void;
433
439
  static getInstance(player: Player, sceneSeed: ISceneSeedJson, resume?: ISaveFileV1): Promise<Game>;
440
+ /**
441
+ * The verb the LAST handleInput actually ran, after typo correction
442
+ * ("sjeet" -> "sheet"). ui.ts routes menu output to the Mechanics
443
+ * panel on THIS, not the typed word -- a real session's corrected
444
+ * "sjeet" dumped the whole sheet into the world log. The recursive
445
+ * correction call overwrites it with the corrected verb.
446
+ */
447
+ lastResolvedVerb: string;
434
448
  handleInput(input: string): Promise<string | null>;
435
449
  /**
436
450
  * The help taxonomy: every entry is [primary, ...aliases], grouped the
@@ -44,6 +44,8 @@ import { SourceCommand } from './commands/source.js';
44
44
  import { DocwagonCommand } from './commands/docwagon.js';
45
45
  import { LeadCommand, RecruitCommand } from './commands/lead.js';
46
46
  import { PalmCommand } from './commands/palm.js';
47
+ import { CatalogCommand } from './commands/catalog.js';
48
+ import { refreshCatalog } from './utilities/catalog.js';
47
49
  import { PerformCommand } from './commands/perform.js';
48
50
  import { EdgeCommand } from './commands/edge.js';
49
51
  import { SheetCommand } from './commands/sheet.js';
@@ -71,6 +73,8 @@ import { InitiateCommand } from './commands/initiate.js';
71
73
  import { SummonCommand } from './commands/summon.js';
72
74
  import { OrderCommand } from './commands/order.js';
73
75
  import { DeployCommand, AgentCommand, RecallCommand } from './commands/companions.js';
76
+ import { DeckCommand, LoadProgramCommand, UnloadProgramCommand } from './commands/deck.js';
77
+ import { getProgram } from './utilities/programs.js';
74
78
  import { MoveCommand, RunCommand, SprintCommand } from './commands/move.js';
75
79
  import { HintsCommand } from './commands/hints.js';
76
80
  import { hint } from './utilities/hints.js';
@@ -615,6 +619,14 @@ export default class Game {
615
619
  hubActor(name) {
616
620
  return this._hubScene?.allActors?.find(a => a.name === name && a !== this.player);
617
621
  }
622
+ /** The whole hub cast -- call.ts merges these into its candidates so
623
+ * a linked contact answers from ANYWHERE (a real mid-run session:
624
+ * "call Ratchet" bounced with "you don't know anyone by that name"
625
+ * while the roster promised 📞). The hub Scene instance survives
626
+ * runs, so these are live actors, not ghosts. */
627
+ hubCast() {
628
+ return this._hubScene?.allActors?.filter(a => a !== this.player) ?? [];
629
+ }
618
630
  touchContact(name, kind, spent = 0) {
619
631
  if (!this.hasHub)
620
632
  return null;
@@ -949,6 +961,7 @@ export default class Game {
949
961
  CommandFactory.registerCommand('docwagon', DocwagonCommand);
950
962
  // SWAG (commands/source.ts): contacts shop the black market for you.
951
963
  CommandFactory.registerCommand('source', SourceCommand);
964
+ CommandFactory.registerCommand('catalog', CatalogCommand);
952
965
  CommandFactory.registerCommand('procure', SourceCommand);
953
966
  // Job-offer outcomes (commands/job-offer.ts): explicit accept/decline.
954
967
  CommandFactory.registerCommand('accept', AcceptCommand);
@@ -1010,6 +1023,9 @@ export default class Game {
1010
1023
  CommandFactory.registerCommand('deploy', DeployCommand);
1011
1024
  CommandFactory.registerCommand('recall', RecallCommand);
1012
1025
  CommandFactory.registerCommand('agent', AgentCommand);
1026
+ CommandFactory.registerCommand('deck', DeckCommand);
1027
+ CommandFactory.registerCommand('load', LoadProgramCommand);
1028
+ CommandFactory.registerCommand('unload', UnloadProgramCommand);
1013
1029
  CommandFactory.registerCommand('install', InstallCommand);
1014
1030
  CommandFactory.registerCommand('chrome', InstallCommand);
1015
1031
  CommandFactory.registerCommand('buy', BuyCommand);
@@ -1084,6 +1100,9 @@ export default class Game {
1084
1100
  this._useAi = options.useAi;
1085
1101
  this._logFilePath = options.logFilePath;
1086
1102
  this._saveFilePath = options.saveFilePath;
1103
+ // The swag catalog warms from maka-cli.com in the background
1104
+ // (utilities/catalog.ts): live list > local cache > baked-in floor.
1105
+ void refreshCatalog();
1087
1106
  this.initInputBox(screen);
1088
1107
  this.initLogBox(screen);
1089
1108
  this.initMetaBox(screen);
@@ -1965,12 +1984,35 @@ export default class Game {
1965
1984
  style: {
1966
1985
  border: { fg: 'blue' }
1967
1986
  },
1968
- label: ' Mechanics ',
1987
+ // The label teaches its own scroll keys -- a real session hit
1988
+ // PgUp/PgDn (the world log's) and concluded the panel can't move.
1989
+ label: ' Mechanics (C-PgUp/Dn) ',
1969
1990
  scrollable: true,
1970
1991
  alwaysScroll: true,
1971
1992
  tags: true,
1972
1993
  });
1973
1994
  this._metaBox = metaBox;
1995
+ // Scrolling (player report: menus render here now and PgUp/PgDn
1996
+ // don't reach it): PgUp/PgDn stay the WORLD LOG's (that binding is
1997
+ // itself a playtest fix -- see initLogBox), so the Mechanics column
1998
+ // pages on Ctrl-PgUp/PgDn. Same focus problem, same cure: the input
1999
+ // box holds focus forever and grabKeys mutes screen-level handlers,
2000
+ // so the modified names must join ignoreLocked too. Ctrl-End snaps
2001
+ // back to the bottom (new content always scrolls to bottom anyway).
2002
+ screen.ignoreLocked.push('C-pageup', 'C-pagedown', 'C-end');
2003
+ const metaPage = () => Math.max(1, (typeof metaBox.height === 'number' ? metaBox.height : 20) - 3);
2004
+ screen.key(['C-pageup'], () => {
2005
+ metaBox.scroll(-metaPage());
2006
+ screen.render();
2007
+ });
2008
+ screen.key(['C-pagedown'], () => {
2009
+ metaBox.scroll(metaPage());
2010
+ screen.render();
2011
+ });
2012
+ screen.key(['C-end'], () => {
2013
+ metaBox.scrollTo(metaBox.getScrollHeight());
2014
+ screen.render();
2015
+ });
1974
2016
  screen.append(metaBox);
1975
2017
  }
1976
2018
  /**
@@ -2064,7 +2106,7 @@ export default class Game {
2064
2106
  // Off-plane the profile is attack programs / astral will and reads as
2065
2107
  // Armed. White, not gray, for the same legibility reason as the stance.
2066
2108
  const armed = player.plane === 'meat' && weaponItem && !player.weaponDrawn
2067
- ? `{white-fg}Holstered: ${weaponItem.name}${ammoNote} -- "brandish"{/white-fg}`
2109
+ ? `{white-fg}Holstered: ${weaponItem.name}${ammoNote}${hint(' -- "brandish"')}{/white-fg}`
2068
2110
  : weapon.name === 'bare fists'
2069
2111
  ? `{gray-fg}Unarmed{/gray-fg}`
2070
2112
  : `Armed: ${weapon.name} (DV ${weapon.damage}${weapon.poolBonus > 0 ? `, +${weapon.poolBonus} dice` : ''})${ammoNote}`;
@@ -2084,10 +2126,10 @@ export default class Game {
2084
2126
  lines.push(`{magenta-fg}Sustained: armor +${player.sustainedArmor} soak (-2 dice to everything else){/magenta-fg}`);
2085
2127
  }
2086
2128
  if (player.astralPerceiving) {
2087
- lines.push(`{magenta-fg}✧ ASTRAL SENSES OPEN (-2 dice sustained) -- "assense" to close{/magenta-fg}`);
2129
+ lines.push(`{magenta-fg}✧ ASTRAL SENSES OPEN (-2 dice sustained)${hint(' -- "assense" to close')}{/magenta-fg}`);
2088
2130
  }
2089
2131
  if (player.sneaking) {
2090
- lines.push(`{white-fg}🐾 SNEAKING -- entries are opposed vs their perception; loud acts break it{/white-fg}`);
2132
+ lines.push(`{white-fg}🐾 SNEAKING${hint(' -- entries are opposed vs their perception; loud acts break it')}{/white-fg}`);
2091
2133
  }
2092
2134
  if (player.activeCallPartner) {
2093
2135
  lines.push(`{${CALL_COLOR}-fg}${CALL_ICON} On a call with ${player.activeCallPartner.name}{/${CALL_COLOR}-fg}`);
@@ -2119,11 +2161,19 @@ export default class Game {
2119
2161
  // Off-plane context: which reality you're in, your persona's Matrix
2120
2162
  // track (cold-sim damage lands there), and where your empty body lies.
2121
2163
  if (player.plane === 'matrix') {
2122
- // Matrix damage is hardware damage: show the DECK's track. A
2164
+ // Matrix damage is hardware damage: show the DECK's track -- and
2165
+ // its stat line: the ASDF deal ("deck config" is a live combat
2166
+ // decision now, so the HUD shows what you're currently rigged for)
2167
+ // plus running programs, first-word-abbreviated to keep the line
2168
+ // inside the box (Biofeedback Filter -> Biofeedback). A
2123
2169
  // technomancer has no deck -- their stun track (already on line 2)
2124
2170
  // is what the ice chews on.
2125
- const track = player.activeDeck
2126
- ? ` Deck ${player.activeDeck.deckSummary()}${player.simMode === 'hot' ? ' +biofeedback' : ''}`
2171
+ const jackedDeck = player.activeDeck;
2172
+ const pgms = jackedDeck && jackedDeck.loadedPrograms.length > 0
2173
+ ? ` [${jackedDeck.loadedPrograms.map(k => getProgram(k)?.name.split(' ')[0] ?? k).join(' ')}]`
2174
+ : '';
2175
+ const track = jackedDeck
2176
+ ? ` Deck A${jackedDeck.attack} S${jackedDeck.sleaze} D${jackedDeck.dataProcessing} F${jackedDeck.firewall} ${jackedDeck.deckSummary()}${player.simMode === 'hot' ? ' +biofeedback' : ''}${pgms}`
2127
2177
  : ` (living persona -- damage is REAL stun)`;
2128
2178
  lines.push(`{cyan-fg}▣ MATRIX ${(player.simMode ?? 'cold').toUpperCase()}-SIM${track} -- body at ${player.bodyRoom?.name ?? '???'}{/cyan-fg}`);
2129
2179
  }
@@ -2167,6 +2217,14 @@ export default class Game {
2167
2217
  }
2168
2218
  return Game.instance;
2169
2219
  }
2220
+ /**
2221
+ * The verb the LAST handleInput actually ran, after typo correction
2222
+ * ("sjeet" -> "sheet"). ui.ts routes menu output to the Mechanics
2223
+ * panel on THIS, not the typed word -- a real session's corrected
2224
+ * "sjeet" dumped the whole sheet into the world log. The recursive
2225
+ * correction call overwrites it with the corrected verb.
2226
+ */
2227
+ lastResolvedVerb = '';
2170
2228
  async handleInput(input) {
2171
2229
  // "jack-in"/"jack-out" read naturally but parse as unknown verbs (a
2172
2230
  // real session typed "jack-in" and bounced) -- normalize the hyphen.
@@ -2174,6 +2232,7 @@ export default class Game {
2174
2232
  const parts = normalized.trim().split(' ');
2175
2233
  const verb = parts[0].toLowerCase();
2176
2234
  const args = parts.slice(1);
2235
+ this.lastResolvedVerb = verb;
2177
2236
  // Quitting takes a CONFIRM (player request: "I just exited by
2178
2237
  // mistake"): the first "quit" arms it, "y"/"yes" (or quit again)
2179
2238
  // seals it, anything else disarms and runs as the command it is.
@@ -2262,11 +2321,14 @@ export default class Game {
2262
2321
  static HELP_CATEGORIES = [
2263
2322
  { title: 'moving', entries: [['look'], ['go'], ['move', 'walk', 'approach', 'run', 'sprint'], ['map', 'exits'], ['search'], ['sneak']] },
2264
2323
  { title: 'gear', entries: [['inv', 'inventory'], ['equipment', 'eq'], ['take'], ['drop'], ['give'], ['store'], ['equip'], ['unequip'], ['brandish', 'draw'], ['holster', 'stow'], ['reload'], ['use'], ['read']] },
2265
- { title: 'combat', entries: [['attack', 'kill'], ['subdue'], ['order'], ['stance'], ['surrender'], ['edge'], ['rest']] },
2324
+ { title: 'combat', entries: [['attack', 'kill'], ['subdue'], ['grapple', 'restrain', 'clinch'], ['struggle'], ['release'], ['stance'], ['surrender'], ['edge'], ['rest']] },
2325
+ // The party layer: everyone who walks (or flies, or manifests) at
2326
+ // your side answers to these.
2327
+ { title: 'party', entries: [['order'], ['lead'], ['command'], ['deploy'], ['recall']] },
2266
2328
  { title: 'magic', entries: [['spells'], ['cast'], ['summon', 'conjure'], ['project'], ['return'], ['assense']] },
2267
- { title: 'matrix', entries: [['jack'], ['hack'], ['pan'], ['silent'], ['reboot'], ['agent'], ['drone'], ['deploy'], ['recall'], ['jump', 'rig']] },
2268
- { title: 'social', entries: [['say'], ['talk-to'], ['call'], ['end-call', 'end', 'hangup'], ['haggle', 'negotiate'], ['persuade', 'convince'], ['ask'], ['contacts']] },
2269
- { title: 'street', entries: [['browse', 'buy'], ['sell'], ['work', 'gig'], ['treat'], ['eat'], ['drink'], ['lifestyle'], ['pay']] },
2329
+ { title: 'matrix', entries: [['jack'], ['deck'], ['load'], ['unload'], ['hack'], ['pan'], ['silent'], ['reboot'], ['agent'], ['drone'], ['jump', 'rig']] },
2330
+ { title: 'social', entries: [['say'], ['talk-to'], ['call'], ['end-call', 'end', 'hangup'], ['accept'], ['decline', 'deny', 'refuse'], ['haggle', 'negotiate'], ['persuade', 'convince'], ['ask'], ['contacts']] },
2331
+ { title: 'street', entries: [['browse', 'buy'], ['sell'], ['catalog'], ['source', 'procure'], ['work', 'gig'], ['perform'], ['palm'], ['docwagon'], ['treat'], ['eat'], ['drink'], ['lifestyle'], ['pay']] },
2270
2332
  { title: 'barriers', entries: [['solve'], ['pick'], ['bluff'], ['unlock'], ['lock']] },
2271
2333
  { title: 'character', entries: [['sheet', 'stats'], ['advance', 'train'], ['qualities', 'quality'], ['initiate', 'submerge'], ['install', 'chrome']] },
2272
2334
  { title: 'session', entries: [['help'], ['hints'], ['clear'], ['quit', 'exit']] },
@@ -2274,8 +2336,8 @@ export default class Game {
2274
2336
  /** Descriptions for the verbs handled inline in handleInput() rather than registered. */
2275
2337
  static BUILTIN_DESCRIPTIONS = {
2276
2338
  help: 'This overview. "help <category>" for one group with full descriptions; "help <command>" for one command.',
2277
- clear: 'Clear the screen.',
2278
- quit: 'Exit the game.',
2339
+ clear: 'Clear the world log and the Mechanics panel.',
2340
+ quit: 'Exit the game (asks to confirm; a hub campaign autosaves on the way out).',
2279
2341
  };
2280
2342
  describeVerb(verb) {
2281
2343
  const builtin = Game.BUILTIN_DESCRIPTIONS[verb];
@@ -2312,14 +2374,34 @@ export default class Game {
2312
2374
  }
2313
2375
  return `No command or category called "${query}". Try plain "help".`;
2314
2376
  }
2315
- // The overview: compact category lines, primaries only.
2377
+ // The overview: category lines with primaries only, chunked so no
2378
+ // line outgrows the Mechanics column (help renders there now --
2379
+ // blessed's mid-list wrap lost the left-column alignment).
2316
2380
  const lines = ['=== COMMANDS ==='];
2317
2381
  const pad = Math.max(...Game.HELP_CATEGORIES.map(c => c.title.length));
2382
+ const pushWrapped = (title, verbs) => {
2383
+ const rows = [];
2384
+ let cur = '';
2385
+ for (const v of verbs) {
2386
+ const next = cur ? `${cur}, ${v}` : v;
2387
+ if (next.length > 40 && cur) {
2388
+ rows.push(cur + ',');
2389
+ cur = v;
2390
+ }
2391
+ else {
2392
+ cur = next;
2393
+ }
2394
+ }
2395
+ rows.push(cur);
2396
+ lines.push(`${title.padEnd(pad)} ${rows[0]}`);
2397
+ for (const r of rows.slice(1))
2398
+ lines.push(`${' '.repeat(pad)} ${r}`);
2399
+ };
2318
2400
  for (const category of Game.HELP_CATEGORIES) {
2319
- lines.push(`${category.title.padEnd(pad)} ${category.entries.map(e => e[0]).join(', ')}`);
2401
+ pushWrapped(category.title, category.entries.map(e => e[0]));
2320
2402
  }
2321
2403
  if (uncategorized.length > 0) {
2322
- lines.push(`${'other'.padEnd(pad)} ${uncategorized.join(', ')}`);
2404
+ pushWrapped('other', uncategorized);
2323
2405
  }
2324
2406
  lines.push('');
2325
2407
  lines.push(`"help <category>" for a group with descriptions ("help combat"); "help <command>" for one ("help haggle").`);