@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.
- package/bundle/typescript/package.json +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/ar.js +29 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/ar.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.d.ts +42 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +86 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.d.ts +29 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +151 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.d.ts +40 -13
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +107 -25
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/breach.d.ts +11 -15
- package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js +13 -16
- package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.d.ts +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js +30 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.d.ts +40 -49
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +121 -160
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +29 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.d.ts +7 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +13 -13
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js +22 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cover.d.ts +30 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/cover.js +65 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/cover.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +25 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.d.ts +2 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jobs.js +18 -10
- package/bundle/typescript/src/commands/game/sideQuest/commands/jobs.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/journal.d.ts +44 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/journal.js +136 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/journal.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.d.ts +20 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +157 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +18 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.d.ts +2 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/players.js +8 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/players.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/posture.d.ts +45 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/posture.js +115 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/posture.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +46 -12
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +30 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js +11 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.d.ts +47 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js +91 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/time.d.ts +20 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/time.js +61 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/time.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js +136 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +15 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +128 -44
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +551 -254
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +82 -84
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.d.ts +23 -4
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js +95 -79
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.d.ts +30 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.js +176 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +104 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +268 -16
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/headless-harness.d.ts +78 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js +188 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless.d.ts +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless.js +78 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/_index.d.ts +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/_index.js +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/_index.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/device.d.ts +121 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/device.js +145 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/device.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/door.d.ts +27 -8
- package/bundle/typescript/src/commands/game/sideQuest/models/door.js +15 -10
- package/bundle/typescript/src/commands/game/sideQuest/models/door.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +143 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +253 -30
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +68 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +102 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +80 -34
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +126 -54
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +1 -4
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +0 -22
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +78 -109
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +4 -101
- package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.d.ts +52 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.js +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.d.ts +63 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.js +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.d.ts +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +4 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.d.ts +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.d.ts +2 -28
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.js +1 -14
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/ui.js +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.d.ts +55 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.js +36 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.d.ts +22 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js +26 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.d.ts +45 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.js +116 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.d.ts +73 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js +56 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +37 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.d.ts +26 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.js +48 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.d.ts +23 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.js +55 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.d.ts +57 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js +46 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.d.ts +38 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js +42 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +72 -17
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/playtester.d.ts +50 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/playtester.js +43 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/playtester.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.d.ts +14 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js +45 -31
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js +66 -8
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +81 -15
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +142 -33
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.d.ts +88 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.js +113 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/world-clock.d.ts +83 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/world-clock.js +106 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/world-clock.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +54 -5
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/maka.js +1 -1
- package/bundle/typescript/src/maka.js.map +1 -1
- package/bundle/typescript/src/tools/sdk-loader/relocate.d.ts +19 -2
- package/bundle/typescript/src/tools/sdk-loader/relocate.js +22 -2
- package/bundle/typescript/src/tools/sdk-loader/relocate.js.map +1 -1
- package/package.json +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.d.ts +0 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js +0 -72
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js.map +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.d.ts +0 -6
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js +0 -26
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js.map +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +0 -143
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +0 -366
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.d.ts +0 -28
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.js +0 -2
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maka/maka-cli",
|
|
3
|
-
"version": "5.
|
|
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 +1,6 @@
|
|
|
1
1
|
import { Command } from './command.js';
|
|
2
2
|
import { hint } from '../utilities/hints.js';
|
|
3
|
-
import { aroTags, arSightUp } from '../utilities/ar.js';
|
|
3
|
+
import { aroTags, arSightUp, silentAndSeeingNote } from '../utilities/ar.js';
|
|
4
4
|
/**
|
|
5
5
|
* THE AR SWITCH (player request 2026-08-26: "there should be a way to
|
|
6
6
|
* toggle AR"). Bare "ar" toggles, "ar on"/"ar off" are explicit, and
|
|
@@ -21,7 +21,7 @@ import { aroTags, arSightUp } from '../utilities/ar.js';
|
|
|
21
21
|
*/
|
|
22
22
|
export class ArCommand extends Command {
|
|
23
23
|
static verb = 'ar';
|
|
24
|
-
static description = 'Toggle your augmented-reality overlay: "ar" flips it, "ar on"/"ar off" are explicit. Off just hides the icon clutter -- your link keeps broadcasting and calls still reach you. Bare "ar" while it is up also reads out what is online around you.';
|
|
24
|
+
static description = 'Toggle your augmented-reality overlay: "ar" flips it, "ar on"/"ar off" are explicit. Off just hides the icon clutter -- your link keeps broadcasting and calls still reach you. Independent of "silent": you can run dark with your overlay up, and usually want to. Bare "ar" while it is up also reads out what is online around you.';
|
|
25
25
|
async execute(args = []) {
|
|
26
26
|
const actor = this.actor;
|
|
27
27
|
const sub = (args[0] ?? '').toLowerCase();
|
|
@@ -41,7 +41,16 @@ export class ArCommand extends Command {
|
|
|
41
41
|
this.game?.updateExits(actor.currentLocation);
|
|
42
42
|
this.scene.updateStatus();
|
|
43
43
|
if (!wantOn) {
|
|
44
|
-
|
|
44
|
+
// The link half of this sentence has to TELL THE TRUTH about the
|
|
45
|
+
// other axis. It used to promise "still up and still reachable"
|
|
46
|
+
// unconditionally -- which is a lie to a runner who is running
|
|
47
|
+
// silent, and precisely the kind of crossed-wires that made
|
|
48
|
+
// someone ask whether silent and AR can coexist at all. Muting
|
|
49
|
+
// changes the OVERLAY; whatever the link was doing, it still is.
|
|
50
|
+
const linkNote = actor.runningSilent
|
|
51
|
+
? `Your link is untouched -- still silent, still hidden, still no calls`
|
|
52
|
+
: `Your link is still up and still reachable`;
|
|
53
|
+
return `{white-fg}You blink the overlay away. The street goes plain -- no tags, no marquees, nothing floating over anybody's shoulder. ${linkNote}, and the district map drops its host markers with the rest of the icons. Lasts the session -- a fresh one boots with AR up${hint(`, and "ar" brings it back any time`)}.{/white-fg}`;
|
|
45
54
|
}
|
|
46
55
|
// Coming back up: say WHY it is still dark, if it is. A player who
|
|
47
56
|
// types "ar on" and gets a blank street deserves the reason.
|
|
@@ -56,10 +65,13 @@ export class ArCommand extends Command {
|
|
|
56
65
|
}
|
|
57
66
|
const tags = aroTags(this.scene, actor, actor.currentLocation);
|
|
58
67
|
const head = `{cyan-fg}The overlay blinks back in.{/cyan-fg}`;
|
|
68
|
+
// Turning AR back on while silent is the other moment the question
|
|
69
|
+
// lands -- you have just done the thing you were unsure was allowed.
|
|
70
|
+
const note = silentAndSeeingNote(actor);
|
|
59
71
|
if (tags.length === 0) {
|
|
60
|
-
return
|
|
72
|
+
return [head, `{cyan-fg}Nothing here is talking -- a dead patch of street.{/cyan-fg}`, note].filter(Boolean).join('\n');
|
|
61
73
|
}
|
|
62
|
-
return
|
|
74
|
+
return [head, ...tags.map(t => ` {cyan-fg}${t}{/cyan-fg}`), note].filter(Boolean).join('\n');
|
|
63
75
|
}
|
|
64
76
|
}
|
|
65
77
|
/**
|
|
@@ -69,7 +81,7 @@ export class ArCommand extends Command {
|
|
|
69
81
|
*/
|
|
70
82
|
export class ArosCommand extends Command {
|
|
71
83
|
static verb = 'aros';
|
|
72
|
-
static description = 'Read the augmented-reality objects around you: hosts, broadcasting PANs, camera clusters, powered-up gear in plain sight. Needs your AR overlay up ("ar").';
|
|
84
|
+
static description = 'Read the augmented-reality objects around you: hosts, broadcasting PANs, camera clusters, powered-up gear in plain sight. Needs your AR overlay up ("ar"). Works while running silent -- silence hides what you broadcast, not what you can see.';
|
|
73
85
|
async execute(_args = []) {
|
|
74
86
|
const actor = this.actor;
|
|
75
87
|
if (!arSightUp(actor)) {
|
|
@@ -83,11 +95,20 @@ export class ArosCommand extends Command {
|
|
|
83
95
|
return `Your overlay is DOWN -- somebody cut it. "reboot" clears that.`;
|
|
84
96
|
return `No commlink, no deck, no AR. Nothing to read the street with.`;
|
|
85
97
|
}
|
|
98
|
+
// "aros" is the verb a player reaches for when they want to know
|
|
99
|
+
// whether their overlay is working -- which is exactly when the
|
|
100
|
+
// silent-and-seeing question occurs to them. Empty unless it is
|
|
101
|
+
// actually live (utilities/ar.ts silentAndSeeingNote).
|
|
102
|
+
const note = silentAndSeeingNote(actor);
|
|
86
103
|
const tags = aroTags(this.scene, actor, actor.currentLocation);
|
|
87
104
|
if (tags.length === 0) {
|
|
88
|
-
return `{cyan-fg}Nothing here is talking -- a dead patch of street.{/cyan-fg}
|
|
105
|
+
return [`{cyan-fg}Nothing here is talking -- a dead patch of street.{/cyan-fg}`, note].filter(Boolean).join('\n');
|
|
89
106
|
}
|
|
90
|
-
return
|
|
107
|
+
return [
|
|
108
|
+
`{cyan-fg}AR OVERLAY:{/cyan-fg}`,
|
|
109
|
+
...tags.map(t => ` {cyan-fg}${t}{/cyan-fg}`),
|
|
110
|
+
note,
|
|
111
|
+
].filter(Boolean).join('\n');
|
|
91
112
|
}
|
|
92
113
|
}
|
|
93
114
|
//# sourceMappingURL=ar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ar.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/ar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ar.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/ar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Command, ICommand } from './command.js';
|
|
2
|
+
import { ICatalogItem } from '../utilities/catalog-data.js';
|
|
2
3
|
/**
|
|
3
4
|
* Legwork (SR5e p.387-388): "ask <contact> about <thing>" taps a
|
|
4
5
|
* CONTACT's network for real information -- in person or over a live
|
|
@@ -21,6 +22,32 @@ export declare class AskCommand extends Command implements ICommand {
|
|
|
21
22
|
protected static verb: string;
|
|
22
23
|
protected static description: string;
|
|
23
24
|
execute(args?: string[]): Promise<string>;
|
|
25
|
+
/**
|
|
26
|
+
* ASKING A FIXER FOR PAPER (player go 2026-08-27: "I should be able to
|
|
27
|
+
* call Mr. Krow as a fixer to get a fake SIN. Let's take a look at how
|
|
28
|
+
* to get the job during a conversation.")
|
|
29
|
+
*
|
|
30
|
+
* Everything this needs already existed and none of it was reachable
|
|
31
|
+
* by talking. Fake SINs are in the catalog at canon prices (SR5 p.443:
|
|
32
|
+
* cost = Rating x 2,500, availability = Rating x 3, legality F), and
|
|
33
|
+
* `source <item> from <contact>` is a working purchase that rolls the
|
|
34
|
+
* contact's availability test. Crucially the ROLE_DOMAINS check in
|
|
35
|
+
* source.ts is only a DICE BONUS, not a gate -- so a fixer could
|
|
36
|
+
* always have sourced paper; nobody could ever ask him to.
|
|
37
|
+
*
|
|
38
|
+
* The one thing in the way was that a request to the fixer fell
|
|
39
|
+
* through to offerWork, which refuses him flat ("Errands? I broker
|
|
40
|
+
* RUNS, chummer") -- so the most canon-obvious request in the game hit
|
|
41
|
+
* a refusal written for something else entirely.
|
|
42
|
+
*
|
|
43
|
+
* Deliberately a QUOTE, not a sale: it names real catalog items at
|
|
44
|
+
* real prices and hands over the exact command that buys one. A
|
|
45
|
+
* dialogue sale that the order system never saw is the bug swagNote
|
|
46
|
+
* already exists to prevent (a real session's Ratchet sold a program
|
|
47
|
+
* for "six kay" in pure conversation and the customer owned nothing),
|
|
48
|
+
* and this must not become a second door into it.
|
|
49
|
+
*/
|
|
50
|
+
private offerGoods;
|
|
24
51
|
/**
|
|
25
52
|
* A contact putting their own errand on the table (Game.offerGigFrom).
|
|
26
53
|
* Loyalty 2 opens the door -- a Loyalty-1 face is still just a
|
|
@@ -35,3 +62,18 @@ export declare class AskCommand extends Command implements ICommand {
|
|
|
35
62
|
*/
|
|
36
63
|
private buildIntel;
|
|
37
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Which catalog goods a spoken request is asking for.
|
|
67
|
+
*
|
|
68
|
+
* Exported and PURE because the DANGEROUS failure here is not missing a
|
|
69
|
+
* match, it is catching one: this runs AHEAD of the legwork path, so a
|
|
70
|
+
* matcher that fires on "the job" or "the run" silently eats the whole
|
|
71
|
+
* intel system and nothing throws. The tests are written mostly as
|
|
72
|
+
* must-NOT-match cases for that reason.
|
|
73
|
+
*
|
|
74
|
+
* Matches item NAMES, not categories -- "a fake sin" finds the whole
|
|
75
|
+
* rating ladder, "a commlink" finds nothing because the catalog sells
|
|
76
|
+
* Meta Links and Sony Emperors. That is the same property source has,
|
|
77
|
+
* and widening it is what would start eating legwork topics.
|
|
78
|
+
*/
|
|
79
|
+
export declare function matchOrderableGoods(topic: string): ICatalogItem[];
|
|
@@ -5,6 +5,8 @@ import { rollPool, formatRoll } from '../utilities/dice.js';
|
|
|
5
5
|
import { fuzzyPickName } from '../utilities/fuzzy-match.js';
|
|
6
6
|
import { FIXER_NAME, isFixerName } from '../factories/scene-seed-generator.js';
|
|
7
7
|
import { sameSpot, spotOf, spotRefusal } from '../utilities/spots.js';
|
|
8
|
+
import { loadCatalog } from '../utilities/catalog.js';
|
|
9
|
+
import { PAPER_AVAILABILITY } from '../utilities/sin.js';
|
|
8
10
|
/**
|
|
9
11
|
* Legwork (SR5e p.387-388): "ask <contact> about <thing>" taps a
|
|
10
12
|
* CONTACT's network for real information -- in person or over a live
|
|
@@ -25,7 +27,7 @@ import { sameSpot, spotOf, spotRefusal } from '../utilities/spots.js';
|
|
|
25
27
|
*/
|
|
26
28
|
export class AskCommand extends Command {
|
|
27
29
|
static verb = 'ask';
|
|
28
|
-
static description = 'Tap a contact: "ask <contact> about <thing>" for legwork (Loyalty adds dice; once per homecoming), or "ask <contact> about work" for a gig of theirs (Loyalty 2+).';
|
|
30
|
+
static description = 'Tap a contact: "ask <contact> about <thing>" for legwork (Loyalty adds dice; once per homecoming), or "ask <contact> about work" for a gig of theirs (Loyalty 2+). "ask <contact> for <gear>" gets a street quote you can order.';
|
|
29
31
|
async execute(args = []) {
|
|
30
32
|
const actor = this.actor;
|
|
31
33
|
if (!args || args.length === 0) {
|
|
@@ -38,12 +40,16 @@ export class AskCommand extends Command {
|
|
|
38
40
|
const partner = actor.activeCallPartner;
|
|
39
41
|
const candidates = partner && !here.includes(partner) ? [...here, partner] : here;
|
|
40
42
|
// "about" is the separator when present -- name before it, topic
|
|
41
|
-
// after.
|
|
43
|
+
// after. "for" is the same separator for GOODS, because that is how
|
|
44
|
+
// a player actually phrases a purchase ("ask Krow for a fake SIN",
|
|
45
|
+
// player go 2026-08-27) -- without it the whole request fuzzy-matched
|
|
46
|
+
// as a name and found nobody.
|
|
47
|
+
// (A longest-prefix fuzzy match swallowed "Mama Wu about
|
|
42
48
|
// work" WHOLE as the name in a real harness run, leaving no topic.)
|
|
43
49
|
// Without "about", fall back to longest-prefix matching.
|
|
44
50
|
let target;
|
|
45
51
|
let topicWords = [];
|
|
46
|
-
const aboutIdx = args.findIndex(w => w.toLowerCase()
|
|
52
|
+
const aboutIdx = args.findIndex(w => ['about', 'for'].includes(w.toLowerCase()));
|
|
47
53
|
if (aboutIdx > 0) {
|
|
48
54
|
const picked = fuzzyPickName(args.slice(0, aboutIdx).join(' '), candidates.map(a => a.name));
|
|
49
55
|
target = picked ? candidates.find(a => a.name === picked) : undefined;
|
|
@@ -85,6 +91,12 @@ export class AskCommand extends Command {
|
|
|
85
91
|
});
|
|
86
92
|
return `You put the question to ${target.name}, but you're a stranger asking a stranger's question.${hint(` (Trade with them, run their errands -- CONTACTS talk. "contacts" shows who already does.)`)}`;
|
|
87
93
|
}
|
|
94
|
+
// GOODS BEFORE WORK. "ask Krow for a fake SIN" is a purchase, not a
|
|
95
|
+
// job request, and it has to be tested first or the fixer's
|
|
96
|
+
// work-refusal swallows it (see offerWork).
|
|
97
|
+
const goods = this.offerGoods(target, topic);
|
|
98
|
+
if (goods)
|
|
99
|
+
return goods;
|
|
88
100
|
// "ask <contact> about work" is a JOB request, not a network pull:
|
|
89
101
|
// no dice, no per-homecoming budget -- Loyalty gates the door and
|
|
90
102
|
// the offer lands as the standing gig ("work" picks it up). Kept
|
|
@@ -119,6 +131,49 @@ export class AskCommand extends Command {
|
|
|
119
131
|
...facts.map(f => ` ${f}`),
|
|
120
132
|
].join('\n');
|
|
121
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* ASKING A FIXER FOR PAPER (player go 2026-08-27: "I should be able to
|
|
136
|
+
* call Mr. Krow as a fixer to get a fake SIN. Let's take a look at how
|
|
137
|
+
* to get the job during a conversation.")
|
|
138
|
+
*
|
|
139
|
+
* Everything this needs already existed and none of it was reachable
|
|
140
|
+
* by talking. Fake SINs are in the catalog at canon prices (SR5 p.443:
|
|
141
|
+
* cost = Rating x 2,500, availability = Rating x 3, legality F), and
|
|
142
|
+
* `source <item> from <contact>` is a working purchase that rolls the
|
|
143
|
+
* contact's availability test. Crucially the ROLE_DOMAINS check in
|
|
144
|
+
* source.ts is only a DICE BONUS, not a gate -- so a fixer could
|
|
145
|
+
* always have sourced paper; nobody could ever ask him to.
|
|
146
|
+
*
|
|
147
|
+
* The one thing in the way was that a request to the fixer fell
|
|
148
|
+
* through to offerWork, which refuses him flat ("Errands? I broker
|
|
149
|
+
* RUNS, chummer") -- so the most canon-obvious request in the game hit
|
|
150
|
+
* a refusal written for something else entirely.
|
|
151
|
+
*
|
|
152
|
+
* Deliberately a QUOTE, not a sale: it names real catalog items at
|
|
153
|
+
* real prices and hands over the exact command that buys one. A
|
|
154
|
+
* dialogue sale that the order system never saw is the bug swagNote
|
|
155
|
+
* already exists to prevent (a real session's Ratchet sold a program
|
|
156
|
+
* for "six kay" in pure conversation and the customer owned nothing),
|
|
157
|
+
* and this must not become a second door into it.
|
|
158
|
+
*/
|
|
159
|
+
offerGoods(target, topic) {
|
|
160
|
+
const matches = matchOrderableGoods(topic);
|
|
161
|
+
if (matches.length === 0)
|
|
162
|
+
return undefined;
|
|
163
|
+
const remote = this.actor.currentLocation !== target.currentLocation;
|
|
164
|
+
void Promise.resolve(target.hear(this.actor, `Can you get me ${topic}? [System note: ${this.actor.name} is asking you to SOURCE goods. You have already quoted them the list price and told them to put the order through -- add only a short in-character word. Never agree a different price and never treat the sale as done: only the order system sells anything.]`)).catch(err => {
|
|
165
|
+
this.logger.error(`${target.name} failed to hear the order request: ${err}`);
|
|
166
|
+
});
|
|
167
|
+
this.logger.write(`AskCommand: ${this.actor.name} asked ${target.name} to source "${topic}" -- ${matches.length} catalog match(es).`);
|
|
168
|
+
return [
|
|
169
|
+
`${target.name} hears you out, then quotes the street:`,
|
|
170
|
+
...matches.map(i => ` ${i.name} -- ${i.price} nuyen${i.availability >= PAPER_AVAILABILITY ? ' (restricted)' : ''}`),
|
|
171
|
+
matches.length === 1
|
|
172
|
+
? ` "source ${matches[0].name} from ${target.name}" to put the order through.`
|
|
173
|
+
: ` "source <one of those> from ${target.name}" to put the order through.`,
|
|
174
|
+
hint(` (They roll to find it, take payment up front${remote ? '' : ''}, and deliver at your next homecoming. Loyalty 5 pays the family rate.)`),
|
|
175
|
+
].join('\n');
|
|
176
|
+
}
|
|
122
177
|
/**
|
|
123
178
|
* A contact putting their own errand on the table (Game.offerGigFrom).
|
|
124
179
|
* Loyalty 2 opens the door -- a Loyalty-1 face is still just a
|
|
@@ -202,4 +257,32 @@ export class AskCommand extends Command {
|
|
|
202
257
|
return [`Nothing's on the wire for you right now -- no pending job, no live rumor. Their network stays warm for when there is. (Call ${this.game?.hasHub ? 'your Johnson' : 'around'} first.)`];
|
|
203
258
|
}
|
|
204
259
|
}
|
|
260
|
+
/**
|
|
261
|
+
* Which catalog goods a spoken request is asking for.
|
|
262
|
+
*
|
|
263
|
+
* Exported and PURE because the DANGEROUS failure here is not missing a
|
|
264
|
+
* match, it is catching one: this runs AHEAD of the legwork path, so a
|
|
265
|
+
* matcher that fires on "the job" or "the run" silently eats the whole
|
|
266
|
+
* intel system and nothing throws. The tests are written mostly as
|
|
267
|
+
* must-NOT-match cases for that reason.
|
|
268
|
+
*
|
|
269
|
+
* Matches item NAMES, not categories -- "a fake sin" finds the whole
|
|
270
|
+
* rating ladder, "a commlink" finds nothing because the catalog sells
|
|
271
|
+
* Meta Links and Sony Emperors. That is the same property source has,
|
|
272
|
+
* and widening it is what would start eating legwork topics.
|
|
273
|
+
*/
|
|
274
|
+
export function matchOrderableGoods(topic) {
|
|
275
|
+
const q = topic.toLowerCase().replace(/\b(a|an|the|some|any|me|get|buy|new)\b/g, ' ').replace(/\s+/g, ' ').trim();
|
|
276
|
+
if (q.length < 3)
|
|
277
|
+
return [];
|
|
278
|
+
const squash = (s) => s.toLowerCase().replace(/[^a-z0-9]+/g, '');
|
|
279
|
+
const sq = squash(q);
|
|
280
|
+
return loadCatalog()
|
|
281
|
+
.filter(i => {
|
|
282
|
+
const name = squash(i.name);
|
|
283
|
+
return name.includes(sq) || (sq.length >= 4 && sq.includes(name));
|
|
284
|
+
})
|
|
285
|
+
.sort((a, b) => a.price - b.price)
|
|
286
|
+
.slice(0, 4);
|
|
287
|
+
}
|
|
205
288
|
//# sourceMappingURL=ask.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/ask.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ask.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/ask.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,12 +22,39 @@ import { Command, ICommand } from './command.js';
|
|
|
22
22
|
export declare class BacklogCommand extends Command implements ICommand {
|
|
23
23
|
protected static verb: string;
|
|
24
24
|
protected static description: string;
|
|
25
|
-
protected static subcommands: {
|
|
25
|
+
protected static subcommands: ({
|
|
26
26
|
usage: string;
|
|
27
27
|
short: string;
|
|
28
|
-
|
|
28
|
+
long?: undefined;
|
|
29
|
+
} | {
|
|
30
|
+
usage: string;
|
|
31
|
+
short: string;
|
|
32
|
+
long: string;
|
|
33
|
+
})[];
|
|
29
34
|
execute(args?: string[]): Promise<string>;
|
|
30
35
|
private file;
|
|
36
|
+
/**
|
|
37
|
+
* THE REVIEW QUEUE (user request 2026-08-27). Bare "backlog review"
|
|
38
|
+
* lists what is waiting on you, numbered 1..n; "backlog review <n>
|
|
39
|
+
* <your words>" answers item n.
|
|
40
|
+
*
|
|
41
|
+
* The numbering is the delicate part and utilities/backlog-review.ts
|
|
42
|
+
* holds the invariant: a number resolves against the snapshot the
|
|
43
|
+
* player was SHOWN, never against a fresh fetch. Answering does not
|
|
44
|
+
* renumber the list on screen either.
|
|
45
|
+
*/
|
|
46
|
+
private review;
|
|
47
|
+
/** Fetch and render the queue, adopting its order as the numbering. */
|
|
48
|
+
private showQueue;
|
|
49
|
+
/**
|
|
50
|
+
* One queue row. The two kinds of request READ DIFFERENTLY on purpose
|
|
51
|
+
* even though the server models both as a question awaiting the
|
|
52
|
+
* reporter: "somebody asked about your report" and "this is fixed,
|
|
53
|
+
* can you confirm it in play" are different jobs, and a play-tester
|
|
54
|
+
* skimming a list should be able to tell at a glance which one they
|
|
55
|
+
* are being asked for.
|
|
56
|
+
*/
|
|
57
|
+
private renderItem;
|
|
31
58
|
private list;
|
|
32
59
|
/** One item: what it says, where it stands, and what the books said. */
|
|
33
60
|
private row;
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { Command } from './command.js';
|
|
2
2
|
import { hint } from '../utilities/hints.js';
|
|
3
3
|
import { authToken } from '../utilities/cloud-saves.js';
|
|
4
|
-
import { submitBacklog, fetchBacklog, BACKLOG_STATUSES, } from '../utilities/backlog.js';
|
|
4
|
+
import { submitBacklog, fetchBacklog, postBacklogComment, BACKLOG_STATUSES, } from '../utilities/backlog.js';
|
|
5
|
+
import { noteBacklogOutcome } from '../utilities/playtester.js';
|
|
6
|
+
import { takeIndex } from '../utilities/fuzzy-match.js';
|
|
7
|
+
import { optionMark } from '../utilities/log-style.js';
|
|
8
|
+
import { loadReviewQueue, reviewSnapshot, reviewItemAt, markReviewAnswered, isReviewAnswered, } from '../utilities/backlog-review.js';
|
|
9
|
+
/** One line of somebody's report, kept to a skimmable width. */
|
|
10
|
+
function truncate(text, max) {
|
|
11
|
+
const flat = text.replace(/\s+/g, ' ').trim();
|
|
12
|
+
return flat.length <= max ? flat : `${flat.slice(0, max - 1)}…`;
|
|
13
|
+
}
|
|
5
14
|
/**
|
|
6
15
|
* THE BACKLOG -- play-tester feedback that somebody acts on.
|
|
7
16
|
*
|
|
@@ -29,6 +38,16 @@ export class BacklogCommand extends Command {
|
|
|
29
38
|
{ usage: 'backlog <text>', short: 'File an item against this session.' },
|
|
30
39
|
{ usage: 'backlog list', short: 'The whole board, newest first.' },
|
|
31
40
|
{ usage: 'backlog list <status>', short: `Filter: ${BACKLOG_STATUSES.join(', ')}.` },
|
|
41
|
+
{
|
|
42
|
+
usage: 'backlog review',
|
|
43
|
+
short: 'What the board is waiting on YOU for, numbered.',
|
|
44
|
+
long: 'Items where somebody has asked you something and is waiting: a clarifying question about a report you filed, or a fix that has landed and wants confirming in play. Listed 1..n, oldest first.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
usage: 'backlog review <n> <your answer>',
|
|
48
|
+
short: 'Answer item n from that list.',
|
|
49
|
+
long: 'Posts your words against item n as an answer. The numbers come from the list you were last shown and do not move when you answer one, so you can work down them. "backlog review <n>" on its own reads that item in full without replying.',
|
|
50
|
+
},
|
|
32
51
|
];
|
|
33
52
|
async execute(args = []) {
|
|
34
53
|
// An anonymous runner's data never leaves the machine -- the same
|
|
@@ -44,6 +63,13 @@ export class BacklogCommand extends Command {
|
|
|
44
63
|
if (args.length === 0 || sub === 'list') {
|
|
45
64
|
return this.list(args[1]);
|
|
46
65
|
}
|
|
66
|
+
// "review" is checked BEFORE the fall-through to file(), or
|
|
67
|
+
// answering an item would file a new one whose text begins with the
|
|
68
|
+
// word "review" -- the same shape as `backlog open` filing an item
|
|
69
|
+
// called "open", which is why list has subcommands at all.
|
|
70
|
+
if (sub === 'review') {
|
|
71
|
+
return this.review(args.slice(1));
|
|
72
|
+
}
|
|
47
73
|
return this.file(args.join(' '));
|
|
48
74
|
}
|
|
49
75
|
async file(text) {
|
|
@@ -71,10 +97,128 @@ export class BacklogCommand extends Command {
|
|
|
71
97
|
engineVersion: engineVersion(),
|
|
72
98
|
platform: process.platform,
|
|
73
99
|
});
|
|
100
|
+
// A real call classifies the account for free -- no second request.
|
|
101
|
+
noteBacklogOutcome(outcome);
|
|
74
102
|
if (outcome !== 'ok')
|
|
75
103
|
return this.explain(outcome);
|
|
76
104
|
return `{cyan-fg}Filed. It'll come back checked against the books.${hint(` ("backlog list" reads the board.)`)}{/cyan-fg}`;
|
|
77
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* THE REVIEW QUEUE (user request 2026-08-27). Bare "backlog review"
|
|
108
|
+
* lists what is waiting on you, numbered 1..n; "backlog review <n>
|
|
109
|
+
* <your words>" answers item n.
|
|
110
|
+
*
|
|
111
|
+
* The numbering is the delicate part and utilities/backlog-review.ts
|
|
112
|
+
* holds the invariant: a number resolves against the snapshot the
|
|
113
|
+
* player was SHOWN, never against a fresh fetch. Answering does not
|
|
114
|
+
* renumber the list on screen either.
|
|
115
|
+
*/
|
|
116
|
+
async review(args) {
|
|
117
|
+
// Bare "backlog review": fetch, render, and adopt that order as the
|
|
118
|
+
// numbering. This is the ONLY place the queue is refetched.
|
|
119
|
+
if (args.length === 0)
|
|
120
|
+
return this.showQueue();
|
|
121
|
+
const queue = reviewSnapshot();
|
|
122
|
+
if (queue.length === 0) {
|
|
123
|
+
// No snapshot means no list they could have counted on, so we do
|
|
124
|
+
// not fetch one and hope the numbering matches what they had in
|
|
125
|
+
// mind. Show it and let them pick against what they can see.
|
|
126
|
+
const shown = await this.showQueue();
|
|
127
|
+
return `${shown}\n\n{white-fg}(Pick from the list above -- "backlog review <n> <your answer>".){/white-fg}`;
|
|
128
|
+
}
|
|
129
|
+
// ONE INDEX RESOLVER FOR THE WHOLE GAME (session-1's takeIndex).
|
|
130
|
+
// It is pure and holds no order, which it says out loud -- so the
|
|
131
|
+
// guarantee that this list has not reshuffled since it was printed
|
|
132
|
+
// stays MINE, and lives in utilities/backlog-review.ts. What it
|
|
133
|
+
// buys here is that "review 9" against a 3-item list refuses in the
|
|
134
|
+
// same words as picking the ninth exit or the ninth item on a
|
|
135
|
+
// vendor's shelf, and the remainder comes back VERBATIM -- this
|
|
136
|
+
// trailing text is a human's answer, not arguments.
|
|
137
|
+
const picked = takeIndex(args.join(' '), queue.length);
|
|
138
|
+
if (!picked.ok)
|
|
139
|
+
return `${picked.message}${hint(` "backlog review" shows the list again.`)}`;
|
|
140
|
+
const item = reviewItemAt(picked.at + 1);
|
|
141
|
+
if (!item)
|
|
142
|
+
return `There's no item ${picked.at + 1}. The list runs 1-${queue.length}.`;
|
|
143
|
+
const n = picked.at + 1;
|
|
144
|
+
const text = picked.rest;
|
|
145
|
+
if (text.length === 0) {
|
|
146
|
+
// A number on its own reads the item back rather than posting an
|
|
147
|
+
// empty answer -- most of the time that IS what they wanted.
|
|
148
|
+
return this.renderItem(item, n, { full: true });
|
|
149
|
+
}
|
|
150
|
+
const outcome = await postBacklogComment(item.id, text, {
|
|
151
|
+
kind: 'answer',
|
|
152
|
+
// The question is answered, so it is no longer awaiting them.
|
|
153
|
+
awaitingReporter: false,
|
|
154
|
+
runnerName: this.actor?.name,
|
|
155
|
+
});
|
|
156
|
+
noteBacklogOutcome(outcome);
|
|
157
|
+
if (outcome !== 'ok')
|
|
158
|
+
return this.explain(outcome);
|
|
159
|
+
markReviewAnswered(item.id);
|
|
160
|
+
const left = reviewSnapshot().filter(i => !isReviewAnswered(i.id)).length;
|
|
161
|
+
return [
|
|
162
|
+
`{cyan-fg}Answered item ${n}. It's on the record against your report.{/cyan-fg}`,
|
|
163
|
+
left > 0
|
|
164
|
+
? `{white-fg}${left} still waiting on you -- the numbers above haven't moved.{/white-fg}`
|
|
165
|
+
: `{white-fg}That was the last one. Nothing else is waiting on you.{/white-fg}`,
|
|
166
|
+
].join('\n');
|
|
167
|
+
}
|
|
168
|
+
/** Fetch and render the queue, adopting its order as the numbering. */
|
|
169
|
+
async showQueue() {
|
|
170
|
+
const { outcome, items } = await loadReviewQueue();
|
|
171
|
+
if (outcome !== 'ok' || !items)
|
|
172
|
+
return this.explain(outcome);
|
|
173
|
+
if (items.length === 0) {
|
|
174
|
+
return `Nothing's waiting on you. The board will say so when somebody needs a word back.`;
|
|
175
|
+
}
|
|
176
|
+
return [
|
|
177
|
+
`{cyan-fg}WAITING ON YOU{/cyan-fg}`,
|
|
178
|
+
...items.map((it, i) => this.renderItem(it, i + 1, { full: false })),
|
|
179
|
+
hint(`"backlog review <n> <your answer>" replies. "backlog review <n>" alone reads one in full.`),
|
|
180
|
+
].filter(Boolean).join('\n');
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* One queue row. The two kinds of request READ DIFFERENTLY on purpose
|
|
184
|
+
* even though the server models both as a question awaiting the
|
|
185
|
+
* reporter: "somebody asked about your report" and "this is fixed,
|
|
186
|
+
* can you confirm it in play" are different jobs, and a play-tester
|
|
187
|
+
* skimming a list should be able to tell at a glance which one they
|
|
188
|
+
* are being asked for.
|
|
189
|
+
*/
|
|
190
|
+
renderItem(it, n, opts) {
|
|
191
|
+
// THE SERVER SAYS WHICH KIND; the status heuristic is only a
|
|
192
|
+
// fallback for a server too old to say. Deriving it from status was
|
|
193
|
+
// a client guess, and it guessed wrong for the obvious case: a
|
|
194
|
+
// clarifying question about an item that happens to be in-progress
|
|
195
|
+
// is still a question, not a request to go confirm a fix.
|
|
196
|
+
const validation = it.kind
|
|
197
|
+
? it.kind === 'validation'
|
|
198
|
+
: it.status === 'complete' || it.status === 'in-review';
|
|
199
|
+
const lead = validation
|
|
200
|
+
? `{cyan-fg}CAN YOU CONFIRM THIS IN PLAY?{/cyan-fg}`
|
|
201
|
+
: `{cyan-fg}QUESTION ABOUT YOUR REPORT{/cyan-fg}`;
|
|
202
|
+
const asker = it.asked?.by ? ` -- ${it.asked.by}` : '';
|
|
203
|
+
const yours = opts.full ? it.text : truncate(it.text, 72);
|
|
204
|
+
// optionMark, not a hand-rolled "1.", so this list sits in the same
|
|
205
|
+
// gutter as the exits, the shelves and the jobs board -- and so it
|
|
206
|
+
// keeps the promise that mark carries: a numbered row means the
|
|
207
|
+
// number works, and this one is resolved by the same takeIndex.
|
|
208
|
+
const rows = [`${optionMark(n)}${lead}${asker}`];
|
|
209
|
+
// `asked` is OPTIONAL on the wire. A review item should always have
|
|
210
|
+
// one -- and "should always" is how a render throws in front of a
|
|
211
|
+
// player. An item that arrives without one still lists, still
|
|
212
|
+
// numbers, and still takes an answer.
|
|
213
|
+
if (it.asked?.text)
|
|
214
|
+
rows.push(` {white-fg}"${it.asked.text}"{/white-fg}`);
|
|
215
|
+
rows.push(` {white-fg}your report: ${yours}{/white-fg}`);
|
|
216
|
+
// What changed, when the ask is to confirm that it did.
|
|
217
|
+
if (validation && it.commits?.length) {
|
|
218
|
+
rows.push(` {white-fg}fixed by: ${it.commits.slice(0, 3).join(', ')}{/white-fg}`);
|
|
219
|
+
}
|
|
220
|
+
return rows.join('\n');
|
|
221
|
+
}
|
|
78
222
|
async list(statusArg) {
|
|
79
223
|
let status;
|
|
80
224
|
if (statusArg) {
|
|
@@ -85,6 +229,8 @@ export class BacklogCommand extends Command {
|
|
|
85
229
|
status = wanted;
|
|
86
230
|
}
|
|
87
231
|
const { outcome, items } = await fetchBacklog(status);
|
|
232
|
+
// A real call classifies the account for free -- no second request.
|
|
233
|
+
noteBacklogOutcome(outcome);
|
|
88
234
|
if (outcome !== 'ok' || !items)
|
|
89
235
|
return this.explain(outcome);
|
|
90
236
|
if (items.length === 0) {
|
|
@@ -130,6 +276,10 @@ export class BacklogCommand extends Command {
|
|
|
130
276
|
switch (status) {
|
|
131
277
|
case 'complete': return '{green-fg}[done]{/green-fg}';
|
|
132
278
|
case 'in-progress': return '{cyan-fg}[wip] {/cyan-fg}';
|
|
279
|
+
// Fixed, and waiting on the reporter to confirm it in play. It
|
|
280
|
+
// used to fall through to the default and read "[open]" -- an
|
|
281
|
+
// item awaiting your word shown as one nobody had touched.
|
|
282
|
+
case 'in-review': return '{cyan-fg}[you?] {/cyan-fg}';
|
|
133
283
|
case 'wont-fix': return '{cyan-fg}[no] {/cyan-fg}';
|
|
134
284
|
default: return '{yellow-fg}[open]{/yellow-fg}';
|
|
135
285
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/backlog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EACL,aAAa,EAAE,YAAY,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/backlog.ts"],"names":[],"mappings":"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"}
|