@maka/maka-cli 5.63.1 → 5.65.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 (205) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/commands/ar.js +29 -8
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/ar.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.d.ts +42 -0
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +86 -3
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -1
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.d.ts +29 -2
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +151 -1
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js.map +1 -1
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.d.ts +40 -13
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +107 -25
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/breach.d.ts +11 -15
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js +13 -16
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js.map +1 -1
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.d.ts +8 -0
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js +30 -2
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js.map +1 -1
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.d.ts +40 -49
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +121 -160
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +29 -5
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.d.ts +7 -8
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +13 -13
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
  27. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js +22 -1
  28. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js.map +1 -1
  29. package/bundle/typescript/src/commands/game/sideQuest/commands/cover.d.ts +30 -0
  30. package/bundle/typescript/src/commands/game/sideQuest/commands/cover.js +65 -0
  31. package/bundle/typescript/src/commands/game/sideQuest/commands/cover.js.map +1 -0
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.d.ts +1 -1
  33. package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.js +2 -2
  34. package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.js.map +1 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +25 -3
  36. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  37. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.d.ts +2 -3
  38. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +2 -2
  39. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/commands/jobs.js +18 -10
  41. package/bundle/typescript/src/commands/game/sideQuest/commands/jobs.js.map +1 -1
  42. package/bundle/typescript/src/commands/game/sideQuest/commands/journal.d.ts +44 -0
  43. package/bundle/typescript/src/commands/game/sideQuest/commands/journal.js +136 -0
  44. package/bundle/typescript/src/commands/game/sideQuest/commands/journal.js.map +1 -0
  45. package/bundle/typescript/src/commands/game/sideQuest/commands/look.d.ts +20 -0
  46. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +157 -5
  47. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  48. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +18 -4
  49. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
  50. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +1 -1
  51. package/bundle/typescript/src/commands/game/sideQuest/commands/pick.d.ts +2 -3
  52. package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js +2 -2
  53. package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js.map +1 -1
  54. package/bundle/typescript/src/commands/game/sideQuest/commands/players.js +8 -2
  55. package/bundle/typescript/src/commands/game/sideQuest/commands/players.js.map +1 -1
  56. package/bundle/typescript/src/commands/game/sideQuest/commands/posture.d.ts +45 -0
  57. package/bundle/typescript/src/commands/game/sideQuest/commands/posture.js +115 -0
  58. package/bundle/typescript/src/commands/game/sideQuest/commands/posture.js.map +1 -0
  59. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +46 -12
  60. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
  61. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +30 -1
  62. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
  63. package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js +11 -1
  64. package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js.map +1 -1
  65. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +12 -0
  66. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
  67. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.d.ts +47 -0
  68. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js +91 -5
  69. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js.map +1 -1
  70. package/bundle/typescript/src/commands/game/sideQuest/commands/time.d.ts +20 -0
  71. package/bundle/typescript/src/commands/game/sideQuest/commands/time.js +61 -0
  72. package/bundle/typescript/src/commands/game/sideQuest/commands/time.js.map +1 -0
  73. package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +1 -1
  74. package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
  75. package/bundle/typescript/src/commands/game/sideQuest/commands/use.d.ts +17 -0
  76. package/bundle/typescript/src/commands/game/sideQuest/commands/use.js +136 -1
  77. package/bundle/typescript/src/commands/game/sideQuest/commands/use.js.map +1 -1
  78. package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
  79. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +15 -1
  80. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
  81. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +128 -44
  82. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +551 -254
  83. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
  84. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +82 -84
  85. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
  86. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.d.ts +23 -4
  87. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js +95 -79
  88. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js.map +1 -1
  89. package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.d.ts +30 -0
  90. package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.js +176 -0
  91. package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.js.map +1 -0
  92. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +104 -0
  93. package/bundle/typescript/src/commands/game/sideQuest/game.js +268 -16
  94. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  95. package/bundle/typescript/src/commands/game/sideQuest/headless-harness.d.ts +78 -0
  96. package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js +188 -0
  97. package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js.map +1 -0
  98. package/bundle/typescript/src/commands/game/sideQuest/headless.d.ts +5 -0
  99. package/bundle/typescript/src/commands/game/sideQuest/headless.js +78 -0
  100. package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
  101. package/bundle/typescript/src/commands/game/sideQuest/models/_index.d.ts +0 -1
  102. package/bundle/typescript/src/commands/game/sideQuest/models/_index.js +0 -1
  103. package/bundle/typescript/src/commands/game/sideQuest/models/_index.js.map +1 -1
  104. package/bundle/typescript/src/commands/game/sideQuest/models/device.d.ts +121 -0
  105. package/bundle/typescript/src/commands/game/sideQuest/models/device.js +145 -0
  106. package/bundle/typescript/src/commands/game/sideQuest/models/device.js.map +1 -0
  107. package/bundle/typescript/src/commands/game/sideQuest/models/door.d.ts +27 -8
  108. package/bundle/typescript/src/commands/game/sideQuest/models/door.js +15 -10
  109. package/bundle/typescript/src/commands/game/sideQuest/models/door.js.map +1 -1
  110. package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +143 -0
  111. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +253 -30
  112. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
  113. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +68 -0
  114. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +102 -0
  115. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  116. package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +80 -34
  117. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +126 -54
  118. package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
  119. package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +1 -4
  120. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +0 -22
  121. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
  122. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +78 -109
  123. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +4 -101
  124. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +24 -0
  125. package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.d.ts +52 -0
  126. package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.js +2 -0
  127. package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.js.map +1 -0
  128. package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.d.ts +63 -0
  129. package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.js +2 -0
  130. package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.js.map +1 -0
  131. package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.d.ts +6 -0
  132. package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +4 -0
  133. package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.d.ts +3 -2
  134. package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.d.ts +2 -28
  135. package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.js +1 -14
  136. package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.js.map +1 -1
  137. package/bundle/typescript/src/commands/game/sideQuest/ui.js +24 -0
  138. package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
  139. package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.d.ts +55 -0
  140. package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.js +36 -0
  141. package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.js.map +1 -0
  142. package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.d.ts +22 -0
  143. package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js +26 -0
  144. package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js.map +1 -1
  145. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js +6 -0
  146. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js.map +1 -1
  147. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.d.ts +45 -0
  148. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.js +116 -0
  149. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.js.map +1 -0
  150. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.d.ts +73 -1
  151. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js +56 -1
  152. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js.map +1 -1
  153. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +37 -4
  154. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  155. package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.d.ts +26 -0
  156. package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.js +48 -0
  157. package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.js.map +1 -0
  158. package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.d.ts +23 -0
  159. package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.js +55 -0
  160. package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.js.map +1 -0
  161. package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.d.ts +57 -2
  162. package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js +46 -3
  163. package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js.map +1 -1
  164. package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.d.ts +38 -0
  165. package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js +42 -0
  166. package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js.map +1 -1
  167. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +72 -17
  168. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
  169. package/bundle/typescript/src/commands/game/sideQuest/utilities/playtester.d.ts +50 -0
  170. package/bundle/typescript/src/commands/game/sideQuest/utilities/playtester.js +43 -0
  171. package/bundle/typescript/src/commands/game/sideQuest/utilities/playtester.js.map +1 -0
  172. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.d.ts +14 -3
  173. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js +45 -31
  174. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js.map +1 -1
  175. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js +66 -8
  176. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js.map +1 -1
  177. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +81 -15
  178. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +142 -33
  179. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
  180. package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.d.ts +88 -0
  181. package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.js +113 -0
  182. package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.js.map +1 -0
  183. package/bundle/typescript/src/commands/game/sideQuest/utilities/world-clock.d.ts +83 -0
  184. package/bundle/typescript/src/commands/game/sideQuest/utilities/world-clock.js +106 -0
  185. package/bundle/typescript/src/commands/game/sideQuest/utilities/world-clock.js.map +1 -0
  186. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +54 -5
  187. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  188. package/bundle/typescript/src/maka.js +1 -1
  189. package/bundle/typescript/src/maka.js.map +1 -1
  190. package/bundle/typescript/src/tools/sdk-loader/relocate.d.ts +19 -2
  191. package/bundle/typescript/src/tools/sdk-loader/relocate.js +22 -2
  192. package/bundle/typescript/src/tools/sdk-loader/relocate.js.map +1 -1
  193. package/package.json +1 -1
  194. package/bundle/typescript/src/commands/game/sideQuest/commands/solve.d.ts +0 -6
  195. package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js +0 -72
  196. package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js.map +0 -1
  197. package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.d.ts +0 -6
  198. package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js +0 -26
  199. package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js.map +0 -1
  200. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +0 -143
  201. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +0 -366
  202. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +0 -1
  203. package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.d.ts +0 -28
  204. package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.js +0 -2
  205. package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.js.map +0 -1
@@ -2,8 +2,25 @@
2
2
  * runtime directory rather than out of node_modules. */
3
3
  export declare function isRelocated(): boolean;
4
4
  /** Whether this invocation drives Meteor and therefore needs a real Node.
5
- * `command` is the raw first argument, so "g:route" and "build" both work. */
6
- export declare function needsRealNode(command: unknown): boolean;
5
+ * `command` is the raw first argument, so "g:route" and "build" both work.
6
+ * `flags` is the parsed switch set (minimist's argv), consulted for one
7
+ * reason only: see below.
8
+ *
9
+ * ASKING WHAT A COMMAND DOES MUST NOT COST A DOWNLOAD. `maka build --help`
10
+ * prints a paragraph of text -- it never reaches the toolchain -- but this
11
+ * used to key off the command name ALONE, so from a packaged binary it
12
+ * relocated, and relocating fetches a ~100MB Node first. The most cautious
13
+ * thing a new user can type was the most expensive, and silently so.
14
+ *
15
+ * Found by check-bundle-parity running on a CI runner, and only there: any
16
+ * machine that has already run a Meteor command has the runtime cached, so
17
+ * the fetch prints nothing and the help text arrives looking correct. It
18
+ * needs a machine that has never run maka to be visible at all. */
19
+ export declare function needsRealNode(command: unknown, flags?: {
20
+ help?: unknown;
21
+ h?: unknown;
22
+ [flag: string]: unknown;
23
+ }): boolean;
7
24
  /** Re-execs this command on a real Node and exits with the child's status.
8
25
  * Never returns. */
9
26
  export declare function reexecOnRealNode(args: string[]): Promise<never>;
@@ -47,11 +47,31 @@ export function isRelocated() {
47
47
  return process.env[RELOCATED_ENV] === '1';
48
48
  }
49
49
  /** Whether this invocation drives Meteor and therefore needs a real Node.
50
- * `command` is the raw first argument, so "g:route" and "build" both work. */
51
- export function needsRealNode(command) {
50
+ * `command` is the raw first argument, so "g:route" and "build" both work.
51
+ * `flags` is the parsed switch set (minimist's argv), consulted for one
52
+ * reason only: see below.
53
+ *
54
+ * ASKING WHAT A COMMAND DOES MUST NOT COST A DOWNLOAD. `maka build --help`
55
+ * prints a paragraph of text -- it never reaches the toolchain -- but this
56
+ * used to key off the command name ALONE, so from a packaged binary it
57
+ * relocated, and relocating fetches a ~100MB Node first. The most cautious
58
+ * thing a new user can type was the most expensive, and silently so.
59
+ *
60
+ * Found by check-bundle-parity running on a CI runner, and only there: any
61
+ * machine that has already run a Meteor command has the runtime cached, so
62
+ * the fetch prints nothing and the help text arrives looking correct. It
63
+ * needs a machine that has never run maka to be visible at all. */
64
+ export function needsRealNode(command,
65
+ // The index signature is load-bearing: minimist's ParsedArgs has one, and
66
+ // without it here TypeScript treats this as a weak type and rejects the
67
+ // whole argv object for having "no properties in common".
68
+ flags = {}) {
52
69
  if (typeof command !== 'string' || !command) {
53
70
  return false;
54
71
  }
72
+ if (flags.help || flags.h) {
73
+ return false;
74
+ }
55
75
  return SDK_BACKED.has(command.split(':')[0]);
56
76
  }
57
77
  function cliHome() {
@@ -1 +1 @@
1
- {"version":3,"file":"relocate.js","sourceRoot":"","sources":["../../../../../src/tools/sdk-loader/relocate.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,cAAc;AACd,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,iEAAiE;AACjE,8EAA8E;AAC9E,2EAA2E;AAC3E,sEAAsE;AACtE,wDAAwD;AACxD,EAAE;AACF,6EAA6E;AAC7E,qEAAqE;AACrE,yEAAyE;AACzE,6EAA6E;AAC7E,+EAA+E;AAC/E,mDAAmD;AACnD,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,yEAAyE;AACzE,oEAAoE;AACpE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE5D,6DAA6D;AAC7D,iCAAiC;AACjC,+BAA+B;AAC/B,gFAAgF;AAChF,EAAE;AACF,2DAA2D;AAC3D,6EAA6E;AAC7E,wEAAwE;AACxE,2EAA2E;AAC3E,wEAAwE;AACxE,yDAAyD;AACzD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAEtE,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAEvC;yDACyD;AACzD,MAAM,UAAU,WAAW;IACzB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC;AAC5C,CAAC;AAED;+EAC+E;AAC/E,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,OAAO;IACd,oEAAoE;IACpE,oBAAoB;IACpB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;AACtD,CAAC;AAED;;;iBAGiB;AACjB,SAAS,OAAO,CAAC,GAAW,EAAE,IAAY;IACxC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC;AAED;yBACyB;AACzB,SAAS,eAAe;IACtB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3C,oEAAoE;IACpE,oCAAoC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAE5C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAExC,6EAA6E;IAC7E,yEAAyE;IACzE,EAAE;IACF,yEAAyE;IACzE,0EAA0E;IAC1E,iEAAiE;IACjE,yEAAyE;IACzE,4EAA4E;IAC5E,sEAAsE;IACtE,4EAA4E;IAC5E,4EAA4E;IAC5E,sCAAsC;IACtC,EAAE;IACF,8EAA8E;IAC9E,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACvE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAEnD,qEAAqE;IACrE,uEAAuE;IACvE,wEAAwE;IACxE,yEAAyE;IACzE,iCAAiC;IACjC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IACtE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,UAAU,EAAE,IAAI,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;qBACqB;AACrB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAc;IACnD,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IAEjC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACpC,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,SAAS,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,qEAAqE;IACrE,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;QAC3C,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE;KAC9C,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,OAAO,CAEvC,CAAC,OAAO,EAAE,EAAE;QACb,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACtB,GAAG,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,yEAAyE;IACzE,sEAAsE;IACtE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"relocate.js","sourceRoot":"","sources":["../../../../../src/tools/sdk-loader/relocate.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,cAAc;AACd,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,iEAAiE;AACjE,8EAA8E;AAC9E,2EAA2E;AAC3E,sEAAsE;AACtE,wDAAwD;AACxD,EAAE;AACF,6EAA6E;AAC7E,qEAAqE;AACrE,yEAAyE;AACzE,6EAA6E;AAC7E,+EAA+E;AAC/E,mDAAmD;AACnD,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,yEAAyE;AACzE,oEAAoE;AACpE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE5D,6DAA6D;AAC7D,iCAAiC;AACjC,+BAA+B;AAC/B,gFAAgF;AAChF,EAAE;AACF,2DAA2D;AAC3D,6EAA6E;AAC7E,wEAAwE;AACxE,2EAA2E;AAC3E,wEAAwE;AACxE,yDAAyD;AACzD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAEtE,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAEvC;yDACyD;AACzD,MAAM,UAAU,WAAW;IACzB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;;;oEAcoE;AACpE,MAAM,UAAU,aAAa,CAC3B,OAAgB;AAChB,0EAA0E;AAC1E,wEAAwE;AACxE,0DAA0D;AAC1D,QAAkE,EAAE;IAEpE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,OAAO;IACd,oEAAoE;IACpE,oBAAoB;IACpB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;AACtD,CAAC;AAED;;;iBAGiB;AACjB,SAAS,OAAO,CAAC,GAAW,EAAE,IAAY;IACxC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC;AAED;yBACyB;AACzB,SAAS,eAAe;IACtB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3C,oEAAoE;IACpE,oCAAoC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAE5C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAExC,6EAA6E;IAC7E,yEAAyE;IACzE,EAAE;IACF,yEAAyE;IACzE,0EAA0E;IAC1E,iEAAiE;IACjE,yEAAyE;IACzE,4EAA4E;IAC5E,sEAAsE;IACtE,4EAA4E;IAC5E,4EAA4E;IAC5E,sCAAsC;IACtC,EAAE;IACF,8EAA8E;IAC9E,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACvE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAEnD,qEAAqE;IACrE,uEAAuE;IACvE,wEAAwE;IACxE,yEAAyE;IACzE,iCAAiC;IACjC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IACtE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,UAAU,EAAE,IAAI,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;qBACqB;AACrB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAc;IACnD,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IAEjC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACpC,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,SAAS,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,qEAAqE;IACrE,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;QAC3C,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE;KAC9C,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,OAAO,CAEvC,CAAC,OAAO,EAAE,EAAE;QACb,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACtB,GAAG,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,yEAAyE;IACzE,sEAAsE;IACtE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maka/maka-cli",
3
- "version": "5.63.1",
3
+ "version": "5.65.0",
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.",
@@ -1,6 +0,0 @@
1
- import { Command, ICommand } from './command.js';
2
- export declare class SolveCommand extends Command implements ICommand {
3
- protected static verb: string;
4
- protected static description: string;
5
- execute(args: string[]): Promise<string>;
6
- }
@@ -1,72 +0,0 @@
1
- import { Command } from './command.js';
2
- import { exitSpot, ensureAtSpot } from '../utilities/spots.js';
3
- export class SolveCommand extends Command {
4
- static verb = 'solve';
5
- static description = 'Answer a barrier with the credential you FOUND: "solve <code/passphrase>". The safe, deterministic route -- the right answer always works. To skip finding it, each barrier has its own risky verb: pick or breach a lock, hack a terminal, dispel a ward, bluff a doorman.';
6
- async execute(args) {
7
- const answer = args.join(' ').toLowerCase();
8
- const room = this.actor.currentLocation;
9
- const targets = room?.getPuzzleTargets() ?? [];
10
- if (targets.length === 0) {
11
- this.logger.write(`SolveCommand: ${this.actor.name} attempted to solve a riddle in a room with no puzzle.`);
12
- return 'There doesn\'t seem to be a riddle here to solve.';
13
- }
14
- // The typed answer alone identifies which target it's for -- no need to
15
- // ask the player to also name it (unlike pick/hack/cast, where there's
16
- // no answer to disambiguate with -- see bypass-command.ts).
17
- let firstResult;
18
- for (const target of targets) {
19
- const result = target.puzzle.solve(answer, this.actor.inventory);
20
- firstResult ??= result;
21
- if (result.success) {
22
- // "At" spots: the keypad/ward is a PLACE -- reciting the answer
23
- // means standing at it (free walk over out of combat).
24
- const barrierSpot = target.door && target.direction
25
- ? exitSpot(room, target.direction)
26
- : target.puzzle.atSpot;
27
- const reach = ensureAtSpot(this.actor, barrierSpot);
28
- if (reach.refusal)
29
- return reach.refusal;
30
- const crossNote = reach.line ? `${reach.line}\n` : '';
31
- this.logger.write(`${this.actor.name} attempted to solve ${target.puzzle.name} with result ${result.success}`);
32
- this.logger.write(`${this.actor.name} has solved ${target.puzzle.name}`);
33
- if (target.door) {
34
- target.door.isLocked = false;
35
- this.scene.updateExits(room);
36
- this.scene.addWorldEvent(`${this.actor.name} unlocked the way ${target.direction} in ${room.name} by solving "${target.puzzle.name}".`);
37
- }
38
- else if (target.puzzle.rewardItem) {
39
- this.actor.inventory.addItem(target.puzzle.rewardItem);
40
- this.scene.addWorldEvent(`${this.actor.name} solved "${target.puzzle.name}" in ${room.name}.`);
41
- this.scene.updateInventory(this.scene.getPlayer().inventory);
42
- }
43
- // ROOM GRIDS (spatial wave 2026-08-25): a room-anchored barrier
44
- // that synthesized as blocking TERRAIN opens now -- most
45
- // puzzles never have one (Room.clearTerrainFor is a silent
46
- // no-op), so this is free for every existing scene.
47
- const opened = room.clearTerrainFor(target.puzzle.name);
48
- const terrainNote = opened ? `\nThe ${opened} comes apart -- the way through is open.` : '';
49
- if (opened)
50
- this.scene.addWorldEvent(`${this.actor.name} cleared ${opened} in ${room.name} by solving "${target.puzzle.name}".`);
51
- this.logger.write(`SolveCommand: ${result.message}`);
52
- this.actor.performAction('solve', result.message);
53
- return crossNote + result.message + terrainNote;
54
- }
55
- }
56
- this.logger.write(`${this.actor.name} attempted to solve ${targets[0].puzzle.name} with result false`);
57
- this.logger.write(`SolveCommand: ${firstResult.message}`);
58
- this.actor.performAction('solve', firstResult.message);
59
- // NAME THE OTHER ROUTE (blocker 2026-08-27): a wrong answer was the
60
- // last dead-end refusal left on a barrier -- the same silence go.ts
61
- // and unlock.ts had. A player who was handed a bad code has nowhere
62
- // to go from "that's not it"; the risky route is exactly what they
63
- // need to hear about. Only offered while it's actually available:
64
- // a burned route is not a suggestion, it's a closed door.
65
- const alt = targets.find(t => !t.puzzle.bypassBurned && t.puzzle.getBypassVerb());
66
- const altNote = alt
67
- ? `\n(There's another way at this one -- "${alt.puzzle.getBypassVerb()}" it. Riskier, and it gets exactly one try.)`
68
- : '';
69
- return firstResult.message + altNote;
70
- }
71
- }
72
- //# sourceMappingURL=solve.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solve.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/solve.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { Puzzle } from '../models/puzzle.js';
2
- import { IPuzzleSeedJson } from '../types/seed/puzzle-seed.js';
3
- import { Item } from '../models/item.js';
4
- export declare class PuzzleFactory {
5
- createPuzzleFromJson(json: IPuzzleSeedJson, itemMap: Map<string, Item>): Promise<Puzzle>;
6
- }
@@ -1,26 +0,0 @@
1
- import { Puzzle } from '../models/puzzle.js';
2
- export class PuzzleFactory {
3
- async createPuzzleFromJson(json, itemMap) {
4
- const requiredItem = json.requiredItem ? itemMap.get(json.requiredItem) : undefined;
5
- const rewardItem = json.rewardItem ? itemMap.get(json.rewardItem) : undefined;
6
- if (json.requiredItem && !requiredItem) {
7
- throw new Error(`Required item '${json.requiredItem}' not found for puzzle "${json.name}"`);
8
- }
9
- if (json.rewardItem && !rewardItem) {
10
- throw new Error(`Reward item '${json.rewardItem}' not found for puzzle "${json.name}"`);
11
- }
12
- return new Puzzle({
13
- name: json.name,
14
- riddle: json.riddle,
15
- requiredPhrase: json.requiredPhrase,
16
- requiredItem,
17
- rewardItem,
18
- successMessage: json.successMessage,
19
- failureMessage: json.failureMessage,
20
- hobbyTags: json.hobbyTags,
21
- bypassType: json.bypassType,
22
- atSpot: json.atSpot
23
- });
24
- }
25
- }
26
- //# sourceMappingURL=puzzle-factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"puzzle-factory.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/factories/puzzle-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI7C,MAAM,OAAO,aAAa;IACxB,KAAK,CAAC,oBAAoB,CAAC,IAAqB,EAAE,OAA0B;QAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9E,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,YAAY,2BAA2B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC9F,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,UAAU,2BAA2B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC1F,CAAC;QAED,OAAO,IAAI,MAAM,CAAC;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,YAAY;YACZ,UAAU;YACV,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,143 +0,0 @@
1
- import { Logger } from '../utilities/logger.js';
2
- import { Item } from './item.js';
3
- import { Inventory } from './inventory.js';
4
- import { PuzzleBypassType } from '../types/seed/puzzle-seed.js';
5
- import { AbstractPuzzle } from '../types/shared/abstracts.js';
6
- /**
7
- * Why a bypass was refused, so the CALLING command can re-voice a
8
- * message the puzzle can't word correctly on its own: two verbs share
9
- * one bypassType (pick/breach both work 'lockpick'), and the puzzle
10
- * only knows the type. See BypassCommand.burnedFlavor.
11
- */
12
- export type BypassRefusal = 'solved' | 'locked' | 'mismatch' | 'burned';
13
- export interface BypassGate {
14
- allowed: boolean;
15
- reason?: BypassRefusal;
16
- message?: string;
17
- }
18
- export interface IPuzzleConstructorConfig {
19
- name: string;
20
- requiredItem?: Item;
21
- requiredPhrase?: string;
22
- riddle?: string;
23
- rewardItem?: Item;
24
- successMessage?: string;
25
- failureMessage?: string;
26
- hobbyTags?: string[];
27
- bypassType?: PuzzleBypassType;
28
- atSpot?: string;
29
- }
30
- export declare class Puzzle extends AbstractPuzzle {
31
- protected logger: Logger;
32
- protected solved: boolean;
33
- private hasAIRiddle;
34
- name: string;
35
- requiredItem?: Item;
36
- requiredPhrase?: string;
37
- riddle?: string;
38
- rewardItem?: Item;
39
- atSpot?: string;
40
- successMessage: string;
41
- failureMessage: string;
42
- hobbyTags?: string[];
43
- requiresPuzzle?: Puzzle;
44
- lockedMessage: string;
45
- bypassType?: PuzzleBypassType;
46
- private static readonly BYPASS_SUCCESS_CHANCE;
47
- bypassBurned: boolean;
48
- constructor(config: IPuzzleConstructorConfig);
49
- /**
50
- * Player-facing hint that a risky bypass exists, without which nothing
51
- * in the game ever tells the player "pick"/"hack"/"cast" is even an
52
- * option here -- found via a real session where a player had no idea
53
- * what they were supposed to "pick".
54
- */
55
- /** Just the bypass verb ("pick"/"hack"/"cast"/"bluff"), for refusal
56
- * one-liners that need to NAME the mechanism without the full
57
- * coaching text getBypassHint() carries. */
58
- getBypassVerb(): string | undefined;
59
- getBypassHint(): string | undefined;
60
- /**
61
- * Wired in after all puzzles in a scene exist (scene-factory.ts), since
62
- * a prerequisite may not have been constructed yet at this puzzle's own
63
- * construction time.
64
- */
65
- setRequiresPuzzle(prerequisite: Puzzle, lockedMessage?: string): void;
66
- /**
67
- * Persistence-only (utilities/persistence.ts): flags in, nothing out --
68
- * no reward items, no success message, no door side effects (door lock
69
- * state is restored independently, so a solved-then-relocked door stays
70
- * relocked on load).
71
- */
72
- restoreState(state: {
73
- solved: boolean;
74
- bypassBurned: boolean;
75
- }): void;
76
- isSolved(): boolean;
77
- /**
78
- * Rewrites the riddle's presentation once per scene load, while keeping
79
- * `requiredPhrase` (the exact-match answer key used by `solve()`) fixed --
80
- * so the correctness gate never drifts from what the player was actually
81
- * asked.
82
- */
83
- ensureAIRiddle(sceneContext: string, roomName?: string, kind?: 'device' | 'terrain'): Promise<void>;
84
- hasRequiredItem(playerInventory: Inventory): boolean;
85
- /**
86
- * Clue items are only required to CONTAIN the answer somewhere in their
87
- * text (e.g. "kill the power to bypass security" for a required phrase
88
- * of "kill the power"), so a player who reasonably quotes the clue back
89
- * verbatim types more words than the exact answer. Strict equality
90
- * rejected that. Normalizing punctuation/whitespace and accepting the
91
- * required phrase as a substring of the input (not just an exact match)
92
- * fixes it without loosening things enough for a wrong guess to pass.
93
- */
94
- matchesRequiredPhrase(inputPhrase: string): boolean;
95
- solve(providedAnswer: string, playerInventory: Inventory): {
96
- success: boolean;
97
- message: string;
98
- };
99
- /**
100
- * The risky alternate route never requires knowing requiredPhrase. Split
101
- * into a gate check (run first, before any outcome is determined -- an
102
- * already-solved, blocked, or type-mismatched puzzle should never make
103
- * the player sit through an interactive minigame they were never going
104
- * to be allowed to attempt) and applying an already-determined outcome.
105
- * A failed attempt BURNS the route (see bypassBurned) -- the gate
106
- * refuses retries with the burned flavor -- but never touches the safe
107
- * solve() path: finding the actual answer remains deterministic. Further
108
- * consequences (the alarm world event, spell backlash) belong to the
109
- * calling command (see commands/bypass-command.ts).
110
- */
111
- checkBypassGate(type: PuzzleBypassType): BypassGate;
112
- /**
113
- * The wrong-verb answer, spoken in the barrier's OWN fiction. Keyed on
114
- * this.bypassType (what the thing IS), never on the verb attempted --
115
- * see the note on BYPASS_FLAVOR.resists. Always names a route that
116
- * works, so a player never gets a dead end in front of a visible
117
- * barrier; a barrier with no shortcut at all says so plainly instead
118
- * of pretending not to exist, which is what a solve-only puzzle used
119
- * to do (it was filtered out before this gate ever ran).
120
- */
121
- private wrongRouteMessage;
122
- /**
123
- * Applies an outcome already determined elsewhere (a coin flip, or a live
124
- * minigame's win/loss) to this puzzle. Assumes checkBypassGate() already
125
- * passed -- doesn't re-check it.
126
- */
127
- resolveBypass(type: PuzzleBypassType, succeeded: boolean): {
128
- success: boolean;
129
- message: string;
130
- alarmed: boolean;
131
- };
132
- /**
133
- * Convenience wrapper: gate check + a flat coin-flip outcome. Used for
134
- * any bypass type without its own interactive minigame yet -- see
135
- * BypassCommand.determineOutcome(), which lockpicking overrides to run a
136
- * real player-skill challenge instead of this coin flip.
137
- */
138
- attemptBypass(type: PuzzleBypassType): {
139
- success: boolean;
140
- message: string;
141
- alarmed: boolean;
142
- };
143
- }