🌳
pt0/gamesapp/serverF/telgame/gameActionsF/giveMyselfAiPromptF.mjs
2import * as _ from 'lodash-es'
7export const giveMyselfAiPrompt = async (props) => {
8 const {existingGame, sessId, pregenFncRet} = props
9 const playerState = _.get(existingGame, ['playerStates', sessId])
10 if (!playerState) return
11 const {publicState} = playerState
13 const {myTaskName, playerAlias} = publicState
14 if (myTaskName != 'InitialPrompt') {
15 return // unavoidable race condition if user reloads/double-clicks
16 }
18 const {actionAtMs} = getReqGameActionCtx()
19 const {content: taskPrompt, model, costUsd} = pregenFncRet
21 Object.assign(publicState, {myTaskName: 'DrawDescription', gameActiveAt: actionAtMs})
22 Object.assign(playerState, {taskPrompt, assignedStackName: playerAlias})
24 const responses = [
25 { lastDescription: taskPrompt, playerAlias: getShortModelName(model), aiCostUsd: costUsd }
26 ]
27 const paperStack = /** @type {Record<string, unknown>} */ (getOrSet(existingGame, ['hiddenState', 'paperStacks', playerAlias], {}))
28 Object.assign(paperStack, {responses})
30giveMyselfAiPrompt.pregenFnc = aiTelePrompt