briyah 1.1.0 → 1.1.2

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 (239) hide show
  1. package/README.md +6 -4
  2. package/data/common/config/markup +1 -0
  3. package/data/common/config/model_prices.json +5153 -3680
  4. package/data/common/config/story_models.json +10 -2
  5. package/data/common/config/story_models_full.json +2 -2
  6. package/data/common/prompts/compact_agent.prompt +16 -0
  7. package/data/common/prompts/narrator/perceive.prompt +30 -28
  8. package/data/common/prompts/story_moderator/moderate.prompt +12 -8
  9. package/{dist → dist-sdk}/server/src/ai/LLM/anthropic.service.js +22 -12
  10. package/{dist → dist-sdk}/server/src/ai/LLM/base-ai.service.d.ts +1 -0
  11. package/{dist → dist-sdk}/server/src/ai/LLM/base-ai.service.js +8 -0
  12. package/{dist → dist-sdk}/server/src/ai/LLM/deepseek.service.d.ts +1 -0
  13. package/{dist → dist-sdk}/server/src/ai/LLM/deepseek.service.js +3 -0
  14. package/{dist → dist-sdk}/server/src/ai/LLM/fal.service.d.ts +1 -0
  15. package/{dist → dist-sdk}/server/src/ai/LLM/fal.service.js +3 -0
  16. package/{dist → dist-sdk}/server/src/ai/LLM/grok.service.d.ts +1 -0
  17. package/{dist → dist-sdk}/server/src/ai/LLM/grok.service.js +3 -0
  18. package/{dist → dist-sdk}/server/src/ai/LLM/together.service.d.ts +1 -0
  19. package/{dist → dist-sdk}/server/src/ai/LLM/together.service.js +3 -0
  20. package/{dist → dist-sdk}/server/src/ai/agent.d.ts +7 -0
  21. package/{dist → dist-sdk}/server/src/ai/agent.js +32 -0
  22. package/{dist → dist-sdk}/server/src/ai/ai-factory.module.js +0 -2
  23. package/{dist → dist-sdk}/server/src/ai/ai-factory.service.d.ts +1 -3
  24. package/{dist → dist-sdk}/server/src/ai/ai-factory.service.js +1 -8
  25. package/dist-sdk/server/src/ai/model_prices.d.ts +3 -0
  26. package/{dist → dist-sdk}/server/src/ai/model_prices.js +19 -1
  27. package/{dist → dist-sdk}/server/src/ai/published-agents.service.js +1 -1
  28. package/{dist → dist-sdk}/server/src/app/stripe.controller.d.ts +3 -0
  29. package/{dist → dist-sdk}/server/src/app/stripe.controller.js +13 -0
  30. package/{dist → dist-sdk}/server/src/app/stripe.service.d.ts +4 -0
  31. package/{dist → dist-sdk}/server/src/app/stripe.service.js +16 -0
  32. package/{dist → dist-sdk}/server/src/app.controller.d.ts +1 -0
  33. package/{dist → dist-sdk}/server/src/app.controller.js +41 -0
  34. package/{dist → dist-sdk}/server/src/app.service.d.ts +1 -0
  35. package/{dist → dist-sdk}/server/src/app.service.js +7 -0
  36. package/{dist → dist-sdk}/server/src/auth/users.service.js +1 -1
  37. package/{dist → dist-sdk}/server/src/config/configuration.service.d.ts +0 -2
  38. package/{dist → dist-sdk}/server/src/config/configuration.service.js +1 -9
  39. package/{dist → dist-sdk}/server/src/room/published-rooms.service.js +1 -1
  40. package/{dist → dist-sdk}/server/src/room/room.js +1 -0
  41. package/{dist → dist-sdk}/server/src/sdk/briyah-config.js +2 -2
  42. package/{dist → dist-sdk}/server/src/sdk/briyah.js +7 -9
  43. package/{dist → dist-sdk}/server/src/story/story-message.service.js +24 -32
  44. package/{dist → dist-sdk}/server/src/story/story.service.d.ts +1 -1
  45. package/{dist → dist-sdk}/server/src/story/story.service.js +103 -76
  46. package/{dist → dist-sdk}/shared/types/app.types.d.ts +1 -0
  47. package/docs/assets/hierarchy.js +1 -1
  48. package/docs/assets/search.js +1 -1
  49. package/docs/classes/Agent.html +18 -13
  50. package/docs/classes/Briyah.html +12 -12
  51. package/docs/classes/BriyahConfigService.html +5 -5
  52. package/docs/classes/Room.html +23 -23
  53. package/docs/classes/RoomMessage.html +10 -10
  54. package/docs/enums/MessageAction.html +3 -3
  55. package/docs/hierarchy.html +1 -1
  56. package/docs/index.html +7 -6
  57. package/docs/interfaces/AgentInfo.html +2 -2
  58. package/docs/interfaces/AgentMessagesResponse.html +2 -2
  59. package/docs/interfaces/AppService.html +150 -145
  60. package/docs/interfaces/Artifact.html +3 -3
  61. package/docs/interfaces/ArtifactMetadata.html +2 -2
  62. package/docs/interfaces/AttachDocumentResponse.html +2 -2
  63. package/docs/interfaces/BriyahConfigOptions.html +6 -6
  64. package/docs/interfaces/ChapterInfo.html +2 -2
  65. package/docs/interfaces/Character.html +2 -2
  66. package/docs/interfaces/CreateAgentResponse.html +2 -2
  67. package/docs/interfaces/CreateRoomResponse.html +2 -2
  68. package/docs/interfaces/CreateStoryResponse.html +2 -2
  69. package/docs/interfaces/FileList.html +2 -2
  70. package/docs/interfaces/LoggingOptions.html +5 -5
  71. package/docs/interfaces/Message.html +2 -2
  72. package/docs/interfaces/ModelInfo.html +2 -2
  73. package/docs/interfaces/PreparedPromptResponse.html +2 -2
  74. package/docs/interfaces/ProcessTextResponse.html +2 -2
  75. package/docs/interfaces/PromptFile.html +2 -2
  76. package/docs/interfaces/PromptFileContent.html +2 -2
  77. package/docs/interfaces/PromptFilesResponse.html +2 -2
  78. package/docs/interfaces/PromptFolder.html +2 -2
  79. package/docs/interfaces/PromptFoldersResponse.html +2 -2
  80. package/docs/interfaces/RoomDetails.html +2 -2
  81. package/docs/interfaces/RoomInfo.html +2 -2
  82. package/docs/interfaces/RoomMessagesResponse.html +2 -2
  83. package/docs/interfaces/StoryErrorEvent.html +3 -3
  84. package/docs/interfaces/StoryIdea.html +2 -2
  85. package/docs/interfaces/StoryInfo.html +6 -2
  86. package/docs/interfaces/StoryIntroduceCharacterEvent.html +3 -3
  87. package/docs/interfaces/StoryProgressChapterEvent.html +3 -3
  88. package/docs/interfaces/StoryState.html +5 -5
  89. package/docs/interfaces/StoryStateEvent.html +3 -3
  90. package/docs/interfaces/Transaction.html +2 -2
  91. package/docs/interfaces/TransactionHistoryResponse.html +2 -2
  92. package/docs/modules.html +1 -1
  93. package/docs/types/PromptScope.html +1 -1
  94. package/package.json +8 -11
  95. package/dist/server/src/ai/LLM/vertexai.module.d.ts +0 -2
  96. package/dist/server/src/ai/LLM/vertexai.module.js +0 -21
  97. package/dist/server/src/ai/LLM/vertexai.service.d.ts +0 -17
  98. package/dist/server/src/ai/LLM/vertexai.service.js +0 -321
  99. package/dist/server/src/ai/model_prices.d.ts +0 -1
  100. /package/data/common/prompts/character/{compact_story.json → compact_agent.json} +0 -0
  101. /package/data/common/prompts/character/{compact_story.prompt → compact_agent.prompt} +0 -0
  102. /package/data/common/prompts/narrator/{compact_story.json → compact_agent.json} +0 -0
  103. /package/data/common/prompts/narrator/{compact_story.prompt → compact_agent.prompt} +0 -0
  104. /package/{dist → dist-sdk}/server/src/ai/LLM/anthropic.module.d.ts +0 -0
  105. /package/{dist → dist-sdk}/server/src/ai/LLM/anthropic.module.js +0 -0
  106. /package/{dist → dist-sdk}/server/src/ai/LLM/anthropic.service.d.ts +0 -0
  107. /package/{dist → dist-sdk}/server/src/ai/LLM/deepseek.module.d.ts +0 -0
  108. /package/{dist → dist-sdk}/server/src/ai/LLM/deepseek.module.js +0 -0
  109. /package/{dist → dist-sdk}/server/src/ai/LLM/fal.module.d.ts +0 -0
  110. /package/{dist → dist-sdk}/server/src/ai/LLM/fal.module.js +0 -0
  111. /package/{dist → dist-sdk}/server/src/ai/LLM/googleai.module.d.ts +0 -0
  112. /package/{dist → dist-sdk}/server/src/ai/LLM/googleai.module.js +0 -0
  113. /package/{dist → dist-sdk}/server/src/ai/LLM/googleai.service.d.ts +0 -0
  114. /package/{dist → dist-sdk}/server/src/ai/LLM/googleai.service.js +0 -0
  115. /package/{dist → dist-sdk}/server/src/ai/LLM/grok.module.d.ts +0 -0
  116. /package/{dist → dist-sdk}/server/src/ai/LLM/grok.module.js +0 -0
  117. /package/{dist → dist-sdk}/server/src/ai/LLM/mock.module.d.ts +0 -0
  118. /package/{dist → dist-sdk}/server/src/ai/LLM/mock.module.js +0 -0
  119. /package/{dist → dist-sdk}/server/src/ai/LLM/mock.service.d.ts +0 -0
  120. /package/{dist → dist-sdk}/server/src/ai/LLM/mock.service.js +0 -0
  121. /package/{dist → dist-sdk}/server/src/ai/LLM/openai.module.d.ts +0 -0
  122. /package/{dist → dist-sdk}/server/src/ai/LLM/openai.module.js +0 -0
  123. /package/{dist → dist-sdk}/server/src/ai/LLM/openai.service.d.ts +0 -0
  124. /package/{dist → dist-sdk}/server/src/ai/LLM/openai.service.js +0 -0
  125. /package/{dist → dist-sdk}/server/src/ai/LLM/together.module.d.ts +0 -0
  126. /package/{dist → dist-sdk}/server/src/ai/LLM/together.module.js +0 -0
  127. /package/{dist → dist-sdk}/server/src/ai/agent-config.d.ts +0 -0
  128. /package/{dist → dist-sdk}/server/src/ai/agent-config.js +0 -0
  129. /package/{dist → dist-sdk}/server/src/ai/agent-factory.d.ts +0 -0
  130. /package/{dist → dist-sdk}/server/src/ai/agent-factory.js +0 -0
  131. /package/{dist → dist-sdk}/server/src/ai/agent-message.service.d.ts +0 -0
  132. /package/{dist → dist-sdk}/server/src/ai/agent-message.service.js +0 -0
  133. /package/{dist → dist-sdk}/server/src/ai/agent-store.module.d.ts +0 -0
  134. /package/{dist → dist-sdk}/server/src/ai/agent-store.module.js +0 -0
  135. /package/{dist → dist-sdk}/server/src/ai/agent-store.service.d.ts +0 -0
  136. /package/{dist → dist-sdk}/server/src/ai/agent-store.service.js +0 -0
  137. /package/{dist → dist-sdk}/server/src/ai/ai-factory.module.d.ts +0 -0
  138. /package/{dist → dist-sdk}/server/src/ai/artifact.module.d.ts +0 -0
  139. /package/{dist → dist-sdk}/server/src/ai/artifact.module.js +0 -0
  140. /package/{dist → dist-sdk}/server/src/ai/artifact.service.d.ts +0 -0
  141. /package/{dist → dist-sdk}/server/src/ai/artifact.service.js +0 -0
  142. /package/{dist → dist-sdk}/server/src/ai/attached-file.module.d.ts +0 -0
  143. /package/{dist → dist-sdk}/server/src/ai/attached-file.module.js +0 -0
  144. /package/{dist → dist-sdk}/server/src/ai/attached-file.service.d.ts +0 -0
  145. /package/{dist → dist-sdk}/server/src/ai/attached-file.service.js +0 -0
  146. /package/{dist → dist-sdk}/server/src/ai/published-agents.service.d.ts +0 -0
  147. /package/{dist → dist-sdk}/server/src/app/balance-message.service.d.ts +0 -0
  148. /package/{dist → dist-sdk}/server/src/app/balance-message.service.js +0 -0
  149. /package/{dist → dist-sdk}/server/src/app/balance.module.d.ts +0 -0
  150. /package/{dist → dist-sdk}/server/src/app/balance.module.js +0 -0
  151. /package/{dist → dist-sdk}/server/src/app/balance.service.d.ts +0 -0
  152. /package/{dist → dist-sdk}/server/src/app/balance.service.js +0 -0
  153. /package/{dist → dist-sdk}/server/src/app/stripe.module.d.ts +0 -0
  154. /package/{dist → dist-sdk}/server/src/app/stripe.module.js +0 -0
  155. /package/{dist → dist-sdk}/server/src/app/transaction.service.d.ts +0 -0
  156. /package/{dist → dist-sdk}/server/src/app/transaction.service.js +0 -0
  157. /package/{dist → dist-sdk}/server/src/app/user-service-factory.d.ts +0 -0
  158. /package/{dist → dist-sdk}/server/src/app/user-service-factory.js +0 -0
  159. /package/{dist → dist-sdk}/server/src/app/user-service-manager.d.ts +0 -0
  160. /package/{dist → dist-sdk}/server/src/app/user-service-manager.js +0 -0
  161. /package/{dist → dist-sdk}/server/src/app.module.d.ts +0 -0
  162. /package/{dist → dist-sdk}/server/src/app.module.js +0 -0
  163. /package/{dist → dist-sdk}/server/src/auth/agent-access.decorator.d.ts +0 -0
  164. /package/{dist → dist-sdk}/server/src/auth/agent-access.decorator.js +0 -0
  165. /package/{dist → dist-sdk}/server/src/auth/auth.controller.d.ts +0 -0
  166. /package/{dist → dist-sdk}/server/src/auth/auth.controller.js +0 -0
  167. /package/{dist → dist-sdk}/server/src/auth/auth.module.d.ts +0 -0
  168. /package/{dist → dist-sdk}/server/src/auth/auth.module.js +0 -0
  169. /package/{dist → dist-sdk}/server/src/auth/auth.service.d.ts +0 -0
  170. /package/{dist → dist-sdk}/server/src/auth/auth.service.js +0 -0
  171. /package/{dist → dist-sdk}/server/src/auth/dto/bot-login.dto.d.ts +0 -0
  172. /package/{dist → dist-sdk}/server/src/auth/dto/bot-login.dto.js +0 -0
  173. /package/{dist → dist-sdk}/server/src/auth/dto/password-reset.dto.d.ts +0 -0
  174. /package/{dist → dist-sdk}/server/src/auth/dto/password-reset.dto.js +0 -0
  175. /package/{dist → dist-sdk}/server/src/auth/dto/phone-login.dto.d.ts +0 -0
  176. /package/{dist → dist-sdk}/server/src/auth/dto/phone-login.dto.js +0 -0
  177. /package/{dist → dist-sdk}/server/src/auth/dto/phone-verification.dto.d.ts +0 -0
  178. /package/{dist → dist-sdk}/server/src/auth/dto/phone-verification.dto.js +0 -0
  179. /package/{dist → dist-sdk}/server/src/auth/jwt-auth.guard.d.ts +0 -0
  180. /package/{dist → dist-sdk}/server/src/auth/jwt-auth.guard.js +0 -0
  181. /package/{dist → dist-sdk}/server/src/auth/jwt.strategy.d.ts +0 -0
  182. /package/{dist → dist-sdk}/server/src/auth/jwt.strategy.js +0 -0
  183. /package/{dist → dist-sdk}/server/src/auth/phone-validation.service.d.ts +0 -0
  184. /package/{dist → dist-sdk}/server/src/auth/phone-validation.service.js +0 -0
  185. /package/{dist → dist-sdk}/server/src/auth/public.decorator.d.ts +0 -0
  186. /package/{dist → dist-sdk}/server/src/auth/public.decorator.js +0 -0
  187. /package/{dist → dist-sdk}/server/src/auth/rate-limit.service.d.ts +0 -0
  188. /package/{dist → dist-sdk}/server/src/auth/rate-limit.service.js +0 -0
  189. /package/{dist → dist-sdk}/server/src/auth/room-access.decorator.d.ts +0 -0
  190. /package/{dist → dist-sdk}/server/src/auth/room-access.decorator.js +0 -0
  191. /package/{dist → dist-sdk}/server/src/auth/scopes.decorator.d.ts +0 -0
  192. /package/{dist → dist-sdk}/server/src/auth/scopes.decorator.js +0 -0
  193. /package/{dist → dist-sdk}/server/src/auth/scopes.guard.d.ts +0 -0
  194. /package/{dist → dist-sdk}/server/src/auth/scopes.guard.js +0 -0
  195. /package/{dist → dist-sdk}/server/src/auth/session.guard.d.ts +0 -0
  196. /package/{dist → dist-sdk}/server/src/auth/session.guard.js +0 -0
  197. /package/{dist → dist-sdk}/server/src/auth/twilio.service.d.ts +0 -0
  198. /package/{dist → dist-sdk}/server/src/auth/twilio.service.js +0 -0
  199. /package/{dist → dist-sdk}/server/src/auth/users.service.d.ts +0 -0
  200. /package/{dist → dist-sdk}/server/src/common/errors.d.ts +0 -0
  201. /package/{dist → dist-sdk}/server/src/common/errors.js +0 -0
  202. /package/{dist → dist-sdk}/server/src/common/logger.d.ts +0 -0
  203. /package/{dist → dist-sdk}/server/src/common/logger.js +0 -0
  204. /package/{dist → dist-sdk}/server/src/config/configuration.module.d.ts +0 -0
  205. /package/{dist → dist-sdk}/server/src/config/configuration.module.js +0 -0
  206. /package/{dist → dist-sdk}/server/src/room/artifact-store.service.d.ts +0 -0
  207. /package/{dist → dist-sdk}/server/src/room/artifact-store.service.js +0 -0
  208. /package/{dist → dist-sdk}/server/src/room/artifact.d.ts +0 -0
  209. /package/{dist → dist-sdk}/server/src/room/artifact.js +0 -0
  210. /package/{dist → dist-sdk}/server/src/room/message.d.ts +0 -0
  211. /package/{dist → dist-sdk}/server/src/room/message.js +0 -0
  212. /package/{dist → dist-sdk}/server/src/room/published-rooms.service.d.ts +0 -0
  213. /package/{dist → dist-sdk}/server/src/room/room-config.d.ts +0 -0
  214. /package/{dist → dist-sdk}/server/src/room/room-config.js +0 -0
  215. /package/{dist → dist-sdk}/server/src/room/room-factory.d.ts +0 -0
  216. /package/{dist → dist-sdk}/server/src/room/room-factory.js +0 -0
  217. /package/{dist → dist-sdk}/server/src/room/room-message.module.d.ts +0 -0
  218. /package/{dist → dist-sdk}/server/src/room/room-message.module.js +0 -0
  219. /package/{dist → dist-sdk}/server/src/room/room-message.service.d.ts +0 -0
  220. /package/{dist → dist-sdk}/server/src/room/room-message.service.js +0 -0
  221. /package/{dist → dist-sdk}/server/src/room/room-store.module.d.ts +0 -0
  222. /package/{dist → dist-sdk}/server/src/room/room-store.module.js +0 -0
  223. /package/{dist → dist-sdk}/server/src/room/room-store.service.d.ts +0 -0
  224. /package/{dist → dist-sdk}/server/src/room/room-store.service.js +0 -0
  225. /package/{dist → dist-sdk}/server/src/room/room.d.ts +0 -0
  226. /package/{dist → dist-sdk}/server/src/sdk/briyah-config.d.ts +0 -0
  227. /package/{dist → dist-sdk}/server/src/sdk/briyah.d.ts +0 -0
  228. /package/{dist → dist-sdk}/server/src/sdk/index.d.ts +0 -0
  229. /package/{dist → dist-sdk}/server/src/sdk/index.js +0 -0
  230. /package/{dist → dist-sdk}/server/src/shared/shared.module.d.ts +0 -0
  231. /package/{dist → dist-sdk}/server/src/shared/shared.module.js +0 -0
  232. /package/{dist → dist-sdk}/server/src/story/story-message.service.d.ts +0 -0
  233. /package/{dist → dist-sdk}/server/src/story/story-progress.service.d.ts +0 -0
  234. /package/{dist → dist-sdk}/server/src/story/story-progress.service.js +0 -0
  235. /package/{dist → dist-sdk}/server/src/story/story-store.module.d.ts +0 -0
  236. /package/{dist → dist-sdk}/server/src/story/story-store.module.js +0 -0
  237. /package/{dist → dist-sdk}/server/src/story/story-store.service.d.ts +0 -0
  238. /package/{dist → dist-sdk}/server/src/story/story-store.service.js +0 -0
  239. /package/{dist → dist-sdk}/shared/types/app.types.js +0 -0
@@ -40,6 +40,11 @@ let StripeController = class StripeController {
40
40
  const result = await this.stripeService.createCheckoutSession(userId, amount, appService);
41
41
  return result;
42
42
  }
43
+ async getCheckoutSessionBalance(sessionId) {
44
+ const { userId } = await this.stripeService.getCheckoutSessionUser(sessionId);
45
+ const appService = this.userServiceManager.getAppService(userId);
46
+ return { balance: appService.getBalance() };
47
+ }
43
48
  async getStripeConfig() {
44
49
  return this.stripeService.getStripeConfig();
45
50
  }
@@ -114,6 +119,14 @@ __decorate([
114
119
  __metadata("design:paramtypes", [Object, Object]),
115
120
  __metadata("design:returntype", Promise)
116
121
  ], StripeController.prototype, "createCheckoutSession", null);
122
+ __decorate([
123
+ (0, public_decorator_1.Public)(),
124
+ (0, common_1.Get)('session/:sessionId/balance'),
125
+ __param(0, (0, common_1.Param)('sessionId')),
126
+ __metadata("design:type", Function),
127
+ __metadata("design:paramtypes", [String]),
128
+ __metadata("design:returntype", Promise)
129
+ ], StripeController.prototype, "getCheckoutSessionBalance", null);
117
130
  __decorate([
118
131
  (0, common_1.Get)('config'),
119
132
  __metadata("design:type", Function),
@@ -17,6 +17,10 @@ export declare class StripeService {
17
17
  createCheckoutSession(userId: string, amount: number, appService: AppService): Promise<{
18
18
  url: string;
19
19
  }>;
20
+ getCheckoutSessionUser(sessionId: string): Promise<{
21
+ userId: string;
22
+ paymentStatus: string;
23
+ }>;
20
24
  getStripeConfig(): {
21
25
  publishableKey: string;
22
26
  };
@@ -124,6 +124,22 @@ let StripeService = class StripeService {
124
124
  throw new common_1.InternalServerErrorException('Failed to create checkout session');
125
125
  }
126
126
  }
127
+ async getCheckoutSessionUser(sessionId) {
128
+ try {
129
+ const session = await this.stripe.checkout.sessions.retrieve(sessionId);
130
+ const userId = session.metadata?.userId;
131
+ if (!userId) {
132
+ throw new common_1.BadRequestException('Session has no userId in metadata');
133
+ }
134
+ return { userId, paymentStatus: session.payment_status };
135
+ }
136
+ catch (error) {
137
+ if (error instanceof common_1.BadRequestException)
138
+ throw error;
139
+ logger_1.logger.error('Error retrieving checkout session:', error);
140
+ throw new common_1.BadRequestException('Invalid or expired session ID');
141
+ }
142
+ }
127
143
  getStripeConfig() {
128
144
  return {
129
145
  publishableKey: this.publishableKey,
@@ -110,6 +110,7 @@ export declare class AppController {
110
110
  updateAgent(req: ExpressRequest, agentId: string, updateData: UpdateAgentRequest): Promise<void>;
111
111
  deleteAttachedFile(req: ExpressRequest, agentId: string, documentId: string): Promise<void>;
112
112
  reloadAgent(req: ExpressRequest, agentId: string): Promise<void>;
113
+ compactAgentConversation(req: ExpressRequest, agentId: string): Promise<void>;
113
114
  resetRoom(req: ExpressRequest, roomId: string): Promise<void>;
114
115
  publishRoom(req: ExpressRequest, templateId: string, body: {
115
116
  publishedName?: string;
@@ -827,6 +827,34 @@ let AppController = class AppController {
827
827
  throw new common_1.HttpException('Failed to reload agent', common_1.HttpStatus.INTERNAL_SERVER_ERROR);
828
828
  }
829
829
  }
830
+ async compactAgentConversation(req, agentId) {
831
+ if (!agentId) {
832
+ throw new common_1.BadRequestException('Agent ID is required');
833
+ }
834
+ try {
835
+ const appService = this.getAppService(req, agentId);
836
+ if (req.user.type === 'agent-access') {
837
+ const agentDetails = await appService.getAgentDetails(agentId);
838
+ if (!agentDetails || !agentDetails.isPublished) {
839
+ throw new common_1.ForbiddenException('Agent is not published');
840
+ }
841
+ }
842
+ await appService.compactAgentConversation(agentId);
843
+ }
844
+ catch (error) {
845
+ logger_1.logger.error(`[${req.user?.sub}] Error compacting agent ${agentId}:`, error);
846
+ if (error instanceof errors_1.NotFoundError) {
847
+ throw new common_1.NotFoundException(error.message);
848
+ }
849
+ if (error instanceof errors_1.OperationFailedError) {
850
+ throw new common_1.HttpException(error.message, common_1.HttpStatus.INTERNAL_SERVER_ERROR);
851
+ }
852
+ if (error instanceof common_1.ForbiddenException) {
853
+ throw error;
854
+ }
855
+ throw new common_1.HttpException('Failed to compact agent conversation', common_1.HttpStatus.INTERNAL_SERVER_ERROR);
856
+ }
857
+ }
830
858
  async resetRoom(req, roomId) {
831
859
  if (!roomId) {
832
860
  throw new common_1.BadRequestException('Room ID is required');
@@ -1412,6 +1440,9 @@ let AppController = class AppController {
1412
1440
  subscriber.next({
1413
1441
  data: { type: 'connected', storyId },
1414
1442
  });
1443
+ if (storyInfo.pendingSuggestion) {
1444
+ subscriber.next({ data: storyInfo.pendingSuggestion });
1445
+ }
1415
1446
  const updateHandler = (data) => {
1416
1447
  subscriber.next({ data });
1417
1448
  };
@@ -2076,6 +2107,16 @@ __decorate([
2076
2107
  __metadata("design:paramtypes", [Object, String]),
2077
2108
  __metadata("design:returntype", Promise)
2078
2109
  ], AppController.prototype, "reloadAgent", null);
2110
+ __decorate([
2111
+ (0, agent_access_decorator_1.AgentAccess)(),
2112
+ (0, common_1.Post)('agents/:agentId/compact'),
2113
+ (0, common_1.HttpCode)(common_1.HttpStatus.NO_CONTENT),
2114
+ __param(0, (0, common_1.Request)()),
2115
+ __param(1, (0, common_1.Param)('agentId')),
2116
+ __metadata("design:type", Function),
2117
+ __metadata("design:paramtypes", [Object, String]),
2118
+ __metadata("design:returntype", Promise)
2119
+ ], AppController.prototype, "compactAgentConversation", null);
2079
2120
  __decorate([
2080
2121
  (0, common_1.Post)('rooms/:roomId/reset'),
2081
2122
  (0, common_1.HttpCode)(common_1.HttpStatus.NO_CONTENT),
@@ -111,6 +111,7 @@ export declare class AppService {
111
111
  deleteAttachedFile(agentId: string, fileName: string): Promise<void>;
112
112
  deleteAttachedFileById(documentId: string): Promise<void>;
113
113
  reloadAgent(agentId: string): Promise<void>;
114
+ compactAgentConversation(agentId: string): Promise<void>;
114
115
  resetRoom(roomId: string): Promise<void>;
115
116
  resetStory(storyId: string): Promise<void>;
116
117
  createStory(name: string, idea: string, userCharacterDesc: string, otherCharactersDesc: string, storyModel?: string, isImport?: boolean, imageModelName?: string): Promise<StoryInfo>;
@@ -890,6 +890,13 @@ class AppService {
890
890
  }
891
891
  agent.save();
892
892
  }
893
+ async compactAgentConversation(agentId) {
894
+ const agent = await this.agentStore.getAgent(agentId);
895
+ if (!agent) {
896
+ throw new errors_1.NotFoundError('Agent not found');
897
+ }
898
+ await agent.compact();
899
+ }
893
900
  async resetRoom(roomId) {
894
901
  const room = await this.roomStore.getRoom(roomId);
895
902
  if (!room) {
@@ -52,7 +52,7 @@ let UsersService = class UsersService {
52
52
  usersFilePath;
53
53
  dataDir;
54
54
  constructor() {
55
- this.dataDir = process.env.SERVER_DATA_PATH || path.resolve(process.cwd(), 'briyah-data');
55
+ this.dataDir = process.env.BRIYAH_DATA_PATH || path.resolve(process.cwd(), 'briyah-data');
56
56
  const commonDir = path.resolve(this.dataDir, 'common');
57
57
  const usersDir = path.resolve(commonDir, 'users');
58
58
  this.usersFilePath = path.resolve(usersDir, 'users.json');
@@ -1,6 +1,5 @@
1
1
  export declare class ConfigurationService {
2
2
  private dataDir;
3
- private credsDir;
4
3
  private promptsDir;
5
4
  private commonPromptsDir;
6
5
  private userPromptsDir;
@@ -11,7 +10,6 @@ export declare class ConfigurationService {
11
10
  private userId;
12
11
  constructor(userId: string, baseDataPath?: string);
13
12
  getDataDir(): string;
14
- getCredsDir(): string;
15
13
  getPromptsDir(): string;
16
14
  getUploadDir(): string;
17
15
  getUserConfigDir(): string;
@@ -38,7 +38,6 @@ const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
39
  class ConfigurationService {
40
40
  dataDir;
41
- credsDir;
42
41
  promptsDir;
43
42
  commonPromptsDir;
44
43
  userPromptsDir;
@@ -49,16 +48,12 @@ class ConfigurationService {
49
48
  userId;
50
49
  constructor(userId, baseDataPath) {
51
50
  this.userId = userId;
52
- const dataPath = baseDataPath || process.env.SERVER_DATA_PATH || path.resolve(process.cwd(), 'briyah-data');
51
+ const dataPath = baseDataPath || process.env.BRIYAH_DATA_PATH || path.resolve(process.cwd(), 'briyah-data');
53
52
  this.dataDir = path.resolve(dataPath);
54
53
  if (!fs.existsSync(this.dataDir)) {
55
54
  fs.mkdirSync(this.dataDir, { recursive: true });
56
55
  }
57
56
  const commonDir = path.resolve(this.dataDir, 'common');
58
- this.credsDir = path.resolve(commonDir, 'creds');
59
- if (!fs.existsSync(this.credsDir)) {
60
- fs.mkdirSync(this.credsDir, { recursive: true });
61
- }
62
57
  this.commonConfigDir = path.resolve(commonDir, 'config');
63
58
  if (!fs.existsSync(this.commonConfigDir)) {
64
59
  fs.mkdirSync(this.commonConfigDir, { recursive: true });
@@ -85,9 +80,6 @@ class ConfigurationService {
85
80
  getDataDir() {
86
81
  return this.dataDir;
87
82
  }
88
- getCredsDir() {
89
- return this.credsDir;
90
- }
91
83
  getPromptsDir() {
92
84
  return this.promptsDir;
93
85
  }
@@ -51,7 +51,7 @@ let PublishedRoomsService = class PublishedRoomsService {
51
51
  mapping;
52
52
  filePath;
53
53
  constructor() {
54
- const dataPath = process.env.SERVER_DATA_PATH || path.resolve(process.cwd(), 'briyah-data');
54
+ const dataPath = process.env.BRIYAH_DATA_PATH || path.resolve(process.cwd(), 'briyah-data');
55
55
  this.filePath = path.join(dataPath, 'common', 'published-rooms.json');
56
56
  this.mapping = new Map();
57
57
  this.load();
@@ -272,6 +272,7 @@ class Room {
272
272
  let response = await agent.instructedPrompt(prompt, 'perceive', variables, false, true, maxOutputChars);
273
273
  answer = this.parseAgentResponse(agent, response);
274
274
  agent.addToConversationHistory(response, true);
275
+ agent.save();
275
276
  }
276
277
  catch (e) {
277
278
  if (e instanceof errors_1.InsufficientBalanceError) {
@@ -9,8 +9,8 @@ class BriyahConfigService {
9
9
  ...(options?.envOverrides || {}),
10
10
  };
11
11
  if (options?.dataPath) {
12
- this.env.SERVER_DATA_PATH = options.dataPath;
13
- process.env.SERVER_DATA_PATH = options.dataPath;
12
+ this.env.BRIYAH_DATA_PATH = options.dataPath;
13
+ process.env.BRIYAH_DATA_PATH = options.dataPath;
14
14
  }
15
15
  if (options?.userServiceCacheTimeoutMinutes !== undefined) {
16
16
  this.env.USER_SERVICE_CACHE_TIMEOUT_MINUTES = String(options.userServiceCacheTimeoutMinutes);
@@ -40,7 +40,6 @@ const logger_1 = require("../common/logger");
40
40
  const ai_factory_service_1 = require("../ai/ai-factory.service");
41
41
  const openai_service_1 = require("../ai/LLM/openai.service");
42
42
  const anthropic_service_1 = require("../ai/LLM/anthropic.service");
43
- const vertexai_service_1 = require("../ai/LLM/vertexai.service");
44
43
  const grok_service_1 = require("../ai/LLM/grok.service");
45
44
  const deepseek_service_1 = require("../ai/LLM/deepseek.service");
46
45
  const together_service_1 = require("../ai/LLM/together.service");
@@ -72,7 +71,7 @@ class Briyah {
72
71
  initialized = false;
73
72
  constructor(options) {
74
73
  this.configService = new briyah_config_1.BriyahConfigService(options);
75
- const dataPath = this.configService.get('SERVER_DATA_PATH') || path.resolve(process.cwd(), 'briyah-data');
74
+ const dataPath = this.configService.get('BRIYAH_DATA_PATH') || path.resolve(process.cwd(), 'briyah-data');
76
75
  logger_1.logger.configure({
77
76
  enabled: options?.logging?.enabled !== false,
78
77
  console: options?.logging?.console !== false,
@@ -85,14 +84,14 @@ class Briyah {
85
84
  validateEnvironment() {
86
85
  const hasAnyProvider = this.configService.get('ANTHROPIC_API_KEY') ||
87
86
  this.configService.get('OPENAI_API_KEY') ||
88
- this.configService.get('GOOGLE_VERTEX_PROJECT_ID') ||
87
+ this.configService.get('GOOGLE_GENAI_API_KEY') ||
89
88
  this.configService.get('XAI_API_KEY') ||
90
89
  this.configService.get('DEEPSEEK_API_KEY') ||
91
- this.configService.get('TOGETHER_API_KEY');
92
- this.configService.get('FAL_API_KEY');
90
+ this.configService.get('TOGETHER_API_KEY') ||
91
+ this.configService.get('FAL_API_KEY');
93
92
  if (!hasAnyProvider) {
94
93
  logger_1.logger.warn('[Briyah] No LLM provider API keys configured. Some features will not be available.');
95
- logger_1.logger.warn('[Briyah] Set one or more of: ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_VERTEX_PROJECT_ID, XAI_API_KEY, DEEPSEEK_API_KEY, TOGETHER_API_KEY');
94
+ logger_1.logger.warn('[Briyah] Set one or more of: ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_GENAI_API_KEY, XAI_API_KEY, DEEPSEEK_API_KEY, TOGETHER_API_KEY, FAL_API_KEY');
96
95
  }
97
96
  const startingBalance = this.configService.get('STARTING_BALANCE');
98
97
  if (!startingBalance) {
@@ -102,14 +101,13 @@ class Briyah {
102
101
  initializeSingletons(_baseDataPath) {
103
102
  const openAiService = new openai_service_1.OpenAiService();
104
103
  const anthropicService = new anthropic_service_1.AnthropicAiService();
105
- const vertexService = new vertexai_service_1.VertexAiService();
106
104
  const grokService = new grok_service_1.GrokAiService();
107
105
  const deepseekService = new deepseek_service_1.DeepSeekAiService();
108
106
  const togetherService = new together_service_1.TogetherAiService();
109
107
  const mockService = new mock_service_1.MockAiService();
110
108
  const googleAiService = new googleai_service_1.GoogleAiService();
111
109
  const falAiService = new fal_service_1.FalAiService();
112
- this.aiFactoryService = new ai_factory_service_1.AiFactoryService(openAiService, grokService, vertexService, anthropicService, deepseekService, togetherService, mockService, googleAiService, falAiService);
110
+ this.aiFactoryService = new ai_factory_service_1.AiFactoryService(openAiService, grokService, anthropicService, deepseekService, togetherService, mockService, googleAiService, falAiService);
113
111
  this.agentMessageService = new agent_message_service_1.AgentMessageService();
114
112
  this.roomMessageService = new room_message_service_1.RoomMessageService();
115
113
  this.storyProgressService = new story_progress_service_1.StoryProgressService();
@@ -131,7 +129,7 @@ class Briyah {
131
129
  this.initialized = true;
132
130
  }
133
131
  seedCommonData() {
134
- const dataPath = this.configService.get('SERVER_DATA_PATH') || path.resolve(process.cwd(), 'briyah-data');
132
+ const dataPath = this.configService.get('BRIYAH_DATA_PATH') || path.resolve(process.cwd(), 'briyah-data');
135
133
  const userCommonDir = path.resolve(dataPath, 'common');
136
134
  const packageCommonDir = path.resolve(__dirname, '../../../../data/common');
137
135
  if (!fs.existsSync(packageCommonDir)) {
@@ -23,44 +23,36 @@ let StoryMessageService = class StoryMessageService {
23
23
  return this.messageEmitters.get(storyId);
24
24
  }
25
25
  emitStoryState(storyId, state) {
26
- const emitter = this.messageEmitters.get(storyId);
27
- if (emitter) {
28
- const payload = { type: 'story-state', state, timestamp: Date.now() };
29
- emitter.emit('story-state', payload);
30
- }
26
+ const emitter = this.getOrCreateEmitter(storyId);
27
+ const payload = { type: 'story-state', state, timestamp: Date.now() };
28
+ emitter.emit('story-state', payload);
31
29
  }
32
30
  emitIntroduceCharacter(storyId, characterName) {
33
- const emitter = this.messageEmitters.get(storyId);
34
- if (emitter) {
35
- const payload = {
36
- type: 'suggest-introduce-character',
37
- characterName,
38
- timestamp: Date.now(),
39
- };
40
- emitter.emit('suggest-introduce-character', payload);
41
- }
31
+ const emitter = this.getOrCreateEmitter(storyId);
32
+ const payload = {
33
+ type: 'suggest-introduce-character',
34
+ characterName,
35
+ timestamp: Date.now(),
36
+ };
37
+ emitter.emit('suggest-introduce-character', payload);
42
38
  }
43
39
  emitProgressChapter(storyId) {
44
- const emitter = this.messageEmitters.get(storyId);
45
- if (emitter) {
46
- const payload = {
47
- type: 'suggest-progress-chapter',
48
- timestamp: Date.now(),
49
- };
50
- emitter.emit('suggest-progress-chapter', payload);
51
- }
40
+ const emitter = this.getOrCreateEmitter(storyId);
41
+ const payload = {
42
+ type: 'suggest-progress-chapter',
43
+ timestamp: Date.now(),
44
+ };
45
+ emitter.emit('suggest-progress-chapter', payload);
52
46
  }
53
47
  emitError(storyId, error) {
54
- const emitter = this.messageEmitters.get(storyId);
55
- if (emitter) {
56
- const payload = {
57
- type: 'story-error',
58
- errorType: error.name,
59
- message: error.message,
60
- timestamp: Date.now(),
61
- };
62
- emitter.emit('story-error', payload);
63
- }
48
+ const emitter = this.getOrCreateEmitter(storyId);
49
+ const payload = {
50
+ type: 'story-error',
51
+ errorType: error.name,
52
+ message: error.message,
53
+ timestamp: Date.now(),
54
+ };
55
+ emitter.emit('story-error', payload);
64
56
  }
65
57
  cleanup(storyId) {
66
58
  const emitter = this.messageEmitters.get(storyId);
@@ -20,6 +20,7 @@ export declare class StoryService {
20
20
  private readonly agentFactory;
21
21
  private readonly roomFactory;
22
22
  private readonly storyArtifactServices;
23
+ private readonly chaptersInProgress;
23
24
  constructor(storyStore: StoryStoreService, agentStore: AgentStoreService, roomStore: RoomStoreService, progressService: StoryProgressService, messageService: StoryMessageService, configService: ConfigurationService, agentFactory: AgentFactory, roomFactory: RoomFactory);
24
25
  getProgressEmitter(storyId: string): import("node:events")<any>;
25
26
  getMessageEmitter(storyId: string): import("node:events")<any>;
@@ -72,7 +73,6 @@ export declare class StoryService {
72
73
  private progressStoryToNextChapterAsync;
73
74
  private generateOpeningScene;
74
75
  private compactAgentHistories;
75
- private compactAgentHistory;
76
76
  private extractMarkdownContent;
77
77
  private updatePlotPlan;
78
78
  private updateCharacterProfiles;