briyah 1.1.8 → 1.2.1
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/data/common/config/markup +1 -1
- package/data/common/config/model_prices.json +3775 -653
- package/data/common/prompts/character/create_character.json +33 -29
- package/data/common/prompts/character/create_character.prompt +13 -2
- package/data/common/prompts/character/create_user_character.json +32 -28
- package/data/common/prompts/character/create_user_character.prompt +13 -2
- package/data/common/prompts/character/progress_character.json +22 -18
- package/data/common/prompts/character/progress_character.prompt +6 -2
- package/data/common/prompts/illustrator/describe_character.prompt +31 -0
- package/data/common/prompts/illustrator/describe_scene.json +19 -1
- package/data/common/prompts/illustrator/describe_scene.prompt +2 -1
- package/data/common/prompts/narrator/perceive.prompt +96 -35
- package/data/common/prompts/story_moderator/moderate.json +33 -7
- package/data/common/prompts/story_moderator/moderate.prompt +166 -20
- package/dist-sdk/server/src/ai/LLM/anthropic.service.d.ts +5 -2
- package/dist-sdk/server/src/ai/LLM/anthropic.service.js +27 -15
- package/dist-sdk/server/src/ai/LLM/base-ai.service.d.ts +6 -2
- package/dist-sdk/server/src/ai/LLM/base-ai.service.js +20 -10
- package/dist-sdk/server/src/ai/LLM/deepseek.service.js +10 -0
- package/dist-sdk/server/src/ai/LLM/googleai.service.js +11 -8
- package/dist-sdk/server/src/ai/LLM/grok.service.js +8 -5
- package/dist-sdk/server/src/ai/LLM/openai.service.js +12 -11
- package/dist-sdk/server/src/ai/LLM/together.service.js +9 -6
- package/dist-sdk/server/src/ai/agent-factory.d.ts +5 -3
- package/dist-sdk/server/src/ai/agent-factory.js +6 -4
- package/dist-sdk/server/src/ai/agent-store.service.d.ts +5 -3
- package/dist-sdk/server/src/ai/agent-store.service.js +15 -15
- package/dist-sdk/server/src/ai/agent.d.ts +9 -6
- package/dist-sdk/server/src/ai/agent.js +22 -6
- package/dist-sdk/server/src/ai/ai-debug-logger.d.ts +10 -0
- package/dist-sdk/server/src/ai/ai-debug-logger.js +82 -0
- package/dist-sdk/server/src/ai/artifact.module.js +2 -2
- package/dist-sdk/server/src/ai/artifact.service.d.ts +3 -3
- package/dist-sdk/server/src/ai/artifact.service.js +6 -6
- package/dist-sdk/server/src/ai/attached-file.module.js +2 -2
- package/dist-sdk/server/src/ai/attached-file.service.d.ts +3 -3
- package/dist-sdk/server/src/ai/attached-file.service.js +6 -6
- package/dist-sdk/server/src/app/balance.service.d.ts +3 -3
- package/dist-sdk/server/src/app/balance.service.js +7 -7
- package/dist-sdk/server/src/app/transaction.service.d.ts +3 -3
- package/dist-sdk/server/src/app/transaction.service.js +4 -4
- package/dist-sdk/server/src/app/user-service-factory.d.ts +3 -1
- package/dist-sdk/server/src/app/user-service-factory.js +18 -14
- package/dist-sdk/server/src/app/user-service-manager.d.ts +1 -3
- package/dist-sdk/server/src/app.service.d.ts +3 -3
- package/dist-sdk/server/src/app.service.js +30 -30
- package/dist-sdk/server/src/config/env-config.d.ts +3 -0
- package/dist-sdk/server/src/config/env-config.js +2 -0
- package/dist-sdk/server/src/config/user-paths.module.d.ts +2 -0
- package/dist-sdk/server/src/config/{configuration.module.js → user-paths.module.js} +8 -8
- package/dist-sdk/server/src/config/{configuration.service.d.ts → user-paths.service.d.ts} +1 -1
- package/dist-sdk/server/src/config/{configuration.service.js → user-paths.service.js} +3 -3
- package/dist-sdk/server/src/room/message.d.ts +1 -1
- package/dist-sdk/server/src/room/message.js +1 -1
- package/dist-sdk/server/src/room/room-store.module.js +2 -2
- package/dist-sdk/server/src/room/room-store.service.d.ts +3 -3
- package/dist-sdk/server/src/room/room-store.service.js +6 -6
- package/dist-sdk/server/src/room/room.d.ts +1 -0
- package/dist-sdk/server/src/room/room.js +43 -19
- package/dist-sdk/server/src/sdk/briyah-config.d.ts +2 -1
- package/dist-sdk/server/src/sdk/briyah-config.js +4 -0
- package/dist-sdk/server/src/sdk/briyah.js +1 -1
- package/dist-sdk/server/src/story/story-store.service.d.ts +3 -3
- package/dist-sdk/server/src/story/story-store.service.js +6 -6
- package/dist-sdk/server/src/story/story.service.d.ts +10 -3
- package/dist-sdk/server/src/story/story.service.js +233 -99
- package/dist-sdk/shared/types/app.types.d.ts +1 -0
- package/docs/assets/hierarchy.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/Agent.html +16 -16
- package/docs/classes/Briyah.html +12 -12
- package/docs/classes/BriyahConfigService.html +5 -5
- package/docs/classes/Room.html +24 -24
- package/docs/classes/RoomMessage.html +11 -11
- package/docs/enums/MessageAction.html +3 -3
- package/docs/hierarchy.html +1 -1
- package/docs/index.html +2 -2
- package/docs/interfaces/AgentInfo.html +2 -2
- package/docs/interfaces/AgentMessagesResponse.html +2 -2
- package/docs/interfaces/AppService.html +154 -154
- package/docs/interfaces/Artifact.html +3 -3
- package/docs/interfaces/ArtifactMetadata.html +2 -2
- package/docs/interfaces/AttachDocumentResponse.html +2 -2
- package/docs/interfaces/BriyahConfigOptions.html +7 -7
- package/docs/interfaces/ChapterInfo.html +2 -2
- package/docs/interfaces/Character.html +2 -2
- package/docs/interfaces/CreateAgentResponse.html +2 -2
- package/docs/interfaces/CreateRoomResponse.html +2 -2
- package/docs/interfaces/CreateStoryResponse.html +2 -2
- package/docs/interfaces/FileList.html +2 -2
- package/docs/interfaces/LoggingOptions.html +10 -6
- package/docs/interfaces/Message.html +2 -2
- package/docs/interfaces/ModelInfo.html +2 -2
- package/docs/interfaces/PreparedPromptResponse.html +2 -2
- package/docs/interfaces/ProcessTextResponse.html +2 -2
- package/docs/interfaces/PromptFile.html +2 -2
- package/docs/interfaces/PromptFileContent.html +2 -2
- package/docs/interfaces/PromptFilesResponse.html +2 -2
- package/docs/interfaces/PromptFolder.html +2 -2
- package/docs/interfaces/PromptFoldersResponse.html +2 -2
- package/docs/interfaces/RoomDetails.html +2 -2
- package/docs/interfaces/RoomInfo.html +2 -2
- package/docs/interfaces/RoomMessagesResponse.html +2 -2
- package/docs/interfaces/StoryErrorEvent.html +3 -3
- package/docs/interfaces/StoryIdea.html +2 -2
- package/docs/interfaces/StoryInfo.html +3 -3
- package/docs/interfaces/StoryIntroduceCharacterEvent.html +3 -3
- package/docs/interfaces/StoryProgressChapterEvent.html +3 -3
- package/docs/interfaces/StoryState.html +5 -5
- package/docs/interfaces/StoryStateEvent.html +3 -3
- package/docs/interfaces/Transaction.html +2 -2
- package/docs/interfaces/TransactionHistoryResponse.html +2 -2
- package/docs/modules.html +1 -1
- package/docs/types/PromptScope.html +1 -1
- package/package.json +2 -1
- package/dist-sdk/server/src/config/configuration.module.d.ts +0 -2
|
@@ -201,19 +201,14 @@ class Room {
|
|
|
201
201
|
let normalizedAction;
|
|
202
202
|
if (typeof response !== 'object') {
|
|
203
203
|
needsModeration = true;
|
|
204
|
-
const
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
.join('\n')
|
|
212
|
-
.trimStart();
|
|
213
|
-
break;
|
|
214
|
-
}
|
|
204
|
+
const parsed = Room.extractPreamble(response);
|
|
205
|
+
if (parsed) {
|
|
206
|
+
situation = parsed.preamble;
|
|
207
|
+
content = parsed.content;
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
situation = undefined;
|
|
215
211
|
}
|
|
216
|
-
situation = situation || undefined;
|
|
217
212
|
}
|
|
218
213
|
else if (!response.content) {
|
|
219
214
|
needsModeration = true;
|
|
@@ -244,11 +239,31 @@ class Room {
|
|
|
244
239
|
}
|
|
245
240
|
situation = response.situation || undefined;
|
|
246
241
|
const msg = new message_1.RoomMessage(agent.agentNickname, normalizedAction, response.content, targets, response.name, situation);
|
|
247
|
-
if (
|
|
248
|
-
msg.
|
|
242
|
+
if (response.changes && typeof response.changes === 'object') {
|
|
243
|
+
msg.changes = response.changes;
|
|
249
244
|
}
|
|
250
245
|
return msg;
|
|
251
246
|
}
|
|
247
|
+
static extractPreamble(response) {
|
|
248
|
+
const lines = response.split('\n');
|
|
249
|
+
let i = 0;
|
|
250
|
+
while (i < lines.length && lines[i].trim() === '')
|
|
251
|
+
i++;
|
|
252
|
+
const tagLineRe = /^\s*<\w+>[\s\S]*?<\/\w+>\s*$/;
|
|
253
|
+
if (i >= lines.length || !tagLineRe.test(lines[i]))
|
|
254
|
+
return null;
|
|
255
|
+
const preambleLines = [];
|
|
256
|
+
let j = i;
|
|
257
|
+
while (j < lines.length && tagLineRe.test(lines[j])) {
|
|
258
|
+
preambleLines.push(lines[j].trim());
|
|
259
|
+
j++;
|
|
260
|
+
}
|
|
261
|
+
const preamble = preambleLines.join('\n');
|
|
262
|
+
if (j < lines.length && lines[j].trim() === '')
|
|
263
|
+
j++;
|
|
264
|
+
const content = lines.slice(j).join('\n').trimStart();
|
|
265
|
+
return { preamble, content };
|
|
266
|
+
}
|
|
252
267
|
static coerceMessageAction(raw) {
|
|
253
268
|
if (typeof raw !== 'string')
|
|
254
269
|
return undefined;
|
|
@@ -324,6 +339,13 @@ class Room {
|
|
|
324
339
|
async moderate(moderatorAgent, message, onResponse) {
|
|
325
340
|
const humanAgent = this.getAgents().find((agent) => agent.isControlledByHuman);
|
|
326
341
|
const humanAgentName = humanAgent ? humanAgent.agentNickname : 'Player';
|
|
342
|
+
const visibleArtifacts = this.getVisibleArtifacts(moderatorAgent.agentNickname)
|
|
343
|
+
.map((a) => `${a.name} (by ${a.creator}): ${a.body}`)
|
|
344
|
+
.join('\n\n');
|
|
345
|
+
const invisibleArtifactNames = this.getArtifacts()
|
|
346
|
+
.filter((a) => !this.getVisibleArtifacts(moderatorAgent.agentNickname).includes(a))
|
|
347
|
+
.map((a) => a.name)
|
|
348
|
+
.join(', ');
|
|
327
349
|
const variables = {
|
|
328
350
|
agentName: moderatorAgent.agentName,
|
|
329
351
|
agentNickname: moderatorAgent.agentNickname || moderatorAgent.agentName,
|
|
@@ -335,6 +357,8 @@ class Room {
|
|
|
335
357
|
scenario: this.getGoal(),
|
|
336
358
|
humanAgent: humanAgent,
|
|
337
359
|
humanAgentName: humanAgentName,
|
|
360
|
+
visibleArtifacts: visibleArtifacts,
|
|
361
|
+
invisibleArtifactNames: invisibleArtifactNames,
|
|
338
362
|
};
|
|
339
363
|
let prompt = `
|
|
340
364
|
Current Situation: ${this.getSituation()}
|
|
@@ -648,11 +672,11 @@ Recent Message: ${message.getContent()}
|
|
|
648
672
|
originalMessage.content = content;
|
|
649
673
|
}
|
|
650
674
|
if (this.checkAgentNicknameMatch(originalMessage.sender, responderNickname)) {
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
675
|
+
logger_1.logger.warn(`Moderator routed message to sender: ${originalMessage.sender}. Reassigning responder to room leader: ${roomLeaderName}`);
|
|
676
|
+
responderNickname = roomLeaderName;
|
|
677
|
+
moderatorMessage.name = roomLeaderName;
|
|
678
|
+
if (!targets.includes(roomLeaderName))
|
|
679
|
+
targets.push(roomLeaderName);
|
|
656
680
|
}
|
|
657
681
|
logger_1.logger.log(`Moderator routing: sender=${originalMessage.sender} action=${moderatorMessage.action}, name=${responderNickname}, targets=${targets.join(', ')}`);
|
|
658
682
|
if (moderatorMessage.action === app_types_1.MessageAction.RELAY) {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { IConfigService } from '../
|
|
1
|
+
import { IConfigService } from '../config/env-config';
|
|
2
2
|
export interface LoggingOptions {
|
|
3
3
|
enabled?: boolean;
|
|
4
4
|
logFile?: string;
|
|
5
5
|
console?: boolean;
|
|
6
6
|
level?: 'debug' | 'log' | 'warn' | 'error';
|
|
7
|
+
aiDebug?: boolean;
|
|
7
8
|
}
|
|
8
9
|
export interface BriyahConfigOptions {
|
|
9
10
|
dataPath?: string;
|
|
@@ -23,6 +23,10 @@ class BriyahConfigService {
|
|
|
23
23
|
this.env.DEFAULT_MARKUP_RATE = String(options.markupRate);
|
|
24
24
|
process.env.DEFAULT_MARKUP_RATE = String(options.markupRate);
|
|
25
25
|
}
|
|
26
|
+
if (options?.logging?.aiDebug) {
|
|
27
|
+
this.env.AI_DEBUG = 'true';
|
|
28
|
+
process.env.AI_DEBUG = 'true';
|
|
29
|
+
}
|
|
26
30
|
}
|
|
27
31
|
get(key, defaultValue) {
|
|
28
32
|
const value = this.env[key];
|
|
@@ -115,7 +115,7 @@ class Briyah {
|
|
|
115
115
|
this.balanceMessageService = new balance_message_service_1.BalanceMessageService();
|
|
116
116
|
this.publishedAgentsService = new published_agents_service_1.PublishedAgentsService();
|
|
117
117
|
this.publishedRoomsService = new published_rooms_service_1.PublishedRoomsService();
|
|
118
|
-
this.userServiceFactory = new user_service_factory_1.UserServiceFactory(this.aiFactoryService, this.agentMessageService, this.roomMessageService, this.storyProgressService, this.storyMessageService, this.publishedAgentsService, this.publishedRoomsService, this.balanceMessageService);
|
|
118
|
+
this.userServiceFactory = new user_service_factory_1.UserServiceFactory(this.aiFactoryService, this.agentMessageService, this.roomMessageService, this.storyProgressService, this.storyMessageService, this.publishedAgentsService, this.publishedRoomsService, this.balanceMessageService, this.configService);
|
|
119
119
|
this.userServiceManager = new user_service_manager_1.UserServiceManager(this.userServiceFactory, this.configService);
|
|
120
120
|
}
|
|
121
121
|
async init() {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UserPathsService } from '../config/user-paths.service';
|
|
2
2
|
import { StoryInfo, ChapterInfo } from '../../../shared/types/app.types';
|
|
3
3
|
import { RoomMessage } from '../room/message';
|
|
4
4
|
import { RoomStoreService } from '../room/room-store.service';
|
|
5
5
|
export declare class StoryStoreService {
|
|
6
|
-
private readonly
|
|
6
|
+
private readonly userPaths;
|
|
7
7
|
private readonly roomStore;
|
|
8
8
|
private readonly storiesDir;
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(userPaths: UserPathsService, roomStore: RoomStoreService);
|
|
10
10
|
createStory(name: string): StoryInfo;
|
|
11
11
|
getStory(id: string): StoryInfo | null;
|
|
12
12
|
updateStoryMetadata(id: string, storyInfo: StoryInfo): boolean;
|
|
@@ -45,19 +45,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
45
45
|
exports.StoryStoreService = void 0;
|
|
46
46
|
const common_1 = require("@nestjs/common");
|
|
47
47
|
const crypto_1 = require("crypto");
|
|
48
|
-
const
|
|
48
|
+
const user_paths_service_1 = require("../config/user-paths.service");
|
|
49
49
|
const fs = __importStar(require("fs"));
|
|
50
50
|
const path = __importStar(require("path"));
|
|
51
51
|
const room_store_service_1 = require("../room/room-store.service");
|
|
52
52
|
const logger_1 = require("../common/logger");
|
|
53
53
|
let StoryStoreService = class StoryStoreService {
|
|
54
|
-
|
|
54
|
+
userPaths;
|
|
55
55
|
roomStore;
|
|
56
56
|
storiesDir;
|
|
57
|
-
constructor(
|
|
58
|
-
this.
|
|
57
|
+
constructor(userPaths, roomStore) {
|
|
58
|
+
this.userPaths = userPaths;
|
|
59
59
|
this.roomStore = roomStore;
|
|
60
|
-
this.storiesDir = path.join(this.
|
|
60
|
+
this.storiesDir = path.join(this.userPaths.getUserDataDir(), 'stories');
|
|
61
61
|
if (!fs.existsSync(this.storiesDir)) {
|
|
62
62
|
fs.mkdirSync(this.storiesDir, { recursive: true });
|
|
63
63
|
}
|
|
@@ -426,6 +426,6 @@ let StoryStoreService = class StoryStoreService {
|
|
|
426
426
|
exports.StoryStoreService = StoryStoreService;
|
|
427
427
|
exports.StoryStoreService = StoryStoreService = __decorate([
|
|
428
428
|
(0, common_1.Injectable)(),
|
|
429
|
-
__metadata("design:paramtypes", [
|
|
429
|
+
__metadata("design:paramtypes", [user_paths_service_1.UserPathsService,
|
|
430
430
|
room_store_service_1.RoomStoreService])
|
|
431
431
|
], StoryStoreService);
|
|
@@ -7,7 +7,7 @@ import { Room } from '../room/room';
|
|
|
7
7
|
import { RoomFactory } from '../room/room-factory';
|
|
8
8
|
import { RoomStoreService } from '../room/room-store.service';
|
|
9
9
|
import { StoryInfo, StoryState, Character } from '../../../shared/types/app.types';
|
|
10
|
-
import {
|
|
10
|
+
import { UserPathsService } from '../config/user-paths.service';
|
|
11
11
|
import { ArtifactService } from '../ai/artifact.service';
|
|
12
12
|
import { Readable } from 'stream';
|
|
13
13
|
export declare class StoryService {
|
|
@@ -16,12 +16,12 @@ export declare class StoryService {
|
|
|
16
16
|
private readonly roomStore;
|
|
17
17
|
private readonly progressService;
|
|
18
18
|
private readonly messageService;
|
|
19
|
-
private readonly
|
|
19
|
+
private readonly userPaths;
|
|
20
20
|
private readonly agentFactory;
|
|
21
21
|
private readonly roomFactory;
|
|
22
22
|
private readonly storyArtifactServices;
|
|
23
23
|
private readonly chaptersInProgress;
|
|
24
|
-
constructor(storyStore: StoryStoreService, agentStore: AgentStoreService, roomStore: RoomStoreService, progressService: StoryProgressService, messageService: StoryMessageService,
|
|
24
|
+
constructor(storyStore: StoryStoreService, agentStore: AgentStoreService, roomStore: RoomStoreService, progressService: StoryProgressService, messageService: StoryMessageService, userPaths: UserPathsService, agentFactory: AgentFactory, roomFactory: RoomFactory);
|
|
25
25
|
getProgressEmitter(storyId: string): import("node:events")<any>;
|
|
26
26
|
getMessageEmitter(storyId: string): import("node:events")<any>;
|
|
27
27
|
cleanupProgressEmitter(storyId: string): void;
|
|
@@ -77,14 +77,21 @@ export declare class StoryService {
|
|
|
77
77
|
private compactAgentHistories;
|
|
78
78
|
private extractMarkdownContent;
|
|
79
79
|
private updatePlotPlan;
|
|
80
|
+
private publishInventoryArtifact;
|
|
81
|
+
private applyInventoryUpdates;
|
|
80
82
|
private updateCharacterProfiles;
|
|
81
83
|
private getImageModelConfig;
|
|
84
|
+
private getImagePropertiesForAgent;
|
|
82
85
|
private createArtistAgent;
|
|
83
86
|
private generateCharacterPortrait;
|
|
87
|
+
private generatePortraitForName;
|
|
84
88
|
private updateCharacterPortrait;
|
|
85
89
|
private generateSceneIllustration;
|
|
90
|
+
private ensureMinorCharacterPortraits;
|
|
86
91
|
private generateSceneReference;
|
|
87
92
|
private generateStoryImage;
|
|
93
|
+
private parseNarratorPreamble;
|
|
94
|
+
private formatDisplaySituation;
|
|
88
95
|
private updateStorySituation;
|
|
89
96
|
generateStoryMarkdown(storyId: string): Promise<string>;
|
|
90
97
|
exportStoryData(storyId: string): Promise<{
|