@maka/maka-cli 5.17.0 → 5.17.2

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 (27) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/commands/call.d.ts +10 -4
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +68 -40
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/end-call.js +9 -0
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/end-call.js.map +1 -1
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/players.js +2 -2
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/players.js.map +1 -1
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js +37 -2
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
  11. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +38 -0
  12. package/bundle/typescript/src/commands/game/sideQuest/game.js +36 -0
  13. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  14. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +4 -0
  15. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +12 -2
  16. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.d.ts +11 -0
  18. package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js +9 -4
  19. package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js.map +1 -1
  20. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.d.ts +11 -0
  21. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js +81 -3
  22. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js.map +1 -1
  23. package/bundle/typescript/src/generator.js +15 -0
  24. package/bundle/typescript/src/generator.js.map +1 -1
  25. package/bundle/typescript/src/tools/log/log.class.js +22 -14
  26. package/bundle/typescript/src/tools/log/log.class.js.map +1 -1
  27. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maka/maka-cli",
3
- "version": "5.17.0",
3
+ "version": "5.17.2",
4
4
  "type": "module",
5
5
  "summary": "A command line tool for scaffolding Meteor 2.x applications using either React.",
6
6
  "description": "A command line tool for scaffolding Meteor 2.x applications using React.",
@@ -16,10 +16,16 @@ export declare class CallCommand extends Command implements ICommand {
16
16
  roomType?: string;
17
17
  } | undefined): boolean;
18
18
  private hasEquippedCommlink;
19
- /** M4.5, the crew channel: page a REAL player on the street. Returns
20
- * the confirmation line, or null when nobody out there matches (the
21
- * caller then falls through to the normal "don't know anyone"). */
22
- private tryPagePlayer;
19
+ /** M4.5.1, the crew channel: resolve `call <words...>` against the
20
+ * REAL players on the street. Resolution only -- opening the line is
21
+ * openCrewChannel's job. Null when the street is unreachable
22
+ * (offline/logged out/classic mode) or nobody matches. */
23
+ private tryResolveStreetPlayer;
24
+ /** Open the crew channel to a street player -- the SAME mechanic as
25
+ * calling an NPC contact: the call connects, then plain "say" talks
26
+ * and "end-call" hangs up (user ruling). The hail (or the trailing
27
+ * words, if any) goes out as the first page. */
28
+ private openCrewChannel;
23
29
  private hasCommlink;
24
30
  /**
25
31
  * Multi-word names ("Mr. Johnson") shouldn't require the player to quote
@@ -4,7 +4,7 @@ import { Category } from '../types/shared/item-enum.js';
4
4
  import { parseArgsWithQuotes } from './talk.js';
5
5
  import { CALL_ICON, CALL_COLOR } from '../utilities/comm-style.js';
6
6
  import { FIXER_NAME, isFixerName } from '../factories/scene-seed-generator.js';
7
- import { fuzzyPickName } from '../utilities/fuzzy-match.js';
7
+ import { fuzzyPickNameDetailed } from '../utilities/fuzzy-match.js';
8
8
  import { isOutdoorsPlace } from '../utilities/outdoors.js';
9
9
  export class CallCommand extends Command {
10
10
  static verb = 'call';
@@ -143,16 +143,19 @@ export class CallCommand extends Command {
143
143
  }
144
144
  return `The dispatcher's bored voice: "No fare on the books for you, chummer." (No job arranged -- "call ${FIXER_NAME}" first.)`;
145
145
  }
146
- const { target, remainingWords } = this.resolveTargetAndMessage(rawWords);
147
- if (!target) {
148
- // THE CREW CHANNEL (M4.5): no such NPC in reach -- maybe it's a
149
- // REAL player on the street. One line goes out walkie-style;
150
- // their hub prints it live, or as backlog at their next session.
151
- if (this.game?.hasHub && this.scene.isHub) {
152
- const paged = await this.tryPagePlayer(rawWords);
153
- if (paged)
154
- return paged;
146
+ const { target, remainingWords, tier } = this.resolveTargetAndMessage(rawWords);
147
+ // THE CREW CHANNEL (M4.5.1): a REAL player on the street can be the
148
+ // callee -- and a confident player match OUTRANKS a typo-tier NPC
149
+ // match (real session: "call Maka" rang the hub NPC "Mama Wu",
150
+ // maka->mama is one edit). Exact/substring NPC matches keep
151
+ // precedence without paying the street fetch; ties go to the NPC.
152
+ if (!target || tier === 3) {
153
+ const street = await this.tryResolveStreetPlayer(rawWords);
154
+ if (street && (!target || street.tier < (tier ?? 4))) {
155
+ return await this.openCrewChannel(street);
155
156
  }
157
+ }
158
+ if (!target) {
156
159
  return `You don't know anyone by the name "${rawWords[0]}" to call.`;
157
160
  }
158
161
  if (target === this.actor) {
@@ -178,6 +181,7 @@ export class CallCommand extends Command {
178
181
  // but the details and the number itself belong to the meet.
179
182
  const pending = this.game.pendingRun;
180
183
  if (pending) {
184
+ this.actor.crewChannel = undefined; // one line at a time
181
185
  this.actor.activeCallPartner = target;
182
186
  target.activeCallPartner = this.actor;
183
187
  // Already shook on it (see commands/job-offer.ts): no re-pitch,
@@ -224,6 +228,7 @@ export class CallCommand extends Command {
224
228
  // Symmetric: either side can now reach the other with an ordinary
225
229
  // "say", not just this initial hail -- see say.ts. Stays connected
226
230
  // until "end-call" (or a new call replaces it, per above).
231
+ this.actor.crewChannel = undefined; // one line at a time
227
232
  this.actor.activeCallPartner = target;
228
233
  target.activeCallPartner = this.actor;
229
234
  // If the caller is holding this run's win-condition macguffin and
@@ -313,18 +318,17 @@ export class CallCommand extends Command {
313
318
  hasEquippedCommlink(actor) {
314
319
  return actor.equipment.head?.commlink != null;
315
320
  }
316
- /** M4.5, the crew channel: page a REAL player on the street. Returns
317
- * the confirmation line, or null when nobody out there matches (the
318
- * caller then falls through to the normal "don't know anyone"). */
319
- async tryPagePlayer(rawWords) {
320
- const { authToken } = await import('../utilities/cloud-saves.js');
321
- if (!authToken())
321
+ /** M4.5.1, the crew channel: resolve `call <words...>` against the
322
+ * REAL players on the street. Resolution only -- opening the line is
323
+ * openCrewChannel's job. Null when the street is unreachable
324
+ * (offline/logged out/classic mode) or nobody matches. */
325
+ async tryResolveStreetPlayer(rawWords) {
326
+ const transport = await this.game?.streetTransport();
327
+ if (!transport)
322
328
  return null;
323
- const { fetchPlayers } = await import('../utilities/social.js');
324
- const players = await fetchPlayers().catch(() => undefined);
325
- if (!players || players.length === 0)
329
+ const players = await transport.list(this.actor.name).catch(() => []);
330
+ if (players.length === 0)
326
331
  return null;
327
- const { fuzzyPickName } = await import('../utilities/fuzzy-match.js');
328
332
  // Longest name first: "call chrome marie meet me" must not lose a
329
333
  // two-word name's second word to the message.
330
334
  const wordCount = (s) => s.trim().split(/\s+/).length;
@@ -337,30 +341,54 @@ export class CallCommand extends Command {
337
341
  const namePool = players.filter(p => wordCount(p.playerName) >= n);
338
342
  const handlePool = players.filter(p => wordCount(p.handle) >= n);
339
343
  const byHandle = players.find(p => p.handle.toLowerCase() === q.toLowerCase());
340
- const fuzzyName = fuzzyPickName(q, namePool.map(p => p.playerName));
341
- const fuzzyHandle = fuzzyPickName(q, handlePool.map(p => p.handle));
344
+ const nameHit = fuzzyPickNameDetailed(q, namePool.map(p => p.playerName));
345
+ const handleHit = fuzzyPickNameDetailed(q, handlePool.map(p => p.handle));
342
346
  const picked = byHandle
343
- ?? namePool.find(p => p.playerName === fuzzyName)
344
- ?? handlePool.find(p => p.handle === fuzzyHandle);
347
+ ? { player: byHandle, tier: 1 }
348
+ : nameHit
349
+ ? { player: namePool.find(p => p.playerName === nameHit.name), tier: nameHit.tier }
350
+ : handleHit
351
+ ? { player: handlePool.find(p => p.handle === handleHit.name), tier: handleHit.tier }
352
+ : undefined;
345
353
  if (!picked)
346
354
  continue;
347
- const message = rawWords.slice(n).join(' ');
348
- if (!message) {
349
- return `The channel to ${picked.playerName} is open -- say it in one line: "call ${picked.playerName} <message>".`;
350
- }
351
- try {
352
- const sr = await import('../utilities/shared-run.js');
353
- const res = await sr.HubLink.call('sideQuest.page', { handle: picked.handle, text: message });
354
- this.actor.performAction('pages', `${res.toRunner}: "${message}"`);
355
- return `${CALL_ICON} Over the crew channel to ${res.toRunner}: "${message}"${res.online ? '' : ` (they're off the street -- it'll be waiting when they surface)`}`;
356
- }
357
- catch (err) {
358
- const e = err;
359
- return `The crew channel chokes (${e.reason ?? e.message ?? 'dead air'}) -- try again.`;
360
- }
355
+ return {
356
+ playerName: picked.player.playerName,
357
+ handle: picked.player.handle,
358
+ tier: picked.tier,
359
+ messageWords: rawWords.slice(n),
360
+ };
361
361
  }
362
362
  return null;
363
363
  }
364
+ /** Open the crew channel to a street player -- the SAME mechanic as
365
+ * calling an NPC contact: the call connects, then plain "say" talks
366
+ * and "end-call" hangs up (user ruling). The hail (or the trailing
367
+ * words, if any) goes out as the first page. */
368
+ async openCrewChannel(street) {
369
+ const transport = await this.game?.streetTransport();
370
+ if (!transport)
371
+ return `The crew channel is dead air -- you're off the grid.`;
372
+ const greeting = street.messageWords.join(' ') || `(calling) You there, ${street.playerName}?`;
373
+ // One line at a time: connecting here drops any in-scene call, the
374
+ // same cleanup the NPC path runs (and vice versa).
375
+ if (this.actor.activeCallPartner) {
376
+ this.actor.activeCallPartner.activeCallPartner = undefined;
377
+ this.actor.activeCallPartner = undefined;
378
+ }
379
+ this.actor.crewChannel = { playerName: street.playerName, handle: street.handle };
380
+ this.actor.performAction('calls', street.playerName);
381
+ try {
382
+ const res = await transport.send({ from: this.actor.name, handle: street.handle, text: greeting });
383
+ const offlineNote = res.online ? '' : `\nThey're off the street right now -- your words wait on their link.`;
384
+ return `{${CALL_COLOR}-fg}${CALL_ICON} You call ${res.toRunner} on the crew channel: "${greeting}"{/${CALL_COLOR}-fg}${offlineNote}${hint(`\n("say <message>" talks, "end-call" hangs up.)`)}`;
385
+ }
386
+ catch (err) {
387
+ this.actor.crewChannel = undefined;
388
+ const e = err;
389
+ return `The crew channel chokes (${e.reason ?? e.message ?? 'dead air'}) -- try again.`;
390
+ }
391
+ }
364
392
  hasCommlink(actor) {
365
393
  const inInventory = actor.inventory.getAllItems().some(item => item.category === Category.Commlink);
366
394
  return inInventory || this.hasEquippedCommlink(actor);
@@ -390,9 +418,9 @@ export class CallCommand extends Command {
390
418
  const candidates = [...inScene, ...remote];
391
419
  const names = candidates.map(a => a.name);
392
420
  for (let i = words.length; i >= 1; i--) {
393
- const picked = fuzzyPickName(words.slice(0, i).join(' '), names);
421
+ const picked = fuzzyPickNameDetailed(words.slice(0, i).join(' '), names);
394
422
  if (picked) {
395
- return { target: candidates.find(a => a.name === picked), remainingWords: words.slice(i) };
423
+ return { target: candidates.find(a => a.name === picked.name), remainingWords: words.slice(i), tier: picked.tier };
396
424
  }
397
425
  }
398
426
  return { target: undefined, remainingWords: [] };
@@ -1 +1 @@
1
- {"version":3,"file":"call.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/call.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"call.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/call.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,15 @@ export class EndCallCommand extends Command {
7
7
  async execute() {
8
8
  const partner = this.actor.activeCallPartner;
9
9
  if (!partner) {
10
+ // The CREW CHANNEL (M4.5.1) hangs up the same way -- the remote
11
+ // player just stops receiving pages; no far-side actor to unlink.
12
+ const channel = this.actor.crewChannel;
13
+ if (channel) {
14
+ this.actor.crewChannel = undefined;
15
+ this.actor.performAction('ends call', channel.playerName);
16
+ this.scene.updateStatus();
17
+ return `{${CALL_COLOR}-fg}${CALL_ICON} You close the crew channel to ${channel.playerName}.{/${CALL_COLOR}-fg}`;
18
+ }
10
19
  return `You're not on a call.`;
11
20
  }
12
21
  this.actor.activeCallPartner = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"end-call.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/end-call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,OAAO,cAAe,SAAQ,OAAO;IAC/B,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,MAAM,CAAC,WAAW,GAAG,qCAAqC,CAAC;IAErE,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACzC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAEtC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,uBAAuB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;QAE5E,oEAAoE;QACpE,wEAAwE;QACxE,sEAAsE;QACtE,mEAAmE;QACnE,gEAAgE;QAChE,IAAI,IAAI,CAAC,KAAK,YAAY,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,iBAAiB,EAAE,UAAU,CAAC,CAAC;QACzF,CAAC;QAED,oEAAoE;QACpE,oEAAoE;QACpE,iEAAiE;QACjE,4BAA4B;QAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAE1B,OAAO,IAAI,UAAU,OAAO,SAAS,0BAA0B,OAAO,CAAC,IAAI,MAAM,UAAU,MAAM,CAAC;IACpG,CAAC"}
1
+ {"version":3,"file":"end-call.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/end-call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,OAAO,cAAe,SAAQ,OAAO;IAC/B,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,MAAM,CAAC,WAAW,GAAG,qCAAqC,CAAC;IAErE,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,gEAAgE;YAChE,kEAAkE;YAClE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YACvC,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC1D,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC1B,OAAO,IAAI,UAAU,OAAO,SAAS,kCAAkC,OAAO,CAAC,UAAU,MAAM,UAAU,MAAM,CAAC;YAClH,CAAC;YACD,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACzC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAEtC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,uBAAuB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;QAE5E,oEAAoE;QACpE,wEAAwE;QACxE,sEAAsE;QACtE,mEAAmE;QACnE,gEAAgE;QAChE,IAAI,IAAI,CAAC,KAAK,YAAY,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,iBAAiB,EAAE,UAAU,CAAC,CAAC;QACzF,CAAC;QAED,oEAAoE;QACpE,oEAAoE;QACpE,iEAAiE;QACjE,4BAA4B;QAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAE1B,OAAO,IAAI,UAAU,OAAO,SAAS,0BAA0B,OAAO,CAAC,IAAI,MAAM,UAAU,MAAM,CAAC;IACpG,CAAC"}
@@ -12,7 +12,7 @@ import { authToken } from '../utilities/cloud-saves.js';
12
12
  */
13
13
  export class PlayersCommand extends Command {
14
14
  static verb = 'players';
15
- static description = 'Real runners on the street (via maka-cli.com), by street name. Online means their commlink is live -- unequip it or run silent and you vanish. "crew invite <runner>" offers a seat; "call <runner> <message>" pages them.';
15
+ static description = 'Real runners on the street (via maka-cli.com), by street name. Online means their commlink is live -- unequip it or run silent and you vanish. "crew invite <runner>" offers a seat; "call <runner>" rings them on the crew channel (then "say" talks).';
16
16
  async execute(_args = []) {
17
17
  const game = this.game;
18
18
  if (!game?.hasHub) {
@@ -48,7 +48,7 @@ export class PlayersCommand extends Command {
48
48
  lines.push(` ${p.playerName.padEnd(18)} ${(p.archetypeName ?? '?').padEnd(16)} ${String(p.karma).padStart(5)} ${status}`);
49
49
  }
50
50
  }
51
- const footer = hint(`"crew invite <runner>" offers a FRIEND a seat at your table (they accept from their own terminal); "hire <runner>" signs a hireable one as an AI-driven GHOST; "call <runner> <message>" pages them on the crew channel.`);
51
+ const footer = hint(`"crew invite <runner>" offers a FRIEND a seat at your table (they accept from their own terminal); "hire <runner>" signs a hireable one as an AI-driven GHOST; "call <runner>" rings them on the crew channel -- then "say" talks, "end-call" hangs up.`);
52
52
  if (footer)
53
53
  lines.push('', footer);
54
54
  return lines.join('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"players.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/players.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"players.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/players.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD;;;;;;;GAOG;AACH,MAAM,OAAO,cAAe,SAAQ,OAAO;IAC/B,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,MAAM,CAAC,WAAW,GAAG,yPAAyP,CAAC;IAEzR,KAAK,CAAC,OAAO,CAAC,QAAkB,EAAE;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAClB,OAAO,wEAAwE,CAAC;QAClF,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACjB,OAAO,0EAA0E,CAAC;QACpF,CAAC;QACD,iEAAiE;QACjE,+DAA+D;QAC/D,6DAA6D;QAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;QACrC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,mEAAmE,CAAC;QAC7E,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAC1F,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI;YACtB,CAAC,CAAC,MAAM;gBACN,CAAC,CAAC,qDAAqD,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG;gBACzE,CAAC,CAAC,0BAA0B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,sBAAsB,6BAA6B;YACxI,CAAC,CAAC,IAAI,KAAK,YAAY;gBACrB,CAAC,CAAC,oEAAoE;gBACtE,CAAC,CAAC,2EAA2E,CAAC,CAAC;QACnF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;YAC/E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACvF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;YAC9H,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,yPAAyP,CAAC,CAAC;QAC/Q,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC"}
@@ -27,9 +27,9 @@ export class SayCommand extends Command {
27
27
  // this.actor is *not* an instance of NPC. While on a call, tag this
28
28
  // the same way as call.ts's own confirmation, so a conversation over
29
29
  // comms visually reads as a different "space" than in-person speech.
30
- const inCall = !!currentPlayer.activeCallPartner;
30
+ const inCall = !!currentPlayer.activeCallPartner || !!currentPlayer.crewChannel;
31
31
  const prefix = inCall ? `${CALL_ICON} ` : '';
32
- this.logger.logWithColor(`${prefix}${message}`, inCall ? CALL_COLOR : 'yellow');
32
+ this.logger.logWithColor(`${prefix}${message}`, inCall ? CALL_COLOR : 'yellow', { actor: currentPlayer.name });
33
33
  }
34
34
  // "say" and "call" are deliberately similar -- once a call connects
35
35
  // (see call.ts), the two ends keep talking with the same "say" command
@@ -72,6 +72,41 @@ export class SayCommand extends Command {
72
72
  this.logger.logWithColor(sealed, 'green');
73
73
  }
74
74
  }
75
+ else if (currentPlayer.crewChannel) {
76
+ // ON THE CREW CHANNEL (M4.5.1): the partner is a REAL player who
77
+ // isn't in this scene -- the words go out as a page over the
78
+ // street transport instead of an in-scene hear. Fire-and-forget
79
+ // like partner delivery: the send is a network round trip and the
80
+ // local echo already printed above.
81
+ const channel = currentPlayer.crewChannel;
82
+ void this.game?.streetTransport().then(async (transport) => {
83
+ if (!transport) {
84
+ this.logger.logWithColor(`The crew channel is dead air -- your words go nowhere.`, 'yellow', { actor: currentPlayer.name });
85
+ return;
86
+ }
87
+ try {
88
+ const res = await transport.send({ from: currentPlayer.name, handle: channel.handle, text: message });
89
+ if (!res.online) {
90
+ this.logger.logWithColor(`(${res.toRunner} is off the street -- it'll be waiting on their link.)`, 'yellow', { actor: currentPlayer.name });
91
+ }
92
+ }
93
+ catch (err) {
94
+ const e = err;
95
+ this.logger.logWithColor(`The crew channel chokes (${e.reason ?? e.message ?? 'dead air'}).`, 'yellow', { actor: currentPlayer.name });
96
+ }
97
+ this.game?.screenRender?.();
98
+ }).catch(() => undefined);
99
+ // Bystanders overhear one side of the call, same as an in-scene
100
+ // call (see the partner branch above).
101
+ const overheard = `${message} [System note: ${currentPlayer.name} is speaking into their commlink -- you're overhearing ONE SIDE of someone else's call, not being addressed. It's not your conversation: stay silent unless what you overheard genuinely concerns you.]`;
102
+ for (const bystander of currentPlayer.currentLocation.getActors()) {
103
+ if (bystander === currentPlayer)
104
+ continue;
105
+ void Promise.resolve(bystander.hear(currentPlayer, overheard, { broadcast: true })).catch(err => {
106
+ this.logger.error(`${bystander.name} failed to overhear the call: ${err}`);
107
+ });
108
+ }
109
+ }
75
110
  else {
76
111
  // Not on a call: ordinary room speech, addressed to the room.
77
112
  currentPlayer.currentLocation.say(currentPlayer, message);
@@ -1 +1 @@
1
- {"version":3,"file":"say.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/say.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"say.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/say.ts"],"names":[],"mappings":"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"}
@@ -375,6 +375,44 @@ export default class Game {
375
375
  remoteSession?: {
376
376
  command(input: string): Promise<string | null>;
377
377
  };
378
+ /**
379
+ * THE STREET TRANSPORT (M4.5.1): how this engine reaches real players
380
+ * OUTSIDE the scene -- the crew-channel page rails behind call.ts and
381
+ * say.ts. Unset on the CLI (streetTransport() lazily wires the
382
+ * HubLink/REST default -- those modules must never enter the server's
383
+ * import graph); the server session-manager sets both hooks to talk
384
+ * to GameSocialPresence/GamePlayerPages directly, so paging works
385
+ * from inside a shared run too. `from` names the SENDING actor --
386
+ * multi-human server scenes resolve it to the right account.
387
+ */
388
+ listStreetPlayers?: (from: string) => Promise<{
389
+ playerName: string;
390
+ handle: string;
391
+ }[]>;
392
+ sendPage?: (opts: {
393
+ from: string;
394
+ handle: string;
395
+ text: string;
396
+ }) => Promise<{
397
+ online: boolean;
398
+ toRunner: string;
399
+ }>;
400
+ /** The transport, hooks-first, CLI default second; undefined =
401
+ * offline/logged out/classic mode (callers degrade quietly). */
402
+ streetTransport(): Promise<{
403
+ list: (from: string) => Promise<{
404
+ playerName: string;
405
+ handle: string;
406
+ }[]>;
407
+ send: (opts: {
408
+ from: string;
409
+ handle: string;
410
+ text: string;
411
+ }) => Promise<{
412
+ online: boolean;
413
+ toRunner: string;
414
+ }>;
415
+ } | undefined>;
378
416
  /** Trash the offer wholesale ("decline", and any future fixer snub). */
379
417
  clearPendingRun(): void;
380
418
  get pendingRun(): ISceneSeedJson | undefined;
@@ -1190,6 +1190,39 @@ export default class Game {
1190
1190
  * utilities/shared-run.ts.
1191
1191
  */
1192
1192
  remoteSession;
1193
+ /**
1194
+ * THE STREET TRANSPORT (M4.5.1): how this engine reaches real players
1195
+ * OUTSIDE the scene -- the crew-channel page rails behind call.ts and
1196
+ * say.ts. Unset on the CLI (streetTransport() lazily wires the
1197
+ * HubLink/REST default -- those modules must never enter the server's
1198
+ * import graph); the server session-manager sets both hooks to talk
1199
+ * to GameSocialPresence/GamePlayerPages directly, so paging works
1200
+ * from inside a shared run too. `from` names the SENDING actor --
1201
+ * multi-human server scenes resolve it to the right account.
1202
+ */
1203
+ listStreetPlayers;
1204
+ sendPage;
1205
+ /** The transport, hooks-first, CLI default second; undefined =
1206
+ * offline/logged out/classic mode (callers degrade quietly). */
1207
+ async streetTransport() {
1208
+ if (this.listStreetPlayers && this.sendPage) {
1209
+ return { list: this.listStreetPlayers, send: this.sendPage };
1210
+ }
1211
+ if (!this.hasHub)
1212
+ return undefined; // classic mode: no street
1213
+ const { authToken } = await import('./utilities/cloud-saves.js');
1214
+ if (!authToken())
1215
+ return undefined;
1216
+ const { fetchPlayers } = await import('./utilities/social.js');
1217
+ const sr = await import('./utilities/shared-run.js');
1218
+ return {
1219
+ list: async () => {
1220
+ const players = await fetchPlayers().catch(() => undefined);
1221
+ return (players ?? []).map(p => ({ playerName: p.playerName, handle: p.handle }));
1222
+ },
1223
+ send: ({ handle, text }) => sr.HubLink.call('sideQuest.page', { handle, text }),
1224
+ };
1225
+ }
1193
1226
  /** Trash the offer wholesale ("decline", and any future fixer snub). */
1194
1227
  clearPendingRun() {
1195
1228
  if (this.pendingSharedRun) {
@@ -2826,6 +2859,9 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
2826
2859
  if (player.activeCallPartner) {
2827
2860
  lines.push(`{${CALL_COLOR}-fg}${CALL_ICON} On a call with ${player.activeCallPartner.name}{/${CALL_COLOR}-fg}`);
2828
2861
  }
2862
+ if (player.crewChannel) {
2863
+ lines.push(`{${CALL_COLOR}-fg}${CALL_ICON} Crew channel open to ${player.crewChannel.playerName}${hint(' -- "say" talks, "end-call" hangs up')}{/${CALL_COLOR}-fg}`);
2864
+ }
2829
2865
  // The party: one line per live companion shell, with the tracks that
2830
2866
  // matter for its kind. A spirit shows its BODY too (it's a full
2831
2867
  // Force-statted combatant and hits land on it -- player request: