@maka/maka-cli 5.31.0 → 5.33.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/game.d.ts +12 -3
- package/bundle/typescript/src/commands/game/sideQuest/game.js +28 -10
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.d.ts +10 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js +0 -7
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js.map +1 -1
- package/bundle/typescript/src/templates/meteor/github/workflows/deploy.yaml +43 -0
- package/bundle/typescript/src/tools/ai/ai.class.d.ts +19 -9
- package/bundle/typescript/src/tools/ai/ai.class.js +65 -18
- package/bundle/typescript/src/tools/ai/ai.class.js.map +1 -1
- package/bundle/typescript/src/tools/https/https.class.d.ts +14 -0
- package/bundle/typescript/src/tools/https/https.class.js +19 -0
- package/bundle/typescript/src/tools/https/https.class.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maka/maka-cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.33.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.",
|
|
@@ -92,7 +92,9 @@ export default class Game {
|
|
|
92
92
|
* that changed while a job was mid-generation (see draftNextScene). */
|
|
93
93
|
livePartyFingerprint(): string;
|
|
94
94
|
/** The crew-change rule (player ruling): any roster change voids the
|
|
95
|
-
* standing quote.
|
|
95
|
+
* standing quote. The SERVER draft survives (keepServerDraft) -- if
|
|
96
|
+
* the same table re-forms, the next call gets the same job back.
|
|
97
|
+
* Returns the line to show, or ''. */
|
|
96
98
|
scrapPendingRunForCrewChange(): string;
|
|
97
99
|
performedThisCycle: boolean;
|
|
98
100
|
private _runHeat;
|
|
@@ -459,8 +461,15 @@ export default class Game {
|
|
|
459
461
|
* through here so the remote side is never left holding a dead line.
|
|
460
462
|
*/
|
|
461
463
|
hangUpCrewChannel(player: Player): string | undefined;
|
|
462
|
-
/** Trash the offer wholesale ("decline", and any future fixer snub).
|
|
463
|
-
|
|
464
|
+
/** Trash the offer wholesale ("decline", and any future fixer snub).
|
|
465
|
+
* keepServerDraft (crew-change scraps, player ruling 2026-08-24):
|
|
466
|
+
* the LOCAL quote dies but the server-side draft stays standing --
|
|
467
|
+
* createSession is fingerprint-keyed, so the same party re-forming
|
|
468
|
+
* gets the same job back instead of paying for a regeneration. An
|
|
469
|
+
* explicit DECLINE never passes it: a rejected job stays rejected. */
|
|
470
|
+
clearPendingRun(opts?: {
|
|
471
|
+
keepServerDraft?: boolean;
|
|
472
|
+
}): void;
|
|
464
473
|
get pendingRun(): ISceneSeedJson | undefined;
|
|
465
474
|
get pendingRunTier(): number | undefined;
|
|
466
475
|
currentClient?: {
|
|
@@ -229,11 +229,13 @@ export default class Game {
|
|
|
229
229
|
.join(',');
|
|
230
230
|
}
|
|
231
231
|
/** The crew-change rule (player ruling): any roster change voids the
|
|
232
|
-
* standing quote.
|
|
232
|
+
* standing quote. The SERVER draft survives (keepServerDraft) -- if
|
|
233
|
+
* the same table re-forms, the next call gets the same job back.
|
|
234
|
+
* Returns the line to show, or ''. */
|
|
233
235
|
scrapPendingRunForCrewChange() {
|
|
234
236
|
if (!this._pendingRunSeed)
|
|
235
237
|
return '';
|
|
236
|
-
this.clearPendingRun();
|
|
238
|
+
this.clearPendingRun({ keepServerDraft: true });
|
|
237
239
|
return `\nThe standing job was quoted for a different crew -- ${FIXER_NAME} needs a fresh call.`;
|
|
238
240
|
}
|
|
239
241
|
// PERFORMANCE's busking gate (commands/perform.ts): one set per job
|
|
@@ -1358,15 +1360,22 @@ export default class Game {
|
|
|
1358
1360
|
}
|
|
1359
1361
|
return channel.playerName;
|
|
1360
1362
|
}
|
|
1361
|
-
/** Trash the offer wholesale ("decline", and any future fixer snub).
|
|
1362
|
-
|
|
1363
|
+
/** Trash the offer wholesale ("decline", and any future fixer snub).
|
|
1364
|
+
* keepServerDraft (crew-change scraps, player ruling 2026-08-24):
|
|
1365
|
+
* the LOCAL quote dies but the server-side draft stays standing --
|
|
1366
|
+
* createSession is fingerprint-keyed, so the same party re-forming
|
|
1367
|
+
* gets the same job back instead of paying for a regeneration. An
|
|
1368
|
+
* explicit DECLINE never passes it: a rejected job stays rejected. */
|
|
1369
|
+
clearPendingRun(opts) {
|
|
1363
1370
|
if (this.pendingSharedRun) {
|
|
1364
|
-
// The server-side draft dies with the local offer.
|
|
1371
|
+
// The server-side draft dies with the local offer (unless kept).
|
|
1365
1372
|
const { sessionID } = this.pendingSharedRun;
|
|
1366
1373
|
this.pendingSharedRun = undefined;
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1374
|
+
if (!opts?.keepServerDraft) {
|
|
1375
|
+
void import('./utilities/shared-run.js')
|
|
1376
|
+
.then(m => m.HubLink.abortDraft(sessionID))
|
|
1377
|
+
.catch(() => undefined);
|
|
1378
|
+
}
|
|
1370
1379
|
}
|
|
1371
1380
|
this._pendingRunSeed = undefined;
|
|
1372
1381
|
this._pendingRunTier = undefined;
|
|
@@ -2162,7 +2171,7 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
2162
2171
|
return { allowed: false, message: `This job isn't finished yet.` };
|
|
2163
2172
|
}
|
|
2164
2173
|
if (!this._useAi) {
|
|
2165
|
-
return { allowed: false, message: `Continuing needs an AI-generated job, which requires an AI provider to be configured (OPENAI_API_KEY or ANTHROPIC_API_KEY).` };
|
|
2174
|
+
return { allowed: false, message: `Continuing needs an AI-generated job, which requires an AI provider to be configured (OPENAI_API_KEY or ANTHROPIC_API_KEY) -- or a maka-cli.com login with server AI access (\`maka login\`).` };
|
|
2166
2175
|
}
|
|
2167
2176
|
return { allowed: true };
|
|
2168
2177
|
}
|
|
@@ -2530,7 +2539,16 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
2530
2539
|
this._pendingRunTier = undefined;
|
|
2531
2540
|
this._pendingRide = Game.RIDE_POOL[Math.floor(Math.random() * Game.RIDE_POOL.length)];
|
|
2532
2541
|
this.pendingRunAccepted = false;
|
|
2533
|
-
|
|
2542
|
+
// Off-street seat-mates were dropped from tonight's quote by the
|
|
2543
|
+
// server (their seats survive -- back on the street, back on the
|
|
2544
|
+
// job). Krow NAMES them; silence here already cost one playtest.
|
|
2545
|
+
const absentNames = (shared.absent ?? [])
|
|
2546
|
+
.map(h => this.crew.find(m => m.ghost?.owner === h)?.name ?? h);
|
|
2547
|
+
const absentNote = absentNames.length
|
|
2548
|
+
? ` "Couldn't raise ${absentNames.join(', ')} -- quoted for who answered."`
|
|
2549
|
+
: '';
|
|
2550
|
+
const reusedNote = shared.reused ? ` "Same job as before, chummer -- the client's still waiting."` : '';
|
|
2551
|
+
return `Your link pings -- 1 new message: ${FIXER_NAME}.${absentNote}${reusedNote} The crew's channel is already humming.${hint(` ("call ${FIXER_NAME}" to hear the job.)`)}`;
|
|
2534
2552
|
}
|
|
2535
2553
|
}
|
|
2536
2554
|
// Each run invents its OWN client Johnson (canon roles: the fixer
|