@maka/maka-cli 5.85.0 → 5.87.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 (53) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +25 -0
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +1 -1
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +8 -6
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +1 -1
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +18 -1
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +1 -1
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +1 -1
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +2 -2
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +1 -1
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.d.ts +1 -1
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +1 -1
  16. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +1 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js +20 -0
  18. package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js.map +1 -1
  19. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +10 -2
  20. package/bundle/typescript/src/commands/game/sideQuest/game.js +20 -7
  21. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +1 -1
  23. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +1 -1
  24. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +1 -1
  25. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +86 -10
  26. package/bundle/typescript/src/commands/game/sideQuest/types/repro.d.ts +15 -6
  27. package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.d.ts +17 -0
  28. package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js +1 -1
  29. package/bundle/typescript/src/commands/game/sideQuest/utilities/data-work.d.ts +21 -0
  30. package/bundle/typescript/src/commands/game/sideQuest/utilities/data-work.js +61 -0
  31. package/bundle/typescript/src/commands/game/sideQuest/utilities/data-work.js.map +1 -0
  32. package/bundle/typescript/src/commands/game/sideQuest/utilities/ddp-lite.d.ts +53 -0
  33. package/bundle/typescript/src/commands/game/sideQuest/utilities/ddp-lite.js +43 -3
  34. package/bundle/typescript/src/commands/game/sideQuest/utilities/ddp-lite.js.map +1 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js +7 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js.map +1 -1
  37. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.d.ts +1 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +59 -4
  39. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +2 -2
  41. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +1 -1
  42. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.d.ts +55 -0
  43. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js +115 -11
  44. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js.map +1 -1
  45. package/bundle/typescript/src/commands/update.js +6 -20
  46. package/bundle/typescript/src/commands/update.js.map +1 -1
  47. package/bundle/typescript/src/tools/self-update/binary-install.d.ts +113 -0
  48. package/bundle/typescript/src/tools/self-update/binary-install.js +178 -0
  49. package/bundle/typescript/src/tools/self-update/binary-install.js.map +1 -0
  50. package/bundle/typescript/src/tools/self-update/update-maka.d.ts +3 -1
  51. package/bundle/typescript/src/tools/self-update/update-maka.js +234 -4
  52. package/bundle/typescript/src/tools/self-update/update-maka.js.map +1 -1
  53. package/package.json +1 -1
@@ -197,7 +197,7 @@ export declare class Room extends AbstractRoom {
197
197
  * The runtime has NO nodeAccess any more. The field it replaces made a
198
198
  * HOST air-gapped, which is not a thing that can exist (a host is
199
199
  * "part of the Matrix, rather than being a single device", p.218) --
200
- * reported as hhSWvKKMxRC7DGXhh and fixed by moving the gap onto a
200
+ * reported as hhSWzLSXECFtfoAGa and fixed by moving the gap onto a
201
201
  * device, where an air gap is ordinary and real.
202
202
  *
203
203
  * What it does: the room's matrix-plane files sit on THIS box instead
@@ -299,7 +299,7 @@ export class Room extends AbstractRoom {
299
299
  * The runtime has NO nodeAccess any more. The field it replaces made a
300
300
  * HOST air-gapped, which is not a thing that can exist (a host is
301
301
  * "part of the Matrix, rather than being a single device", p.218) --
302
- * reported as hhSWvKKMxRC7DGXhh and fixed by moving the gap onto a
302
+ * reported as hhSWzLSXECFtfoAGa and fixed by moving the gap onto a
303
303
  * device, where an air gap is ordinary and real.
304
304
  *
305
305
  * What it does: the room's matrix-plane files sit on THIS box instead
@@ -224,7 +224,7 @@
224
224
  },
225
225
  {
226
226
  "name": "Grid Vault",
227
- "description": "A humming server room jury-rigged into the Barrens power grid. Thick cables run from the door into matte-black server racks with no antenna in sight -- whatever lives in there doesn't talk to the wireless world.",
227
+ "description": "A humming server room jury-rigged into the Barrens power grid. The room's host stands over it on the grid, heavy and lit; the racks it guards are another matter -- matte-black, no antenna in sight, and whatever lives in THEM doesn't talk to the wireless world.",
228
228
  "hasNode": true,
229
229
  "hostRating": 9,
230
230
  "nodeAccess": "wired",
@@ -472,7 +472,7 @@
472
472
  },
473
473
  {
474
474
  "name": "Sim Den",
475
- "description": "Past the door, rows of scavenged sim-couches wired into a matte-black host with no wireless presence at all -- hard lines only, the way the paranoid like it. The couch rows whisper with other people's dreams.",
475
+ "description": "Past the door, rows of scavenged sim-couches under a host that hums on the grid like any other. The paranoia is one rack further in: a matte-black server with no antenna on it, holding what matters on hard lines only. The couch rows whisper with other people's dreams.",
476
476
  "roomType": "Den",
477
477
  "hasNode": true,
478
478
  "hostRating": 5,
@@ -541,10 +541,10 @@
541
541
  }
542
542
  },
543
543
  {
544
- "description": "Ratchet is the Circuit Bazaar's owner: a wiry decker who sells, repairs, and quietly upgrades electronics. He knows every host in the district, including the Sim Den's air-gapped one, and gossips freely with fellow tech-heads.",
544
+ "description": "Ratchet is the Circuit Bazaar's owner: a wiry decker who sells, repairs, and quietly upgrades electronics. He knows every host in the district, including the Sim Den's and the box it keeps off the grid, and gossips freely with fellow tech-heads.",
545
545
  "dialogue": [
546
546
  "Everything here boots. Mostly.",
547
- "The Sim Den host? Hard lines only, chummer. Somebody down there is paranoid for a REASON.",
547
+ "The Sim Den host? Right there on the grid like anyone's. It's the SERVER behind it that never sees a signal -- hard lines only, chummer. Somebody down there is paranoid for a REASON.",
548
548
  "Bring me broken decks. I like the sad ones."
549
549
  ],
550
550
  "player": {
@@ -868,7 +868,7 @@
868
868
  "shape": "Slab",
869
869
  "color": "Matte Black",
870
870
  "texture": "Cold Metal",
871
- "rating": "Rare",
871
+ "rating": "Legendary",
872
872
  "weight": 0.2,
873
873
  "heldBy": "Mr. Krow",
874
874
  "owner": "Mr. Krow",
@@ -1290,7 +1290,7 @@
1290
1290
  "shape": "Slab",
1291
1291
  "color": "Gunmetal",
1292
1292
  "texture": "Scarred Polymer",
1293
- "rating": "Standard",
1293
+ "rating": "Rare",
1294
1294
  "weight": 0.2,
1295
1295
  "heldBy": "Torque",
1296
1296
  "owner": "Torque",
@@ -1304,7 +1304,7 @@
1304
1304
  "shape": "Slab",
1305
1305
  "color": "Circuit Green",
1306
1306
  "texture": "Taped Seams",
1307
- "rating": "Rare",
1307
+ "rating": "Legendary",
1308
1308
  "weight": 0.2,
1309
1309
  "heldBy": "Ratchet",
1310
1310
  "owner": "Ratchet",
@@ -1318,7 +1318,7 @@
1318
1318
  "shape": "Slab",
1319
1319
  "color": "Bone White",
1320
1320
  "texture": "Antiseptic Plastic",
1321
- "rating": "Standard",
1321
+ "rating": "Rare",
1322
1322
  "weight": 0.2,
1323
1323
  "heldBy": "Doc Halloran",
1324
1324
  "owner": "Doc Halloran",
@@ -1332,7 +1332,7 @@
1332
1332
  "shape": "Slab",
1333
1333
  "color": "Faded Orange",
1334
1334
  "texture": "Worn Rubber",
1335
- "rating": "Common",
1335
+ "rating": "Standard",
1336
1336
  "weight": 0.2,
1337
1337
  "heldBy": "Old Cray",
1338
1338
  "owner": "Old Cray",
@@ -1346,7 +1346,7 @@
1346
1346
  "shape": "Slab",
1347
1347
  "color": "Neon Pink",
1348
1348
  "texture": "Sticker-Covered",
1349
- "rating": "Common",
1349
+ "rating": "Standard",
1350
1350
  "weight": 0.2,
1351
1351
  "heldBy": "Skitter",
1352
1352
  "owner": "Skitter",
@@ -1360,11 +1360,87 @@
1360
1360
  "shape": "Slab",
1361
1361
  "color": "Silver",
1362
1362
  "texture": "Polished Glass",
1363
- "rating": "Standard",
1363
+ "rating": "Rare",
1364
1364
  "weight": 0.2,
1365
1365
  "heldBy": "Whisper",
1366
1366
  "owner": "Whisper",
1367
1367
  "transferable": false
1368
+ },
1369
+ {
1370
+ "name": "Verdigris's Commlink",
1371
+ "description": "A commlink in a hand-stitched leather sleeve, sigils inked along the seam.",
1372
+ "size": "Small",
1373
+ "category": "Commlink",
1374
+ "shape": "Slab",
1375
+ "color": "Oxblood",
1376
+ "texture": "Tooled Leather",
1377
+ "rating": "Rare",
1378
+ "weight": 0.2,
1379
+ "heldBy": "Sister Verdigris",
1380
+ "owner": "Sister Verdigris",
1381
+ "transferable": false
1382
+ },
1383
+ {
1384
+ "name": "Mama Wu's Commlink",
1385
+ "description": "A commlink that has taken more orders than any till on the Strip, screen fogged with steam.",
1386
+ "size": "Small",
1387
+ "category": "Commlink",
1388
+ "shape": "Slab",
1389
+ "color": "Rice White",
1390
+ "texture": "Steam-Clouded",
1391
+ "rating": "Standard",
1392
+ "weight": 0.2,
1393
+ "heldBy": "Mama Wu",
1394
+ "owner": "Mama Wu",
1395
+ "transferable": false
1396
+ },
1397
+ {
1398
+ "name": "Patch's Commlink",
1399
+ "description": "A bar commlink behind the taps, ringer off, contact list longer than the drinks menu.",
1400
+ "size": "Small",
1401
+ "category": "Commlink",
1402
+ "shape": "Slab",
1403
+ "color": "Bottle Green",
1404
+ "texture": "Sticky Lacquer",
1405
+ "rating": "Rare",
1406
+ "weight": 0.2,
1407
+ "heldBy": "Patch",
1408
+ "owner": "Patch",
1409
+ "transferable": false
1410
+ },
1411
+ {
1412
+ "name": "Brick's Commlink",
1413
+ "description": "A commlink the size of a brick, in a case the size of two, in a fist the size of both.",
1414
+ "size": "Small",
1415
+ "category": "Commlink",
1416
+ "shape": "Slab",
1417
+ "color": "Dragon Red",
1418
+ "texture": "Rubber Armoured",
1419
+ "rating": "Standard",
1420
+ "weight": 0.2,
1421
+ "heldBy": "Brick",
1422
+ "owner": "Brick",
1423
+ "transferable": false
1424
+ },
1425
+ {
1426
+ "name": "Fairlight Excalibur",
1427
+ "description": "Mr. Krow's deck, and the reason nobody has ever read his call log. Top of the line and configured like a vault door rather than a battering ram -- every spare point of that array is sunk into Firewall.",
1428
+ "size": "Small",
1429
+ "category": "Cyberdeck",
1430
+ "shape": "Deck",
1431
+ "color": "Brushed Titanium",
1432
+ "texture": "Cool Enamel",
1433
+ "rating": "MilitaryGrade",
1434
+ "weight": 2,
1435
+ "heldBy": "Mr. Krow",
1436
+ "owner": "Mr. Krow",
1437
+ "transferable": false,
1438
+ "deckOrder": [
1439
+ 3,
1440
+ 2,
1441
+ 1,
1442
+ 0
1443
+ ]
1368
1444
  }
1369
1445
  ],
1370
1446
  "puzzles": []
@@ -292,12 +292,21 @@ export interface IReproHost {
292
292
  */
293
293
  rating?: number;
294
294
  /**
295
- * 'wireless' (default) is reachable by any jacked-in persona.
296
- * 'wired' is AIR-GAPPED: hackable only with the actor's body in the
297
- * room. Both are worth benching, and they are not interchangeable --
298
- * every host in the shipped scenes that holds paydata is air-gapped,
299
- * which is why a decker who jacks in and hacks currently only ever
300
- * meets the empty case.
295
+ * 'wireless' (default) is an ordinary host, reachable by any jacked-in
296
+ * persona -- which is now every host, because a host is Matrix
297
+ * architecture by definition (hhSWzLSXECFtfoAGa).
298
+ *
299
+ * 'wired' IS LEGACY AND MEANS SOMETHING ELSE NOW. It no longer makes
300
+ * an air-gapped HOST -- there is no such thing. The Room constructor
301
+ * migrates it to an ordinary host PLUS an offline server device
302
+ * holding the files, reachable only by a direct connection with the
303
+ * actor's body in the room (p.233). Kept so old fixtures still build;
304
+ * prefer 'wireless' and place a server deliberately in new ones.
305
+ *
306
+ * (The claim that used to sit here -- "every host in the shipped
307
+ * scenes that holds paydata is air-gapped" -- was true of the old
308
+ * model and is now false twice over: the model is gone, and the scene
309
+ * prose that said so has been corrected.)
301
310
  */
302
311
  access?: 'wireless' | 'wired';
303
312
  /** Which room carries it. Defaults to the side the runner starts on,
@@ -23,4 +23,21 @@ export interface IItemSeedJson {
23
23
  plane?: 'meat' | 'matrix' | 'astral';
24
24
  price?: number;
25
25
  atSpot?: string;
26
+ /**
27
+ * HOW THIS DECK IS CONFIGURED (SR5 p.227, "Deck Configuration"):
28
+ * indexes into the deck's attribute array for [attack, sleaze,
29
+ * dataProcessing, firewall]. Cyberdecks only; ignored elsewhere.
30
+ *
31
+ * The engine's default is [0,1,2,3] -- the array's biggest number on
32
+ * ATTACK, which is a runner's aggression and the right default for a
33
+ * deck somebody bought to break into things. It is the wrong default
34
+ * for a deck somebody bought so that nothing can break into THEM,
35
+ * and canon makes that a choice rather than a different deck: the
36
+ * same four numbers, assigned as the owner sees fit.
37
+ *
38
+ * So this exists to let a seed say who its owner is. Krow runs
39
+ * Firewall-first because he is a fixer who never leaves the office
40
+ * and has no interest in attacking anyone (iM58MmFAysCp9QT6m).
41
+ */
42
+ deckOrder?: number[];
26
43
  }
@@ -87,7 +87,7 @@ export function aroTags(scene, actor, room) {
87
87
  const tags = [];
88
88
  // THE HOST's public face. EVERY host has one now: a host is Matrix
89
89
  // architecture by definition (p.218), so there is no longer a variety
90
- // that the street cannot see (hhSWvKKMxRC7DGXhh removed it). A
90
+ // that the street cannot see (hhSWzLSXECFtfoAGa removed it). A
91
91
  // genuinely offline SERVER in the room is a device with no wireless
92
92
  // presence, and it is correctly absent from this overlay for the same
93
93
  // reason a silent PAN is.
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Is this caller asking the fixer for DATA work specifically?
3
+ *
4
+ * Deliberately narrow. "any work?" is the ordinary commission and must
5
+ * keep its 30% roll -- a matcher that swallowed every job request would
6
+ * silently turn the whole game into data runs, which is the opposite of
7
+ * a ruling that left the offer rate alone.
8
+ */
9
+ export declare function asksForDataWork(words: string[]): boolean;
10
+ /**
11
+ * The refusal a runner who cannot deck will meet -- and it is the
12
+ * surface that matters most, because Deditri is deckless TODAY. It is
13
+ * the first thing they will meet when they try the feature they asked
14
+ * for.
15
+ *
16
+ * In his voice, and it TEACHES: a refusal that only says no leaves them
17
+ * exactly where they started. Both roads in are named -- buy the gear,
18
+ * or be the kind of person who does not need it -- because the deck gate
19
+ * is a real rule and the way through it is knowable.
20
+ */
21
+ export declare function noDeckForDataWork(fixerName?: string): string;
@@ -0,0 +1,61 @@
1
+ import { FIXER_NAME } from '../factories/scene-seed-generator.js';
2
+ /**
3
+ * ASKING KROW FOR DATA WORK (ruoedrMTA6kCRNmEN, Deditri).
4
+ *
5
+ * Their words, sic: "I would love th ave a "data dumpster diving" run.
6
+ * Attack host, get into host, (world gneerated host) and seek for the
7
+ * data file. Something quick and easy of a mission, doesn't have to tie
8
+ * into anything larger, just fast data runs."
9
+ *
10
+ * The machinery shipped before the affordance did. A data run is a real
11
+ * runType with its own generation brief -- paydata inside a host, ICE
12
+ * instead of muscle, one site and one file -- but nothing let a player
13
+ * ASK for one. `pickRunType` gated on deck capability and then rolled
14
+ * 30%, so "just fast data runs" was, in practice, "a data run may be
15
+ * offered to a decker three times in ten". Deditri could not summon the
16
+ * thing they asked for, and being deckless would never have seen one.
17
+ *
18
+ * User ruling 2026-08-30, on exactly that gap: a deck-capable runner can
19
+ * ask and GET ONE ON DEMAND. The deck gate stays -- every objective on a
20
+ * data run lives behind a host, so a runner who cannot get in has no job
21
+ * to do. The 30% still governs UNPROMPTED offers and is untouched: this
22
+ * adds a door, it does not widen the corridor.
23
+ */
24
+ /** The words a player actually reaches for. Deditri's own phrase
25
+ * ("data dumpster diving") is in here on purpose -- the person who
26
+ * asked for the feature should not have to guess its vocabulary. */
27
+ const DATA_WORK = [
28
+ /\bdata\s*(work|run|runs|job|jobs|dive|diving)\b/i,
29
+ /\bdumpster\s*(dive|diving|run)\b/i,
30
+ /\bpaydata\b/i,
31
+ /\bmatrix\s*(work|run|runs|job|jobs)\b/i,
32
+ ];
33
+ /**
34
+ * Is this caller asking the fixer for DATA work specifically?
35
+ *
36
+ * Deliberately narrow. "any work?" is the ordinary commission and must
37
+ * keep its 30% roll -- a matcher that swallowed every job request would
38
+ * silently turn the whole game into data runs, which is the opposite of
39
+ * a ruling that left the offer rate alone.
40
+ */
41
+ export function asksForDataWork(words) {
42
+ const said = words.join(' ').trim();
43
+ if (!said)
44
+ return false;
45
+ return DATA_WORK.some(rx => rx.test(said));
46
+ }
47
+ /**
48
+ * The refusal a runner who cannot deck will meet -- and it is the
49
+ * surface that matters most, because Deditri is deckless TODAY. It is
50
+ * the first thing they will meet when they try the feature they asked
51
+ * for.
52
+ *
53
+ * In his voice, and it TEACHES: a refusal that only says no leaves them
54
+ * exactly where they started. Both roads in are named -- buy the gear,
55
+ * or be the kind of person who does not need it -- because the deck gate
56
+ * is a real rule and the way through it is knowable.
57
+ */
58
+ export function noDeckForDataWork(fixerName = FIXER_NAME) {
59
+ return `"Data work." ${fixerName} lets the words sit. "Chummer, every payday on that kind of job is behind a host. You don't have the hardware to knock, and I'm not sending you to stare at a locked door for my cut. Get yourself a deck -- the catalog's full of them -- or find out you were born with the knack. Then call me and we'll talk paydata." Click.`;
60
+ }
61
+ //# sourceMappingURL=data-work.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-work.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/data-work.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;qEAEqE;AACrE,MAAM,SAAS,GAAG;IAChB,kDAAkD;IAClD,mCAAmC;IACnC,cAAc;IACd,wCAAwC;CACzC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,KAAe;IAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,YAAoB,UAAU;IAC9D,OAAO,gBAAgB,SAAS,mUAAmU,CAAC;AACtW,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { EventEmitter } from 'node:events';
1
2
  export interface IDdpLiteConn {
2
3
  call<T = unknown>(name: string, ...args: unknown[]): Promise<T>;
3
4
  /** call() with a per-call deadline, for methods that legitimately run
@@ -9,6 +10,12 @@ export interface IDdpLiteConn {
9
10
  on(event: 'connected' | 'disconnected', listener: () => void): IDdpLiteConn;
10
11
  /** Runs after every RE-handshake, before re-subscription (re-login). */
11
12
  onReconnect?: () => Promise<void>;
13
+ /** Observability for the re-handshake itself. The transport used to
14
+ * reconnect in complete silence, which made an alive-but-deaf link
15
+ * indistinguishable from a quiet table. */
16
+ onRehandshake?: (attempts: number) => void;
17
+ /** onReconnect THREW. Never swallowed -- see dispatch(). */
18
+ onReconnectAuthFailure?: (err: unknown) => void;
12
19
  raw: {
13
20
  _stream: {
14
21
  on(event: 'message', cb: (raw: string) => void): void;
@@ -16,6 +23,52 @@ export interface IDdpLiteConn {
16
23
  };
17
24
  close(): void;
18
25
  }
26
+ /** Exported for TESTS only -- connectDdp is the runtime entry point and
27
+ * the only one callers should use. The constructor opens no socket, so
28
+ * the reconnect handshake can be driven directly and offline, which is
29
+ * the only way to test a failure that only happens on a re-handshake. */
30
+ export declare class DdpLiteConn extends EventEmitter implements IDdpLiteConn {
31
+ private endpoint;
32
+ private ws?;
33
+ private nextId;
34
+ private calls;
35
+ private subs;
36
+ private streamEmitter;
37
+ private closed;
38
+ private handshaken;
39
+ private reconnectAttempt;
40
+ private reconnectTimer?;
41
+ private lastTraffic;
42
+ private watchdog?;
43
+ onReconnect?: () => Promise<void>;
44
+ onRehandshake?: (attempts: number) => void;
45
+ onReconnectAuthFailure?: (err: unknown) => void;
46
+ private rawEmitter;
47
+ readonly raw: {
48
+ _stream: {
49
+ on: (event: "message", cb: (raw: string) => void) => void;
50
+ };
51
+ };
52
+ constructor(endpoint: string);
53
+ /** First connection; resolves after the DDP handshake or rejects on
54
+ * timeout/refusal (and then never retries -- the caller owns that). */
55
+ connectFirst(timeoutMs: number): Promise<void>;
56
+ private openSocket;
57
+ /** Fire a diagnostic hook. A broken diagnostic must never take the
58
+ * link down with it -- that would be a worse version of the silence
59
+ * these hooks exist to end. */
60
+ private notify;
61
+ private dispatch;
62
+ private scheduleReconnect;
63
+ private failInFlight;
64
+ private send;
65
+ call<T = unknown>(name: string, ...args: unknown[]): Promise<T>;
66
+ callWithTimeout<T = unknown>(name: string, timeoutMs: number, ...args: unknown[]): Promise<T>;
67
+ subscribe(name: string, ...args: unknown[]): Promise<{
68
+ stop(): void;
69
+ }>;
70
+ close(): void;
71
+ }
19
72
  /** Drop-in for the sdk's connectDdp where the game used it. */
20
73
  export declare function connectDdp(url: string, options?: {
21
74
  firstConnectTimeoutMs?: number;
@@ -52,7 +52,11 @@ function wsUrl(url) {
52
52
  .replace(/^http:/, 'ws:')
53
53
  .replace(/\/+$/, '') + '/websocket';
54
54
  }
55
- class DdpLiteConn extends EventEmitter {
55
+ /** Exported for TESTS only -- connectDdp is the runtime entry point and
56
+ * the only one callers should use. The constructor opens no socket, so
57
+ * the reconnect handshake can be driven directly and offline, which is
58
+ * the only way to test a failure that only happens on a re-handshake. */
59
+ export class DdpLiteConn extends EventEmitter {
56
60
  endpoint;
57
61
  ws;
58
62
  nextId = 1;
@@ -66,6 +70,8 @@ class DdpLiteConn extends EventEmitter {
66
70
  lastTraffic = Date.now();
67
71
  watchdog;
68
72
  onReconnect;
73
+ onRehandshake;
74
+ onReconnectAuthFailure;
69
75
  // Field order matters: rawEmitter must initialize BEFORE raw's
70
76
  // initializer closes over it (declaration-only fields re-init to
71
77
  // undefined under useDefineForClassFields -- a real crash here).
@@ -165,18 +171,52 @@ class DdpLiteConn extends EventEmitter {
165
171
  ws.on('close', () => onDown());
166
172
  ws.on('error', (err) => onDown(err));
167
173
  }
174
+ /** Fire a diagnostic hook. A broken diagnostic must never take the
175
+ * link down with it -- that would be a worse version of the silence
176
+ * these hooks exist to end. */
177
+ notify(hook, arg) {
178
+ try {
179
+ hook?.(arg);
180
+ }
181
+ catch { /* a reporter that throws reports nothing */ }
182
+ }
168
183
  async dispatch(m, onHandshake) {
169
184
  switch (m.msg) {
170
185
  case 'connected': {
171
186
  this.handshaken = true;
187
+ // Captured BEFORE the reset: how many attempts this re-handshake
188
+ // cost is the diagnostic, and zeroing it first would report 0.
189
+ const attempts = this.reconnectAttempt;
172
190
  this.reconnectAttempt = 0;
173
191
  const isReconnect = !onHandshake;
192
+ if (isReconnect)
193
+ this.notify(this.onRehandshake, attempts);
174
194
  try {
175
195
  if (isReconnect && this.onReconnect)
176
196
  await this.onReconnect();
177
197
  }
178
- catch { /* re-login failed -- subs go out unauthenticated and
179
- the server publishes nothing; next drop retries */
198
+ catch (err) {
199
+ // NOT SWALLOWED ANY MORE.
200
+ //
201
+ // This catch used to be empty, with a comment reading
202
+ // "re-login failed -- subs go out unauthenticated and the
203
+ // server publishes nothing; next drop retries". Every word of
204
+ // that is accurate, and together they describe a link that is
205
+ // ALIVE BUT DEAF: the socket is healthy, heartbeats flow, the
206
+ // watchdog is satisfied, every subscription is dead, and the
207
+ // "next drop" that would retry never comes because nothing is
208
+ // wrong with the connection. From inside the game it is
209
+ // indistinguishable from a table where nobody is talking.
210
+ //
211
+ // Two shared runs went exactly this way -- 2026-08-27T01-47-58
212
+ // and 2026-08-30T22-12-28, independent runs three days apart,
213
+ // byte-identical on the wire: two frames, both docs removed,
214
+ // then permanent silence.
215
+ //
216
+ // The transport still does not decide what to SAY about it
217
+ // (this file owns no fiction and imports no Logger); it just
218
+ // refuses to be the place the news stops.
219
+ this.notify(this.onReconnectAuthFailure, err);
180
220
  }
181
221
  // Re-send every live subscription with its ORIGINAL params.
182
222
  if (isReconnect) {
@@ -1 +1 @@
1
- {"version":3,"file":"ddp-lite.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/ddp-lite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ddp-lite.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/ddp-lite.ts"],"names":[],"mappings":"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"}
@@ -133,6 +133,12 @@ export function firstAidRefusal(medic, patient, kit, track) {
133
133
  const self = medic === patient;
134
134
  const who = self ? 'You' : patient.name;
135
135
  const is = self ? 'are' : 'is';
136
+ // "already been worked on" is a PERFECT, and takes have/has -- not the
137
+ // `is` the other three refusals want. Shipped in 5.85.0 as "You are
138
+ // already been worked on", caught by running the RELEASED client
139
+ // against this item's own repro before carding it as fixed. One
140
+ // clause, one auxiliary: English does not let one variable serve both.
141
+ const has = self ? 'have' : 'has';
136
142
  // p.205: "First Aid can only be used if you have a medkit (even if you
137
143
  // do not currently have supplies for it)."
138
144
  if (!kit) {
@@ -154,7 +160,7 @@ export function firstAidRefusal(medic, patient, kit, track) {
154
160
  // application covers the patient, whichever track it treated. Canon is
155
161
  // silent on split tracks, and this is the conservative reading.
156
162
  if (patient.firstAidGiven) {
157
- return `${who} ${is} already been worked on for these wounds -- there's nothing left first aid can do until ${self ? 'you take' : 'they take'} fresh damage. Rest, a clinic, or a heal spell from here.`;
163
+ return `${who} ${has} already been worked on for these wounds -- there's nothing left first aid can do until ${self ? 'you take' : 'they take'} fresh damage. Rest, a clinic, or a heal spell from here.`;
158
164
  }
159
165
  // p.205: "First Aid may not be applied if the character has been
160
166
  // magically healed."
@@ -1 +1 @@
1
- {"version":3,"file":"first-aid.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/first-aid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"first-aid.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/first-aid.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import { Scene } from '../models/scene.js';
10
10
  * broadcasting, it isn't here. Shared by look.ts (gridLook) and go.ts
11
11
  * (grid-jump arrivals). Glyphs match the grid map: ● host, ◆ persona,
12
12
  * ▣ PAN, ▲ dangerous device, ◇ data. (There is no air-gapped-host glyph
13
- * any more -- see hhSWvKKMxRC7DGXhh and canReachHost.)
13
+ * any more -- see hhSWzLSXECFtfoAGa and canReachHost.)
14
14
  */
15
15
  export declare function gridIcons(scene: Scene, actor: Player, room: Room): string[];
16
16
  /**