@maka/maka-cli 5.12.0 → 5.14.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 (153) hide show
  1. package/bundle/typescript/package.json +2 -1
  2. package/bundle/typescript/src/commands/aws/ci.sub.cmd.js +1 -0
  3. package/bundle/typescript/src/commands/aws/ci.sub.cmd.js.map +1 -1
  4. package/bundle/typescript/src/commands/build/build.js +13 -37
  5. package/bundle/typescript/src/commands/build/build.js.map +1 -1
  6. package/bundle/typescript/src/commands/create.js +13 -28
  7. package/bundle/typescript/src/commands/create.js.map +1 -1
  8. package/bundle/typescript/src/commands/deploy/_index.d.ts +1 -0
  9. package/bundle/typescript/src/commands/deploy/_index.js +1 -0
  10. package/bundle/typescript/src/commands/deploy/_index.js.map +1 -1
  11. package/bundle/typescript/src/commands/deploy/deploy.command.js +1 -0
  12. package/bundle/typescript/src/commands/deploy/deploy.command.js.map +1 -1
  13. package/bundle/typescript/src/commands/deploy/github.sub.cmd.d.ts +1 -0
  14. package/bundle/typescript/src/commands/deploy/github.sub.cmd.js +147 -0
  15. package/bundle/typescript/src/commands/deploy/github.sub.cmd.js.map +1 -0
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +2 -2
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -1
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js +5 -5
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js.map +1 -1
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +1 -1
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +48 -37
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +14 -14
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/catalog.js +25 -1
  27. package/bundle/typescript/src/commands/game/sideQuest/commands/catalog.js.map +1 -1
  28. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js +6 -2
  29. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js.map +1 -1
  30. package/bundle/typescript/src/commands/game/sideQuest/commands/crew.d.ts +43 -0
  31. package/bundle/typescript/src/commands/game/sideQuest/commands/crew.js +259 -0
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/crew.js.map +1 -0
  33. package/bundle/typescript/src/commands/game/sideQuest/commands/end-call.js +6 -1
  34. package/bundle/typescript/src/commands/game/sideQuest/commands/end-call.js.map +1 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/commands/give.js +15 -2
  36. package/bundle/typescript/src/commands/game/sideQuest/commands/give.js.map +1 -1
  37. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +8 -6
  38. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  39. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js +3 -3
  40. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js.map +1 -1
  41. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +3 -3
  42. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  43. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.d.ts +5 -4
  44. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +45 -27
  45. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -1
  46. package/bundle/typescript/src/commands/game/sideQuest/commands/job-offer.js +12 -7
  47. package/bundle/typescript/src/commands/game/sideQuest/commands/job-offer.js.map +1 -1
  48. package/bundle/typescript/src/commands/game/sideQuest/commands/lead.d.ts +5 -4
  49. package/bundle/typescript/src/commands/game/sideQuest/commands/lead.js +31 -17
  50. package/bundle/typescript/src/commands/game/sideQuest/commands/lead.js.map +1 -1
  51. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +1 -1
  52. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  53. package/bundle/typescript/src/commands/game/sideQuest/commands/order.js +21 -10
  54. package/bundle/typescript/src/commands/game/sideQuest/commands/order.js.map +1 -1
  55. package/bundle/typescript/src/commands/game/sideQuest/commands/palm.js +1 -1
  56. package/bundle/typescript/src/commands/game/sideQuest/commands/palm.js.map +1 -1
  57. package/bundle/typescript/src/commands/game/sideQuest/commands/perform.js +1 -1
  58. package/bundle/typescript/src/commands/game/sideQuest/commands/perform.js.map +1 -1
  59. package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js +1 -1
  60. package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js.map +1 -1
  61. package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.js +1 -1
  62. package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.js.map +1 -1
  63. package/bundle/typescript/src/commands/game/sideQuest/commands/reload.js +1 -1
  64. package/bundle/typescript/src/commands/game/sideQuest/commands/reload.js.map +1 -1
  65. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +1 -1
  66. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
  67. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js +21 -0
  68. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
  69. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +1 -1
  70. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
  71. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.d.ts +2 -1
  72. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +81 -3
  73. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
  74. package/bundle/typescript/src/commands/game/sideQuest/commands/source.js +1 -1
  75. package/bundle/typescript/src/commands/game/sideQuest/commands/source.js.map +1 -1
  76. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +3 -3
  77. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
  78. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js +4 -1
  79. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js.map +1 -1
  80. package/bundle/typescript/src/commands/game/sideQuest/commands/use.js +2 -0
  81. package/bundle/typescript/src/commands/game/sideQuest/commands/use.js.map +1 -1
  82. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +15 -2
  83. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +70 -35
  84. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
  85. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.d.ts +16 -5
  86. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js +36 -8
  87. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js.map +1 -1
  88. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +139 -4
  89. package/bundle/typescript/src/commands/game/sideQuest/game.js +591 -85
  90. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  91. package/bundle/typescript/src/commands/game/sideQuest/headless.d.ts +86 -0
  92. package/bundle/typescript/src/commands/game/sideQuest/headless.js +185 -0
  93. package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -0
  94. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +50 -4
  95. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
  96. package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +59 -11
  97. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +242 -109
  98. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
  99. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +11 -11
  100. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +22 -2
  101. package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.d.ts +8 -0
  102. package/bundle/typescript/src/commands/game/sideQuest/ui.js +7 -5
  103. package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
  104. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.d.ts +6 -4
  105. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js +36 -24
  106. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js.map +1 -1
  107. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +7 -1
  108. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +59 -18
  109. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  110. package/bundle/typescript/src/commands/game/sideQuest/utilities/command-queue.d.ts +19 -0
  111. package/bundle/typescript/src/commands/game/sideQuest/utilities/command-queue.js +56 -0
  112. package/bundle/typescript/src/commands/game/sideQuest/utilities/command-queue.js.map +1 -0
  113. package/bundle/typescript/src/commands/game/sideQuest/utilities/crew-ledger.d.ts +21 -0
  114. package/bundle/typescript/src/commands/game/sideQuest/utilities/crew-ledger.js +25 -0
  115. package/bundle/typescript/src/commands/game/sideQuest/utilities/crew-ledger.js.map +1 -0
  116. package/bundle/typescript/src/commands/game/sideQuest/utilities/emitter.d.ts +44 -0
  117. package/bundle/typescript/src/commands/game/sideQuest/utilities/emitter.js +22 -0
  118. package/bundle/typescript/src/commands/game/sideQuest/utilities/emitter.js.map +1 -0
  119. package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.d.ts +4 -1
  120. package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js +5 -2
  121. package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js.map +1 -1
  122. package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.d.ts +4 -0
  123. package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.js +24 -7
  124. package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.js.map +1 -1
  125. package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.d.ts +6 -5
  126. package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.js +30 -6
  127. package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.js.map +1 -1
  128. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-context.d.ts +28 -0
  129. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-context.js +9 -0
  130. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-context.js.map +1 -0
  131. package/bundle/typescript/src/commands/game/sideQuest/utilities/social.d.ts +50 -0
  132. package/bundle/typescript/src/commands/game/sideQuest/utilities/social.js +166 -0
  133. package/bundle/typescript/src/commands/game/sideQuest/utilities/social.js.map +1 -0
  134. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +1 -1
  135. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  136. package/bundle/typescript/src/commands/generate.js +7 -0
  137. package/bundle/typescript/src/commands/generate.js.map +1 -1
  138. package/bundle/typescript/src/commands/run/run.command.js +31 -31
  139. package/bundle/typescript/src/commands/run/run.command.js.map +1 -1
  140. package/bundle/typescript/src/templates/meteor/config/deploy.sh.template +73 -0
  141. package/bundle/typescript/src/templates/meteor/config/nginx.conf.template +31 -0
  142. package/bundle/typescript/src/templates/meteor/github/workflows/deploy.yaml +82 -0
  143. package/bundle/typescript/src/tools/mpi/mpi.class.d.ts +18 -0
  144. package/bundle/typescript/src/tools/mpi/mpi.class.js +276 -3
  145. package/bundle/typescript/src/tools/mpi/mpi.class.js.map +1 -1
  146. package/bundle/typescript/src/tools/mpi/sdk-runtime.d.ts +6 -0
  147. package/bundle/typescript/src/tools/mpi/sdk-runtime.js +64 -0
  148. package/bundle/typescript/src/tools/mpi/sdk-runtime.js.map +1 -0
  149. package/bundle/typescript/src/tools/pkg/pkg.class.js +89 -78
  150. package/bundle/typescript/src/tools/pkg/pkg.class.js.map +1 -1
  151. package/bundle/typescript/src/tools/scaffold/scaffold.class.js +23 -7
  152. package/bundle/typescript/src/tools/scaffold/scaffold.class.js.map +1 -1
  153. package/package.json +2 -1
@@ -1,11 +1,12 @@
1
1
  import { Widgets } from 'blessed';
2
+ import type { Scope } from './emitter.js';
2
3
  type BlessedColor = 'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'gray' | 'lightred' | 'lightgreen' | 'lightblue' | 'lightmagenta' | 'lightcyan' | 'lightgray';
3
4
  export declare class Logger {
4
5
  private static instance;
5
6
  private filePath;
6
7
  private transcriptPath;
7
8
  private screen?;
8
- private constructor();
9
+ protected constructor(filePath: string | null, screen?: Widgets.Screen);
9
10
  static getInstance(filePath?: string, screen?: Widgets.Screen): Logger;
10
11
  private ensureLogFileExists;
11
12
  /**
@@ -13,11 +14,11 @@ export declare class Logger {
13
14
  * short local-time prefix, render tags stripped. Everything the player
14
15
  * SEES belongs here; internals stay in write()/error() (game.log).
15
16
  */
16
- transcript(message: string): void;
17
+ transcript(message: string, _scope?: Scope): void;
17
18
  write(message: string): void;
18
19
  error(message: string): void;
19
- log(message: string): void;
20
- logWithColor(message: string, color?: BlessedColor): void;
20
+ log(message: string, _scope?: Scope): void;
21
+ logWithColor(message: string, color?: BlessedColor, scope?: Scope): void;
21
22
  /**
22
23
  * The MECHANICS ticker (readability pass): dice anatomy and resource
23
24
  * arithmetic split off the narrative into the small metaBox under the
@@ -26,7 +27,7 @@ export declare class Logger {
26
27
  * the mechanics lines). No metaBox on this screen (harness stubs,
27
28
  * pre-UI paths) is normal, not a fault -- fall back to the system log.
28
29
  */
29
- meta(message: string, color?: BlessedColor): void;
30
+ meta(message: string, color?: BlessedColor, _scope?: Scope): void;
30
31
  hasScreen(): boolean;
31
32
  }
32
33
  export {};
@@ -1,9 +1,13 @@
1
1
  import fs from 'fs';
2
2
  import os from 'os';
3
3
  import path from 'path';
4
+ import { currentSession } from './session-context.js';
4
5
  const homeDir = os.homedir();
5
6
  export class Logger {
6
7
  static instance;
8
+ // null = a file-less logger (headless session subclasses): every
9
+ // fs-touching method quietly no-ops instead of writing into whatever
10
+ // homedir the hosting process happens to have.
7
11
  filePath;
8
12
  // The play-by-play transcript (player request: split the log in two).
9
13
  // game.log keeps the system's [INFO]/[ERROR] internals; session.log
@@ -11,13 +15,21 @@ export class Logger {
11
15
  // what the game answered, what the log box showed.
12
16
  transcriptPath;
13
17
  screen; // Ensure this is defined
18
+ // Protected, not private (Phase C M2): headless sessions subclass this
19
+ // (EmitterLogger) to turn the same ~350 call sites into an event
20
+ // stream instead of widgets and files.
14
21
  constructor(filePath, screen) {
15
22
  this.filePath = filePath;
16
- this.transcriptPath = path.join(path.dirname(filePath), 'session.log');
23
+ this.transcriptPath = filePath === null ? null : path.join(path.dirname(filePath), 'session.log');
17
24
  this.screen = screen;
18
25
  this.ensureLogFileExists();
19
26
  }
20
27
  static getInstance(filePath = path.join(homeDir, '.maka', 'side-quest.log'), screen) {
28
+ // A headless session's context wins (see session-context.ts) -- the
29
+ // solo game never enters one, so its singleton path is untouched.
30
+ const ctx = currentSession();
31
+ if (ctx)
32
+ return ctx.logger;
21
33
  if (!Logger.instance) {
22
34
  if (!screen) {
23
35
  throw new Error("Screen must be provided when initializing the Logger for the first time.");
@@ -27,6 +39,8 @@ export class Logger {
27
39
  return Logger.instance;
28
40
  }
29
41
  ensureLogFileExists() {
42
+ if (this.filePath === null || this.transcriptPath === null)
43
+ return;
30
44
  const dirPath = path.dirname(this.filePath);
31
45
  // Check if directory exists
32
46
  if (!fs.existsSync(dirPath)) {
@@ -45,7 +59,9 @@ export class Logger {
45
59
  * short local-time prefix, render tags stripped. Everything the player
46
60
  * SEES belongs here; internals stay in write()/error() (game.log).
47
61
  */
48
- transcript(message) {
62
+ transcript(message, _scope) {
63
+ if (this.transcriptPath === null)
64
+ return;
49
65
  const t = new Date();
50
66
  const hh = String(t.getHours()).padStart(2, '0');
51
67
  const mm = String(t.getMinutes()).padStart(2, '0');
@@ -54,17 +70,25 @@ export class Logger {
54
70
  fs.appendFileSync(this.transcriptPath, `[${hh}:${mm}:${ss}] ${stripped}\n`);
55
71
  }
56
72
  write(message) {
73
+ if (this.filePath === null)
74
+ return;
57
75
  const timestamp = new Date().toISOString();
58
76
  const logMessage = `[INFO] [${timestamp}] ${message}\n`;
59
77
  fs.appendFileSync(this.filePath, logMessage);
60
78
  }
61
79
  // Writes an error log message
62
80
  error(message) {
81
+ if (this.filePath === null)
82
+ return;
63
83
  const timestamp = new Date().toISOString();
64
84
  const errorMessage = `[ERROR] [${timestamp}] ${message}\n`;
65
85
  fs.appendFileSync(this.filePath, errorMessage);
66
86
  }
67
- log(message) {
87
+ // The optional `scope` on log/logWithColor/meta is inert here -- the
88
+ // solo screen shows the local player everything its callers already
89
+ // gated for. A headless session's EmitterLogger reads it (or applies
90
+ // the ambient dispatch default) to stamp per-player visibility.
91
+ log(message, _scope) {
68
92
  const logBox = this.screen?.children.find(child => child.type === 'box' && child.options.id === 'logBox');
69
93
  if (logBox) {
70
94
  logBox.insertBottom(message); // Supports color tags
@@ -82,9 +106,9 @@ export class Logger {
82
106
  // not the system log (player request: two files).
83
107
  this.transcript(message);
84
108
  }
85
- logWithColor(message, color = 'white') {
109
+ logWithColor(message, color = 'white', scope) {
86
110
  const coloredMessage = `{${color}-fg}${message}{/${color}-fg}`;
87
- this.log(coloredMessage);
111
+ this.log(coloredMessage, scope);
88
112
  }
89
113
  /**
90
114
  * The MECHANICS ticker (readability pass): dice anatomy and resource
@@ -94,7 +118,7 @@ export class Logger {
94
118
  * the mechanics lines). No metaBox on this screen (harness stubs,
95
119
  * pre-UI paths) is normal, not a fault -- fall back to the system log.
96
120
  */
97
- meta(message, color) {
121
+ meta(message, color, _scope) {
98
122
  this.transcript(` · ${message}`);
99
123
  const metaBox = this.screen?.children.find(child => child.type === 'box' && child.options.id === 'metaBox');
100
124
  if (!metaBox) {
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { Logger } from './logger.js';
2
+ /**
3
+ * PER-SESSION CONTEXT (Phase C M2): the engine's one process-global that
4
+ * genuinely blocks multi-session hosting is the Logger singleton --
5
+ * ~350 call sites reach for Logger.getInstance() bare. Rather than
6
+ * threading a logger through every constructor, a headless session runs
7
+ * its work inside this AsyncLocalStorage context and getInstance()
8
+ * resolves to the SESSION's logger first, falling back to the classic
9
+ * singleton (the solo game never enters a context, so its path is
10
+ * untouched).
11
+ *
12
+ * ALS is the mechanism because it propagates automatically through
13
+ * promises, timers scheduled inside the context, and the fire-and-forget
14
+ * NPC hear/see chains -- zero call-site edits.
15
+ *
16
+ * `dispatch` names the human player whose command is currently
17
+ * executing -- the ambient default for event scoping (see emitter.ts):
18
+ * their log lines default to their room, their dice to their eyes only.
19
+ */
20
+ export interface SessionContext {
21
+ sessionId: string;
22
+ logger: Logger;
23
+ dispatch?: {
24
+ actorName: string;
25
+ };
26
+ }
27
+ export declare function currentSession(): SessionContext | undefined;
28
+ export declare function runInSession<T>(ctx: SessionContext, fn: () => T): T;
@@ -0,0 +1,9 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ const sessionAls = new AsyncLocalStorage();
3
+ export function currentSession() {
4
+ return sessionAls.getStore();
5
+ }
6
+ export function runInSession(ctx, fn) {
7
+ return sessionAls.run(ctx, fn);
8
+ }
9
+ //# sourceMappingURL=session-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-context.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/session-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AA2BrD,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAkB,CAAC;AAE3D,MAAM,UAAU,cAAc;IAC5B,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,GAAmB,EAAE,EAAW;IAC9D,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,50 @@
1
+ export declare function ghostHireable(): boolean;
2
+ export declare function setGhostHireable(on: boolean): void;
3
+ export interface IPresencePayload {
4
+ playerName: string;
5
+ slug: string;
6
+ hubName?: string;
7
+ ghostHireable: boolean;
8
+ summary: {
9
+ archetypeName?: string;
10
+ karma: number;
11
+ streetCred?: number;
12
+ };
13
+ }
14
+ /** Fire-and-forget hub heartbeat. Silent on every failure mode. */
15
+ export declare function heartbeatPresence(payload: IPresencePayload): Promise<void>;
16
+ export interface IStreetPlayer {
17
+ handle: string;
18
+ playerName: string;
19
+ slug: string;
20
+ archetypeName?: string;
21
+ karma: number;
22
+ streetCred: number;
23
+ online: boolean;
24
+ ghostHireable: boolean;
25
+ }
26
+ export declare function fetchPlayers(): Promise<IStreetPlayer[] | undefined>;
27
+ export interface IGhostSheet {
28
+ playerName: string;
29
+ slug: string;
30
+ owner: string;
31
+ archetypeName?: string;
32
+ attributes: Record<string, unknown>;
33
+ skills: Record<string, number>;
34
+ gear: Record<string, unknown>[];
35
+ karma: number;
36
+ }
37
+ export declare function fetchGhost(owner: string, slug: string): Promise<IGhostSheet | undefined>;
38
+ /** Push unsynced ghost earnings up; mark rows synced on acceptance.
39
+ * Fire-and-forget from homecoming/session start. */
40
+ export declare function syncCrewLedger(): Promise<void>;
41
+ /** Claim what YOUR runner earned riding in other players' crews.
42
+ * Returns the settled total + lines, or undefined when nothing/offline. */
43
+ export declare function claimGhostEarnings(slug: string): Promise<{
44
+ total: number;
45
+ entries: {
46
+ amount: number;
47
+ job: string;
48
+ hiredBy: string;
49
+ }[];
50
+ } | undefined>;
@@ -0,0 +1,166 @@
1
+ import * as http from 'http';
2
+ import * as https from 'https';
3
+ import { Logger } from './logger.js';
4
+ import { authToken } from './cloud-saves.js';
5
+ import { readCrewLedger } from './crew-ledger.js';
6
+ import * as fs from 'fs';
7
+ import * as os from 'os';
8
+ import * as path from 'path';
9
+ /**
10
+ * THE SOCIAL LAYER, CLI side (party system Phase B): presence
11
+ * heartbeats while at the hub, the street's player list, ghost-sheet
12
+ * fetches (hire another player's runner as an AI-driven crew member),
13
+ * and the earnings ledger sync that routes a ghost's cut home. Same
14
+ * transport school as cloud-saves.ts: own http/https (the shared HTTPS
15
+ * tool is 443-only), MAKA_DEV env switch, x-auth-token, short timeouts,
16
+ * and everything degrades to a silent no-op when logged out or offline
17
+ * -- the street never stops working because the grid hiccuped.
18
+ */
19
+ const DEV = process.env.MAKA_DEV === 'True';
20
+ const HOSTNAME = DEV ? 'localhost' : 'www.maka-cli.com';
21
+ const PORT = DEV ? Number(process.env.MAKA_DEV_PORT ?? 3000) : 443;
22
+ const API_BASE = 'api/v1/game-social';
23
+ const TIMEOUT_MS = 8000;
24
+ function request(method, apiPath, token, body) {
25
+ return new Promise((resolve, reject) => {
26
+ const payload = body === undefined ? undefined : JSON.stringify(body);
27
+ const mod = DEV ? http : https;
28
+ const req = mod.request({
29
+ hostname: HOSTNAME,
30
+ port: PORT,
31
+ path: apiPath,
32
+ method,
33
+ timeout: TIMEOUT_MS,
34
+ headers: {
35
+ 'x-auth-token': token,
36
+ ...(payload !== undefined
37
+ ? { 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(payload) }
38
+ : {}),
39
+ },
40
+ }, res => {
41
+ let data = '';
42
+ res.on('data', chunk => { data += chunk; });
43
+ res.on('end', () => resolve({ statusCode: res.statusCode ?? 0, data }));
44
+ });
45
+ req.on('timeout', () => req.destroy(new Error('Request timeout')));
46
+ req.on('error', reject);
47
+ if (payload !== undefined)
48
+ req.write(payload);
49
+ req.end();
50
+ });
51
+ }
52
+ function parseData(raw) {
53
+ try {
54
+ const parsed = JSON.parse(raw);
55
+ return (parsed?.data ?? parsed);
56
+ }
57
+ catch {
58
+ return undefined;
59
+ }
60
+ }
61
+ // ---- The "hireable while away" opt-in (global-config, hints.ts school) ----
62
+ const GLOBAL_CONFIG_PATH = path.join(os.homedir(), '.meteor', '.maka', 'global-config.json');
63
+ export function ghostHireable() {
64
+ try {
65
+ const cfg = JSON.parse(fs.readFileSync(GLOBAL_CONFIG_PATH, 'utf8'));
66
+ return cfg?.sideQuest?.ghostHireable === true;
67
+ }
68
+ catch {
69
+ return false;
70
+ }
71
+ }
72
+ export function setGhostHireable(on) {
73
+ try {
74
+ const cfg = JSON.parse(fs.readFileSync(GLOBAL_CONFIG_PATH, 'utf8'));
75
+ cfg.sideQuest = { ...(cfg.sideQuest ?? {}), ghostHireable: on };
76
+ fs.writeFileSync(GLOBAL_CONFIG_PATH, JSON.stringify(cfg, null, 2));
77
+ }
78
+ catch {
79
+ /* no config yet -- the flag only means anything when logged in */
80
+ }
81
+ }
82
+ /** Fire-and-forget hub heartbeat. Silent on every failure mode. */
83
+ export async function heartbeatPresence(payload) {
84
+ const token = authToken();
85
+ if (!token)
86
+ return;
87
+ try {
88
+ await request('POST', `/${API_BASE}/presence`, token, payload);
89
+ }
90
+ catch {
91
+ /* offline -- the street doesn't care */
92
+ }
93
+ }
94
+ export async function fetchPlayers() {
95
+ const token = authToken();
96
+ if (!token)
97
+ return undefined;
98
+ try {
99
+ const res = await request('GET', `/${API_BASE}/players`, token);
100
+ if (res.statusCode !== 200)
101
+ return undefined;
102
+ return parseData(res.data)?.players;
103
+ }
104
+ catch {
105
+ return undefined;
106
+ }
107
+ }
108
+ export async function fetchGhost(owner, slug) {
109
+ const token = authToken();
110
+ if (!token)
111
+ return undefined;
112
+ try {
113
+ const res = await request('GET', `/${API_BASE}/ghost/${encodeURIComponent(slug)}?owner=${encodeURIComponent(owner)}`, token);
114
+ if (res.statusCode !== 200)
115
+ return undefined;
116
+ return parseData(res.data)?.ghost;
117
+ }
118
+ catch {
119
+ return undefined;
120
+ }
121
+ }
122
+ // ---- Ledger sync ----
123
+ const LEDGER_PATH = path.join(os.homedir(), '.meteor', '.maka', 'side-quest-ledger.json');
124
+ /** Push unsynced ghost earnings up; mark rows synced on acceptance.
125
+ * Fire-and-forget from homecoming/session start. */
126
+ export async function syncCrewLedger() {
127
+ const token = authToken();
128
+ if (!token)
129
+ return;
130
+ const all = readCrewLedger();
131
+ const unsynced = all.filter(e => !e.synced);
132
+ if (unsynced.length === 0)
133
+ return;
134
+ try {
135
+ const res = await request('POST', `/${API_BASE}/ledger/credit`, token, {
136
+ entries: unsynced.map(e => ({ owner: e.owner, slug: e.slug, amount: e.amount, job: e.job, when: e.when, hiredBy: 'a fellow runner' })),
137
+ });
138
+ if (res.statusCode !== 200)
139
+ return;
140
+ for (const e of all)
141
+ e.synced = e.synced || unsynced.includes(e);
142
+ fs.writeFileSync(LEDGER_PATH, JSON.stringify(all, null, 2));
143
+ Logger.getInstance().write(`Crew ledger: synced ${unsynced.length} ghost earning(s) to maka-cli.com.`);
144
+ }
145
+ catch {
146
+ /* stays unsynced; next homecoming retries */
147
+ }
148
+ }
149
+ /** Claim what YOUR runner earned riding in other players' crews.
150
+ * Returns the settled total + lines, or undefined when nothing/offline. */
151
+ export async function claimGhostEarnings(slug) {
152
+ const token = authToken();
153
+ if (!token)
154
+ return undefined;
155
+ try {
156
+ const res = await request('POST', `/${API_BASE}/ledger/claim`, token, { slug });
157
+ if (res.statusCode !== 200)
158
+ return undefined;
159
+ const data = parseData(res.data);
160
+ return data && data.total > 0 ? data : undefined;
161
+ }
162
+ catch {
163
+ return undefined;
164
+ }
165
+ }
166
+ //# sourceMappingURL=social.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/social.ts"],"names":[],"mappings":"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"}
@@ -262,7 +262,7 @@ Command.create({
262
262
  combat: archetype.combat,
263
263
  });
264
264
  outfitArchetype(dossierPlayer, archetype);
265
- const generated = await SceneSeedGenerator.generate(logFilePath, 1, undefined, dossierPlayer);
265
+ const generated = await SceneSeedGenerator.generate(logFilePath, 1, dossierPlayer);
266
266
  if (generated) {
267
267
  spinner.success(`-- "${generated.name}" is ready.`);
268
268
  sideQuestAnswer = generated;
@@ -1 +1 @@
1
- {"version":3,"file":"sideQuest.sub.cmd.js","sourceRoot":"","sources":["../../../../../src/commands/game/sideQuest.sub.cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sideQuest.sub.cmd.js","sourceRoot":"","sources":["../../../../../src/commands/game/sideQuest.sub.cmd.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Command } from '../command.js';
2
2
  import MakaGen from '../generators/maka.gen.js';
3
3
  import { Log } from '../tools/log/log.class.js';
4
+ import { hardExit } from '../tools/mpi/sdk-runtime.js';
4
5
  Command.create({
5
6
  name: 'generate',
6
7
  aliases: ['g'],
@@ -33,6 +34,12 @@ Command.create({
33
34
  else {
34
35
  await MakaGen.invoke(args, opts);
35
36
  }
37
+ // Generators that install/remove meteor packages go through the SDK
38
+ // (pkg.class.ts), whose loadProject() leaves file watchers open that
39
+ // keep this process alive after all the work is done -- same hang
40
+ // create.ts already guards against with its own hardExit(0). Exit
41
+ // explicitly now that the generator has finished.
42
+ hardExit(0);
36
43
  }
37
44
  catch (e) {
38
45
  Log.error(e);
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAEhD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,KAAK,EAAE,uCAAuC;IAC9C,SAAS,EAAE,EAAE;IACb,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,KAAK;IAC3B,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,4CAA4C;IACvD,WAAW,EAAE;;GAEZ;IACD,QAAQ,EAAE;QACR,8BAA8B;QAC9B,uBAAuB;QACvB,iCAAiC;QACjC,6BAA6B;QAC7B,yBAAyB;QACzB,mBAAmB;QACnB,mCAAmC;KACpC;CACF,EAAE,KAAK,WAAW,IAAc,EAAE,IAA6B;IAC9D,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClB,iCAAiC;YACjC,MAAM,OAAO,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,KAAK,EAAE,uCAAuC;IAC9C,SAAS,EAAE,EAAE;IACb,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,KAAK;IAC3B,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,4CAA4C;IACvD,WAAW,EAAE;;GAEZ;IACD,QAAQ,EAAE;QACR,8BAA8B;QAC9B,uBAAuB;QACvB,iCAAiC;QACjC,6BAA6B;QAC7B,yBAAyB;QACzB,mBAAmB;QACnB,mCAAmC;KACpC;CACF,EAAE,KAAK,WAAW,IAAc,EAAE,IAA6B;IAC9D,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClB,iCAAiC;YACjC,MAAM,OAAO,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,oEAAoE;QACpE,qEAAqE;QACrE,kEAAkE;QAClE,kEAAkE;QAClE,kDAAkD;QAClD,QAAQ,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import path from 'path';
2
+ import fs from 'fs';
2
3
  import { rimraf } from 'rimraf';
3
- import { execSync } from 'child_process';
4
4
  import MakaGen from '../../generators/maka.gen.js';
5
5
  import { Command } from '../../command.js';
6
6
  import { Log } from '../../tools/log/log.class.js';
@@ -97,15 +97,6 @@ const Run = Command.create({
97
97
  ],
98
98
  }, async function (args, opts) {
99
99
  try {
100
- if (this.mpi.isMeteorInstalled()) {
101
- Log.notice('Meteor is installed.');
102
- }
103
- else {
104
- Log.notice('Meteor is not installed or cannot be found in your path. Installing...');
105
- execSync('maka install --force', { stdio: 'inherit' });
106
- }
107
- // Check for meteor package requirements
108
- await this.pkg.checkMeteorPackage('autoupdate', { shouldInstall: true });
109
100
  await this.pkg.ensureAllDependenciesInstalled();
110
101
  // Invoke the specified generator
111
102
  const command = args[0];
@@ -120,6 +111,21 @@ const Run = Command.create({
120
111
  if (opts['mobileServer'] && typeof opts['mobileServer'] === 'boolean') {
121
112
  throw new Error('Please provide a URL where your mobile app should connect to your server (e.g., -m | --mobile-server=https://example-server.com)');
122
113
  }
114
+ // Flags with no equivalent in sdk.createAppRunner() (port, mongoUrl,
115
+ // once, settingsFile, buildOptions only) -- warn rather than silently
116
+ // drop them now that run no longer shells out to a real meteor binary.
117
+ const unsupportedFlags = [
118
+ [opts.inspect, '--inspect'],
119
+ [opts['mobileServer'], '--mobile-server'],
120
+ [opts['excludeArchs'], '--exclude-archs'],
121
+ [opts['extraPackages'], '--extra-packages'],
122
+ [opts['rawLogs'], '--raw-logs'],
123
+ ];
124
+ for (const [value, flag] of unsupportedFlags) {
125
+ if (value) {
126
+ Log.warn(`${flag} isn't supported by maka run yet and will be ignored.`);
127
+ }
128
+ }
123
129
  // always ensure local exists
124
130
  const localExists = this.cfg.checkConfigExists('local');
125
131
  if (!localExists) {
@@ -150,14 +156,12 @@ const Run = Command.create({
150
156
  Log.info('Cannot find Node Environment file, creating: ' + relativeDotEnvPath);
151
157
  await this.fsi.createFile({ filePath: processDotEnvPath, data: '' });
152
158
  }
159
+ let resolvedSettingsPath;
153
160
  if (this.fsi.isFile(settingsPath)) {
154
161
  // Use path.relative to compute the relative path
155
162
  const relativeSettingsPath = path.relative(process.cwd(), settingsPath);
156
163
  Log.notice('Meteor Settings: ' + relativeSettingsPath);
157
- args = args.concat([
158
- '--settings',
159
- settingsPath
160
- ]);
164
+ resolvedSettingsPath = settingsPath;
161
165
  }
162
166
  else {
163
167
  const relativeSettingsPath = path.relative(process.cwd(), settingsPath);
@@ -165,24 +169,20 @@ const Run = Command.create({
165
169
  }
166
170
  const splitPath = configPath.split(path.sep);
167
171
  const envKey = splitPath[splitPath.length - 1];
168
- if (envKey === 'production') {
169
- args.push('--production');
170
- }
171
- // remove run and any platforms
172
- const processArgv = process.argv.slice(2)
173
- .filter(value => value !== 'run')
174
- .filter(value => value !== args[0]);
175
- processArgv.forEach((arg, idx) => {
176
- if (arg === '--env') {
177
- processArgv.splice(idx, 2);
178
- }
179
- if (arg === '-e') {
180
- processArgv.splice(idx, 2);
181
- }
182
- });
183
- await this.mpi.invokeMeteorCommand('run', args.concat(processArgv), {
172
+ const port = await this.fsi.getAvailablePort(opts.port ? parseInt(String(opts.port), 10) : 3000);
173
+ const appDir = this.fsi.findAppDirectory();
174
+ // See build.ts's matching comment: use the app's raw .meteor/release
175
+ // content, not fsi.getProjectMeteorVersion()'s semver-padded value.
176
+ const release = fs.readFileSync(path.join(appDir, '.meteor', 'release'), 'utf8').trim();
177
+ await this.mpi.runViaSdk({
178
+ appDir,
179
+ port,
180
+ release,
181
+ settingsPath: resolvedSettingsPath,
182
+ production: envKey === 'production',
184
183
  enableLogging: !opts.noLog && !opts['no-log'],
185
- env: env
184
+ env,
185
+ mongoUrl: process.env.MONGO_URL,
186
186
  });
187
187
  }
188
188
  catch (e) {