@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
@@ -8,7 +8,17 @@ import { STANCE_CYCLE } from './models/player.js';
8
8
  import { AutoFight } from './utilities/auto-fight.js';
9
9
  import { TERMINAL_RESET_SEQUENCE } from './utilities/terminal-reset.js';
10
10
  import { readSave } from './utilities/persistence.js';
11
+ import { acquireSessionLock, releaseSessionLock } from './utilities/session-lock.js';
11
12
  import { SAVE_VERSION } from './types/save-file.js';
13
+ // MENU verbs (player direction): pure-reference panels render in the
14
+ // Mechanics column instead of the world log, keeping the narrative
15
+ // clean. Hybrid read/act verbs whose output is mostly reference (deck,
16
+ // qualities) ride along; transactional verbs (docwagon, buy, install)
17
+ // stay in the world log where actions belong.
18
+ const MENU_VERBS = new Set([
19
+ 'contacts', 'sheet', 'stats', 'inv', 'inventory', 'equipment', 'eq',
20
+ 'map', 'exits', 'spells', 'catalog', 'qualities', 'quality', 'deck', 'help',
21
+ ]);
12
22
  // Windows Terminal draws astral-plane emoji (📞 call icon, 📍 HUD pin,
13
23
  // 👥 companions, 💀) TWO columns wide, but blessed's 2015-era unicode
14
24
  // tables predate emoji being classified wide and count them as ONE. The
@@ -40,6 +50,26 @@ import { SAVE_VERSION } from './types/save-file.js';
40
50
  uni.chars.all = new RegExp(`(${uni.chars.all.source}|${pictographs})`, 'g');
41
51
  }
42
52
  export async function main(playerName, sceneSeed, options) {
53
+ // ONE TERMINAL PER RUNNER (see utilities/session-lock.ts): claim the
54
+ // save slot BEFORE blessed takes the terminal, so a refusal prints as
55
+ // plain text instead of flashing through a dying screen. The launcher
56
+ // already warned politely; this is the authoritative claim that wins
57
+ // the race two simultaneous launches would otherwise share. Released
58
+ // on EVERY exit path via the hook below; a crash leaves it to go
59
+ // stale (~90s) instead.
60
+ if (options.saveFilePath) {
61
+ const claim = acquireSessionLock(options.saveFilePath);
62
+ if (!claim.ok) {
63
+ console.error(`This runner is already jacked in from another terminal${claim.pid ? ` (PID ${claim.pid})` : ''}. One life, one session -- quit that one first.`);
64
+ process.exit(1);
65
+ }
66
+ process.on('exit', () => {
67
+ try {
68
+ releaseSessionLock(options.saveFilePath);
69
+ }
70
+ catch { /* never block the way out */ }
71
+ });
72
+ }
43
73
  // Create a screen object
44
74
  const screen = blessed.screen({
45
75
  smartCSR: true,
@@ -220,7 +250,14 @@ export async function main(playerName, sceneSeed, options) {
220
250
  // already land as the yellow speech line, and "> say hoi"
221
251
  // above "hoi" read as a stutter (playtest note).
222
252
  const echoVerb = input.trim().split(' ')[0]?.toLowerCase();
223
- if (input.trim().length > 0 && echoVerb !== 'clear') {
253
+ // MENU commands (player direction): reference panels render in
254
+ // the Mechanics column, not the world log -- the narrative
255
+ // stays narrative, and "contacts" doesn't scroll the fight off
256
+ // the screen. These verbs echo into the panel (as its divider)
257
+ // instead of the log. Transactional verbs (docwagon, buy...)
258
+ // stay in the world log: their output is things HAPPENING.
259
+ const isMenuVerb = MENU_VERBS.has(echoVerb ?? '');
260
+ if (input.trim().length > 0 && echoVerb !== 'clear' && !isMenuVerb) {
224
261
  game.logBox.pushLine('');
225
262
  if (echoVerb !== 'say') {
226
263
  game.logBox.pushLine(`{cyan-fg}> ${input.trim()}{/cyan-fg}`);
@@ -263,8 +300,41 @@ export async function main(playerName, sceneSeed, options) {
263
300
  // Empty responses stop printing blank filler -- the turn-block
264
301
  // echo above is the separator now.
265
302
  if (response) {
266
- game.logBox.pushLine(response);
267
- game.followLog();
303
+ // Route on the verb the game actually RAN, not the typed
304
+ // word: a corrected typo ("sjeet" -> "sheet") must still
305
+ // land its menu in the panel. The correction receipt line
306
+ // stays in the world log (standing ruling: it's the only
307
+ // receipt for a command you didn't type).
308
+ const ranMenuVerb = MENU_VERBS.has(game.lastResolvedVerb || echoVerb || '');
309
+ let panelBody = response;
310
+ if (ranMenuVerb && !isMenuVerb && response.startsWith('(read ')) {
311
+ const nl = response.indexOf('\n');
312
+ const receipt = nl === -1 ? response : response.slice(0, nl);
313
+ panelBody = nl === -1 ? '' : response.slice(nl + 1);
314
+ game.logBox.pushLine(receipt);
315
+ game.followLog();
316
+ }
317
+ if (ranMenuVerb && panelBody) {
318
+ // pushLine, NOT insertBottom: insertBottom targets the
319
+ // bottom of the VISIBLE view, and in a no-render loop it
320
+ // reuses the same index -- every menu rendered bottom-up
321
+ // (player screenshot). pushLine appends to the content.
322
+ // Divider names the command as RUN: typed args survive, a
323
+ // corrected verb replaces the typo'd one.
324
+ const dividerLabel = isMenuVerb
325
+ ? input.trim()
326
+ : [game.lastResolvedVerb, ...input.trim().split(' ').slice(1)].join(' ').trim();
327
+ game.metaBox.pushLine(`{blue-fg}── ${dividerLabel} ──{/blue-fg}`);
328
+ for (const line of panelBody.split('\n')) {
329
+ game.metaBox.pushLine(line);
330
+ }
331
+ game.metaBox.scrollTo(game.metaBox.getScrollHeight());
332
+ screen.render();
333
+ }
334
+ else if (!ranMenuVerb) {
335
+ game.logBox.pushLine(response);
336
+ game.followLog();
337
+ }
268
338
  }
269
339
  }
270
340
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../../../../src/commands/game/sideQuest/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../../../../src/commands/game/sideQuest/ui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * THE STREET CATALOG -- what the swag network can source (see
3
+ * commands/catalog.ts and commands/source.ts). Harvested from the SR5e
4
+ * gear tables via the rules archive: rows with a `page` are cited
5
+ * straight from the book; rows marked `approx` carry canon-approximate
6
+ * figures the excerpts couldn't confirm.
7
+ *
8
+ * SOURCE OF TRUTH: maka-cli.com's GameCatalog collection (player
9
+ * direction: the site is the game's backend). This file is the SEED and
10
+ * the OFFLINE FLOOR -- the server is seeded from an identical copy
11
+ * (maka-cli-com-2: app/imports/api/v1/game-catalog/game-catalog-seed.ts;
12
+ * keep the two in sync, bump CATALOG_VERSION on any change), and the
13
+ * CLI overrides this list with the server's whenever it can reach it.
14
+ */
15
+ export declare const CATALOG_VERSION = 3;
16
+ export interface ICatalogItem {
17
+ slug: string;
18
+ name: string;
19
+ description: string;
20
+ category: string;
21
+ rating: string;
22
+ size: string;
23
+ shape: string;
24
+ color: string;
25
+ texture: string;
26
+ weight: number;
27
+ price: number;
28
+ availability: number;
29
+ page?: string;
30
+ approx?: boolean;
31
+ }
32
+ export declare const CATALOG_ITEMS: ICatalogItem[];
@@ -0,0 +1,112 @@
1
+ /**
2
+ * THE STREET CATALOG -- what the swag network can source (see
3
+ * commands/catalog.ts and commands/source.ts). Harvested from the SR5e
4
+ * gear tables via the rules archive: rows with a `page` are cited
5
+ * straight from the book; rows marked `approx` carry canon-approximate
6
+ * figures the excerpts couldn't confirm.
7
+ *
8
+ * SOURCE OF TRUTH: maka-cli.com's GameCatalog collection (player
9
+ * direction: the site is the game's backend). This file is the SEED and
10
+ * the OFFLINE FLOOR -- the server is seeded from an identical copy
11
+ * (maka-cli-com-2: app/imports/api/v1/game-catalog/game-catalog-seed.ts;
12
+ * keep the two in sync, bump CATALOG_VERSION on any change), and the
13
+ * CLI overrides this list with the server's whenever it can reach it.
14
+ */
15
+ export const CATALOG_VERSION = 3;
16
+ const row = (slug, name, category, price, availability, description, extra = {}) => ({
17
+ slug, name, category, price, availability, description,
18
+ rating: extra.rating ?? (price >= 5000 ? 'Rare' : price >= 500 ? 'Standard' : 'Common'),
19
+ size: extra.size ?? 'Small',
20
+ shape: extra.shape ?? 'gear',
21
+ color: extra.color ?? 'matte black',
22
+ texture: extra.texture ?? 'street-worn',
23
+ weight: extra.weight ?? 1,
24
+ ...extra,
25
+ });
26
+ export const CATALOG_ITEMS = [
27
+ // ---- Melee (p.423) ----
28
+ row('combat-knife', 'Combat Knife', 'MeleeWeapon', 300, 4, 'Mil-spec steel that holds an edge through anything.', { page: 'p.423', shape: 'blade' }),
29
+ row('sword', 'Sword', 'MeleeWeapon', 500, 5, 'A proper length of sharpened argument.', { page: 'p.423', shape: 'blade', size: 'Medium', weight: 1.5 }),
30
+ row('katana', 'Katana', 'MeleeWeapon', 1000, 9, 'Folded steel and folded history. Restricted, naturally.', { page: 'p.423', shape: 'blade', size: 'Medium', weight: 1.2, rating: 'Rare' }),
31
+ row('club', 'Club', 'MeleeWeapon', 30, 2, 'The oldest tool in the world, still in production.', { page: 'p.423', shape: 'club', size: 'Medium', weight: 2 }),
32
+ row('stun-baton', 'Stun Baton', 'MeleeWeapon', 750, 6, 'Collapsible shock stick -- the polite end of crowd control.', { page: 'p.423', shape: 'baton' }),
33
+ row('shock-gloves', 'Shock Gloves', 'MeleeWeapon', 550, 6, 'Capacitor plates across the knuckles. A crackling non-lethal argument.', { approx: true, shape: 'gloves', weight: 0.5, texture: 'insulated weave' }),
34
+ row('staff', 'Staff', 'MeleeWeapon', 100, 3, 'Two meters of reach and no questions at checkpoints.', { approx: true, shape: 'staff', size: 'Large', weight: 2 }),
35
+ // ---- Sidearms & long guns (p.426, p.428) ----
36
+ row('colt-america-l36', 'Colt America L36', 'RangedWeapon', 320, 4, 'A light pistol as common as rain and twice as honest.', { page: 'p.426', shape: 'pistol' }),
37
+ row('ares-predator-v', 'Ares Predator V', 'RangedWeapon', 725, 5, 'THE heavy pistol. Smartgun system built in, reputation included.', { page: 'p.426', shape: 'pistol', weight: 1.2 }),
38
+ row('ruger-super-warhawk', 'Ruger Super Warhawk', 'RangedWeapon', 400, 4, 'A revolver with opinions. Loud ones.', { page: 'p.426', shape: 'revolver', weight: 1.4 }),
39
+ row('remington-roomsweeper', 'Remington Roomsweeper', 'RangedWeapon', 250, 6, 'A heavy pistol that thinks it is a shotgun. It is not wrong.', { page: 'p.426', shape: 'pistol', weight: 1.5 }),
40
+ row('ares-alpha', 'Ares Alpha', 'RangedWeapon', 2650, 11, 'The assault rifle with the grenade launcher. Forbidden, and worth it.', { page: 'p.428', shape: 'rifle', size: 'Large', weight: 4.5, rating: 'MilitaryGrade' }),
41
+ row('ak-97', 'AK-97', 'RangedWeapon', 950, 8, 'A century of design maturity: it always, always fires.', { approx: true, shape: 'rifle', size: 'Large', weight: 4 }),
42
+ row('defiance-t-250', 'Defiance T-250', 'RangedWeapon', 450, 4, 'A pump shotgun with all the subtlety the name implies.', { approx: true, shape: 'shotgun', size: 'Large', weight: 3.5 }),
43
+ row('ares-light-fire-75', 'Ares Light Fire 75', 'RangedWeapon', 1250, 6, 'A whisper-quiet light pistol built around its silencer.', { approx: true, shape: 'pistol' }),
44
+ // ---- Ammunition ----
45
+ row('regular-ammo', 'Regular Ammo (box)', 'Ammunition', 20, 2, 'Ten clean rounds, serial numbers politely absent.', { approx: true, shape: 'box', size: 'Tiny', weight: 0.5, color: 'brass', texture: 'metal' }),
46
+ row('stick-n-shock', 'Stick-n-Shock Rounds', 'Ammunition', 80, 6, 'Taser slugs -- for when you want them down, not gone.', { approx: true, shape: 'box', size: 'Tiny', weight: 0.5 }),
47
+ row('apds', 'APDS Rounds', 'Ammunition', 120, 12, 'Armor-piercing discarding sabot. Very forbidden. Very effective.', { approx: true, shape: 'box', size: 'Tiny', weight: 0.5, rating: 'MilitaryGrade' }),
48
+ // ---- Armor (p.436) ----
49
+ row('armor-jacket', 'Armor Jacket', 'BodyArmor', 1000, 2, 'The runner standard: looks like a jacket, works like a wall.', { page: 'p.436', shape: 'jacket', size: 'Medium', weight: 3, texture: 'ballistic weave' }),
50
+ row('chameleon-suit', 'Chameleon Suit', 'ArmorClothing', 1700, 10, 'Ruthenium weave that drinks the light around it.', { page: 'p.436', shape: 'suit', size: 'Medium', weight: 2, color: 'shifting gray', rating: 'Rare' }),
51
+ row('urban-explorer', 'Urban Explorer Jumpsuit', 'ArmorClothing', 650, 8, 'Armored athletic wear for the parkour-inclined professional.', { page: 'p.436', shape: 'jumpsuit', size: 'Medium', weight: 2 }),
52
+ row('armor-vest', 'Armor Vest', 'BodyArmor', 500, 4, 'Concealable ballistic weave. The difference between a bad night and a last one.', { approx: true, shape: 'vest', size: 'Medium', weight: 3 }),
53
+ row('lined-coat', 'Lined Coat', 'BodyArmor', 900, 4, 'Duster-length armor with room for everything underneath.', { approx: true, shape: 'coat', size: 'Medium', weight: 3 }),
54
+ row('armor-clothing', 'Armor Clothing', 'ArmorClothing', 450, 2, 'Boardroom-passable protection.', { approx: true, shape: 'clothing', size: 'Medium', weight: 2 }),
55
+ row('helmet', 'Helmet', 'Helmet', 100, 2, 'A hard shell for the soft parts that matter most.', { approx: true, shape: 'helmet', weight: 1 }),
56
+ row('ballistic-shield', 'Ballistic Shield', 'Shield', 1200, 12, 'A door you carry into rooms that need one.', { approx: true, shape: 'shield', size: 'Large', weight: 7, rating: 'Rare' }),
57
+ // ---- Commlinks & decks (p.439) ----
58
+ row('meta-link', 'Meta Link', 'Commlink', 100, 2, 'The squatter special. It makes calls. Usually.', { page: 'p.439', shape: 'slab', size: 'Tiny', weight: 0.2 }),
59
+ row('sony-emperor', 'Sony Emperor', 'Commlink', 700, 4, 'A solid mid-shelf commlink with a name bigger than its specs.', { approx: true, shape: 'slab', size: 'Tiny', weight: 0.2 }),
60
+ row('renraku-sensei', 'Renraku Sensei', 'Commlink', 1000, 6, 'A businessman\'s link: discreet, capable, forgettable on purpose.', { page: 'p.439', shape: 'slab', size: 'Tiny', weight: 0.2 }),
61
+ row('hermes-ikon', 'Hermes Ikon', 'Commlink', 3000, 10, 'Serious hardware for people whose calls matter.', { page: 'p.439', shape: 'slab', size: 'Tiny', weight: 0.3, rating: 'Rare' }),
62
+ row('fairlight-caliban', 'Fairlight Caliban', 'Commlink', 8000, 14, 'The commlink executives get assassinated for.', { page: 'p.439', shape: 'slab', size: 'Tiny', weight: 0.3, rating: 'Legendary' }),
63
+ // Decks (p.439/p.227) -- the aspirational end of the catalog: a
64
+ // Cyber-5 costs more than a Super-Platinum DocWagon year. Rating maps
65
+ // the book's Device Rating onto the engine's quality tiers (deck
66
+ // boxes and pools ride qualityBonus).
67
+ row('erika-mcd-1', 'Erika MCD-1', 'Cyberdeck', 49500, 3, 'The learner\'s cyberdeck -- "entry-level" meaning a year of rent.', { approx: true, shape: 'deck', size: 'Small', weight: 2, rating: 'Common' }),
68
+ row('microdeck-summit', 'Microdeck Summit', 'Cyberdeck', 58000, 3, 'Device Rating 1: a real deck, barely. Every decker\'s first love.', { page: 'p.439', shape: 'deck', size: 'Small', weight: 2, rating: 'Common' }),
69
+ row('hermes-chariot', 'Hermes Chariot', 'Cyberdeck', 123000, 6, 'Device Rating 2: the working professional\'s ride through the grid.', { page: 'p.439', shape: 'deck', size: 'Small', weight: 2, rating: 'Standard' }),
70
+ row('renraku-tsurugi', 'Renraku Tsurugi', 'Cyberdeck', 214125, 9, 'Device Rating 3: a sword, as the name says -- corp-grade ice-cutting.', { page: 'p.439', shape: 'deck', size: 'Small', weight: 2.5, rating: 'Rare' }),
71
+ row('shiawase-cyber-5', 'Shiawase Cyber-5', 'Cyberdeck', 549375, 15, 'Device Rating 5: the deck legends retire on. Or die holding.', { page: 'p.439', shape: 'deck', size: 'Small', weight: 3, rating: 'Legendary' }),
72
+ // ---- Deck software (p.245-246) -- "load <program>" runs a carried
73
+ // chip; hacking-program pricing is cited, common-program pricing is
74
+ // canon-approximate. Agents: rating x 2,000, avail rating x 3 (cited).
75
+ row('browse-program', 'Browse Program', 'Software', 80, 2, 'Purpose-built search routines: +2 dice on Matrix Search.', { approx: true, shape: 'chip', size: 'Tiny', weight: 0.1 }),
76
+ row('toolbox-program', 'Toolbox Program', 'Software', 80, 2, 'Utility suite that keeps your persona thinking: +1 Data Processing.', { approx: true, shape: 'chip', size: 'Tiny', weight: 0.1 }),
77
+ row('encryption-program', 'Encryption Program', 'Software', 80, 2, 'Wraps your traffic in ciphertext: +1 Firewall.', { approx: true, shape: 'chip', size: 'Tiny', weight: 0.1 }),
78
+ row('signal-scrub-program', 'Signal Scrub Program', 'Software', 80, 2, 'Cleans your noise floor: +1 die defending your PAN.', { approx: true, shape: 'chip', size: 'Tiny', weight: 0.1 }),
79
+ row('armor-program', 'Armor Program', 'Software', 250, 4, 'Structural integrity for your icon: +2 dice to resist Matrix damage.', { page: 'p.246', shape: 'chip', size: 'Tiny', weight: 0.1 }),
80
+ row('biofeedback-filter-program', 'Biofeedback Filter Program', 'Software', 250, 4, 'A firewall for your sim module: +2 dice against biofeedback and dumpshock.', { page: 'p.246', shape: 'chip', size: 'Tiny', weight: 0.1 }),
81
+ row('exploit-program', 'Exploit Program', 'Software', 250, 4, 'Scans targets for Firewall weaknesses: +2 Sleaze when cracking.', { page: 'p.246', shape: 'chip', size: 'Tiny', weight: 0.1 }),
82
+ row('sneak-program', 'Sneak Program', 'Software', 250, 4, 'Misroutes anyone hunting your icon: +2 dice defending a silent PAN.', { page: 'p.246', shape: 'chip', size: 'Tiny', weight: 0.1 }),
83
+ row('hammer-program', 'Hammer Program', 'Software', 250, 4, 'Brute-force payload: +2 Matrix damage on your attack programs.', { page: 'p.246', shape: 'chip', size: 'Tiny', weight: 0.1 }),
84
+ row('decryption-program', 'Decryption Program', 'Software', 250, 4, 'Rips ciphers apart in realtime: +2 Attack in Matrix combat.', { page: 'p.246', shape: 'chip', size: 'Tiny', weight: 0.1 }),
85
+ row('agent-rating-4', 'Agent Rating 4', 'Software', 8000, 12, 'Autonomous pilot program, rating 4 -- a sharper mind for your deck than the bundled dog-brain ("agent" deploys it).', { page: 'p.246', shape: 'chip', size: 'Tiny', weight: 0.1, rating: 'Rare' }),
86
+ row('agent-rating-6', 'Agent Rating 6', 'Software', 12000, 18, 'Top-shelf autonomous agent, rating 6 -- near-sapient, and priced like it knows.', { page: 'p.246', shape: 'chip', size: 'Tiny', weight: 0.1, rating: 'Legendary' }),
87
+ row('microtransceiver', 'Microtransceiver', 'Electronics', 100, 2, 'Ear-canal comms for jobs where commlinks are too loud.', { approx: true, shape: 'earpiece', size: 'Tiny', weight: 0.1 }),
88
+ row('white-noise-generator', 'White Noise Generator', 'Electronics', 300, 6, 'A bubble of privacy in a city of ears.', { approx: true, shape: 'puck', size: 'Tiny', weight: 0.3 }),
89
+ row('area-jammer', 'Area Jammer', 'Electronics', 1200, 8, 'Kills every wireless signal in the room, yours included.', { approx: true, shape: 'box', weight: 1 }),
90
+ // ---- Survival & entry (p.449) ----
91
+ row('climbing-gear', 'Climbing Gear', 'Electronics', 200, 2, 'Rope, harness, and hardware rated for your bad decisions.', { page: 'p.449', shape: 'kit', size: 'Medium', weight: 5 }),
92
+ row('flashlight', 'Flashlight', 'Electronics', 25, 2, 'Light where the city forgot to put any.', { page: 'p.449', shape: 'tube', size: 'Tiny', weight: 0.3 }),
93
+ row('gecko-tape-gloves', 'Gecko Tape Gloves', 'Electronics', 250, 12, 'Walk up the wall. Forbidden for exactly that reason.', { page: 'p.449', shape: 'gloves', size: 'Tiny', weight: 0.3, rating: 'Rare' }),
94
+ row('survival-kit', 'Survival Kit', 'Electronics', 200, 4, 'Everything the barrens forgot to provide.', { page: 'p.449', shape: 'kit', size: 'Medium', weight: 3 }),
95
+ row('grapple-gun', 'Grapple Gun', 'Electronics', 500, 8, 'A rooftop in one pull of a trigger. Bring the descent kit.', { approx: true, shape: 'launcher', size: 'Medium', weight: 2 }),
96
+ row('lockpick-set', 'Lockpick Set', 'Electronics', 250, 6, 'Manual picks and a shim set, wrapped like surgeon\'s tools.', { approx: true, shape: 'roll', size: 'Tiny', weight: 0.3 }),
97
+ // ---- Medical (p.450, p.96) ----
98
+ row('medkit-3', 'Medkit (Rating 3)', 'Medical', 750, 3, 'Pocket trauma kit: sealant, stims, a diagnostic patch.', { approx: true, shape: 'case', color: 'red' }),
99
+ row('medkit-6', 'Medkit (Rating 6)', 'Medical', 1500, 6, 'A clinic in a handheld case -- the good one.', { page: 'p.96', shape: 'case', size: 'Medium', weight: 2, color: 'red' }),
100
+ row('stim-patch', 'Stim Patch (Rating 4)', 'StimPatch', 100, 4, 'Slap-on chemical courage. The crash comes later.', { approx: true, shape: 'patch', size: 'Tiny', weight: 0.1, color: 'yellow' }),
101
+ row('trauma-patch', 'Trauma Patch', 'Medical', 500, 12, 'The patch that argues with death itself. Once.', { approx: true, shape: 'patch', size: 'Tiny', weight: 0.1, color: 'red', rating: 'Rare' }),
102
+ // ---- Magical goods (p.461) ----
103
+ row('power-focus-1', 'Power Focus (Force 1)', 'Focus', 18000, 4, 'A bound anchor for living mana. The real investment.', { page: 'p.461', shape: 'amulet', size: 'Tiny', weight: 0.2, rating: 'Rare' }),
104
+ row('combat-spell-formula', 'Combat Spell Formula', 'SpellFormula', 2000, 8, 'A combat spell, notated for study. Bring talent.', { page: 'p.461', shape: 'scroll', size: 'Tiny', weight: 0.1 }),
105
+ row('reagents', 'Reagents (10 drams)', 'Focus', 200, 2, 'Alchemically potent odds and ends, jarred and labeled.', { approx: true, shape: 'jar', size: 'Tiny', weight: 0.5 }),
106
+ // ---- Explosives ----
107
+ row('flash-bang', 'Flash-Bang Grenade', 'Explosive', 100, 6, 'A very loud argument for leaving.', { approx: true, shape: 'grenade', size: 'Tiny', weight: 0.3 }),
108
+ row('smoke-grenade', 'Smoke Grenade', 'Explosive', 40, 4, 'Portable weather for tactical withdrawals.', { approx: true, shape: 'grenade', size: 'Tiny', weight: 0.3 }),
109
+ // ---- Drones ----
110
+ row('fly-spy', 'MCT Fly-Spy', 'Drone', 2000, 8, 'A palm-sized dragonfly with a camera where its soul should be.', { approx: true, shape: 'insect', size: 'Tiny', weight: 0.4, color: 'iridescent green' }),
111
+ ];
112
+ //# sourceMappingURL=catalog-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-data.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/catalog-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { ICatalogItem } from './catalog-data.js';
2
+ /**
3
+ * The catalog's delivery chain (player direction: the catalog LIVES on
4
+ * maka-cli.com): the site's GameCatalog collection is the source of
5
+ * truth, fetched publicly (no auth -- it's world data) and cached at
6
+ * ~/.meteor/.maka/side-quest-catalog.json; offline or unreachable, the
7
+ * cache serves; no cache, the baked-in seed (catalog-data.ts) is the
8
+ * floor. The same local-first shape as saves: the street never stops
9
+ * selling because the grid hiccuped.
10
+ */
11
+ /**
12
+ * DOMAIN AFFINITY (player ruling: don't overload the Johnson -- the
13
+ * specialists are the point of having a roster). Which catalog
14
+ * categories are a contact ROLE's own trade: sourcing inside it rides
15
+ * bonus dice (source.ts), the catalog groups its sections by it
16
+ * (catalog.ts command), and the contact's own AI is briefed on this
17
+ * stock as THEIR trade (npc.ts swag note). Lives here, not in
18
+ * source.ts, so models can import it without pulling in a command.
19
+ */
20
+ export declare const ROLE_DOMAINS: Record<string, string[]>;
21
+ /** Fire-and-forget refresh from the site -- call once at session start;
22
+ * the promise resolves when the live list (or a fallback) is settled. */
23
+ export declare function refreshCatalog(): Promise<void>;
24
+ /** The best catalog available right now: live > cached > baked-in. */
25
+ export declare function loadCatalog(): ICatalogItem[];
26
+ /** Fuzzy lookup for source.ts: exact slug, exact name, then loose
27
+ * word containment -- a single unambiguous hit or nothing. */
28
+ export declare function findCatalogItem(request: string): ICatalogItem | undefined;
@@ -0,0 +1,128 @@
1
+ import * as fs from 'fs';
2
+ import * as os from 'os';
3
+ import * as path from 'path';
4
+ import * as http from 'http';
5
+ import * as https from 'https';
6
+ import { Logger } from './logger.js';
7
+ import { CATALOG_VERSION, CATALOG_ITEMS } from './catalog-data.js';
8
+ /**
9
+ * The catalog's delivery chain (player direction: the catalog LIVES on
10
+ * maka-cli.com): the site's GameCatalog collection is the source of
11
+ * truth, fetched publicly (no auth -- it's world data) and cached at
12
+ * ~/.meteor/.maka/side-quest-catalog.json; offline or unreachable, the
13
+ * cache serves; no cache, the baked-in seed (catalog-data.ts) is the
14
+ * floor. The same local-first shape as saves: the street never stops
15
+ * selling because the grid hiccuped.
16
+ */
17
+ /**
18
+ * DOMAIN AFFINITY (player ruling: don't overload the Johnson -- the
19
+ * specialists are the point of having a roster). Which catalog
20
+ * categories are a contact ROLE's own trade: sourcing inside it rides
21
+ * bonus dice (source.ts), the catalog groups its sections by it
22
+ * (catalog.ts command), and the contact's own AI is briefed on this
23
+ * stock as THEIR trade (npc.ts swag note). Lives here, not in
24
+ * source.ts, so models can import it without pulling in a command.
25
+ */
26
+ export const ROLE_DOMAINS = {
27
+ 'Arms Dealer': ['Weapon', 'MeleeWeapon', 'RangedWeapon', 'Ammunition', 'Explosive', 'BodyArmor', 'Armor', 'Shield', 'Helmet', 'ArmArmor', 'LegArmor', 'Boots', 'Gloves'],
28
+ 'Talismonger': ['Focus', 'SpellFormula', 'Grimoire'],
29
+ 'Street Doc': ['Medical', 'StimPatch', 'SlapPatch', 'Bioware', 'Cyberware', 'Nanoware', 'Geneware'],
30
+ 'Mechanic': ['Drone', 'RCC'],
31
+ 'Data Broker': ['Cyberdeck', 'Software', 'Commlink', 'Electronics'],
32
+ 'Vendor': ['Food', 'Drink'],
33
+ };
34
+ const DEV = process.env.MAKA_DEV === 'True';
35
+ const HOSTNAME = DEV ? 'localhost' : 'www.maka-cli.com';
36
+ const PORT = DEV ? Number(process.env.MAKA_DEV_PORT ?? 3000) : 443;
37
+ const TIMEOUT_MS = 8000;
38
+ const CACHE_PATH = path.join(os.homedir(), '.meteor', '.maka', 'side-quest-catalog.json');
39
+ let liveCatalog;
40
+ let fetchAttempted = false;
41
+ function readCache() {
42
+ try {
43
+ const parsed = JSON.parse(fs.readFileSync(CACHE_PATH, 'utf8'));
44
+ if (Array.isArray(parsed?.items) && parsed.items.length > 0)
45
+ return parsed;
46
+ }
47
+ catch { /* no cache */ }
48
+ return undefined;
49
+ }
50
+ function writeCache(version, items) {
51
+ try {
52
+ fs.mkdirSync(path.dirname(CACHE_PATH), { recursive: true });
53
+ fs.writeFileSync(CACHE_PATH, JSON.stringify({ version, fetchedAt: new Date().toISOString(), items }), 'utf8');
54
+ }
55
+ catch (err) {
56
+ Logger.getInstance().write(`catalog cache write failed: ${err}`);
57
+ }
58
+ }
59
+ /** Fire-and-forget refresh from the site -- call once at session start;
60
+ * the promise resolves when the live list (or a fallback) is settled. */
61
+ export async function refreshCatalog() {
62
+ if (fetchAttempted)
63
+ return;
64
+ fetchAttempted = true;
65
+ const logger = Logger.getInstance();
66
+ try {
67
+ const data = await new Promise((resolve, reject) => {
68
+ const mod = DEV ? http : https;
69
+ const req = mod.request({ hostname: HOSTNAME, port: PORT, path: '/api/v1/game-catalog/list', method: 'GET', timeout: TIMEOUT_MS }, res => {
70
+ let body = '';
71
+ res.on('data', c => { body += c; });
72
+ res.on('end', () => (res.statusCode === 200 ? resolve(body) : reject(new Error(`status ${res.statusCode}`))));
73
+ });
74
+ req.on('timeout', () => req.destroy(new Error('timeout')));
75
+ req.on('error', reject);
76
+ req.end();
77
+ });
78
+ const parsed = JSON.parse(data);
79
+ if (Array.isArray(parsed?.items) && parsed.items.length > 0) {
80
+ liveCatalog = parsed.items;
81
+ writeCache(Number(parsed.version ?? CATALOG_VERSION), liveCatalog);
82
+ logger.write(`Catalog: ${liveCatalog.length} items from maka-cli.com (v${parsed.version}).`);
83
+ return;
84
+ }
85
+ throw new Error('empty catalog payload');
86
+ }
87
+ catch (err) {
88
+ const cache = readCache();
89
+ if (cache) {
90
+ liveCatalog = cache.items;
91
+ logger.write(`Catalog: offline -- serving ${cache.items.length} cached items (v${cache.version}). (${err.message})`);
92
+ }
93
+ else {
94
+ logger.write(`Catalog: offline, no cache -- serving the ${CATALOG_ITEMS.length} baked-in items. (${err.message})`);
95
+ }
96
+ }
97
+ }
98
+ /** The best catalog available right now: live > cached > baked-in. */
99
+ export function loadCatalog() {
100
+ if (liveCatalog)
101
+ return liveCatalog;
102
+ const cache = readCache();
103
+ return cache?.items ?? CATALOG_ITEMS;
104
+ }
105
+ /** Fuzzy lookup for source.ts: exact slug, exact name, then loose
106
+ * word containment -- a single unambiguous hit or nothing. */
107
+ export function findCatalogItem(request) {
108
+ const items = loadCatalog();
109
+ const q = request.trim().toLowerCase();
110
+ if (!q)
111
+ return undefined;
112
+ const exact = items.find(i => i.slug === q.replace(/\s+/g, '-') || i.name.toLowerCase() === q);
113
+ if (exact)
114
+ return exact;
115
+ const hits = items.filter(i => i.name.toLowerCase().includes(q) || q.includes(i.name.toLowerCase()));
116
+ if (hits.length === 1)
117
+ return hits[0];
118
+ // Word-overlap last resort ("shock gloves" vs "Shock Gloves").
119
+ const words = q.split(/\s+/).filter(w => w.length >= 3);
120
+ if (words.length === 0)
121
+ return undefined;
122
+ const scored = items.filter(i => {
123
+ const hay = i.name.toLowerCase();
124
+ return words.every(w => hay.includes(w));
125
+ });
126
+ return scored.length === 1 ? scored[0] : undefined;
127
+ }
128
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/catalog.ts"],"names":[],"mappings":"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"}
@@ -114,6 +114,10 @@ export function serializeItem(item) {
114
114
  out.deckDamage = item.deckDamage;
115
115
  if (item.droneDamage > 0)
116
116
  out.droneDamage = item.droneDamage;
117
+ if (item.loadedPrograms.length > 0)
118
+ out.loadedPrograms = [...item.loadedPrograms];
119
+ if (item.isCyberdeck() && item.deckOrder.join() !== '0,1,2,3')
120
+ out.deckOrder = item.deckOrder;
117
121
  return out;
118
122
  }
119
123
  /** Mirrors ItemFactory.createItemFromJson (synchronously), then lays
@@ -151,6 +155,10 @@ export function restoreItem(json) {
151
155
  item.takeDeckDamage(json.deckDamage);
152
156
  if (json.droneDamage)
153
157
  item.takeDroneDamage(json.droneDamage);
158
+ if (json.loadedPrograms)
159
+ item.loadedPrograms = [...json.loadedPrograms];
160
+ if (json.deckOrder)
161
+ item.configureDeck(json.deckOrder);
154
162
  return item;
155
163
  }
156
164
  export function serializeEquipment(eq) {