run-dmcp 0.1.0 → 0.3.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.
Files changed (141) hide show
  1. package/README.md +101 -11
  2. package/dist/bin/run-dmcp.d.ts +2 -0
  3. package/dist/bin/run-dmcp.js +55 -0
  4. package/dist/db/connection.d.ts +32 -0
  5. package/dist/db/connection.js +38 -16
  6. package/dist/db/schema.d.ts +29 -1
  7. package/dist/db/schema.js +594 -10
  8. package/dist/http/server.js +25 -4
  9. package/dist/index.d.ts +69 -2
  10. package/dist/index.js +262 -92
  11. package/dist/mcp-server.d.ts +49 -0
  12. package/dist/mcp-server.js +127 -0
  13. package/dist/reader/turnReader.d.ts +185 -0
  14. package/dist/reader/turnReader.js +288 -0
  15. package/dist/register/batch.js +5 -79
  16. package/dist/register/mcp-resources.d.ts +9 -0
  17. package/dist/register/mcp-resources.js +16 -62
  18. package/dist/register/render.d.ts +17 -0
  19. package/dist/register/render.js +50 -0
  20. package/dist/register/resolve.d.ts +14 -0
  21. package/dist/register/resolve.js +102 -0
  22. package/dist/register/resources.js +13 -6
  23. package/dist/register/timeline.d.ts +2 -0
  24. package/dist/register/timeline.js +311 -0
  25. package/dist/rpg/index.d.ts +29 -0
  26. package/dist/rpg/index.js +55 -0
  27. package/dist/rpg/register/abilities.d.ts +2 -0
  28. package/dist/rpg/register/abilities.js +165 -0
  29. package/dist/rpg/register/batch.d.ts +2 -0
  30. package/dist/rpg/register/batch.js +92 -0
  31. package/dist/rpg/register/combat.d.ts +2 -0
  32. package/dist/rpg/register/combat.js +207 -0
  33. package/dist/rpg/register/mcp-prompts.d.ts +2 -0
  34. package/dist/rpg/register/mcp-prompts.js +684 -0
  35. package/dist/rpg/register/mcp-resources.d.ts +2 -0
  36. package/dist/rpg/register/mcp-resources.js +61 -0
  37. package/dist/rpg/register/quests.d.ts +2 -0
  38. package/dist/rpg/register/quests.js +118 -0
  39. package/dist/rpg/register/status.d.ts +2 -0
  40. package/dist/rpg/register/status.js +130 -0
  41. package/dist/rpg/register/tables.d.ts +2 -0
  42. package/dist/rpg/register/tables.js +146 -0
  43. package/dist/rpg/tools/ability.d.ts +48 -0
  44. package/dist/rpg/tools/ability.js +238 -0
  45. package/dist/rpg/tools/combat.d.ts +13 -0
  46. package/dist/rpg/tools/combat.js +195 -0
  47. package/dist/rpg/tools/dice.d.ts +23 -0
  48. package/dist/rpg/tools/dice.js +111 -0
  49. package/dist/rpg/tools/quest.d.ts +34 -0
  50. package/dist/rpg/tools/quest.js +164 -0
  51. package/dist/rpg/tools/status.d.ts +36 -0
  52. package/dist/rpg/tools/status.js +218 -0
  53. package/dist/rpg/tools/tables.d.ts +33 -0
  54. package/dist/rpg/tools/tables.js +209 -0
  55. package/dist/schemas/index.d.ts +12 -12
  56. package/dist/timeline/adjudication.d.ts +150 -0
  57. package/dist/timeline/adjudication.js +174 -0
  58. package/dist/timeline/changes.d.ts +108 -0
  59. package/dist/timeline/changes.js +169 -0
  60. package/dist/timeline/checkpoint.d.ts +69 -0
  61. package/dist/timeline/checkpoint.js +131 -0
  62. package/dist/timeline/clock.d.ts +89 -0
  63. package/dist/timeline/clock.js +173 -0
  64. package/dist/timeline/constrained.d.ts +220 -0
  65. package/dist/timeline/constrained.js +671 -0
  66. package/dist/timeline/export.d.ts +181 -0
  67. package/dist/timeline/export.js +339 -0
  68. package/dist/timeline/irreversible.d.ts +87 -0
  69. package/dist/timeline/irreversible.js +108 -0
  70. package/dist/timeline/kinds.d.ts +14 -0
  71. package/dist/timeline/kinds.js +22 -0
  72. package/dist/timeline/narration.d.ts +175 -0
  73. package/dist/timeline/narration.js +259 -0
  74. package/dist/timeline/projection.d.ts +97 -0
  75. package/dist/timeline/projection.js +330 -0
  76. package/dist/timeline/provenance.d.ts +66 -0
  77. package/dist/timeline/provenance.js +45 -0
  78. package/dist/timeline/registry.d.ts +95 -0
  79. package/dist/timeline/registry.js +124 -0
  80. package/dist/timeline/render.d.ts +121 -0
  81. package/dist/timeline/render.js +187 -0
  82. package/dist/timeline/replay.d.ts +86 -0
  83. package/dist/timeline/replay.js +126 -0
  84. package/dist/timeline/resolve.d.ts +262 -0
  85. package/dist/timeline/resolve.js +226 -0
  86. package/dist/timeline/schema.d.ts +13 -0
  87. package/dist/timeline/schema.js +264 -0
  88. package/dist/timeline/t.d.ts +80 -0
  89. package/dist/timeline/t.js +37 -0
  90. package/dist/tools/audio.js +13 -9
  91. package/dist/tools/constraint.d.ts +44 -80
  92. package/dist/tools/constraint.js +115 -124
  93. package/dist/tools/game.js +33 -1
  94. package/dist/tools/images.js +17 -10
  95. package/dist/tools/relationship.d.ts +83 -2
  96. package/dist/tools/relationship.js +139 -62
  97. package/dist/tools/resource.d.ts +33 -8
  98. package/dist/tools/resource.js +106 -153
  99. package/dist/tools/time.js +18 -3
  100. package/dist/types/index.d.ts +20 -2
  101. package/dist/utils/media-path.d.ts +52 -0
  102. package/dist/utils/media-path.js +106 -0
  103. package/dist/utils/output-schemas.d.ts +594 -3
  104. package/dist/utils/output-schemas.js +4 -1
  105. package/dist/utils/webui.d.ts +32 -0
  106. package/dist/utils/webui.js +54 -1
  107. package/package.json +25 -5
  108. package/dist/__tests__/engineVocabulary.test.d.ts +0 -1
  109. package/dist/__tests__/engineVocabulary.test.js +0 -147
  110. package/dist/db/__tests__/connection.test.d.ts +0 -1
  111. package/dist/db/__tests__/connection.test.js +0 -72
  112. package/dist/db/__tests__/testDb.d.ts +0 -33
  113. package/dist/db/__tests__/testDb.js +0 -41
  114. package/dist/test-setup.d.ts +0 -1
  115. package/dist/test-setup.js +0 -13
  116. package/dist/tools/__tests__/audio.test.d.ts +0 -1
  117. package/dist/tools/__tests__/audio.test.js +0 -59
  118. package/dist/tools/__tests__/conserved.test.d.ts +0 -1
  119. package/dist/tools/__tests__/conserved.test.js +0 -488
  120. package/dist/tools/__tests__/constraint.test.d.ts +0 -1
  121. package/dist/tools/__tests__/constraint.test.js +0 -212
  122. package/dist/tools/__tests__/expiry-consequences.test.d.ts +0 -1
  123. package/dist/tools/__tests__/expiry-consequences.test.js +0 -110
  124. package/dist/tools/__tests__/images.test.d.ts +0 -1
  125. package/dist/tools/__tests__/images.test.js +0 -59
  126. package/dist/tools/__tests__/relationship.test.d.ts +0 -1
  127. package/dist/tools/__tests__/relationship.test.js +0 -132
  128. package/dist/tools/__tests__/resource-constraints.test.d.ts +0 -1
  129. package/dist/tools/__tests__/resource-constraints.test.js +0 -131
  130. package/dist/tools/__tests__/resource.test.d.ts +0 -1
  131. package/dist/tools/__tests__/resource.test.js +0 -190
  132. package/dist/tools/__tests__/time.test.d.ts +0 -1
  133. package/dist/tools/__tests__/time.test.js +0 -404
  134. package/dist/tools/__tests__/timers.test.d.ts +0 -1
  135. package/dist/tools/__tests__/timers.test.js +0 -426
  136. package/dist/tools/__tests__/world.test.d.ts +0 -1
  137. package/dist/tools/__tests__/world.test.js +0 -70
  138. package/dist/utils/__tests__/json.test.d.ts +0 -1
  139. package/dist/utils/__tests__/json.test.js +0 -55
  140. package/dist/utils/__tests__/validation.test.d.ts +0 -1
  141. package/dist/utils/__tests__/validation.test.js +0 -90
@@ -76,17 +76,17 @@ export declare const gameMenuOutputSchema: {
76
76
  setting: string;
77
77
  id: string;
78
78
  name: string;
79
+ createdAt: string;
79
80
  style: string;
80
81
  updatedAt: string;
81
- createdAt: string;
82
82
  webUiUrl?: string | undefined;
83
83
  }, {
84
84
  setting: string;
85
85
  id: string;
86
86
  name: string;
87
+ createdAt: string;
87
88
  style: string;
88
89
  updatedAt: string;
89
- createdAt: string;
90
90
  webUiUrl?: string | undefined;
91
91
  }>, "many">;
92
92
  instruction: z.ZodString;
@@ -148,6 +148,597 @@ export declare const characterOutputSchema: {
148
148
  }>;
149
149
  locationId: z.ZodNullable<z.ZodString>;
150
150
  notes: z.ZodString;
151
+ voice: z.ZodNullable<z.ZodObject<{
152
+ pitch: z.ZodEnum<["very_low", "low", "medium", "high", "very_high"]>;
153
+ speed: z.ZodEnum<["very_slow", "slow", "medium", "fast", "very_fast"]>;
154
+ tone: z.ZodString;
155
+ accent: z.ZodOptional<z.ZodString>;
156
+ quirks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
157
+ description: z.ZodOptional<z.ZodString>;
158
+ }, "strip", z.ZodTypeAny, {
159
+ tone: string;
160
+ pitch: "very_low" | "low" | "medium" | "high" | "very_high";
161
+ speed: "medium" | "very_slow" | "slow" | "fast" | "very_fast";
162
+ description?: string | undefined;
163
+ accent?: string | undefined;
164
+ quirks?: string[] | undefined;
165
+ }, {
166
+ tone: string;
167
+ pitch: "very_low" | "low" | "medium" | "high" | "very_high";
168
+ speed: "medium" | "very_slow" | "slow" | "fast" | "very_fast";
169
+ description?: string | undefined;
170
+ accent?: string | undefined;
171
+ quirks?: string[] | undefined;
172
+ }>>;
173
+ imageGen: z.ZodNullable<z.ZodObject<{
174
+ subject: z.ZodObject<{
175
+ type: z.ZodEnum<["character", "location", "item", "scene"]>;
176
+ primaryDescription: z.ZodString;
177
+ physicalTraits: z.ZodOptional<z.ZodObject<{
178
+ age: z.ZodOptional<z.ZodString>;
179
+ gender: z.ZodOptional<z.ZodString>;
180
+ bodyType: z.ZodOptional<z.ZodString>;
181
+ height: z.ZodOptional<z.ZodString>;
182
+ skinTone: z.ZodOptional<z.ZodString>;
183
+ hairColor: z.ZodOptional<z.ZodString>;
184
+ hairStyle: z.ZodOptional<z.ZodString>;
185
+ eyeColor: z.ZodOptional<z.ZodString>;
186
+ facialFeatures: z.ZodOptional<z.ZodString>;
187
+ distinguishingMarks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
188
+ }, "strip", z.ZodTypeAny, {
189
+ height?: string | undefined;
190
+ age?: string | undefined;
191
+ gender?: string | undefined;
192
+ bodyType?: string | undefined;
193
+ skinTone?: string | undefined;
194
+ hairColor?: string | undefined;
195
+ hairStyle?: string | undefined;
196
+ eyeColor?: string | undefined;
197
+ facialFeatures?: string | undefined;
198
+ distinguishingMarks?: string[] | undefined;
199
+ }, {
200
+ height?: string | undefined;
201
+ age?: string | undefined;
202
+ gender?: string | undefined;
203
+ bodyType?: string | undefined;
204
+ skinTone?: string | undefined;
205
+ hairColor?: string | undefined;
206
+ hairStyle?: string | undefined;
207
+ eyeColor?: string | undefined;
208
+ facialFeatures?: string | undefined;
209
+ distinguishingMarks?: string[] | undefined;
210
+ }>>;
211
+ attire: z.ZodOptional<z.ZodObject<{
212
+ description: z.ZodString;
213
+ colors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
214
+ materials: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
215
+ accessories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
216
+ }, "strip", z.ZodTypeAny, {
217
+ description: string;
218
+ colors?: string[] | undefined;
219
+ materials?: string[] | undefined;
220
+ accessories?: string[] | undefined;
221
+ }, {
222
+ description: string;
223
+ colors?: string[] | undefined;
224
+ materials?: string[] | undefined;
225
+ accessories?: string[] | undefined;
226
+ }>>;
227
+ environment: z.ZodOptional<z.ZodObject<{
228
+ setting: z.ZodString;
229
+ timeOfDay: z.ZodOptional<z.ZodString>;
230
+ weather: z.ZodOptional<z.ZodString>;
231
+ lighting: z.ZodOptional<z.ZodString>;
232
+ architecture: z.ZodOptional<z.ZodString>;
233
+ vegetation: z.ZodOptional<z.ZodString>;
234
+ notableFeatures: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
235
+ }, "strip", z.ZodTypeAny, {
236
+ setting: string;
237
+ timeOfDay?: string | undefined;
238
+ weather?: string | undefined;
239
+ lighting?: string | undefined;
240
+ architecture?: string | undefined;
241
+ vegetation?: string | undefined;
242
+ notableFeatures?: string[] | undefined;
243
+ }, {
244
+ setting: string;
245
+ timeOfDay?: string | undefined;
246
+ weather?: string | undefined;
247
+ lighting?: string | undefined;
248
+ architecture?: string | undefined;
249
+ vegetation?: string | undefined;
250
+ notableFeatures?: string[] | undefined;
251
+ }>>;
252
+ objectDetails: z.ZodOptional<z.ZodObject<{
253
+ material: z.ZodOptional<z.ZodString>;
254
+ size: z.ZodOptional<z.ZodString>;
255
+ condition: z.ZodOptional<z.ZodString>;
256
+ glowOrEffects: z.ZodOptional<z.ZodString>;
257
+ }, "strip", z.ZodTypeAny, {
258
+ size?: string | undefined;
259
+ material?: string | undefined;
260
+ condition?: string | undefined;
261
+ glowOrEffects?: string | undefined;
262
+ }, {
263
+ size?: string | undefined;
264
+ material?: string | undefined;
265
+ condition?: string | undefined;
266
+ glowOrEffects?: string | undefined;
267
+ }>>;
268
+ pose: z.ZodOptional<z.ZodString>;
269
+ expression: z.ZodOptional<z.ZodString>;
270
+ action: z.ZodOptional<z.ZodString>;
271
+ }, "strip", z.ZodTypeAny, {
272
+ type: "character" | "location" | "item" | "scene";
273
+ primaryDescription: string;
274
+ physicalTraits?: {
275
+ height?: string | undefined;
276
+ age?: string | undefined;
277
+ gender?: string | undefined;
278
+ bodyType?: string | undefined;
279
+ skinTone?: string | undefined;
280
+ hairColor?: string | undefined;
281
+ hairStyle?: string | undefined;
282
+ eyeColor?: string | undefined;
283
+ facialFeatures?: string | undefined;
284
+ distinguishingMarks?: string[] | undefined;
285
+ } | undefined;
286
+ attire?: {
287
+ description: string;
288
+ colors?: string[] | undefined;
289
+ materials?: string[] | undefined;
290
+ accessories?: string[] | undefined;
291
+ } | undefined;
292
+ environment?: {
293
+ setting: string;
294
+ timeOfDay?: string | undefined;
295
+ weather?: string | undefined;
296
+ lighting?: string | undefined;
297
+ architecture?: string | undefined;
298
+ vegetation?: string | undefined;
299
+ notableFeatures?: string[] | undefined;
300
+ } | undefined;
301
+ objectDetails?: {
302
+ size?: string | undefined;
303
+ material?: string | undefined;
304
+ condition?: string | undefined;
305
+ glowOrEffects?: string | undefined;
306
+ } | undefined;
307
+ pose?: string | undefined;
308
+ expression?: string | undefined;
309
+ action?: string | undefined;
310
+ }, {
311
+ type: "character" | "location" | "item" | "scene";
312
+ primaryDescription: string;
313
+ physicalTraits?: {
314
+ height?: string | undefined;
315
+ age?: string | undefined;
316
+ gender?: string | undefined;
317
+ bodyType?: string | undefined;
318
+ skinTone?: string | undefined;
319
+ hairColor?: string | undefined;
320
+ hairStyle?: string | undefined;
321
+ eyeColor?: string | undefined;
322
+ facialFeatures?: string | undefined;
323
+ distinguishingMarks?: string[] | undefined;
324
+ } | undefined;
325
+ attire?: {
326
+ description: string;
327
+ colors?: string[] | undefined;
328
+ materials?: string[] | undefined;
329
+ accessories?: string[] | undefined;
330
+ } | undefined;
331
+ environment?: {
332
+ setting: string;
333
+ timeOfDay?: string | undefined;
334
+ weather?: string | undefined;
335
+ lighting?: string | undefined;
336
+ architecture?: string | undefined;
337
+ vegetation?: string | undefined;
338
+ notableFeatures?: string[] | undefined;
339
+ } | undefined;
340
+ objectDetails?: {
341
+ size?: string | undefined;
342
+ material?: string | undefined;
343
+ condition?: string | undefined;
344
+ glowOrEffects?: string | undefined;
345
+ } | undefined;
346
+ pose?: string | undefined;
347
+ expression?: string | undefined;
348
+ action?: string | undefined;
349
+ }>;
350
+ style: z.ZodObject<{
351
+ artisticStyle: z.ZodString;
352
+ genre: z.ZodString;
353
+ mood: z.ZodString;
354
+ colorScheme: z.ZodOptional<z.ZodString>;
355
+ influences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
356
+ qualityTags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
357
+ negativeElements: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
358
+ }, "strip", z.ZodTypeAny, {
359
+ genre: string;
360
+ artisticStyle: string;
361
+ mood: string;
362
+ colorScheme?: string | undefined;
363
+ qualityTags?: string[] | undefined;
364
+ influences?: string[] | undefined;
365
+ negativeElements?: string[] | undefined;
366
+ }, {
367
+ genre: string;
368
+ artisticStyle: string;
369
+ mood: string;
370
+ colorScheme?: string | undefined;
371
+ qualityTags?: string[] | undefined;
372
+ influences?: string[] | undefined;
373
+ negativeElements?: string[] | undefined;
374
+ }>;
375
+ composition: z.ZodObject<{
376
+ framing: z.ZodString;
377
+ cameraAngle: z.ZodOptional<z.ZodString>;
378
+ aspectRatio: z.ZodOptional<z.ZodString>;
379
+ focusPoint: z.ZodOptional<z.ZodString>;
380
+ background: z.ZodOptional<z.ZodString>;
381
+ depth: z.ZodOptional<z.ZodString>;
382
+ }, "strip", z.ZodTypeAny, {
383
+ framing: string;
384
+ background?: string | undefined;
385
+ aspectRatio?: string | undefined;
386
+ cameraAngle?: string | undefined;
387
+ focusPoint?: string | undefined;
388
+ depth?: string | undefined;
389
+ }, {
390
+ framing: string;
391
+ background?: string | undefined;
392
+ aspectRatio?: string | undefined;
393
+ cameraAngle?: string | undefined;
394
+ focusPoint?: string | undefined;
395
+ depth?: string | undefined;
396
+ }>;
397
+ prompts: z.ZodOptional<z.ZodObject<{
398
+ generic: z.ZodOptional<z.ZodString>;
399
+ sdxl: z.ZodOptional<z.ZodString>;
400
+ dalle: z.ZodOptional<z.ZodString>;
401
+ midjourney: z.ZodOptional<z.ZodString>;
402
+ flux: z.ZodOptional<z.ZodString>;
403
+ comfyui: z.ZodOptional<z.ZodObject<{
404
+ positive: z.ZodString;
405
+ negative: z.ZodString;
406
+ checkpoint: z.ZodOptional<z.ZodString>;
407
+ loras: z.ZodOptional<z.ZodArray<z.ZodObject<{
408
+ name: z.ZodString;
409
+ weight: z.ZodNumber;
410
+ }, "strip", z.ZodTypeAny, {
411
+ weight: number;
412
+ name: string;
413
+ }, {
414
+ weight: number;
415
+ name: string;
416
+ }>, "many">>;
417
+ samplerSettings: z.ZodOptional<z.ZodObject<{
418
+ sampler: z.ZodOptional<z.ZodString>;
419
+ scheduler: z.ZodOptional<z.ZodString>;
420
+ steps: z.ZodOptional<z.ZodNumber>;
421
+ cfg: z.ZodOptional<z.ZodNumber>;
422
+ }, "strip", z.ZodTypeAny, {
423
+ sampler?: string | undefined;
424
+ scheduler?: string | undefined;
425
+ steps?: number | undefined;
426
+ cfg?: number | undefined;
427
+ }, {
428
+ sampler?: string | undefined;
429
+ scheduler?: string | undefined;
430
+ steps?: number | undefined;
431
+ cfg?: number | undefined;
432
+ }>>;
433
+ }, "strip", z.ZodTypeAny, {
434
+ positive: string;
435
+ negative: string;
436
+ checkpoint?: string | undefined;
437
+ loras?: {
438
+ weight: number;
439
+ name: string;
440
+ }[] | undefined;
441
+ samplerSettings?: {
442
+ sampler?: string | undefined;
443
+ scheduler?: string | undefined;
444
+ steps?: number | undefined;
445
+ cfg?: number | undefined;
446
+ } | undefined;
447
+ }, {
448
+ positive: string;
449
+ negative: string;
450
+ checkpoint?: string | undefined;
451
+ loras?: {
452
+ weight: number;
453
+ name: string;
454
+ }[] | undefined;
455
+ samplerSettings?: {
456
+ sampler?: string | undefined;
457
+ scheduler?: string | undefined;
458
+ steps?: number | undefined;
459
+ cfg?: number | undefined;
460
+ } | undefined;
461
+ }>>;
462
+ }, "strip", z.ZodTypeAny, {
463
+ dalle?: string | undefined;
464
+ sdxl?: string | undefined;
465
+ midjourney?: string | undefined;
466
+ comfyui?: {
467
+ positive: string;
468
+ negative: string;
469
+ checkpoint?: string | undefined;
470
+ loras?: {
471
+ weight: number;
472
+ name: string;
473
+ }[] | undefined;
474
+ samplerSettings?: {
475
+ sampler?: string | undefined;
476
+ scheduler?: string | undefined;
477
+ steps?: number | undefined;
478
+ cfg?: number | undefined;
479
+ } | undefined;
480
+ } | undefined;
481
+ flux?: string | undefined;
482
+ generic?: string | undefined;
483
+ }, {
484
+ dalle?: string | undefined;
485
+ sdxl?: string | undefined;
486
+ midjourney?: string | undefined;
487
+ comfyui?: {
488
+ positive: string;
489
+ negative: string;
490
+ checkpoint?: string | undefined;
491
+ loras?: {
492
+ weight: number;
493
+ name: string;
494
+ }[] | undefined;
495
+ samplerSettings?: {
496
+ sampler?: string | undefined;
497
+ scheduler?: string | undefined;
498
+ steps?: number | undefined;
499
+ cfg?: number | undefined;
500
+ } | undefined;
501
+ } | undefined;
502
+ flux?: string | undefined;
503
+ generic?: string | undefined;
504
+ }>>;
505
+ generations: z.ZodOptional<z.ZodArray<z.ZodObject<{
506
+ id: z.ZodString;
507
+ tool: z.ZodString;
508
+ prompt: z.ZodString;
509
+ url: z.ZodOptional<z.ZodString>;
510
+ base64: z.ZodOptional<z.ZodString>;
511
+ seed: z.ZodOptional<z.ZodNumber>;
512
+ timestamp: z.ZodString;
513
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
514
+ }, "strip", z.ZodTypeAny, {
515
+ id: string;
516
+ tool: string;
517
+ prompt: string;
518
+ timestamp: string;
519
+ url?: string | undefined;
520
+ base64?: string | undefined;
521
+ seed?: number | undefined;
522
+ metadata?: Record<string, unknown> | undefined;
523
+ }, {
524
+ id: string;
525
+ tool: string;
526
+ prompt: string;
527
+ timestamp: string;
528
+ url?: string | undefined;
529
+ base64?: string | undefined;
530
+ seed?: number | undefined;
531
+ metadata?: Record<string, unknown> | undefined;
532
+ }>, "many">>;
533
+ consistency: z.ZodOptional<z.ZodObject<{
534
+ characterRef: z.ZodOptional<z.ZodString>;
535
+ seedImage: z.ZodOptional<z.ZodString>;
536
+ colorPalette: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
537
+ styleRef: z.ZodOptional<z.ZodString>;
538
+ }, "strip", z.ZodTypeAny, {
539
+ characterRef?: string | undefined;
540
+ seedImage?: string | undefined;
541
+ colorPalette?: string[] | undefined;
542
+ styleRef?: string | undefined;
543
+ }, {
544
+ characterRef?: string | undefined;
545
+ seedImage?: string | undefined;
546
+ colorPalette?: string[] | undefined;
547
+ styleRef?: string | undefined;
548
+ }>>;
549
+ }, "strip", z.ZodTypeAny, {
550
+ style: {
551
+ genre: string;
552
+ artisticStyle: string;
553
+ mood: string;
554
+ colorScheme?: string | undefined;
555
+ qualityTags?: string[] | undefined;
556
+ influences?: string[] | undefined;
557
+ negativeElements?: string[] | undefined;
558
+ };
559
+ subject: {
560
+ type: "character" | "location" | "item" | "scene";
561
+ primaryDescription: string;
562
+ physicalTraits?: {
563
+ height?: string | undefined;
564
+ age?: string | undefined;
565
+ gender?: string | undefined;
566
+ bodyType?: string | undefined;
567
+ skinTone?: string | undefined;
568
+ hairColor?: string | undefined;
569
+ hairStyle?: string | undefined;
570
+ eyeColor?: string | undefined;
571
+ facialFeatures?: string | undefined;
572
+ distinguishingMarks?: string[] | undefined;
573
+ } | undefined;
574
+ attire?: {
575
+ description: string;
576
+ colors?: string[] | undefined;
577
+ materials?: string[] | undefined;
578
+ accessories?: string[] | undefined;
579
+ } | undefined;
580
+ environment?: {
581
+ setting: string;
582
+ timeOfDay?: string | undefined;
583
+ weather?: string | undefined;
584
+ lighting?: string | undefined;
585
+ architecture?: string | undefined;
586
+ vegetation?: string | undefined;
587
+ notableFeatures?: string[] | undefined;
588
+ } | undefined;
589
+ objectDetails?: {
590
+ size?: string | undefined;
591
+ material?: string | undefined;
592
+ condition?: string | undefined;
593
+ glowOrEffects?: string | undefined;
594
+ } | undefined;
595
+ pose?: string | undefined;
596
+ expression?: string | undefined;
597
+ action?: string | undefined;
598
+ };
599
+ composition: {
600
+ framing: string;
601
+ background?: string | undefined;
602
+ aspectRatio?: string | undefined;
603
+ cameraAngle?: string | undefined;
604
+ focusPoint?: string | undefined;
605
+ depth?: string | undefined;
606
+ };
607
+ consistency?: {
608
+ characterRef?: string | undefined;
609
+ seedImage?: string | undefined;
610
+ colorPalette?: string[] | undefined;
611
+ styleRef?: string | undefined;
612
+ } | undefined;
613
+ prompts?: {
614
+ dalle?: string | undefined;
615
+ sdxl?: string | undefined;
616
+ midjourney?: string | undefined;
617
+ comfyui?: {
618
+ positive: string;
619
+ negative: string;
620
+ checkpoint?: string | undefined;
621
+ loras?: {
622
+ weight: number;
623
+ name: string;
624
+ }[] | undefined;
625
+ samplerSettings?: {
626
+ sampler?: string | undefined;
627
+ scheduler?: string | undefined;
628
+ steps?: number | undefined;
629
+ cfg?: number | undefined;
630
+ } | undefined;
631
+ } | undefined;
632
+ flux?: string | undefined;
633
+ generic?: string | undefined;
634
+ } | undefined;
635
+ generations?: {
636
+ id: string;
637
+ tool: string;
638
+ prompt: string;
639
+ timestamp: string;
640
+ url?: string | undefined;
641
+ base64?: string | undefined;
642
+ seed?: number | undefined;
643
+ metadata?: Record<string, unknown> | undefined;
644
+ }[] | undefined;
645
+ }, {
646
+ style: {
647
+ genre: string;
648
+ artisticStyle: string;
649
+ mood: string;
650
+ colorScheme?: string | undefined;
651
+ qualityTags?: string[] | undefined;
652
+ influences?: string[] | undefined;
653
+ negativeElements?: string[] | undefined;
654
+ };
655
+ subject: {
656
+ type: "character" | "location" | "item" | "scene";
657
+ primaryDescription: string;
658
+ physicalTraits?: {
659
+ height?: string | undefined;
660
+ age?: string | undefined;
661
+ gender?: string | undefined;
662
+ bodyType?: string | undefined;
663
+ skinTone?: string | undefined;
664
+ hairColor?: string | undefined;
665
+ hairStyle?: string | undefined;
666
+ eyeColor?: string | undefined;
667
+ facialFeatures?: string | undefined;
668
+ distinguishingMarks?: string[] | undefined;
669
+ } | undefined;
670
+ attire?: {
671
+ description: string;
672
+ colors?: string[] | undefined;
673
+ materials?: string[] | undefined;
674
+ accessories?: string[] | undefined;
675
+ } | undefined;
676
+ environment?: {
677
+ setting: string;
678
+ timeOfDay?: string | undefined;
679
+ weather?: string | undefined;
680
+ lighting?: string | undefined;
681
+ architecture?: string | undefined;
682
+ vegetation?: string | undefined;
683
+ notableFeatures?: string[] | undefined;
684
+ } | undefined;
685
+ objectDetails?: {
686
+ size?: string | undefined;
687
+ material?: string | undefined;
688
+ condition?: string | undefined;
689
+ glowOrEffects?: string | undefined;
690
+ } | undefined;
691
+ pose?: string | undefined;
692
+ expression?: string | undefined;
693
+ action?: string | undefined;
694
+ };
695
+ composition: {
696
+ framing: string;
697
+ background?: string | undefined;
698
+ aspectRatio?: string | undefined;
699
+ cameraAngle?: string | undefined;
700
+ focusPoint?: string | undefined;
701
+ depth?: string | undefined;
702
+ };
703
+ consistency?: {
704
+ characterRef?: string | undefined;
705
+ seedImage?: string | undefined;
706
+ colorPalette?: string[] | undefined;
707
+ styleRef?: string | undefined;
708
+ } | undefined;
709
+ prompts?: {
710
+ dalle?: string | undefined;
711
+ sdxl?: string | undefined;
712
+ midjourney?: string | undefined;
713
+ comfyui?: {
714
+ positive: string;
715
+ negative: string;
716
+ checkpoint?: string | undefined;
717
+ loras?: {
718
+ weight: number;
719
+ name: string;
720
+ }[] | undefined;
721
+ samplerSettings?: {
722
+ sampler?: string | undefined;
723
+ scheduler?: string | undefined;
724
+ steps?: number | undefined;
725
+ cfg?: number | undefined;
726
+ } | undefined;
727
+ } | undefined;
728
+ flux?: string | undefined;
729
+ generic?: string | undefined;
730
+ } | undefined;
731
+ generations?: {
732
+ id: string;
733
+ tool: string;
734
+ prompt: string;
735
+ timestamp: string;
736
+ url?: string | undefined;
737
+ base64?: string | undefined;
738
+ seed?: number | undefined;
739
+ metadata?: Record<string, unknown> | undefined;
740
+ }[] | undefined;
741
+ }>>;
151
742
  createdAt: z.ZodString;
152
743
  };
153
744
  export declare const characterListOutputSchema: {
@@ -547,7 +1138,7 @@ export declare const resourceOutputSchema: {
547
1138
  id: z.ZodString;
548
1139
  gameId: z.ZodString;
549
1140
  ownerId: z.ZodNullable<z.ZodString>;
550
- ownerType: z.ZodEnum<["game", "character"]>;
1141
+ ownerType: z.ZodEnum<["game", "character", "faction", "location"]>;
551
1142
  name: z.ZodString;
552
1143
  description: z.ZodString;
553
1144
  category: z.ZodNullable<z.ZodString>;
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { imageGenSchema, voiceSchema } from "../schemas/index.js";
2
3
  /**
3
4
  * Shared output schemas for MCP tools.
4
5
  * These enable clients to validate structured outputs from tools.
@@ -89,6 +90,8 @@ export const characterOutputSchema = {
89
90
  status: characterStatusSchema,
90
91
  locationId: z.string().nullable(),
91
92
  notes: z.string(),
93
+ voice: voiceSchema.nullable(),
94
+ imageGen: imageGenSchema.nullable(),
92
95
  createdAt: z.string(),
93
96
  };
94
97
  export const characterListOutputSchema = {
@@ -275,7 +278,7 @@ export const resourceOutputSchema = {
275
278
  id: z.string(),
276
279
  gameId: z.string(),
277
280
  ownerId: z.string().nullable(),
278
- ownerType: z.enum(["game", "character"]),
281
+ ownerType: z.enum(["game", "character", "faction", "location"]),
279
282
  name: z.string(),
280
283
  description: z.string(),
281
284
  category: z.string().nullable(),
@@ -1,3 +1,35 @@
1
+ /**
2
+ * Port the web UI listens on when nothing says otherwise.
3
+ */
4
+ export declare const DEFAULT_HTTP_PORT = 3456;
5
+ /**
6
+ * Which port the web UI should listen on, read from an environment rather than
7
+ * from the ambient process, so the answer can be tested from a value.
8
+ *
9
+ * An out-of-range or unparseable DMCP_HTTP_PORT falls back to the default. The
10
+ * inherited code did `parseInt(value || "3456", 10)` and handed the NaN
11
+ * straight to `listen()`, which quietly bound a random port instead -- an
12
+ * operator who mistyped a port got a working server on an address they could
13
+ * not predict. `0` is kept, because that is the real way to ask for any free
14
+ * port.
15
+ */
16
+ export declare function httpPortFromEnv(env?: NodeJS.ProcessEnv): number;
17
+ /**
18
+ * Whether the executable should serve the web UI.
19
+ *
20
+ * The web UI is an application's feature, not a library's: a process that only
21
+ * needs the engine has no use for an admin page, and one that starts a server
22
+ * squats a port and cannot exit. Importing this package therefore starts
23
+ * nothing at all (see src/index.ts), and the shipped executable serves the
24
+ * web UI by default -- unless DMCP_NO_HTTP says not to, which is what a host
25
+ * that spawns this as an MCP subprocess sets for it.
26
+ *
27
+ * `0`, `false` and an empty value leave it on, because a launcher that writes
28
+ * `DMCP_NO_HTTP=${disabled ? 1 : 0}` means the web UI to run when it writes 0.
29
+ * These are literal tokens in a variable this project defines, not an attempt
30
+ * to read intent out of prose.
31
+ */
32
+ export declare function webUiEnabled(env?: NodeJS.ProcessEnv): boolean;
1
33
  /**
2
34
  * Set the actual HTTP port after server starts
3
35
  */