@houtini/lm 1.0.13 → 2.0.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.
Files changed (264) hide show
  1. package/README.md +67 -237
  2. package/dist/index.d.ts +5 -3
  3. package/dist/index.js +149 -213
  4. package/dist/index.js.map +1 -1
  5. package/package.json +23 -32
  6. package/server.json +44 -0
  7. package/CHANGELOG.md +0 -282
  8. package/dist/cache/analysis-cache.d.ts +0 -33
  9. package/dist/cache/analysis-cache.d.ts.map +0 -1
  10. package/dist/cache/analysis-cache.js +0 -56
  11. package/dist/cache/analysis-cache.js.map +0 -1
  12. package/dist/cache/cache-manager.d.ts +0 -29
  13. package/dist/cache/cache-manager.d.ts.map +0 -1
  14. package/dist/cache/cache-manager.js +0 -85
  15. package/dist/cache/cache-manager.js.map +0 -1
  16. package/dist/cache/index.d.ts +0 -16
  17. package/dist/cache/index.d.ts.map +0 -1
  18. package/dist/cache/index.js +0 -17
  19. package/dist/cache/index.js.map +0 -1
  20. package/dist/cache/prompt-cache.d.ts +0 -33
  21. package/dist/cache/prompt-cache.d.ts.map +0 -1
  22. package/dist/cache/prompt-cache.js +0 -61
  23. package/dist/cache/prompt-cache.js.map +0 -1
  24. package/dist/config.d.ts +0 -41
  25. package/dist/config.d.ts.map +0 -1
  26. package/dist/config.js +0 -71
  27. package/dist/config.js.map +0 -1
  28. package/dist/core/ThreeStagePromptManager.d.ts +0 -23
  29. package/dist/core/ThreeStagePromptManager.d.ts.map +0 -1
  30. package/dist/core/ThreeStagePromptManager.js +0 -118
  31. package/dist/core/ThreeStagePromptManager.js.map +0 -1
  32. package/dist/index.d.ts.map +0 -1
  33. package/dist/plugins/base-plugin.d.ts +0 -55
  34. package/dist/plugins/base-plugin.d.ts.map +0 -1
  35. package/dist/plugins/base-plugin.js +0 -120
  36. package/dist/plugins/base-plugin.js.map +0 -1
  37. package/dist/plugins/index.d.ts +0 -58
  38. package/dist/plugins/index.d.ts.map +0 -1
  39. package/dist/plugins/index.js +0 -162
  40. package/dist/plugins/index.js.map +0 -1
  41. package/dist/plugins/types.d.ts +0 -5
  42. package/dist/plugins/types.d.ts.map +0 -1
  43. package/dist/plugins/types.js +0 -5
  44. package/dist/plugins/types.js.map +0 -1
  45. package/dist/prompts/analyze/code-quality.d.ts +0 -116
  46. package/dist/prompts/analyze/code-quality.d.ts.map +0 -1
  47. package/dist/prompts/analyze/code-quality.js +0 -437
  48. package/dist/prompts/analyze/code-quality.js.map +0 -1
  49. package/dist/prompts/analyze/compare-integration.d.ts +0 -130
  50. package/dist/prompts/analyze/compare-integration.d.ts.map +0 -1
  51. package/dist/prompts/analyze/compare-integration.js +0 -547
  52. package/dist/prompts/analyze/compare-integration.js.map +0 -1
  53. package/dist/prompts/analyze/count-files.d.ts +0 -109
  54. package/dist/prompts/analyze/count-files.d.ts.map +0 -1
  55. package/dist/prompts/analyze/count-files.js +0 -403
  56. package/dist/prompts/analyze/count-files.js.map +0 -1
  57. package/dist/prompts/analyze/database-queries.d.ts +0 -156
  58. package/dist/prompts/analyze/database-queries.d.ts.map +0 -1
  59. package/dist/prompts/analyze/database-queries.js +0 -763
  60. package/dist/prompts/analyze/database-queries.js.map +0 -1
  61. package/dist/prompts/analyze/dependencies.d.ts +0 -97
  62. package/dist/prompts/analyze/dependencies.d.ts.map +0 -1
  63. package/dist/prompts/analyze/dependencies.js +0 -337
  64. package/dist/prompts/analyze/dependencies.js.map +0 -1
  65. package/dist/prompts/analyze/diff-signatures.d.ts +0 -139
  66. package/dist/prompts/analyze/diff-signatures.d.ts.map +0 -1
  67. package/dist/prompts/analyze/diff-signatures.js +0 -708
  68. package/dist/prompts/analyze/diff-signatures.js.map +0 -1
  69. package/dist/prompts/analyze/find-patterns.d.ts +0 -128
  70. package/dist/prompts/analyze/find-patterns.d.ts.map +0 -1
  71. package/dist/prompts/analyze/find-patterns.js +0 -524
  72. package/dist/prompts/analyze/find-patterns.js.map +0 -1
  73. package/dist/prompts/analyze/find-unused-css.d.ts +0 -151
  74. package/dist/prompts/analyze/find-unused-css.d.ts.map +0 -1
  75. package/dist/prompts/analyze/find-unused-css.js +0 -760
  76. package/dist/prompts/analyze/find-unused-css.js.map +0 -1
  77. package/dist/prompts/analyze/n8n-workflow.d.ts +0 -137
  78. package/dist/prompts/analyze/n8n-workflow.d.ts.map +0 -1
  79. package/dist/prompts/analyze/n8n-workflow.js +0 -533
  80. package/dist/prompts/analyze/n8n-workflow.js.map +0 -1
  81. package/dist/prompts/analyze/project-structure.d.ts +0 -126
  82. package/dist/prompts/analyze/project-structure.d.ts.map +0 -1
  83. package/dist/prompts/analyze/project-structure.js +0 -573
  84. package/dist/prompts/analyze/project-structure.js.map +0 -1
  85. package/dist/prompts/analyze/security-audit.d.ts +0 -142
  86. package/dist/prompts/analyze/security-audit.d.ts.map +0 -1
  87. package/dist/prompts/analyze/security-audit.js +0 -641
  88. package/dist/prompts/analyze/security-audit.js.map +0 -1
  89. package/dist/prompts/analyze/single-file.d.ts +0 -162
  90. package/dist/prompts/analyze/single-file.d.ts.map +0 -1
  91. package/dist/prompts/analyze/single-file.js +0 -669
  92. package/dist/prompts/analyze/single-file.js.map +0 -1
  93. package/dist/prompts/analyze/trace-execution.d.ts +0 -126
  94. package/dist/prompts/analyze/trace-execution.d.ts.map +0 -1
  95. package/dist/prompts/analyze/trace-execution.js +0 -613
  96. package/dist/prompts/analyze/trace-execution.js.map +0 -1
  97. package/dist/prompts/analyze/wordpress-plugin-audit.d.ts +0 -116
  98. package/dist/prompts/analyze/wordpress-plugin-audit.d.ts.map +0 -1
  99. package/dist/prompts/analyze/wordpress-plugin-audit.js +0 -456
  100. package/dist/prompts/analyze/wordpress-plugin-audit.js.map +0 -1
  101. package/dist/prompts/analyze/wordpress-plugin-readiness.d.ts +0 -103
  102. package/dist/prompts/analyze/wordpress-plugin-readiness.d.ts.map +0 -1
  103. package/dist/prompts/analyze/wordpress-plugin-readiness.js +0 -506
  104. package/dist/prompts/analyze/wordpress-plugin-readiness.js.map +0 -1
  105. package/dist/prompts/analyze/wordpress-security.d.ts +0 -146
  106. package/dist/prompts/analyze/wordpress-security.d.ts.map +0 -1
  107. package/dist/prompts/analyze/wordpress-security.js +0 -702
  108. package/dist/prompts/analyze/wordpress-security.js.map +0 -1
  109. package/dist/prompts/analyze/wordpress-theme-audit.d.ts +0 -114
  110. package/dist/prompts/analyze/wordpress-theme-audit.d.ts.map +0 -1
  111. package/dist/prompts/analyze/wordpress-theme-audit.js +0 -540
  112. package/dist/prompts/analyze/wordpress-theme-audit.js.map +0 -1
  113. package/dist/prompts/custom/custom-prompt.d.ts +0 -135
  114. package/dist/prompts/custom/custom-prompt.d.ts.map +0 -1
  115. package/dist/prompts/custom/custom-prompt.js +0 -421
  116. package/dist/prompts/custom/custom-prompt.js.map +0 -1
  117. package/dist/prompts/fun/arcade-game.d.ts +0 -152
  118. package/dist/prompts/fun/arcade-game.d.ts.map +0 -1
  119. package/dist/prompts/fun/arcade-game.js +0 -657
  120. package/dist/prompts/fun/arcade-game.js.map +0 -1
  121. package/dist/prompts/fun/create_text_adventure.d.ts +0 -100
  122. package/dist/prompts/fun/create_text_adventure.d.ts.map +0 -1
  123. package/dist/prompts/fun/create_text_adventure.js +0 -401
  124. package/dist/prompts/fun/create_text_adventure.js.map +0 -1
  125. package/dist/prompts/fun/css-art-generator.d.ts +0 -168
  126. package/dist/prompts/fun/css-art-generator.d.ts.map +0 -1
  127. package/dist/prompts/fun/css-art-generator.js +0 -831
  128. package/dist/prompts/fun/css-art-generator.js.map +0 -1
  129. package/dist/prompts/generate/project-documentation.d.ts +0 -137
  130. package/dist/prompts/generate/project-documentation.d.ts.map +0 -1
  131. package/dist/prompts/generate/project-documentation.js +0 -670
  132. package/dist/prompts/generate/project-documentation.js.map +0 -1
  133. package/dist/prompts/generate/refactoring.d.ts +0 -164
  134. package/dist/prompts/generate/refactoring.d.ts.map +0 -1
  135. package/dist/prompts/generate/refactoring.js +0 -625
  136. package/dist/prompts/generate/refactoring.js.map +0 -1
  137. package/dist/prompts/generate/responsive-component.d.ts +0 -147
  138. package/dist/prompts/generate/responsive-component.d.ts.map +0 -1
  139. package/dist/prompts/generate/responsive-component.js +0 -957
  140. package/dist/prompts/generate/responsive-component.js.map +0 -1
  141. package/dist/prompts/generate/typescript-conversion.d.ts +0 -144
  142. package/dist/prompts/generate/typescript-conversion.d.ts.map +0 -1
  143. package/dist/prompts/generate/typescript-conversion.js +0 -531
  144. package/dist/prompts/generate/typescript-conversion.js.map +0 -1
  145. package/dist/prompts/generate/unit-tests.d.ts +0 -139
  146. package/dist/prompts/generate/unit-tests.d.ts.map +0 -1
  147. package/dist/prompts/generate/unit-tests.js +0 -582
  148. package/dist/prompts/generate/unit-tests.js.map +0 -1
  149. package/dist/prompts/generate/wordpress-plugin.d.ts +0 -179
  150. package/dist/prompts/generate/wordpress-plugin.d.ts.map +0 -1
  151. package/dist/prompts/generate/wordpress-plugin.js +0 -767
  152. package/dist/prompts/generate/wordpress-plugin.js.map +0 -1
  153. package/dist/prompts/generate/wordpress-theme-from-static.d.ts +0 -177
  154. package/dist/prompts/generate/wordpress-theme-from-static.d.ts.map +0 -1
  155. package/dist/prompts/generate/wordpress-theme-from-static.js +0 -699
  156. package/dist/prompts/generate/wordpress-theme-from-static.js.map +0 -1
  157. package/dist/prompts/shared/cache-manager.d.ts +0 -45
  158. package/dist/prompts/shared/cache-manager.d.ts.map +0 -1
  159. package/dist/prompts/shared/cache-manager.js +0 -129
  160. package/dist/prompts/shared/cache-manager.js.map +0 -1
  161. package/dist/prompts/shared/helpers.d.ts +0 -39
  162. package/dist/prompts/shared/helpers.d.ts.map +0 -1
  163. package/dist/prompts/shared/helpers.js +0 -151
  164. package/dist/prompts/shared/helpers.js.map +0 -1
  165. package/dist/prompts/shared/templates.d.ts +0 -35
  166. package/dist/prompts/shared/templates.d.ts.map +0 -1
  167. package/dist/prompts/shared/templates.js +0 -77
  168. package/dist/prompts/shared/templates.js.map +0 -1
  169. package/dist/prompts/shared/types.d.ts +0 -112
  170. package/dist/prompts/shared/types.d.ts.map +0 -1
  171. package/dist/prompts/shared/types.js +0 -5
  172. package/dist/prompts/shared/types.js.map +0 -1
  173. package/dist/prompts/system/find-unused-files.d.ts +0 -106
  174. package/dist/prompts/system/find-unused-files.d.ts.map +0 -1
  175. package/dist/prompts/system/find-unused-files.js +0 -357
  176. package/dist/prompts/system/find-unused-files.js.map +0 -1
  177. package/dist/security/index.d.ts +0 -39
  178. package/dist/security/index.d.ts.map +0 -1
  179. package/dist/security/index.js +0 -46
  180. package/dist/security/index.js.map +0 -1
  181. package/dist/security/integration-helpers.d.ts +0 -121
  182. package/dist/security/integration-helpers.d.ts.map +0 -1
  183. package/dist/security/integration-helpers.js +0 -190
  184. package/dist/security/integration-helpers.js.map +0 -1
  185. package/dist/security/output-encoder.d.ts +0 -94
  186. package/dist/security/output-encoder.d.ts.map +0 -1
  187. package/dist/security/output-encoder.js +0 -295
  188. package/dist/security/output-encoder.js.map +0 -1
  189. package/dist/security/prompt-injection-guard.d.ts +0 -59
  190. package/dist/security/prompt-injection-guard.d.ts.map +0 -1
  191. package/dist/security/prompt-injection-guard.js +0 -249
  192. package/dist/security/prompt-injection-guard.js.map +0 -1
  193. package/dist/security/sanitisation.d.ts +0 -67
  194. package/dist/security/sanitisation.d.ts.map +0 -1
  195. package/dist/security/sanitisation.js +0 -398
  196. package/dist/security/sanitisation.js.map +0 -1
  197. package/dist/security/security-service.d.ts +0 -103
  198. package/dist/security/security-service.d.ts.map +0 -1
  199. package/dist/security/security-service.js +0 -303
  200. package/dist/security/security-service.js.map +0 -1
  201. package/dist/security-config.d.ts +0 -45
  202. package/dist/security-config.d.ts.map +0 -1
  203. package/dist/security-config.js +0 -63
  204. package/dist/security-config.js.map +0 -1
  205. package/dist/system/function-list.d.ts +0 -61
  206. package/dist/system/function-list.d.ts.map +0 -1
  207. package/dist/system/function-list.js +0 -111
  208. package/dist/system/function-list.js.map +0 -1
  209. package/dist/system/function-registry.d.ts +0 -23
  210. package/dist/system/function-registry.d.ts.map +0 -1
  211. package/dist/system/function-registry.js +0 -136
  212. package/dist/system/function-registry.js.map +0 -1
  213. package/dist/system/health-check.d.ts +0 -33
  214. package/dist/system/health-check.d.ts.map +0 -1
  215. package/dist/system/health-check.js +0 -98
  216. package/dist/system/health-check.js.map +0 -1
  217. package/dist/system/path-resolver.d.ts +0 -55
  218. package/dist/system/path-resolver.d.ts.map +0 -1
  219. package/dist/system/path-resolver.js +0 -90
  220. package/dist/system/path-resolver.js.map +0 -1
  221. package/dist/templates/plugin-template.d.ts +0 -121
  222. package/dist/templates/plugin-template.d.ts.map +0 -1
  223. package/dist/templates/plugin-template.js +0 -454
  224. package/dist/templates/plugin-template.js.map +0 -1
  225. package/dist/types/chunking-types.d.ts +0 -88
  226. package/dist/types/chunking-types.d.ts.map +0 -1
  227. package/dist/types/chunking-types.js +0 -18
  228. package/dist/types/chunking-types.js.map +0 -1
  229. package/dist/types/prompt-stages.d.ts +0 -30
  230. package/dist/types/prompt-stages.d.ts.map +0 -1
  231. package/dist/types/prompt-stages.js +0 -6
  232. package/dist/types/prompt-stages.js.map +0 -1
  233. package/dist/types.d.ts +0 -45
  234. package/dist/types.d.ts.map +0 -1
  235. package/dist/types.js +0 -6
  236. package/dist/types.js.map +0 -1
  237. package/dist/utils/css-parser.d.ts +0 -26
  238. package/dist/utils/css-parser.d.ts.map +0 -1
  239. package/dist/utils/css-parser.js +0 -117
  240. package/dist/utils/css-parser.js.map +0 -1
  241. package/dist/utils/path-resolver.d.ts +0 -13
  242. package/dist/utils/path-resolver.d.ts.map +0 -1
  243. package/dist/utils/path-resolver.js +0 -78
  244. package/dist/utils/path-resolver.js.map +0 -1
  245. package/dist/utils/plugin-utilities.d.ts +0 -176
  246. package/dist/utils/plugin-utilities.d.ts.map +0 -1
  247. package/dist/utils/plugin-utilities.js +0 -269
  248. package/dist/utils/plugin-utilities.js.map +0 -1
  249. package/dist/utils/streamHandler.d.ts +0 -3
  250. package/dist/utils/streamHandler.d.ts.map +0 -1
  251. package/dist/utils/streamHandler.js +0 -137
  252. package/dist/utils/streamHandler.js.map +0 -1
  253. package/dist/validation/output-validator.d.ts +0 -136
  254. package/dist/validation/output-validator.d.ts.map +0 -1
  255. package/dist/validation/output-validator.js +0 -262
  256. package/dist/validation/output-validator.js.map +0 -1
  257. package/dist/validation/response-factory.d.ts +0 -44
  258. package/dist/validation/response-factory.d.ts.map +0 -1
  259. package/dist/validation/response-factory.js +0 -202
  260. package/dist/validation/response-factory.js.map +0 -1
  261. package/dist/validation/schemas.d.ts +0 -519
  262. package/dist/validation/schemas.d.ts.map +0 -1
  263. package/dist/validation/schemas.js +0 -6
  264. package/dist/validation/schemas.js.map +0 -1
@@ -1,100 +0,0 @@
1
- /**
2
- * Text Adventure Generator - Fun Plugin for Houtini LM MCP
3
- *
4
- * Creates complete interactive text adventure games with branching storylines,
5
- * inventory systems, character stats, and multiple endings.
6
- */
7
- import { BasePlugin } from '../../plugins/base-plugin.js';
8
- import { IPromptPlugin } from '../shared/types.js';
9
- import { PromptStages } from '../../types/prompt-stages.js';
10
- export declare class TextAdventureGenerator extends BasePlugin implements IPromptPlugin {
11
- name: string;
12
- category: "generate";
13
- description: string;
14
- parameters: {
15
- code: {
16
- type: "string";
17
- description: string;
18
- required: boolean;
19
- };
20
- filePath: {
21
- type: "string";
22
- description: string;
23
- required: boolean;
24
- };
25
- projectPath: {
26
- type: "string";
27
- description: string;
28
- required: boolean;
29
- };
30
- files: {
31
- type: "array";
32
- description: string;
33
- required: boolean;
34
- items: {
35
- type: "string";
36
- };
37
- };
38
- maxDepth: {
39
- type: "number";
40
- description: string;
41
- required: boolean;
42
- default: number;
43
- };
44
- theme: {
45
- type: "string";
46
- description: string;
47
- enum: string[];
48
- default: string;
49
- required: boolean;
50
- };
51
- complexity: {
52
- type: "string";
53
- description: string;
54
- enum: string[];
55
- default: string;
56
- required: boolean;
57
- };
58
- length: {
59
- type: "string";
60
- description: string;
61
- enum: string[];
62
- default: string;
63
- required: boolean;
64
- };
65
- features: {
66
- type: "array";
67
- description: string;
68
- items: {
69
- type: "string";
70
- };
71
- default: string[];
72
- required: boolean;
73
- };
74
- playerClass: {
75
- type: "string";
76
- description: string;
77
- enum: string[];
78
- default: string;
79
- required: boolean;
80
- };
81
- };
82
- private analysisCache;
83
- private multiFileAnalysis;
84
- constructor();
85
- execute(params: any, llmClient: any): Promise<any>;
86
- private detectAnalysisMode;
87
- private validateParameters;
88
- private executeSingleFileGeneration;
89
- private executeMultiFileGeneration;
90
- private getSingleFilePromptStages;
91
- private getMultiFilePromptStages;
92
- getPromptStages(params: any): PromptStages;
93
- private getFeatureDescriptions;
94
- private getComplexityGuidelines;
95
- private getLengthSpecifications;
96
- private getMinimumScenes;
97
- private getMinimumEndings;
98
- }
99
- export default TextAdventureGenerator;
100
- //# sourceMappingURL=create_text_adventure.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create_text_adventure.d.ts","sourceRoot":"","sources":["../../../src/prompts/fun/create_text_adventure.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAiB5D,qBAAa,sBAAuB,SAAQ,UAAW,YAAW,aAAa;IAC7E,IAAI,SAA2B;IAC/B,QAAQ,EAAG,UAAU,CAAU;IAC/B,WAAW,SAA2H;IAEtI,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoER;IAEF,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,iBAAiB,CAA2B;;IAM9C,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG;IAyBzC,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,kBAAkB;YAcZ,2BAA2B;YA4C3B,0BAA0B;IAwBxC,OAAO,CAAC,yBAAyB;IAgEjC,OAAO,CAAC,wBAAwB;IA0GhC,eAAe,CAAC,MAAM,EAAE,GAAG,GAAG,YAAY;IAW1C,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,iBAAiB;CAS1B;AAED,eAAe,sBAAsB,CAAC"}
@@ -1,401 +0,0 @@
1
- /**
2
- * Text Adventure Generator - Fun Plugin for Houtini LM MCP
3
- *
4
- * Creates complete interactive text adventure games with branching storylines,
5
- * inventory systems, character stats, and multiple endings.
6
- */
7
- import { BasePlugin } from '../../plugins/base-plugin.js';
8
- import { ThreeStagePromptManager } from '../../core/ThreeStagePromptManager.js';
9
- import { withSecurity } from '../../security/integration-helpers.js';
10
- import { readFileContent } from '../shared/helpers.js';
11
- import { ModelSetup, ResponseProcessor, ParameterValidator, ErrorHandler, MultiFileAnalysis, TokenCalculator } from '../../utils/plugin-utilities.js';
12
- import { getAnalysisCache } from '../../cache/index.js';
13
- export class TextAdventureGenerator extends BasePlugin {
14
- constructor() {
15
- super();
16
- this.name = 'create_text_adventure';
17
- this.category = 'generate';
18
- this.description = 'Generate complete interactive text adventure games with branching storylines, inventory systems, and multiple endings';
19
- this.parameters = {
20
- // Single-file parameters (for analyzing existing adventures)
21
- code: {
22
- type: 'string',
23
- description: 'Existing adventure code to enhance (for single-file analysis)',
24
- required: false
25
- },
26
- filePath: {
27
- type: 'string',
28
- description: 'Path to existing adventure file to enhance',
29
- required: false
30
- },
31
- // Multi-file parameters (for generating complete adventure projects)
32
- projectPath: {
33
- type: 'string',
34
- description: 'Path to project root where adventure will be created',
35
- required: false
36
- },
37
- files: {
38
- type: 'array',
39
- description: 'Array of specific adventure files to analyze/enhance',
40
- required: false,
41
- items: { type: 'string' }
42
- },
43
- maxDepth: {
44
- type: 'number',
45
- description: 'Maximum directory depth for adventure file discovery (1-5)',
46
- required: false,
47
- default: 3
48
- },
49
- // Adventure-specific parameters
50
- theme: {
51
- type: 'string',
52
- description: 'Adventure theme',
53
- enum: ['fantasy', 'sci-fi', 'mystery', 'horror', 'historical', 'modern', 'steampunk', 'cyberpunk'],
54
- default: 'fantasy',
55
- required: false
56
- },
57
- complexity: {
58
- type: 'string',
59
- description: 'Adventure complexity level',
60
- enum: ['simple', 'intermediate', 'advanced'],
61
- default: 'intermediate',
62
- required: false
63
- },
64
- length: {
65
- type: 'string',
66
- description: 'Expected adventure length',
67
- enum: ['short', 'medium', 'long', 'epic'],
68
- default: 'medium',
69
- required: false
70
- },
71
- features: {
72
- type: 'array',
73
- description: 'Adventure features to include',
74
- items: { type: 'string' },
75
- default: ['inventory', 'stats', 'save_game', 'multiple_endings'],
76
- required: false
77
- },
78
- playerClass: {
79
- type: 'string',
80
- description: 'Player character class/type',
81
- enum: ['warrior', 'mage', 'rogue', 'ranger', 'detective', 'scientist', 'explorer', 'custom'],
82
- default: 'custom',
83
- required: false
84
- }
85
- };
86
- this.analysisCache = getAnalysisCache();
87
- this.multiFileAnalysis = new MultiFileAnalysis();
88
- }
89
- async execute(params, llmClient) {
90
- return await withSecurity(this, params, llmClient, async (secureParams) => {
91
- try {
92
- // Auto-detect analysis mode
93
- const analysisMode = this.detectAnalysisMode(secureParams);
94
- // Validate parameters
95
- this.validateParameters(secureParams, analysisMode);
96
- // Setup model
97
- const { model, contextLength } = await ModelSetup.getReadyModel(llmClient);
98
- // Route to appropriate generation method
99
- if (analysisMode === 'single-file') {
100
- return await this.executeSingleFileGeneration(secureParams, model, contextLength);
101
- }
102
- else {
103
- return await this.executeMultiFileGeneration(secureParams, model, contextLength);
104
- }
105
- }
106
- catch (error) {
107
- return ErrorHandler.createExecutionError('create_text_adventure', error);
108
- }
109
- });
110
- }
111
- detectAnalysisMode(params) {
112
- // Single-file: enhancing existing adventure
113
- if (params.code || params.filePath) {
114
- return 'single-file';
115
- }
116
- // Multi-file: creating new adventure project
117
- if (params.projectPath || params.files) {
118
- return 'multi-file';
119
- }
120
- // Default for text adventures: multi-file project generation
121
- return 'multi-file';
122
- }
123
- validateParameters(params, mode) {
124
- if (mode === 'single-file') {
125
- ParameterValidator.validateCodeOrFile(params);
126
- }
127
- else {
128
- ParameterValidator.validateProjectPath(params);
129
- }
130
- // Adventure-specific validations
131
- ParameterValidator.validateEnum(params, 'theme', ['fantasy', 'sci-fi', 'mystery', 'horror', 'historical', 'modern', 'steampunk', 'cyberpunk']);
132
- ParameterValidator.validateEnum(params, 'complexity', ['simple', 'intermediate', 'advanced']);
133
- ParameterValidator.validateEnum(params, 'length', ['short', 'medium', 'long', 'epic']);
134
- ParameterValidator.validateEnum(params, 'playerClass', ['warrior', 'mage', 'rogue', 'ranger', 'detective', 'scientist', 'explorer', 'custom']);
135
- }
136
- async executeSingleFileGeneration(params, model, contextLength) {
137
- // Process existing adventure code
138
- let adventureCode = params.code;
139
- if (params.filePath) {
140
- adventureCode = await readFileContent(params.filePath);
141
- }
142
- // Generate enhancement prompt
143
- const promptStages = this.getSingleFilePromptStages({
144
- ...params,
145
- code: adventureCode
146
- });
147
- // Execute with appropriate method
148
- const promptManager = new ThreeStagePromptManager();
149
- const needsChunking = TokenCalculator.needsChunking(promptStages, contextLength);
150
- if (needsChunking) {
151
- const chunkSize = TokenCalculator.calculateOptimalChunkSize(promptStages, contextLength);
152
- const dataChunks = promptManager.chunkDataPayload(promptStages.dataPayload, chunkSize);
153
- const conversation = promptManager.createChunkedConversation(promptStages, dataChunks);
154
- const messages = [
155
- conversation.systemMessage,
156
- ...conversation.dataMessages,
157
- conversation.analysisMessage
158
- ];
159
- return await ResponseProcessor.executeChunked(messages, model, contextLength, 'create_text_adventure', 'single');
160
- }
161
- else {
162
- return await ResponseProcessor.executeDirect(promptStages, model, contextLength, 'create_text_adventure');
163
- }
164
- }
165
- async executeMultiFileGeneration(params, model, contextLength) {
166
- // For new adventure generation, we create the complete project
167
- const promptStages = this.getMultiFilePromptStages(params);
168
- // Always use chunking for complete adventure generation
169
- const promptManager = new ThreeStagePromptManager();
170
- const chunkSize = TokenCalculator.calculateOptimalChunkSize(promptStages, contextLength);
171
- const dataChunks = promptManager.chunkDataPayload(promptStages.dataPayload, chunkSize);
172
- const conversation = promptManager.createChunkedConversation(promptStages, dataChunks);
173
- const messages = [
174
- conversation.systemMessage,
175
- ...conversation.dataMessages,
176
- conversation.analysisMessage
177
- ];
178
- return await ResponseProcessor.executeChunked(messages, model, contextLength, 'create_text_adventure', 'multifile');
179
- }
180
- getSingleFilePromptStages(params) {
181
- const { code, theme, complexity, length, features, playerClass } = params;
182
- const systemAndContext = `You are a master game designer and interactive fiction writer with 20+ years of experience creating engaging text adventures. You specialize in narrative design, player engagement, and technical implementation of interactive storytelling systems.
183
-
184
- **Your Mission**: Enhance and expand the existing text adventure code to create a more engaging, feature-rich experience.
185
-
186
- **Your Expertise**:
187
- - Interactive fiction design and narrative structure
188
- - Player choice consequences and branching storylines
189
- - Game mechanics integration (inventory, stats, combat)
190
- - Technical implementation of text-based game systems
191
- - User experience optimization for text adventures
192
-
193
- **Enhancement Context**:
194
- - Theme: ${theme}
195
- - Complexity: ${complexity}
196
- - Target Length: ${length}
197
- - Features: ${features.join(', ')}
198
- - Player Class: ${playerClass}
199
-
200
- **Enhancement Approach**:
201
- 1. Analyze existing adventure structure and identify expansion opportunities
202
- 2. Enhance narrative depth and player choice consequences
203
- 3. Improve game mechanics and feature integration
204
- 4. Optimize user interface and experience
205
- 5. Add replayability elements and multiple story paths`;
206
- const dataPayload = `Existing adventure code to enhance:
207
-
208
- \`\`\`javascript
209
- ${code}
210
- \`\`\``;
211
- const outputInstructions = `Provide your enhanced text adventure as complete, working code with the following structure:
212
-
213
- **Return the enhanced code in this format:**
214
-
215
- \`\`\`javascript
216
- // Enhanced adventure code here
217
- \`\`\`
218
-
219
- **Requirements for Enhancement:**
220
- - Expand narrative depth with richer descriptions and character development
221
- - Add new story branches and meaningful player choices
222
- - Implement requested features: ${features.join(', ')}
223
- - Improve game mechanics and user interface
224
- - Add multiple endings based on player choices
225
- - Include save/load functionality if requested
226
- - Optimize code structure and readability
227
-
228
- **Technical Standards:**
229
- - Clean, modular JavaScript code
230
- - Comprehensive error handling
231
- - Intuitive user interface
232
- - Mobile-friendly design
233
- - Local storage for save games
234
- - Proper game state management
235
-
236
- Focus on creating an enhanced adventure that's significantly more engaging than the original while maintaining technical excellence.`;
237
- return { systemAndContext, dataPayload, outputInstructions };
238
- }
239
- getMultiFilePromptStages(params) {
240
- const { theme, complexity, length, features, playerClass } = params;
241
- const systemAndContext = `You are a master game designer and interactive fiction writer with 20+ years of experience creating captivating text adventures. You specialize in complete game architecture, narrative design, and creating immersive interactive experiences.
242
-
243
- **Your Mission**: Create a complete, professional-quality text adventure game from scratch.
244
-
245
- **Your Expertise**:
246
- - Interactive fiction architecture and game engine design
247
- - Compelling narrative structure with branching storylines
248
- - Advanced game mechanics (inventory, combat, character progression)
249
- - Professional web development for gaming applications
250
- - User experience design for text-based adventures
251
- - Replayability and engagement optimization
252
-
253
- **Adventure Specifications**:
254
- - Theme: ${theme}
255
- - Complexity Level: ${complexity}
256
- - Expected Length: ${length}
257
- - Features: ${features.join(', ')}
258
- - Player Class: ${playerClass}
259
-
260
- **Game Architecture Approach**:
261
- 1. Design modular game engine with extensible components
262
- 2. Create rich, atmospheric narrative with meaningful choices
263
- 3. Implement sophisticated game mechanics and systems
264
- 4. Build intuitive, responsive user interface
265
- 5. Include multiple story paths and endings for replayability
266
- 6. Ensure professional code quality and structure
267
-
268
- **Quality Standards**:
269
- - Professional game architecture with clean separation of concerns
270
- - Engaging storytelling with character development and world-building
271
- - Sophisticated game mechanics appropriate for the complexity level
272
- - Modern web technologies with responsive design
273
- - Comprehensive save/load system and game state management
274
- - Multiple difficulty levels and replayability features`;
275
- const dataPayload = `Adventure Generation Requirements:
276
-
277
- **Theme**: ${theme}
278
- **Complexity**: ${complexity}
279
- **Length**: ${length}
280
- **Features**: ${features.join(', ')}
281
- **Player Class**: ${playerClass}
282
-
283
- **Expected Output**: Complete, multi-file text adventure game project
284
-
285
- **Feature Details**:
286
- ${this.getFeatureDescriptions(features).map(f => `- ${f}`).join('\n')}
287
-
288
- **Complexity Guidelines**:
289
- ${this.getComplexityGuidelines(complexity)}
290
-
291
- **Length Specifications**:
292
- ${this.getLengthSpecifications(length)}`;
293
- const outputInstructions = `Create a complete text adventure game with the following file structure:
294
-
295
- **File Structure Required:**
296
- 1. **index.html** - Main game interface with modern styling
297
- 2. **game-engine.js** - Core game engine and state management
298
- 3. **story-data.js** - All story content, choices, and narrative text
299
- 4. **game-mechanics.js** - Inventory, combat, stats, and game systems
300
- 5. **ui-manager.js** - User interface management and interactions
301
- 6. **save-system.js** - Save/load functionality and persistence
302
- 7. **styles.css** - Professional styling with theme-appropriate design
303
-
304
- **Output Format:**
305
- For each file, provide:
306
-
307
- \`\`\`
308
- // File: [filename]
309
- [complete file content]
310
- \`\`\`
311
-
312
- **Technical Requirements:**
313
- - Modern, clean JavaScript with ES6+ features
314
- - Responsive CSS design that works on mobile and desktop
315
- - Comprehensive error handling and edge case management
316
- - Modular architecture for easy expansion
317
- - Local storage save system with multiple save slots
318
- - Professional UI/UX with smooth transitions and feedback
319
- - Accessibility features (keyboard navigation, screen reader support)
320
-
321
- **Game Content Requirements:**
322
- - Rich, immersive storyline appropriate for ${theme} theme
323
- - At least ${this.getMinimumScenes(length)} unique scenes/locations
324
- - Multiple story paths leading to different outcomes
325
- - Character development and meaningful player choices
326
- - Atmospheric descriptions and engaging dialogue
327
- - ${this.getMinimumEndings(complexity)} distinct endings based on player choices
328
-
329
- **Quality Assurance:**
330
- - All code must be production-ready and fully functional
331
- - Include comprehensive comments and documentation
332
- - Implement proper game state validation
333
- - Handle all user input edge cases gracefully
334
- - Provide clear instructions for players
335
-
336
- Create an adventure that demonstrates professional game development standards while delivering an engaging, memorable interactive experience.`;
337
- return { systemAndContext, dataPayload, outputInstructions };
338
- }
339
- // Backwards compatibility
340
- getPromptStages(params) {
341
- const mode = this.detectAnalysisMode(params);
342
- if (mode === 'single-file') {
343
- return this.getSingleFilePromptStages(params);
344
- }
345
- else {
346
- return this.getMultiFilePromptStages(params);
347
- }
348
- }
349
- // Helper methods for adventure generation
350
- getFeatureDescriptions(features) {
351
- const featureMap = {
352
- 'inventory': 'Advanced inventory system with item interactions and combinations',
353
- 'stats': 'Character statistics (health, strength, intelligence, etc.) affecting gameplay',
354
- 'save_game': 'Multiple save slot system with game state persistence',
355
- 'multiple_endings': 'At least 3-5 different endings based on player choices and actions',
356
- 'combat': 'Turn-based or choice-based combat system with strategic elements',
357
- 'puzzles': 'Logic puzzles and riddles integrated into the narrative',
358
- 'character_creation': 'Detailed character creation affecting story and gameplay',
359
- 'dialogue_trees': 'Complex conversation systems with relationship impacts',
360
- 'time_system': 'Day/night cycle or time progression affecting story events',
361
- 'reputation': 'Reputation system tracking player actions and NPC relationships'
362
- };
363
- return features.map(f => featureMap[f] || `${f} system integration`);
364
- }
365
- getComplexityGuidelines(complexity) {
366
- const guidelines = {
367
- 'simple': '- Linear story with 2-3 major choice points\n- Basic inventory (5-10 items)\n- Simple text interface\n- 2-3 possible endings',
368
- 'intermediate': '- Branching narrative with multiple story paths\n- Full inventory and stats system\n- Enhanced UI with images/styling\n- 4-6 different endings\n- Character progression elements',
369
- 'advanced': '- Complex multi-layered narrative with consequences\n- Sophisticated game mechanics and systems\n- Professional-grade UI and animations\n- 6+ unique endings with variations\n- Advanced features like crafting, relationships, or time mechanics'
370
- };
371
- return guidelines[complexity] || guidelines.intermediate;
372
- }
373
- getLengthSpecifications(length) {
374
- const specs = {
375
- 'short': '- 15-30 minutes gameplay\n- 8-12 unique scenes\n- 2,000-4,000 words of content',
376
- 'medium': '- 45-90 minutes gameplay\n- 15-25 unique scenes\n- 5,000-10,000 words of content',
377
- 'long': '- 2-4 hours gameplay\n- 25-40 unique scenes\n- 10,000-20,000 words of content',
378
- 'epic': '- 4+ hours gameplay\n- 40+ unique scenes\n- 20,000+ words of content\n- Multiple character arcs and subplots'
379
- };
380
- return specs[length] || specs.medium;
381
- }
382
- getMinimumScenes(length) {
383
- const scenes = {
384
- 'short': '10-15',
385
- 'medium': '20-30',
386
- 'long': '35-50',
387
- 'epic': '50+'
388
- };
389
- return scenes[length] || scenes.medium;
390
- }
391
- getMinimumEndings(complexity) {
392
- const endings = {
393
- 'simple': '2-3',
394
- 'intermediate': '4-6',
395
- 'advanced': '6+'
396
- };
397
- return endings[complexity] || endings.intermediate;
398
- }
399
- }
400
- export default TextAdventureGenerator;
401
- //# sourceMappingURL=create_text_adventure.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create_text_adventure.js","sourceRoot":"","sources":["../../../src/prompts/fun/create_text_adventure.ts"],"names":[],"mappings":"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"}